我正在为我的Android应用程序实现文本到语音功能。我知道Text to Speech会将STREAM_MUSIC用作默认流。当我调用Text to Speech时,它正在以预期的音量说话。但是我想知道,当我调用Text to Speech时,如果设备中有任何正在进行的呼叫将导致我的语音音量低。我不明白它是如何发生的。 电话将使用AudioManager.STREAM_VOICE_CALL。它会影响AudioManager.STREAM_MUSIC音量吗?
即使电话中有正在进行的通话,我也希望以默认音量播放我的语音。
请任何人指导我理解这些将影响哪些和如何影响的AudioManager流。
这是我的文本到语音调用方法
private void speakMessage(String audibleString){
tTts.speak(audibleString, TextToSpeech.QUEUE_ADD, null);
}
提前致谢
答案 0 :(得分:0)
您遇到的内容称为 audio ducking 。当另一个音频源获得焦点(类似于视图获得焦点的方式)时,它是由OS(或有时是另一个应用程序)自动执行的操作。一次只能有一个音频源。当另一个音频源获得焦点时,当前音频源可能躲避(静音),暂停或单独留下。您可以使用AudioManager
请求STREAM_MUSIC
将焦点放在{{1}}上。
修改:requestAudioFocus()上的其他信息。