我在其中一个项目中使用 Twilio 的可编程语音。我的主要要求是在移动设备之间放置 VoIP 类。我可以从一台设备向另一台设备调用电话,但是当我当时接听电话时,调用屏幕会自动关闭,调用会在后台继续。在这种情况下,用户无法选择断开通话或与通话相关的任何其他操作,因为屏幕已关闭。
这是我为应用程序位于前台时的调用创建的屏幕。
调用完全成功,但在接收者接受时,它将关闭自定义屏幕。因此,用户没有任何选项来断开调用或与调用相关的任何其他操作。
如果代码中有任何问题或与我需要配置的调用套件设置相关的任何问题或任何其他问题?请帮忙。
最佳答案
据我所知,这是调用工具包框架的默认行为。当应用程序位于前台时,单击“接受”按钮将关闭屏幕。如果您想实现与应用程序相同的效果,那么您需要为此创建一个自定义屏幕。我用下面的代码解决了这个问题:
func provider(_ provider: CXProvider, perform action: CXAnswerCallAction)
{
NSLog("provider:performAnswerCallAction:")
// TwilioVoice.configureAudioSession()
let vc = loadVC(strStoryboardId: SB_CHAT, strVCId: idVoiceCallVC) as! VoiceCallVC
vc.callername = name
vc.userPhoto = userphoto
APP_DELEGATE.appNavigation?.pushViewController(vc, animated: true)
assert(action.callUUID == self.callInvite?.uuid)
TwilioVoice.isAudioEnabled = false
self.performAnswerVoiceCall(uuid: action.callUUID)
{ (success) in
if (success)
{
action.fulfill()
}
else
{
action.fail()
}
}
action.fulfill()
}
您只需在 Call Kit 框架的委托(delegate)方法中添加自定义屏幕显示代码即可。
func provider(_ provider: CXProvider, perform action: CXAnswerCallAction) {}
谢谢。
关于ios - 即使应用程序在 swift 4 中处于事件状态,调用屏幕也会在接受 twilio 语音调用时关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52714535/