我试图用可可校正点来播放SPARTistBrowse的顶部音轨。 大部分时候,这效果是完美无缺的, 但我偶尔会犯以下错误:
Error Domain=com.spotify.CocoaLibSpotify.error Code=3 "The track cannot be played"
这只适用于特定的音轨,而对于受影响的音轨,它具有一致性和可重复性(例如Armin van Buren的顶级音轨, 定位: track: 6q0f0zpByDs4Zk0heXZ3cO, 试图使用下面的代码播放时总是出此错误 ) 。 奇怪的是, 如果我使用简单的玩家样本应用程序并输入受影响的音轨的 URL, 轨迹就会很好; 因此我的直觉是它和从SPArtic Brrowse 上装入的音轨有关。
以下是我用来玩曲子的代码:
- (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;
}
}];
}];
}