在进行WebRTC音频通话时,AVAudioPlayer以非常低的音量播放声音

时间:2019-03-22 01:06:17

标签: ios swift webrtc avaudioplayer avaudiosession

我尝试使用AVAudioPlayer播放声音片段,同时使用PeerConnection iOS的Obj-C库激活GoogleWebRTC

播放声音时,我可以通过扬声器听到声音,但是与WebRTC音频输出相比,声音的音量非常低(几乎听不到)。

我将AVAudioSession设置为active = true,并具有以下内容; AVAudioSession.Category = .playAndRecordAVAudioSession.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)
}

谢谢您的帮助。

2 个答案:

答案 0 :(得分:0)

当铃声关闭时,我也遇到了类似的问题。可以

  1. 确保铃声没有关闭
  2. 确保当前输出端口是扬声器。

    [[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];
    

答案 1 :(得分:0)

在播放音频之前,将模式更改为默认设置,也会丢失aec,agc支持,

[[AVAudioSession sharedInstance] setMode:AVAudioSessionModeDefault error:&error];

完成播放后,将模式重置为语音聊天,

[[AVAudioSession sharedInstance] AVAudioSessionModeVoiceChat error:&error];