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