我正在尝试使用 AVAudioPlayer
播放声音片段,同时使用适用于 iOS 的 GoogleWebRTC
Obj-C 库激活 PeerConnection
。
当我播放声音时,我可以通过扬声器听到它,但与 WebRTC 音频输出相比,它以极低(几乎听不见)的音量播放。
我将 AVAudioSession 设置为 active = true
,如下所示; AVAudioSession.Category = .playAndRecord
,AVAudioSession.CategoryOptions = [.defaultToSpeaker, .allowBluetooth, .mixWithOthers]
,AVAudioSession.Mode = .voiceChat
。
当没有主动配置的 WebRTC 音频连接时,我可以轻松播放和听到声音。
有没有一种方法可以让 AVAudioPlayer
播放声音,而无需通过 WebRTC 降低音量?
do {
try setActiveAudio()
let player = try AVAudioPlayer(data: asset.data, fileTypeHint: AVFileType.mp3.rawValue)
activePlayers.append(player)
player.delegate = self
player.prepareToPlay()
player.play()
} catch let error {
print(error.localizedDescription)
}
感谢您的帮助。
最佳答案
在播放音频之前,将模式更改为默认模式,也会失去对 aec、agc 的支持,
[[AVAudioSession sharedInstance] setMode:AVAudioSessionModeDefault error:&error];
播放结束后,将模式重置为语音聊天,
[[AVAudioSession sharedInstance] AVAudioSessionModeVoiceChat error:&error];
关于ios - 正在进行 WebRTC 音频通话时,AVAudioPlayer 以非常低的音量播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55291451/