iPhone 用の音楽プレイリスト編集アプリケーションを作成しています。
にサブスクライブしていますが、変更時にこの通知のメソッドが複数回呼び出される
MPMusicPlayerController
MPMusicPlayerControllerNowPlayingItemDidChangeNotification
という問題が発生しています。@selector
nowPlayingItem:
各プレイリストを独自のMPMediaItemCollection
オブジェクトに分割し、1 つのプレイリストが終了したら、次のプレイリストをロードします。これには、プレーヤーを呼び出し、そのメソッドを介して音楽プレーヤー コントローラーに-pause
new を渡します。次に、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
ます。
どうもありがとう。