我正在尝试复制iPod应用程序的清除队列功能,但是我无法创建一个空的MPMediaItemCollection来调用setQueueWithItemCollection:
e.g。
[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
答案 0 :(得分: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无效,然后为了好的测量告诉玩家停止。
希望有所帮助。