Cómo mostrar una tarjeta de Está sonando

Las apps para TV que reproducen audio pueden continuar haciéndolo después de que el usuario vuelve 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 les permite a los usuarios comprender de dónde proviene el audio y volver a tu app para controlar la reproducción de contenido multimedia.

Cada vez que hay un objeto MediaSession activo, el framework de Android muestra una tarjeta de Está sonando en la pantalla principal. Incluye 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.

Carta de Está sonando

Después de implementar una sesión multimedia, establecerla como activa y solicitar el foco de audio, aparecerá la tarjeta Está sonando.

Nota: La tarjeta Está sonando solo se muestra para una sesión multimedia con la marca FLAG_HANDLES_TRANSPORT_CONTROLS. Esta marca dejó de estar disponible en el nivel de API 26. Sin embargo, esta marca podría ser necesaria en dispositivos más antiguos para brindar retrocompatibilidad.

La tarjeta se quita de la pantalla del selector cuando una llamada a setActive(false) desactiva la sesión multimedia o cuando otra app inicia la reproducción de contenido multimedia. Si la reproducción se detiene por completo y no hay contenido multimedia activo, desactiva la sesión multimedia de inmediato. Si se pausa la reproducción, desactiva la sesión multimedia después de un retraso, por lo general, de 5 a 30 minutos.

Actualizar la tarjeta

Cada vez que tu app actualiza el estado de reproducción en MediaSession, la tarjeta de Está sonando se actualiza para mostrar el estado del contenido multimedia actual. Para aprender a hacerlo, consulta Cómo actualizar el estado de reproducción.

De manera similar, tu app puede actualizar el objeto MediaMetadata para proporcionar información a la tarjeta de Está sonando sobre el contenido multimedia actual, como el título, el subtítulo y varios íconos. Si quieres obtener información para hacerlo, consulta Cómo actualizar los metadatos de contenido multimedia.

Cómo responder a la acción del usuario

Cuando el usuario selecciona la tarjeta 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. De lo contrario, se abre el intent predeterminado del sistema. La actividad que especifiques debe proporcionar controles de reproducción que permitan a los usuarios pausar o detener la reproducción.

Kotlin

val pi: PendingIntent = Intent(context, MyActivity::class.java).let { intent ->
    PendingIntent.getActivity(
            context, 99 /*request code*/,
            intent,
            PendingIntent.FLAG_UPDATE_CURRENT
    )
}
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 se debe usar cuando el usuario espera que el audio continúe reproduciendo en segundo plano al salir de la app. La reproducción de video o el sonido de un juego siempre deben pausarse, a menos que tu app se integre y sea compatible con la función de pantalla en pantalla.