2012-07-05 28 views
1

我想知道是否可以使用spotify ios api(CocoaLibSpotify IOS Library)下載到iphone/ipod/ipad設備的曲目。如果是這樣,我也需要訪問它們並隨時玩我想玩的遊戲。以後我會在我的應用中使用它們。適用於ios的Spotify API:下載,保存,訪問來自ios的曲目spotify api

我想我們可以使用sp_track_offline_status檢查正在播放的曲目的離線狀態。但我無法解決這個問題。

任何示例代碼片段都會有很大的幫助。

簡化要求:下載和Spotify的曲目保存到iOS設備

作爲一個更新,響應iKenndac的回答,offlineStatus財產已經成爲「1」,這意味着playist爲本地同步存儲。

SP_PLAYLIST_OFFLINE_STATUS_YES = 1,/// <播放列表同步到本地存儲

1.Does意味着在播放列表中的所有曲目都下載?

我不這麼認爲。因爲有其他規定如下:

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; 

我從來沒有得到offlineStatus 2或3

  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:3 4:05.891簡單播放器[6571:10703]的播放列表的離線進展是:0.000000

2012-07-06 20:34:05.892簡單播放器[6571:10703]脫機狀態:1

2012-07-06 20:34:06.039簡單的播放器[6571:10703]離線播放進度爲:0.000000

2012-07-06 20:34:06.039簡單的播放器[6571:10703]脫機狀態:1

我能下一步呢?

回答

3

您不能簡單地將Spotify軌道下載爲MP3文件或任何獨立播放。

但是,只要用戶保持登錄到CocoaLibSpotify中,就像iOS Spotify客戶端一樣,您可以稍後將庫緩存曲目用於離線播放。

SPPlaylist具有用於啓用離線訪問的markedForOfflinePlayback屬性,然後播放列表的offlineDownloadProgressofflineStatus屬性提供更多信息。

CocoaLibSpotify附帶了一個Mac示例應用程序,該應用程序可以緩存播放列表進行離線播放,以查看其工作原理。該API在Mac OS X和iOS版本的CocoaLibSpotify上都可用並且相同。

+0

您可以發佈Mac示例應用程序的鏈接(以及示例應用程序的名稱)以供離線播放。我一直在尋找那些,但徒勞無功。 – revanth 2012-07-09 09:48:43

+0

https://github.com/spotify/cocoalibspotify/ - 克隆回購,項目在'Mac Framework/Sample Projects/Offline Playlists'中。 – iKenndac 2012-07-09 11:58:21

+0

這也適用於iOS SDK嗎?在TOS中,除非用戶是Premium Spotify Service用戶,否則本地緩存似乎被禁止。如您所述,用戶可以保持登錄到CocoaLibSpotify。希望在通過大量研發工作之前確認此事。謝謝丹 – 2014-09-02 18:18:49