2010-06-17 72 views
4

我试图复制iPod应用程序的清除队列功能,但是我无法创建一个空的MPMediaItemCollection,用它​​来调用setQueueWithItemCollection:如何清除MPMusicPlayerController的队列?

[self.musicPlayer setQueueWithItemCollection:[MPMediaItemCollection collectionWithItems:[NSArray array]]]; 

其中musicPlayer是MPMusicPlayerController。

抛出异常:

*** Terminating app due to uncaught exception 'MPMediaItemCollectionInitException', reason: 'items array must not be empty' 

有没有办法来清除避免这一问题的MPMusicPLayerController队列?

任何帮助是极大的赞赏, CV

回答

8

我不知道你是否已经成功地克服你的问题,但这里的,这似乎是为我工作的一种替代方法。

MPMediaPropertyPredicate *predicate = 
    [MPMediaPropertyPredicate predicateWithValue: @"Non_Existant_Song_Name" 
            forProperty: MPMediaItemPropertyTitle]; 
MPMediaQuery *q = [[MPMediaQuery alloc] init]; 
[q addFilterPredicate: predicate]; 
[self.player.controller setQueueWithQuery:q]; 
self.player.controller.nowPlayingItem = nil; 
[self.player.controller stop]; 

这基本上设置了播放队列与一个查询,你肯定永远不会出现任何歌曲。理想情况下,这个查询非常快速。然后它取消了nowPlayingItem,然后通过一个好的方法告诉玩家停下来。

希望有所帮助。

+0

辉煌,像魅力一样工作。 – 2014-10-17 00:27:12