5

iPodアプリケーションのキューのクリア機能を複製しようとしていますが、setQueueWithItemCollectionを呼び出すための空のMPMediaItemCollectionを作成できません。

例えば

[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

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 に答える