2

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

1 に答える 1

0

アーティストのブラウズは何にでも影響を与えるべきです - トラックはトラックです。ただし、確実に再現できる場合は、CocoaLibSpotify をフォークして、失敗した単体テストを単体テスト スイートに追加してください。そうすれば修正できます。

Spotify 再生サービスが間違ったタイミングで利用できなくなった可能性もありますが、それはかなりまれなケースです。

于 2012-05-23T18:08:36.247 に答える