2

iPhone 用の音楽プレイリスト編集アプリケーションを作成しています。

にサブスクライブしていますが、変更時にこの通知のメソッドが複数回呼び出されるMPMusicPlayerController MPMusicPlayerControllerNowPlayingItemDidChangeNotificationという問題が発生しています。@selectornowPlayingItem:

各プレイリストを独自のMPMediaItemCollectionオブジェクトに分割し、1 つのプレイリストが終了したら、次のプレイリストをロードします。これには、プレーヤーを呼び出し、そのメソッドを介して音楽プレーヤー コントローラーに-pausenew を渡します。次に、nowPlayingItem を自分のアイテムのアイテムに明示的に設定し、最後に を呼び出します。MPMediaItemCollection-setQueueWithItemCollection:-play

        [musicPlayer pause];
        [musicPlayer setQueueWithItemCollection:[MPMediaItemCollection collectionWithItems:[selectedPrefs mediaItems]]];
        musicPlayer.nowPlayingItem = [selectedPrefs.playbackItems objectAtIndex:selectedPrefs.nowPlayingIndex];
        [musicPlayer play];

これを行う@selectorと、現在再生中のアイテムを変更するために が 2 回呼び出されます。-setQueueWithItemCollection:これは、現在再生中のアイテムが新しいコレクションの最初のメディア アイテムを指すように自動的に変更され、 を呼び出す前にこのアイテムを再度変更しているためだと思われ-playます。

どうもありがとう。

4

0 に答える 0