Как очистить очередь MPMusicPlayerController? - PullRequest
4 голосов
/ 17 июня 2010

Я пытаюсь повторить функциональность очистки очереди приложения 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, которая позволяет избежать этой проблемы?

Любая помощь очень ценится, CV

1 Ответ

8 голосов
/ 21 ноября 2010

Я не знаю, удалось ли вам преодолеть вашу проблему, но вот обходной путь, который, кажется, работает для меня.

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, а затем для хорошей меры говорит игроку остановиться.

Надеюсь, что поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...