我[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
不能中断播放。使用此方法,如果我不尝试更改播放(播放\暂停\scrub)并且曲目正常完成,则一切正常,并且在播放列表的其余部分继续正常工作。似乎在播放期间修改播放队列有某种我不明白的副作用。谁能给我一些关于如何实现我想要做的事情的见解?这个错误正在杀死我。