我正在尝试使用AVAudioPlayer
播放声音片段,同时使用适用于iOS的PeerConnection
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)
}
感谢您的任何帮助。
当铃声响起时,我遇到了类似的问题。你能
[[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];
在播放音频之前,将模式改为默认,也会失去aec,agc支持,
[[AVAudioSession sharedInstance] setMode:AVAudioSessionModeDefault error:&error];
完成播放后,将模式重置为语音聊天,
[[AVAudioSession sharedInstance] AVAudioSessionModeVoiceChat error:&error];