我正在尝试使用cocoalibspotify从SPArtistBrowse的结果中播放顶部曲目。大部分时间都可以完美地运行,但偶尔会出现以下错误:
Error Domain=com.spotify.CocoaLibSpotify.error Code=3 "The track cannot be played"
这仅适用于特定曲目,对于受影响的曲目,它是一致且可重复的(例如,Armin van Buren的顶部曲目,spotify:track:6q0f0zpByDs4Zk0heXZ3cO,在尝试使用下面的代码播放时总是会出现此错误)。奇怪的是,如果我使用简单的播放器示例应用程序并输入受影响的曲目的URL,则曲目播放正常;所以我的预感是它与从SPArtistBrowse加载的曲目有关。
以下是我用来播放曲目的代码:
- (void)playTrack
{
SPTrack *track = [self.artistBrowse.topTracks objectAtIndex:self.currentTrackIndex];
[SPAsyncLoading waitUntilLoaded:track then:^(NSArray *tracks) {
[self.playbackManager playTrack:track callback:^(NSError *error) {
if (error) {
self.currentTrackIndex++;
if (self.currentTrackIndex < self.artistBrowse.topTracks.count) {
[self playTrack];
} else {
[self.activityIndicator stopAnimating];
self.activityIndicator.alpha = 0;
self.nowPlayingLabel.text = @"Spotify Error";
}
} else {
[self.activityIndicator stopAnimating];
self.activityIndicator.alpha = 0;
self.nowPlayingLabel.text = track.name;
// Set "Now Playing" info on the iOS remote control
MPNowPlayingInfoCenter *infoCenter = [MPNowPlayingInfoCenter defaultCenter];
NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
[dic setValue:track.name forKey:MPMediaItemPropertyTitle];
[dic setValue:self.artistLabel.text forKey:MPMediaItemPropertyArtist];
infoCenter.nowPlayingInfo = dic;
}
}];
}];
}
答案 0 :(得分:0)
艺术家浏览应该影响任何事情 - 轨道是轨道。但是,如果您可以可靠地重现它,请分叉CocoaLibSpotify并将失败的单元测试添加到单元测试套件中 - 这样我们就可以修复它。
Spotify播放服务也可能在错误的时间无法使用,但这种情况相当罕见。