Реагирование на события медиа-кнопки: MediaSession против MediaButtonReceiver ⇐ Android
Реагирование на события медиа-кнопки: MediaSession против MediaButtonReceiver
Как описано на этой странице документации: https://developer.android.com/guide/top ... ia-buttons, маршрут, по которому проходит событие мультимедийной кнопки, зависит от версии Android. В версиях API 21+ событие обрабатывается медиа-сеансом, с некоторыми отличиями в более поздних версиях API при поиске правильного экземпляра медиа-сеанса.
Также существует MediaButtonReceiver (https://developer.android.com/reference ... onReceiver), широковещательный приемник, который также помогает обрабатывать события мультимедийных кнопок. Несколько раз упоминается, что это помощник для версий API до 21. Большинство примеров по-прежнему включают его в манифест:
Я использую MediaBrowserServiceCompat для включения фонового воспроизведения звука и поддерживаю только версии Android API 21+. Но я хочу иметь возможность отключить MediaBrowserServiceCompat, если не требуется поддержка фонового воспроизведения. Поскольку androidx.media.session.MediaButtonReceiver ищет службу, которая может обрабатывать событие медиа-кнопки, он досадно выдает исключение, если не может найти отключенный MediaBrowserServiceCompat.
Итак, мой вопрос: если я поддерживаю только Android API версии 21+, имеет ли MediaButtonReceiver вообще какую-либо цель, или медиа-сеанс должен позаботиться обо всей маршрутизации событий медиа-кнопок?
Как описано на этой странице документации: https://developer.android.com/guide/top ... ia-buttons, маршрут, по которому проходит событие мультимедийной кнопки, зависит от версии Android. В версиях API 21+ событие обрабатывается медиа-сеансом, с некоторыми отличиями в более поздних версиях API при поиске правильного экземпляра медиа-сеанса.
Также существует MediaButtonReceiver (https://developer.android.com/reference ... onReceiver), широковещательный приемник, который также помогает обрабатывать события мультимедийных кнопок. Несколько раз упоминается, что это помощник для версий API до 21. Большинство примеров по-прежнему включают его в манифест:
Я использую MediaBrowserServiceCompat для включения фонового воспроизведения звука и поддерживаю только версии Android API 21+. Но я хочу иметь возможность отключить MediaBrowserServiceCompat, если не требуется поддержка фонового воспроизведения. Поскольку androidx.media.session.MediaButtonReceiver ищет службу, которая может обрабатывать событие медиа-кнопки, он досадно выдает исключение, если не может найти отключенный MediaBrowserServiceCompat.
Итак, мой вопрос: если я поддерживаю только Android API версии 21+, имеет ли MediaButtonReceiver вообще какую-либо цель, или медиа-сеанс должен позаботиться обо всей маршрутизации событий медиа-кнопок?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение