Las apps para TV que reproducen audio pueden seguir haciéndolo después de que el usuario regresa a la pantalla principal o cambia a otra app. Para ello, la app debe proporcionar una tarjeta de Está sonando en la pantalla principal. Esta tarjeta permite a los usuarios comprender de dónde proviene el audio y regresar a tu app para controlar la reproducción de contenido multimedia.
Cuando hay una
MediaSession activa, el framework de Android muestra una tarjeta de Está sonando en la pantalla principal. En la tarjeta
, se incluyen metadatos de contenido multimedia, como la portada del álbum, el título y el ícono de la app. Cuando el usuario selecciona la tarjeta,
el sistema abre la app.
Tarjeta de Está sonando
Después de implementar una sesión de medios, establecer la sesión como activa y solicitar el enfoque de audio, aparecerá la tarjeta de Está sonando.
Nota: La tarjeta de Está sonando solo se muestra para una sesión multimedia con la marca FLAG_HANDLES_TRANSPORT_CONTROLS establecida. Esta marca dejó de estar disponible en el nivel de API 26. Sin embargo, es posible que aún se necesite en dispositivos más antiguos para la retrocompatibilidad.
La tarjeta se quita de la pantalla del selector cuando una
setActive(false)
llamada desactiva la sesión multimedia o cuando otra app comienza a reproducir contenido multimedia. Si la reproducción se detiene por completo y no hay ningún contenido multimedia activo, desactiva inmediatamente la sesión de medios. Si se pausa la reproducción, desactiva la sesión de medios luego de un período de inactividad,
por lo general, de entre 5 y 30 minutos.
Actualiza la tarjeta
Cada vez que tu app actualiza el estado de reproducción en el MediaSession, la
tarjeta de Está sonando se actualiza para mostrar el estado del contenido multimedia actual. Para aprender a hacerlo, consulta
Actualiza el estado de reproducción.
Del mismo modo, tu app puede actualizar la
MediaMetadata para proporcionar
información a la tarjeta de Está sonando sobre el contenido multimedia actual, como el título, el subtítulo,
y diferentes íconos. Para aprender a hacerlo, consulta
Actualiza los metadatos de contenido multimedia.
Cómo responder a la acción del usuario
Cuando el usuario selecciona la tarjeta de Está sonando, el sistema abre la app a la que corresponde la
sesión. Si tu app proporciona un
PendingIntent a
setSessionActivity(),
el sistema inicia la actividad que especifiques, como se muestra en el siguiente fragmento de código. En caso contrario,
se abre el intent predeterminado del sistema. La actividad que especifiques debe proporcionar controles de reproducción para que los usuarios puedan
pausarla o detenerla.
Kotlin
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);
Casos de uso aceptados
La tarjeta de Está sonando solo debe usarse en los casos en que el usuario espera que el audio siga reproduciéndose en segundo plano cuando sale de tu app. La reproducción de video o el sonido de un juego siempre deben pausarse, a menos que tu app se integre y cumpla con la función de pantalla en pantalla.