Pergunta

Estou tentando replicar a funcionalidade clara da fila do aplicativo iPod, no entanto, não posso criar uma mpmediaiTemCollection vazia com a qual chamar o setQueueWithItemCollection:

por exemplo

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

Onde o MusicPlayer é um MPMusicPlayerController.

joga uma exceção:

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

Existe uma maneira de limpar uma fila MPMusicPlayerController que evita esse problema?

Qualquer ajuda é muito apreciada, cv

Foi útil?

Solução

Não sei se você conseguiu superar seu problema, mas aqui está uma solução alternativa que parece estar funcionando para mim.

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];

Isso basicamente define a fila de reprodução com uma consulta que você com certeza nunca aparecerá. Idealmente, uma consulta que é muito rápida de executar. E então ele anula o NowplayingItem e, em seguida, por uma boa medida, diz ao jogador para parar.

Espero que ajude.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top