2017-06-20 62 views
0

我在我的VOIP应用程序中使用AVAudioSession(也使用CallKit)。 我知道会话可能会被许多事情中断,例如通过第二个来电。 https://developer.apple.com/library/content/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/HandlingAudioInterruptions/HandlingAudioInterruptions.html#//apple_ref/doc/uid/TP40007875-CH4-SW5如何知道音频中断未收到AVAudioSessionInterruptionTypeEnded而结束?

“注: 苹果朝着这个页面的底部状态,没有保证一开始中断将有 相应结束中断您的应用程序需要知道一个开关 的一个前景运行状态或用户按下Play按钮。在 两种情况下,确定您的应用是否应重新激活其音频 会话。“

在上面的页面中,有一个特殊情况的示例,当用户忽略传入呼叫并且在这种情况下AVAudioSessionInterruptionTypeEnded正在发送。

但是我应该怎么做才能知道中断何时结束(在这种情况下我永远不会收到AVAudioSessionInterruptionTypeEnded)? (例如,当用户应答第二个呼叫并且让我暂停,然后他结束第二个呼叫?)

谢谢!

回答

0

我记得当您使用CallKit时,除了那些其他voip应用程序或本机调用,使用像音乐一样的音频的应用程序都不会中断您的应用程序。 在这种情况下,您的通话将根据您在通话组件ui上的回复结束/保持(如果您的通话不支持保持,您将不会显示一个按钮接受&保持)----然后,您可以从CallKit委托方法获取回调。

当没有使用CallKit并且CallKit应用程序在音频会话上的优先级高于不使用它时,Interruption API正常工作。

相关问题