我正在使用 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);
}
我在播放警报之前调用第一个方法,在收到通知AVPlayerItemDidPlayToEndTimeNotification后调用第二个方法
我遇到的问题是,有时警报完成后音乐不会消失。通过一些调试,我发现音频会话属性设置正确,但由于某种原因被忽略。
我在测试时也注意到,当音乐没有淡出时,如果我只是暂停并在设备上手动播放音乐,它就会变得正常。
如何以编程方式处理这个?
编辑:
应用程序在后台运行时出现问题