MPMusicPlayerController を使用して、iPodMusicPlayer でデバイスから音楽を再生しています。そして定期的に AVPlayer でアラートを再生します。コードは次のようになります
-(void) duckMusic
{
UInt32 on=1;
AudioSessionSetProperty(kAudioSessionProperty_OtherMixableAudioShouldDuck,sizeof(on),&on);
AudioSessionSetActive(true);
}
-(void) unDuckMusic
{
UInt32 on=0;
AudioSessionSetProperty(kAudioSessionProperty_OtherMixableAudioShouldDuck,sizeof(on),&on);
AudioSessionSetActive(false);
}
アラートを再生する直前に最初のメソッドを呼び出し、通知を受け取った後に 2 番目のメソッドを呼び出しますAVPlayerItemDidPlayToEndTimeNotification
私が得ている問題は、アラートが完了した後に音楽がフェードバックしない場合があることです。いくつかのデバッグで、オーディオ セッション プロパティが適切に設定されていることがわかりましたが、何らかの理由で無視されています。
また、テスト中に気付きましたが、音楽がフェードバックしない場合、一時停止してデバイスで手動で音楽を再生すると、正常になります。
これをプログラムで処理する方法は?
編集:
アプリケーションがバックグラウンドで実行されているときに問題が発生しています