Spotify API für ios: Laden Sie Tracks von ios spotify api herunter, speichern Sie sie und greifen Sie darauf zu

Ich möchte wissen, ob das Herunterladen von Titeln auf das iPhone / iPod / iPad mit der spotify ios api (CocoaLibSpotify IOS Library) möglich ist. Wenn ja, muss ich auch darauf zugreifen und spielen, wann immer ich will. Ich werde sie später in meiner App verwenden.

Ich denke, wir können den Offline-Status des gerade gespielten Tracks mit sp_track_offline_status überprüfen. Aber ich komme nicht durch.

Jedes Beispielcode-Snippet wäre eine große Hilfe.

Vereinfachung der Anforderung: Laden Sie die spotify-Titel herunter und speichern Sie sie auf iOS-Geräten

Als Reaktion auf die Antwort von iKenndac wurde die Eigenschaft "offlineStatus" zu "1", was bedeutet, dass der Playist für den lokalen Speicher synchronisiert wird.

SP_PLAYLIST_OFFLINE_STATUS_YES = 1, /// <Die Wiedergabeliste wird mit dem lokalen Speicher synchronisiert

1. Bedeutet dies, dass alle Titel in der Wiedergabeliste heruntergeladen werden?

Ich glaube nicht. weil es folgende andere Zustände gibt:

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;

Ich hatte nie den Offline-Status 2 oder 3.

Auch meine offlineDownloadProgress-Eigenschaft zeigt mir immer "0".
Es muss von '0' auf '1' erhöht werden, wenn ich mich nicht irre.

Code-Auszug:

[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];

Ich überprüfe den Status wie folgt:

-(void)checkOfflineStatus {

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

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

}

Die Ausgabe sieht folgendermaßen aus:

2012-07-06 20: 34: 05.891 Simple Player [6571: 10703] Playlist Offline-Fortschritt ist: 0.000000

2012-07-06 20: 34: 05.892 Simple Player [6571: 10703] Offlinestatus: 1

2012-07-06 20: 34: 06.039 Simple Player [6571: 10703] Playlist Offline-Fortschritt ist: 0.000000

2012-07-06 20: 34: 06.039 Simple Player [6571: 10703] Offlinestatus: 1

Was kann ich als nächstes tun?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage