如何解决AVSpeechUtterance 音量低,而 .playAndRecord 中的 AVAudioSession
我有一个用例,我必须在正在进行的视频通话中播放语音和音频文件。 我正在使用 Agora 进行视频通话。
问题:- 语音和音频文件播放声音很低
观察结果:-
- 在播放语音或音频文件时(使用 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 举报,一经查实,本站将立刻删除。