1

少し奇妙な問題があります。を使用する音楽アプリがあり[MPMusicPlayerController iPodMusicPlayer]ます。すべてが正常で、トラックの変更と再生状態の変更に対して通知が発行されます。

ユーザーが1つの曲を確認する必要がある画面がありますが、キュー内の次の曲に進んでほしくないのです。トラックがいつ変更されるか(DID変更のみ)のデリゲートメソッドがないため、音楽プレーヤーが次のトラックに進むのを防ぐために、新しいトラックを使用して、[MPMusicPlayerController applicationMusicPlayer]iPodMusicPlayerの現在再生中の曲を指定します。続行する新しいトラックはなく、元のiPodMusicPlayerキューに触れていないので、理論的には、この画面を閉じてiPodMusicPlayerもう一度使用すると、すべてが完全に正常になります。

ただし、ユーザーがこの画面を終了して閉じると、iPodMusicPlayer突然壊れて通知が呼び出されず、アプリをバックグラウンドに置くと音楽の再生が停止するため、iPodMusicPlayer実際にはそうなっていると思いapplicationMusicPlayerます。

さて、私の質問は基本的に次のとおりです。音楽プレーヤーがキュー内の次のトラックに進むのを防ぐ方法が必要です。上で説明したように、1つのトラックでapplicationMusicPlayerに切り替えると、問題が発生するようです。最善の解決策は何ですか?

編集:これは理解するのが少し難しいかもしれないので、私は問題を示すために小さなプロジェクトを作成しました:https ://github.com/kevinrenskers/MPMusicPlayerControllerTest 。音楽の再生中にアプリを開き、再生ボタンが正しく動作することを確認します。ポップアップを開き、もう一度閉じると、再生ボタンが壊れます。

4

1 に答える 1

1

問題の解決策を見つけました。にを設定してrepeatModeから通知MPMusicRepeatModeOneをキャッチします。MPMusicPlayerControllerNowPlayingItemDidChangeNotification再生を停止して、次のトラックに進むことはできません。2番目の画面が終了したら、repeatModeを元の値にリセットします。

于 2012-06-12T11:58:21.187 に答える