Cómo mostrar una tarjeta de Está sonando

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.