Приложения для телевизоров, воспроизводящие звук, могут продолжать это делать после того, как пользователь вернется на главный экран или переключится на другое приложение. Для этого приложение должно отображать на главном экране карточку «Сейчас воспроизводится» . Эта карточка позволяет пользователям понять, откуда исходит звук, и вернуться к приложению для управления воспроизведением мультимедиа.
При наличии активной MediaSession платформа Android отображает на главном экране карточку «Сейчас воспроизводится» . Карточка содержит метаданные медиафайла, такие как обложка альбома, название и значок приложения. Когда пользователь выбирает карточку, система открывает приложение.
Играть карту
После создания медиасессии , установки статуса «Активная» и запроса фокуса на воспроизведение аудио, появится карточка «Сейчас воспроизводится» .
Примечание: Карточка «Сейчас воспроизводится» отображается только для медиасессии с установленным флагом FLAG_HANDLES_TRANSPORT_CONTROLS . Этот флаг устарел на уровне API 26. Однако он может потребоваться на более старых устройствах для обеспечения обратной совместимости.
Карточка удаляется с экрана запуска, когда вызов setActive(false) деактивирует медиасессию или когда другое приложение инициирует воспроизведение мультимедиа. Если воспроизведение полностью остановлено и нет активных медиафайлов, медиасессия деактивируется немедленно. Если воспроизведение приостановлено, медиасессия деактивируется с задержкой, обычно от 5 до 30 минут.
Обновить карту
При каждом обновлении состояния воспроизведения в MediaSession , карточка «Сейчас воспроизводится» обновляется, отображая состояние текущего медиафайла. Чтобы узнать, как это сделать, см. раздел «Обновление состояния воспроизведения» .
Аналогичным образом, ваше приложение может обновить MediaMetadata , чтобы предоставить карточке «Сейчас воспроизводится» информацию о текущем медиафайле, такую как название, субтитры и различные значки. Чтобы узнать, как это сделать, см. раздел «Обновление метаданных медиафайлов» .
Реагировать на действия пользователя
Когда пользователь выбирает карточку «Сейчас воспроизводится» , система открывает приложение, которому принадлежит сессия. Если ваше приложение предоставляет PendingIntent для setSessionActivity() , система запускает указанное вами действие, как показано в следующем фрагменте кода. В противном случае открывается стандартное системное действие. Указанное вами действие должно предоставлять элементы управления воспроизведением, позволяющие пользователям приостанавливать или останавливать воспроизведение.
Котлин
val pi: PendingIntent = Intent(context, MyActivity::class.java).let { intent -> PendingIntent.getActivity( context, 99 /*request code*/, intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE ) } session.setSessionActivity(pi)
Java
Intent intent = new Intent(context, MyActivity.class); PendingIntent pi = PendingIntent.getActivity(context, 99 /*request code*/, intent, PendingIntent.FLAG_UPDATE_CURRENT); session.setSessionActivity(pi);
Принятые варианты использования
Карточку «Сейчас воспроизводится» следует использовать только в тех случаях, когда пользователь ожидает, что звук продолжит воспроизводиться в фоновом режиме после выхода из приложения. Воспроизведение видео или звука из игры всегда должно приостанавливаться, если только ваше приложение не интегрирует и не поддерживает режим «картинка в картинке».