在 iOS 中听不到 WebRTC 音频通话语音 无法使用移动数据,但可以使用 WIFI 连接
WebRTC Audio call voice not hearing in iOS not working with Mobile data but works with WIFI connection
这种情况每次音频通话都会失败
如果发送方使用wifi网络,接收方使用移动数据3G/4G网络,那么接收方可以听到发送方的声音,而接收方的声音在发送方则听不到。
peer connection 连接成功,发送方和接收方在双方。
“peerConnection 新连接状态:正在检查”
“peerConnection 新连接状态:已连接”
此外,我们正在使用 STUN 和 TURN 服务器,例如“stun:stun.l.google.com:19302”和 config.iceServers = [RTCIceServer(urlStrings: ["turn:numb.viagenie.ca:3478" ], 用户名: "username@xyz.com", 凭证: "@password")]
请在下面找到音频远程流代码:
private func configureAudioSession() {
self.rtcAudioSession.lockForConfiguration()
do {
try self.rtcAudioSession.setCategory(AVAudioSessionCategoryPlayAndRecord)
try self.rtcAudioSession.setMode(AVAudioSessionModeVoiceChat)
} catch {
print("Error setting configuration: \(error.localizedDescription)")
}
self.rtcAudioSession.unlockForConfiguration()
}
private func createMediaSenders() {
let streamId = "XYZ"
let audioTrack = self.createAudioTrack()
self.peerConnection.add(audioTrack, streamIds: [streamId])
}
我正在尝试正确地遵循三个集成步骤并在我的应用程序中正常工作。
配置 WebRTC 音频会话以使用手动音频并禁用音频:
RTCAudioSession.sharedInstance().useManualAudio = true RTCAudioSession.sharedInstance().isAudioEnabled = false
在你的 CXProvider 委托的 provider(CXProvider, didActivate
: AVAudioSession) 方法上:
- 用
呼叫RTCAudioSession.sharedInstance().audioSessionDidActivate
- 来自 CXProvider 的 AVAudioSession
启用音频:
RTCAudioSession.sharedInstance().isAudioEnabled = true
- 在您的 CXProvider 委托的提供者 (CXProvider,
didDeactivate
: AVAudioSession) 上使用来自 CXProvider 的 AVAudioSession 调用 RTCAudioSession.sharedInstance().audioSessionDidDeactivate
这种情况每次音频通话都会失败 如果发送方使用wifi网络,接收方使用移动数据3G/4G网络,那么接收方可以听到发送方的声音,而接收方的声音在发送方则听不到。
peer connection 连接成功,发送方和接收方在双方。
“peerConnection 新连接状态:正在检查” “peerConnection 新连接状态:已连接”
此外,我们正在使用 STUN 和 TURN 服务器,例如“stun:stun.l.google.com:19302”和 config.iceServers = [RTCIceServer(urlStrings: ["turn:numb.viagenie.ca:3478" ], 用户名: "username@xyz.com", 凭证: "@password")]
请在下面找到音频远程流代码:
private func configureAudioSession() {
self.rtcAudioSession.lockForConfiguration()
do {
try self.rtcAudioSession.setCategory(AVAudioSessionCategoryPlayAndRecord)
try self.rtcAudioSession.setMode(AVAudioSessionModeVoiceChat)
} catch {
print("Error setting configuration: \(error.localizedDescription)")
}
self.rtcAudioSession.unlockForConfiguration()
}
private func createMediaSenders() {
let streamId = "XYZ"
let audioTrack = self.createAudioTrack()
self.peerConnection.add(audioTrack, streamIds: [streamId])
}
我正在尝试正确地遵循三个集成步骤并在我的应用程序中正常工作。
配置 WebRTC 音频会话以使用手动音频并禁用音频:
RTCAudioSession.sharedInstance().useManualAudio = true RTCAudioSession.sharedInstance().isAudioEnabled = false
在你的 CXProvider 委托的 provider(CXProvider,
didActivate
: AVAudioSession) 方法上:
- 用 呼叫
- 来自 CXProvider 的 AVAudioSession
启用音频:
RTCAudioSession.sharedInstance().isAudioEnabled = true
RTCAudioSession.sharedInstance().audioSessionDidActivate
- 在您的 CXProvider 委托的提供者 (CXProvider,
didDeactivate
: AVAudioSession) 上使用来自 CXProvider 的 AVAudioSession 调用
RTCAudioSession.sharedInstance().audioSessionDidDeactivate