SPTTrack trackWithURI 问题

SPTTrack trackWithURI issue

我创建了一个获取歌曲轨道的新项目,所以我尝试将一组 SPTTracks 传递给播放器,请在下面找到它。

    self.player = [[SPTAudioStreamingController alloc] initWithClientId:auth.clientID];
    self.player.diskCache = [[SPTDiskCache alloc] initWithCapacity:1024 * 1024 * 64];

            NSString *trackURI = @"spotify:track:1zHlj4dQ8ZAtrayhuDDmkY";

            [SPTTrack trackWithURI:[NSURL URLWithString:trackURI] accessToken:auth.session.accessToken market:@"ES" callback:^(NSError *error, id object) {
                if (!error) {
                    SPTTrack *trackInfo = object;
                    NSArray *tracks = @[trackInfo];
                    [self.player playURIs:tracks fromIndex:0 callback:^(NSError *error) {
                        if (!error) {

                        } else {
                            NSLog(@"*** Failed to play track : %@", error);
                        }
                    }];
                } else {
                    NSLog(@"Error %@", error);
                }
            }];

但是,每当我 运行 它时,我都会崩溃。当它崩溃时,请在下面找到错误:

Simple Track Playback[254:24669] -[__NSCFConstantString absoluteString]: unrecognized selector sent to instance 0x1000c0508

我也在 spotify 上看过 api spotify_ios_sdk but I had found that one developer had already posted the same issue link.

如果有人解决了此类问题,请提供指导。

在此先致谢。

很遗憾,这个方法不是"equivalent",因为在[SPTTrack trackWithURI....的回调中返回的SPTTrack对象信息较少。

我尝试了一些解决方法,我发现对我来说解决方案是

1) 为 SPTTrack 对象创建请求。

2) 将该请求传递给 SPRequest performRequest 回调。

3) 等待响应,最终从数据中创建轨道(请找到下面的完整代码)。

self.player = [[SPTAudioStreamingController alloc] initWithClientId:auth.clientID];
self.player.diskCache = [[SPTDiskCache alloc] initWithCapacity:1024 * 1024 * 64];



NSString *market = [[NSLocale currentLocale] objectForKey:NSLocaleCountryCode];
NSURLRequest *request = [SPTTrack createRequestForTrack:[NSURL URLWithString:@"spotify:track:1zHlj4dQ8ZAtrayhuDDmkY"]
                                        withAccessToken:auth.session.accessToken
                                                 market:market
                                                  error:nil];
[[SPTRequest sharedHandler] performRequest:request
                            callback:^(NSError *error, NSURLResponse *response, NSData *data) {
                            if (!error) {
                                 NSError *parsingError = nil;
                                 SPTTrack *track = [SPTTrack trackFromData:data
                                                                   withResponse:response
                                                                          error:&parsingError];

                                          self.arrURIs = @[track.playableUri];
                                          [self.player playURIs:self.arrURIs fromIndex:0 callback:nil];

                                      }
                                  }];

感谢"Kry256"的详细解释。