当 WebRTC 音频呼叫正在进行时,AVAudioPlayer 以非常低的音量播放声音

Jac*_*ris 5 avaudioplayer ios avaudiosession webrtc swift

我正在尝试使用iOS的Obj-C 库进行AVAudioPlayer活动时播放声音剪辑。PeerConnectionGoogleWebRTC

当我播放声音时,我可以通过扬声器听到它,但与 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)
}
Run Code Online (Sandbox Code Playgroud)

感谢您的任何帮助。

Aji*_*rma 0

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

  1. 确保铃声未关闭
  2. 确保当前输出端口为扬声器。

    [[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];
    
    Run Code Online (Sandbox Code Playgroud)