Android: почему STREAM_MUSIC используется STREAM_VOICE_CALL?
Я реализую функцию преобразования текста в речь для моего приложения для Android. Я знаю, что Text to Speech будет использовать STREAM_MUSIC в качестве потока по умолчанию. Когда я вызываю текст в речь, он говорит с ожидаемой громкостью. Но мне интересно, когда я вызываю текст в речь, если какие-либо текущие вызовы в устройстве будут приводить к моей речи с низкой громкостью. Я не понимаю, как это происходит. Телефонным звонком будет пользователь AudioManager.STREAM_VOICE_CALL. Будет ли это влиять на громкость AudioManager.STREAM_MUSIC?
Я хочу воспроизвести свою речь с громкостью по умолчанию, даже если в телефоне идет текущий звонок.
Пожалуйста, любой может помочь мне понять эти потоки AudioManager, которые будут влиять на то, каким образом и как.
Вот мой метод вызова текста в речь
private void speakMessage(String audibleString){
tTts.speak(audibleString, TextToSpeech.QUEUE_ADD, null);
}
заранее спасибо
1 ответ
То, что вы испытываете, называется аудио-приглушением. Это операция, выполняемая автоматически ОС (или иногда другим приложением), когда другой источник звука получает фокус (аналогично тому, как представление получает фокус). Только один аудиоисточник может фокусироваться одновременно. Когда другой аудиоисточник получает фокус, текущие аудиоисточники могут быть приглушены (успокоены), приостановлены или оставлены в покое. Вы можете использовать AudioManager
просить, чтобы STREAM_MUSIC
получить фокус с requestAudioFocus ().
Редактировать: дополнительная информация об аудио фокусе.