swifferina
swifferina

Reputation: 293

How to play a Spotify playlist

I correctly retrieve my logged user's Spotify playlist :

- (IBAction)loadPlaylist{
    SPTAuth *auth = [SPTAuth defaultInstance];
    [SPTPlaylistList playlistsForUserWithSession:auth.session callback:^(NSError *error, id object) {
       SPTListPage *pl= object;
       NSLog(@"%@ my playlist items",pl.items);
    }];
}

However, I don't understand how can I start to play this playlist.

Upvotes: 0

Views: 453

Answers (2)

Mantas Laurinavičius
Mantas Laurinavičius

Reputation: 951

Retrieve all playlists and pass it to player.

 [self.player loginWithSession:auth.session callback:^(NSError *error) {

    if (error != nil) {
        NSLog(@"*** Error occurred while trying to log in %@", error);
        return;
    }

    [SPTPlaylistList playlistsForUserWithSession:auth.session callback:^(NSError *error, id object) {
        if (!error) {
          NSURL *playlistURL = nil;
          SPTListPage *pl= object;

         if(pl != nil && pl.items.count > 0)
            playlistURL = [pl.items[1] uri];

        NSURLRequest *playlistReq = [SPTPlaylistSnapshot createRequestForPlaylistWithURI:playlistURL accessToken:auth.session.accessToken error:nil];

        [[SPTRequest sharedHandler] performRequest:playlistReq callback:^(NSError *error, NSURLResponse *response, NSData *data) {
            if (error != nil) {
                NSLog(@"*** Failed to get playlist %@", error);
                return;
            }

            SPTPlaylistSnapshot *playlistSnapshot = [SPTPlaylistSnapshot playlistSnapshotFromData:data withResponse:response error:nil];

            [self.player playURIs:playlistSnapshot.firstTrackPage.items fromIndex:0 callback:nil];
        }];

        }
      }];

Upvotes: 1

casillas
casillas

Reputation: 16803

Check the following sample code:

 id plistRep = [[NSUserDefaults standardUserDefaults] valueForKey:@"SpotifySession"];
      SPTSession *session = [[SPTSession alloc] initWithPropertyListRepresentation:plistRep];
    [SPTRequest playlistsForUser:[session canonicalUsername] withSession:session callback:^(NSError *error, id object) {
        SPTPlaylistList *playlist = (SPTPlaylistList *)object;
        for (SPTPartialPlaylist *item in [playlist items]) {
            NSLog(@"Playlist %@", [item name]);
        }
    }];

Upvotes: 0

Related Questions