1

Spotify ios api (CocoaLibSpotify IOS Library) を使用して、iPhone / iPod / iPad デバイスにトラックをダウンロードできるかどうかを知りたいです。もしそうなら、私もそれらにアクセスしていつでもプレイする必要があります. 後でアプリで使用します。

sp_track_offline_status を使用すると、再生中のトラックのオフライン ステータスを確認できると思います。しかし、私はそれを乗り越えることができません。

サンプル コード スニペットは非常に役立ちます。

要件の簡素化: Spotify トラックをダウンロードして iOS デバイスに保存する

更新として、iKenndac の回答に応じて、offlineStatus プロパティが「1」になりました。これは、プレイリストがローカル ストレージに対して同期されていることを意味します。

SP_PLAYLIST_OFFLINE_STATUS_YES = 1, ///< プレイリストはローカル ストレージに同期されます

1.プレイリストの全曲がダウンロードされたということですか?

私はそうは思わない。次のように他の状態があるためです。

typedef enum sp_playlist_offline_status {
  SP_PLAYLIST_OFFLINE_STATUS_NO          = 0, ///< Playlist is not offline enabled
  SP_PLAYLIST_OFFLINE_STATUS_YES         = 1, ///< Playlist is synchronized to local storage
  SP_PLAYLIST_OFFLINE_STATUS_DOWNLOADING = 2, ///< This playlist is currently downloading. Only one playlist can be in this state any given time
  SP_PLAYLIST_OFFLINE_STATUS_WAITING     = 3, ///< Playlist is queued for download
} sp_playlist_offline_status;

2 または 3 の offlineStatus を取得したことはありません。

  1. また、offlineDownloadProgress プロパティには常に「0」が表示されます。
    私が間違っていなければ、「0」から「1」に増加する必要があります。

コードスニペット:

[SPAsyncLoading waitUntilLoaded:playList 
                        timeout:kSPAsyncLoadingDefaultTimeout 
                           then:^(NSArray *loadedItems, NSArray *notLoadedItems) {    
    playList.markedForOfflinePlayback = YES;
    currentPlaylist = playList;
    statusTimer = [NSTimer scheduledTimerWithTimeInterval:0.3 target:self selector:@selector(checkOfflineStatus) userInfo:nil repeats:YES];

以下のように状態を確認しています。

-(void)checkOfflineStatus {

  NSLog(@"playlist offline progress is: %f",currentPlaylist.offlineDownloadProgress);

  NSLog(@"offline status: %d",currentPlaylist.offlineStatus);

}

出力は次のようになります。

2012-07-06 20:34:05.891 Simple Player[6571:10703] プレイリストのオフライン進行状況: 0.000000

2012-07-06 20:34:05.892 Simple Player[6571:10703] オフライン状態: 1

2012-07-06 20:34:06.039 Simple Player[6571:10703] プレイリストのオフライン進行状況: 0.000000

2012-07-06 20:34:06.039 Simple Player[6571:10703] オフライン状態: 1

次に何ができますか?

4

1 に答える 1

3

Spotify のトラックを、たとえば MP3 ファイルなど、独立した再生用に単純にダウンロードすることはできません。

ただし、iOS Spotify クライアントと同様に、ユーザーが CocoaLibSpotify にログインしている限り、後でオフラインで再生するためにライブラリ キャッシュ トラックを保持できます。

SPPlaylistにはmarkedForOfflinePlaybackオフライン アクセスを有効にするためのプロパティがあり、プレイリストのofflineDownloadProgressおよびofflineStatusプロパティは詳細情報を提供します。

CocoaLibSpotify には、オフライン再生用のプレイリストをキャッシュして動作を確認する Mac サンプル アプリケーションが付属しています。この API は、CocoaLibSpotify の Mac OS X バージョンと iOS バージョンの両方で同じように利用できます。

于 2012-07-05T16:14:38.887 に答える