2

我有一个用例,我必须在正在进行的视频通话中播放语音和音频文件。我正在使用 Agora 进行视频通话。

问题:- 语音和音频文件播放的声音非常低

观察:-

  • 在视频通话中,参与者的声音很好,并且来自 iPhone 的两个扬声器(即音量没有降低)
  • 在通话期间 AVAudioSession 具有以下属性: 在此处输入图像描述
  • 在播放语音或音频文件(使用 AVAudioPlayer)时,声音来自两个扬声器:听筒和底部但音量非常低。
  • 尝试将我的手机连接到蓝牙扬声器,问题仍然存在。
  • 尝试在我的 iPhone 中以不同的电池电量进行测试,问题仍然存在。
  • 这个小批量问题不是 100% 重复发生的,即在大约 20% 的情况下它可以正常工作。

我的语音代码:-

let speechUtterance = AVSpeechUtterance(string: "Some text")
speechUtterance.rate = 0.4
speechUtterance.volume = 1.0
speechUtterance.voice = AVSpeechSynthesisVoice(identifier: "com.apple.ttsbundle.Samantha-compact")
speechSynthesizer.speak(speechUtterance)

我播放音频文件的代码:-

private func playGameSound(ofType sound: GameSounds) {
    if let path = Bundle.main.path(forResource: sound.rawValue, ofType: nil) {
        let url = URL(fileURLWithPath: path)
        do {
            audioPlayer = try AVAudioPlayer(contentsOf: url)
            audioPlayer?.delegate = self
            soundsPlayingCount += 1
            audioPlayer?.play()
        } catch {
            print("couldn't load game sound file")
        }
    }
}

PS:-我看到了多个堆栈答案,建议使用以下代码:-

AVAudioSession.sharedInstance().overrideOutputAudioPort(.speaker)

我试过这个,但它没有帮助。

此外,我想知道为什么首先会发生这种低容量行为,而且并非总是如此。另外,请向我建议一些可能指导我解决此问题的资源。

4

0 回答 0