我正在使用[MPMusicPlayerController iPodMusicPlayer]来处理播放。该应用程序从播放列表开始,最终在听曲目时,如果用户采取了特定的操作,我想在 nowPlayingItem之后更改播放列表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 的回放不能中断。使用此方法,如果我不尝试更改播放(play\ work \scrub),并且音轨正常结束,则所有内容都正常工作,并将继续在播放列表的其余部分正常工作。在播放过程中修改播放队列似乎有某种副作用,我不明白。有人能给我一些洞察力,我如何才能实现我正在努力做的事情?这个虫子要了我的命。
发布于 2013-08-17 02:40:11
您是否尝试过在设置播放队列后立即在play上调用MPMusicPlayerController?在回放过程中,它最多只能产生一个短暂的瞬间。
https://stackoverflow.com/questions/18282350
复制相似问题