【发布时间】:2020-05-20 07:20:24
【问题描述】:
这从 iOS 13.3.1 开始发生
在我的应用程序中,我使用 Callkit + WebRTC 建立 VOIP 连接。我总是设法毫无问题地建立连接。
但是,从 13.3.1 开始,如果应用程序不在前台,我将无法启动 Callkit 调用:我设法建立了连接,但 callkit 没有启动(顶部没有绿色图标/栏) 并且麦克风也没有被拾起。
我总是收到以下错误:
Error requesting transaction ((
" contactIdentifier=(null) video=0 relay=0 upgrade=0 retry=0 emergency=0 isVoicemail=0 ttyType=0 localLandscapeAspectRatio={0, 0} localPortraitAspectRatio={0, 0} dateStarted=(null) localSenderIdentityUUID=(null) shouldSuppressInCallUI=0>"
)): (Error Domain=com.apple.CallKit.error.requesttransaction Code=6 "(null)")
根据我收集的信息(几乎没有关于此代码 6 错误的信息)如果 AudioSession 未激活,Callkit 可能会终止。但是,我不明白自 13.3.1 以来发生了什么会影响后台(我有音频、Airplay 和 PIP/IP 语音/后台获取)模式。
与此同时,我尝试了很多事情,从自己激活会话(在 callController.request 之前和 provider.reportOutgoingCall 之前)
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playAndRecord, mode: AVAudioSession.Mode.voiceChat, options: .mixWithOthers)
try AVAudioSession.sharedInstance().overrideOutputAudioPort(.speaker)
try AVAudioSession.sharedInstance().setActive(true)
} catch {
print(error)
}
播放无声音频(试图强制激活 AVAudioSession)但没有任何运气。
有什么建议吗?
【问题讨论】:
标签: ios background webrtc voip callkit