-1

我创建了一个功能来阅读文本并在 iPhone 上使用底部扬声器播放,因为底部音量高于电话扬声器,但它使用低音量的电话扬声器播放。

@discardableResult
    func speechSentence(_ text: String) -> Bool {
        var utterance: AVSpeechUtterance!
        let synthesizer = AVSpeechSynthesizer()
        utterance = AVSpeechUtterance(string: text)
        utterance.voice = AVSpeechSynthesisVoice(language: "en-US")
        utterance.rate = AVSpeechUtteranceDefaultSpeechRate
        synthesizer.speak(utterance)
        
        return true
    }

项目中没有任何其他代码或配置。

我怎么解决这个问题?

4

1 回答 1

0

我发现了问题。我也必须配置AVAudioSession。我只是在我的代码中添加以下行并且它有效。

try? AVAudioSession.sharedInstance().setCategory(.playback, mode: .voicePrompt, options: [])

最终代码是:

@discardableResult
    func speechSentence(_ text: String) -> Bool {
        try? AVAudioSession.sharedInstance().setCategory(.playback, mode: .voicePrompt, options: [])
        var utterance: AVSpeechUtterance!
        let synthesizer = AVSpeechSynthesizer()
        utterance = AVSpeechUtterance(string: text)
        utterance.voice = AVSpeechSynthesisVoice(language: "en-US")
        utterance.rate = AVSpeechUtteranceDefaultSpeechRate
        synthesizer.speak(utterance)
        
        return true
    }
于 2021-10-03T18:06:17.380 回答