ресурс аудио-менеджера не выпущен
Что это значит? Как вы можете сказать?
a) Если вы запросите AUDIOFOCUS_GAIN
, а затем откажетесь от него, тогда наступит тишина.
Например, я слушаю музыку из приложения A, затемЯ начинаю слушать музыку из приложения B и приостанавливаю ее. Приложение А не начнет автоматически играть, и это нормально. В этом отличие от переходной фокусировки.
- Запросите постоянную фокусировку звука (
AUDIOFOCUS_GAIN
), когда вы планируете воспроизводить звук в обозримом будущем (например, при воспроизведении музыки), и вы ожидаетепредыдущий держатель аудио-фокуса, чтобы остановить воспроизведение.
b) Вы несете ответственность за остановку воспроизведения при отказе от фокуса.
Если вы откажетесь от фокуса и продолжите воспроизведение, выбольше не участвуем в механизме фокусировки звука. Если бы я запустил другой музыкальный проигрыватель, кроме вашего приложения, система не смогла бы остановить воспроизведение вашего приложения, когда мой другой музыкальный проигрыватель запросил фокусировку звука.
Когда вы закончите воспроизведение, наберите abandonAudioFocus()
.
Источник: Аудио фокус перед Android 8.0
, какую функцию следует вызывать для устройств [LO]
Единственный доступный с одной из AudioManager.STREAM_*
констант, как указано в Аудио фокус перед Android 8.0 .
// Request audio focus for playback
val result: Int = audioManager.requestAudioFocus(
afChangeListener,
// Use the music stream.
AudioManager.STREAM_MUSIC, // There's no AudioAttributes, just the more general constant.
// Request permanent focus.
AudioManager.AUDIOFOCUS_GAIN
)
Для приложенийкоторые предназначены для Android 5.0 (уровень API 21) и более поздних версий, аудио приложения должны использовать AudioAttributes
для описания типа звука, который воспроизводит ваше приложение.
Цитата, которую вы упомянули, не относится к requestAudioFocus
звоните, это около setAudioAttributes
, который доступен на MediaPlayer
, SoundPool.Builder
и всех других вещах, которые воспроизводят звук.