【问题标题】:How to play a Spotify playlist如何播放 Spotify 播放列表
【发布时间】:2015-08-05 22:03:13
【问题描述】:

我正确检索了登录用户的Spotify 播放列表:

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

但是,我不明白如何才能开始播放此播放列表。

【问题讨论】:

    标签: ios iphone spotify playlist


    【解决方案1】:

    检索所有播放列表并将其传递给播放器。

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

    【讨论】:

    • playURIs:(NSArray *)uris 是否采用 NSURL 数组而不是 SPTPlaylistTrack 对象数组?
    【解决方案2】:

    检查以下示例代码:

     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]);
            }
        }];
    

    【讨论】:

    • 好的,但我也需要玩这个项目,我不明白怎么做
    猜你喜欢
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 2016-03-18
    • 1970-01-01
    相关资源
    最近更新 更多