Afficher une carte "En écoute"

Les applications TV doivent afficher une carte En écoute lorsque des contenus multimédias sont lus derrière le lanceur d'applications ou en arrière-plan. Cette fiche permet aux utilisateurs de revenir à l'application qui lit actuellement du contenu multimédia.

Le framework Android affiche une carte En écoute sur l'écran d'accueil lorsqu'un élément MediaSession est actif. Cette fiche contient des métadonnées multimédias telles que la pochette de l'album, le titre et l'icône de l'application. Lorsque l'utilisateur sélectionne la carte, le système ouvre l'application.

Vous pouvez utiliser la classe MediaSession pour implémenter la fiche En écoute.

Figure 1 : Affichez une carte En écoute lorsque vous lisez des contenus multimédias en arrière-plan.

Carte "En écoute"

Une fois que vous avez implémenté une session multimédia, que vous avez activé la session et demandé le ciblage audio, la carte En écoute s'affiche.

Remarque:La fiche En écoute ne s'affiche que pour une session multimédia pour laquelle l'option FLAG_HANDLES_TRANSPORT_CONTROLS est définie. Cet indicateur est obsolète au niveau d'API 26. Toutefois, cet indicateur peut toujours être nécessaire sur les appareils plus anciens pour assurer la rétrocompatibilité.

La fiche est supprimée de l'écran du lanceur d'applications lorsqu'un appel setActive(false) désactive la session multimédia ou lorsqu'une autre application lance la lecture du contenu multimédia. Si la lecture est complètement interrompue et qu'aucun contenu multimédia n'est actif, désactivez immédiatement la session multimédia. Si la lecture est en pause, désactivez la session multimédia après un délai, généralement de 5 à 30 minutes.

Mettre à jour la carte

Chaque fois que votre application met à jour l'état de la lecture dans MediaSession, la fiche En écoute s'actualise pour indiquer l'état du contenu multimédia en cours de lecture. Pour savoir comment procéder, consultez Mettre à jour l'état de la lecture.

De même, votre application peut mettre à jour MediaMetadata pour fournir à la carte En écoute des informations sur le contenu multimédia en cours, comme le titre, le sous-titre et diverses icônes. Pour savoir comment procéder, consultez Mettre à jour les métadonnées multimédias.

Répondre à l'action de l'utilisateur

Lorsque l'utilisateur sélectionne la carte En écoute, le système ouvre l'application à laquelle appartient la session. Si votre application fournit un PendingIntent à setSessionActivity(), le système lance l'activité que vous spécifiez, comme indiqué dans l'extrait de code suivant. Si ce n'est pas le cas, l'intent système par défaut s'ouvre. L'activité que vous spécifiez doit fournir des commandes de lecture permettant aux utilisateurs de mettre en pause ou d'arrêter la lecture.

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);