如何清除MPMusicPlayerController的队列?

CVe*_*tex 4 iphone iphone-sdk-3.0 mpmediaitemcollection

我正在尝试复制iPod应用程序的清除队列功能,但是我无法创建一个空的MPMediaItemCollection来调用setQueueWithItemCollection:

例如

[self.musicPlayer setQueueWithItemCollection:[MPMediaItemCollection collectionWithItems:[NSArray array]]];
Run Code Online (Sandbox Code Playgroud)

其中musicPlayer是MPMusicPlayerController.

抛出异常:

*** Terminating app due to uncaught exception 'MPMediaItemCollectionInitException', reason: 'items array must not be empty'
Run Code Online (Sandbox Code Playgroud)

有没有办法清除MPMusicPLayerController队列,避免这个问题?

任何帮助非常感谢,简历

hkt*_*ner 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];
Run Code Online (Sandbox Code Playgroud)

这基本上将播放队列设置为一个您确定永远不会打开任何歌曲的查询.理想情况下,这是一个非常快速执行的查询.然后它使nowPlayingItem无效,然后好的测量告诉玩家停止.

希望有所帮助.