2010-06-17 73 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