1

私は[MPMusicPlayerController iPodMusicPlayer]再生を処理するために使用しています。アプリはプレイリストから始まり、最終的にトラックを聴いているときに、ユーザーが特定のアクションを実行した場合、プレイリストの一部を変更したいnowPlayingItem.

元のプレイリストと新しいプレイリストを生成するので、以前に再生したものと新しいものを表す新しいキューを作成できますMPMediaItems。一時停止、スクラブ、または再生に影響する何かをしようとするまで、すべて正常に動作します。の次のトラックにすぐにスキップしnowPlayingItemます。

コード例:

- (void)exampleAction{       
    //Remove tracks after currentItem
    [self.playbackQueue removeObjectsInRange:NSMakeRange(self.indexInQueue+1, self.playbackQueue.count-self.indexInQueue-1)];

    NSMutableArray *newQueue = [NSMutableArray array];
    //ADD ITEMS TO newQueue here

    [self.playbackQueue addObjectsFromArray:newQueue];

    MPMediaItemCollection *collection = [MPMediaItemCollection collectionWithItems:self.playbackQueue];
    [self.playbackController setQueueWithItemCollection:collection];    
}

の再生は中断nowPlayingItem できません。この方法を使用すると、再生 (再生\一時停止\スクラブ) を変更しようとせず、トラックが正常に終了した場合、すべてが正常に機能し、プレイリストの残りの部分で引き続き適切に機能します。再生中に再生キューを変更すると、私には理解できない副作用があるようです。私がやろうとしていることをどのように達成できるかについて、誰かが私に洞察を与えることができますか? このバグは私を殺しています。

4

1 に答える 1

-1

再生キューを設定した直後に電話をかけてみplayましたか? MPMusicPlayerController再生時に発生する瞬間的なブリップは、せいぜいわずかです。

于 2013-08-17T02:40:11.197 に答える