我在 iOS 5.x 中的 VoIP 应用程序中管理 AudioSession(设置为 Play&Record 类别)中断时遇到问题。当我正在进行通话、进入后台并启动 youtube 应用程序时,会发生音频会话开始中断,我可以暂停当前通话。
问题是当我返回前台并想要响应我的呼叫时(没有杀死 youtube 应用程序,只需将其置于后台):没有发生结束中断回调,即使我强制设置我之前的 audioSession 活动,它也会返回错误。
我检查音频资源是否可能被其他进程使用(使用 AudioSessionGetProperty (kAudioSessionProperty_OtherAudioIsPlaying,...) 但他们没有。如果我手动终止 youtube 应用程序,则会发生最终中断并且没有问题。
由于通常没有人手动杀死应用程序,我怎样才能恢复我的通话的音频会话?我检查了其他示例,Viber 可以正常工作,并且可以以某种方式“拦截”最终中断。
另一个奇怪的行为是,如果我在我的 AudioSession 中也设置了“allowMixing”类别,它在 iOS 5.x 中会被完全忽略(youtube 控制音频资源),而在 iOS 4.x 中它可以正常工作(也就是说我听在当代音频通话和 youtube 混合)。