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

4

1 回答 1

-1

您是否尝试在设置播放队列后立即调用play您的?MPMusicPlayerController它最多应该在播放中产生一个瞬间的光点。

于 2013-08-17T02:40:11.197 回答