Android:为什么STREAM_MUSIC受STREAM_VOICE_CALL影响?

时间:2015-05-30 11:31:15

标签: android android-audiomanager android-speech-api

我正在为我的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);
    }

提前致谢

1 个答案:

答案 0 :(得分:0)

您遇到的内容称为 audio ducking 。当另一个音频源获得焦点(类似于视图获得焦点的方式)时,它是由OS(或有时是另一个应用程序)自动执行的操作。一次只能有一个音频源。当另一个音频源获得焦点时,当前音频源可能躲避(静音),暂停或单独留下。您可以使用AudioManager请求STREAM_MUSIC将焦点放在{{1}}上。

修改:requestAudioFocus()上的其他信息。