Android:为什么流式音乐受到流式语音通话的影响?

Android:为什么流式音乐受到流式语音通话的影响?,android,android-audiomanager,android-speech-api,Android,Android Audiomanager,Android Speech Api,我正在为我的android应用程序实现文本到语音的功能。我知道文本到语音将用户流_音乐作为默认流。当我调用文本转换为语音时,它正在以预期的音量说话。但我想知道,当我调用文本到语音时,若设备中有任何正在进行的调用,会导致我的语音音量变小。我不明白这是怎么发生的。 电话呼叫将使用AudioManager.STREAM\u VOICE\u呼叫。它会影响AudioManager.STREAM\u音乐音量吗 我想用默认音量播放我的演讲,即使手机中有任何正在进行的通话 请任何人都可以指导我了解这些Audio

我正在为我的android应用程序实现文本到语音的功能。我知道文本到语音将用户流_音乐作为默认流。当我调用文本转换为语音时,它正在以预期的音量说话。但我想知道,当我调用文本到语音时,若设备中有任何正在进行的调用,会导致我的语音音量变小。我不明白这是怎么发生的。 电话呼叫将使用AudioManager.STREAM\u VOICE\u呼叫。它会影响AudioManager.STREAM\u音乐音量吗

我想用默认音量播放我的演讲,即使手机中有任何正在进行的通话

请任何人都可以指导我了解这些AudioManager流,这些流将以何种方式产生影响

下面是我的文本到语音调用方法

 private void speakMessage(String audibleString){
            tTts.speak(audibleString, TextToSpeech.QUEUE_ADD, null);
    }

提前感谢

您正在经历的被称为音频回避。当另一个音频源获得焦点时(类似于视图获得焦点的方式),操作系统(或有时是另一个应用程序)会自动执行该操作。一次只能有一个音频源具有焦点。当另一个音频源获得焦点时,当前音频源可能会被回避(静音)、暂停或单独保留。您可以使用
AudioManager
请求
STREAM\u MUSIC
获得焦点


编辑:有关的其他信息。

感谢您的回复。我也知道requestAudioFocus()的事情。早些时候,我也怀疑你在回答中提到的。但实际上,在我的情况下,一旦收到消息,我就请求流_音乐的音频焦点并触发TTS。如果没有主动呼叫,一切都是完美的。如果我收到TTS正在触发但音量较低的信息,我的手机中有任何活动通话。我不明白为什么即使我要求聚焦,音量也在减少。@RaghuRamiReddy不幸的是,这只是一个聚焦请求;你不能保证你会真正得到关注。你可以尝试获得,但我不确定它是否适用于电话。您可能需要检查
requestAudioFocus()
的返回值,以查看您是否真正获得了焦点。@PathFinderEletAny您是否知道:一个流类型的焦点通过请求其他流焦点而受到影响?假设我的应用程序请求的流式音乐可以通过电话呼叫应用程序流式语音呼叫请求来实现吗?我的问题是,我在演讲开始时收到了一条很大的信息,我的演讲以实际音量开始,但在演讲中间我接到了电话。然后,语音并没有停止,而是降低了音量。我并没有在应用程序中控制流音乐的音量。我正在使用文本到语音引擎来表达我的信息。可能是TTS引擎处理此音频焦点丢失@好问题。恐怕我对这个问题缺乏了解。请参阅我发布的,它应该能够比我更好地解释问题。@pathfinderelite我为我的问题解决了问题。当调用进行时,android系统会在调用中将AudioManager getMode()值更新为MODE_。在这种情况下,android系统默认会减少所有其他声音,以使语音通信良好。模式_IN_通信的情况也相同。