Возможно ли иметь более одного AudioFocus в одном приложении на Android? - PullRequest
2 голосов
/ 08 октября 2019

Я разрабатываю приложение для Android, которое будет воспроизводить как аудиофайл (через MediaPlayer), так и TextToSpeech. У каждого будет определенное время для игры. Во время воспроизведения звука, если приходит время разговора по TTS, я хочу уменьшить громкость MediaPlayer. Кроме того, пока TTS говорит, что если время воспроизведения звука наступает, я хочу уменьшить громкость TTS. (Оба используют AudioManager.STREAM_MUSIC)

Я хотел использовать что-то похожее на AudioFocus (как показано ниже). Поведение, подобное запросу аудио-фокуса с помощью AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK, было бы идеальным, но MediaPlayer и TTS находятся в одном приложении, так что это не приглушило бы другой звук.

Мне было интересно, смогу ли я как-нибудь использовать другой AudioFocus для каждого MediaPlayerи TTS, чтобы я мог приглушить звук во время воспроизведения другого звука.

Мне удалось вручную уменьшить громкость MediaPlayer, но я обнаружил, что практически невозможно программно уменьшить громкость TTS, пока онуже играет.

Любое другое предложение, кроме использования AudioFocus, AudioMAanger для решения этой проблемы также будет полезно.

...