对于其他偶然发现这一点的人来说,我没有使用callkit在callprovider协议的didActivate方法中提供的音频会话。
这是我修改后的配置音频会话
private func configureAudioSession() {
self.rtcAudioSession.lockForConfiguration()
do {
self.rtcAudioSession.useManualAudio = true
self.rtcAudioSession.isAudioEnabled = false
try self.rtcAudioSession.setCategory(AVAudioSession.Category.playAndRecord.rawValue)
try self.rtcAudioSession.setMode(AVAudioSession.Mode.voiceChat.rawValue)
} catch let error {
debugPrint("Error changeing AVAudioSession category: \(error)")
}
self.rtcAudioSession.unlockForConfiguration()
}
然后在我的提供者代表中
func provider(_ provider: CXProvider, didActivate audioSession: AVAudioSession) {
print("Received \(#function)")
webRTCClient.rtcAudioSession.audioSessionDidActivate(audioSession)
webRTCClient.rtcAudioSession.isAudioEnabled = true
}