AVSpeechUtterance 音量低,而 .playAndRecord 中的 AVAudioSession

问题描述

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

问题:- 语音和音频文件播放声音很低

观察结果:-

  • 视频通话中,参与者的声音很好,并且来自 iPhone 的两个扬声器(即音量没有降低)
  • 在通话过程中 AVAudioSession 具有以下属性

    enter image description here

  • 在播放语音或音频文件时(使用 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)

我试过了,但没有用。

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)