我使用音频管理器在短时间内淡出了文本到语音的语音命令和背景音乐。我使用AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK标志请求音频焦点。
它会淡出两个声音,但不是很清晰。我想提高文本到语音的音量,降低背景音乐的音量。演讲结束后,应该将其恢复。
我也尝试setStreamVolume。但是它控制了两种声音。有没有办法增加文本到语音的音量而不增加背景。任何帮助表示赞赏。
var vol = mAudioManager?.getStreamVolume(AudioManager.STREAM_MUSIC)
tts!!.setOnUtteranceProgressListener(object : UtteranceProgressListener() {
override fun onStart(utteranceId: String?) {
mAudioManager?.setStreamVolume(AudioManager.STREAM_MUSIC,vol!!+3,0)
}
override fun onDone(utteranceId: String?) {
mAudioManager?.abandonAudioFocus(afChangeListener)
mAudioManager?.mode = AudioManager.MODE_NORMAL
mAudioManager?.setStreamVolume(AudioManager.STREAM_MUSIC,vol!!,0)
}
override fun onError(utteranceId: String?) {
}
})
----
AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK)
----