本当に奇妙な問題に遭遇する単純な音楽プレーヤーアプリがあります。まず、音楽の再生中にロック状態で、ユーザーがホーム ボタンをダブルクリックして、ロックされた iPod ミュージック コントロールを使用できるようにします。ただし、ロック状態の間、アプリは登録された通知をまったく受信しないことに気付きました。ほとんどの場合、これで問題ありません。ただし、ユーザーがロック状態で、ある種のヘッドフォンまたは AUX ジャックを使用しているときに、少なくとも 15 分間音楽を再生している場合 (理由はわかりませんが、それ以下であり、この問題は発生しません)、プラグを抜きます。デバイスがまだ音楽を再生しているときにヘッドフォン/Aux ジャックを接続すると、iPodMusicPlayer は自動一時停止します。これはまさに私がやりたいことですが、これが起こった後、ユーザーがデバイスのロックを解除してアプリに再びフォーカスを移すと、iPodMusicPlayer'
- (IBAction)playPause:(id)sender {
if ([musicPlayer playbackState] == MPMusicPlaybackStatePlaying) {
[musicPlayer pause];
} else {
[musicPlayer play];
}
}
どこでmusicPlayer = [MPMusicPlayerController iPodMusicPlayer]
。
通常の状況では、これは完全に正常に動作します。しかし、これらの条件の後、私のブレークポイントは、音楽が一時停止している間に MPMusicPlaybackStatePlaying の条件にヒットし、その逆も同様です。これを修正できた唯一の方法は、新しい音楽を選択するか、アプリを終了して再度開くことです。この問題をプログラムで修正するために多くの回避策を試しましたが、100% バグのない修正にはなりませんでした。そもそもなぜこれが起こるのか、誰にも手がかりがありますか?