【发布时间】:2017-11-21 15:16:43
【问题描述】:
我正在开发 CallKit 应用程序,我有一个问题,在 CallKit 屏幕上“交换”呼叫时,呼叫保持无法重新启动音频,直到用户返回到应用内呼叫屏幕。我可以通过更新绕过这个:
supportsHolding = false
但是我可以解决这个问题,例如 whatsapp 可以正确地做到这一点!
附言我正在使用 webrtc 拨打电话!
谢谢!
编辑:
这是提供者的代码:
public func provider(_ provider: CXProvider, perform action: CXSetHeldCallAction) {
guard let call = conductor!.callWithUUID(uuid: action.callUUID) else {
WebRtcConductor.debug("\(self.TAG) ???? failed to perform HeldAction: uuid: \(action.uuid), calluiid: \(action.callUUID)")
action.fail()
return
}
setIsHeld(call: call, isHeld: action.isOnHold)
action.fulfill()
}
setIsHeld 函数简单地做:
audioTrack.isEnabled = enabled
如果我使用 callkit 屏幕的“静音”按钮,一切正常,但如果我有 2 个活动呼叫,当我从 webrtc 呼叫滑动到正常呼叫时,调用 CXSetHeldCallAction 并且音轨确实被禁用,如果我再次滑动到webrtc 调用,音轨已启用,但我什么也没听到,如果我返回主应用程序屏幕,音频又可以正常工作了!
【问题讨论】:
-
请展示您编写的相关代码,但也要清楚说明会发生什么以及您期望会发生什么。
-
我添加了更多代码!谢谢!
-
嗨@LucaBecchetti,你解决了这个问题吗?