我尝试使用AVAudioPlayer
播放声音片段,同时使用PeerConnection
iOS的Obj-C库激活GoogleWebRTC
。
播放声音时,我可以通过扬声器听到声音,但是与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)
}
谢谢您的帮助。
答案 0 :(得分:0)
当铃声关闭时,我也遇到了类似的问题。可以
确保当前输出端口是扬声器。
[[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];
答案 1 :(得分:0)
在播放音频之前,将模式更改为默认设置,也会丢失aec,agc支持,
[[AVAudioSession sharedInstance] setMode:AVAudioSessionModeDefault error:&error];
完成播放后,将模式重置为语音聊天,
[[AVAudioSession sharedInstance] AVAudioSessionModeVoiceChat error:&error];