5

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

例如

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

其中musicPlayer 是一个MPMusicPlayerController。

抛出异常:

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

有没有办法清除避免此问题的 MPMusicPLayerController 队列?

非常感谢任何帮助,简历

4

1 回答 1

9

我不知道你是否已经设法克服了你的问题,但这里有一个似乎对我有用的解决方法。

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 无效,然后告诉玩家停止。

希望有帮助。

于 2010-11-21T11:50:01.090 回答