Afficher une carte "En écoute"

Les applications TV qui diffusent du contenu audio peuvent continuer à le faire lorsque l'utilisateur revient à l'écran d'accueil ou passe à une autre application. Pour ce faire, l'application doit fournir une carte En écoute sur l'écran d'accueil. Cette carte permet aux utilisateurs de savoir d'où provient le contenu audio et de revenir à votre application pour contrôler la lecture multimédia.

Chaque fois qu'une MediaSession est présente, le framework Android affiche une carte En écoute sur l'écran d'accueil. La carte inclut 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.

Carte "En écoute"

Une fois que vous avez implémenté une session multimédia, défini la session comme active et demandé la priorité audio, la carte En écoute s'affiche.

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

La carte est supprimée de l'écran du lanceur lorsqu'un setActive(false) appel désactive la session multimédia ou lorsqu'une autre application lance la lecture multimédia. Si la lecture est complètement arrêtée et qu'aucun contenu multimédia n'est actif, désactivez immédiatement la session multimédia. Si la lecture est mise 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 lecture dans le MediaSession, la carte En écoute est mise à jour pour afficher l'état du contenu multimédia actuel. Pour savoir comment procéder, consultez la section Mettre à jour l'état de lecture.

De même, votre application peut mettre à jour les MediaMetadata pour fournir des informations à la carte En écoute sur le contenu multimédia actuel, telles que le titre, le sous-titre, et diverses icônes. Pour savoir comment procéder, consultez la section 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 propriétaire de 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. Sinon, l'intent système par défaut s'ouvre. L'activité que vous spécifiez doit fournir des commandes de lecture qui permettent 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 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);

Cas d'utilisation acceptés

La carte En écoute ne doit être utilisée que dans les cas où l'utilisateur s'attend à ce que le contenu audio continue d'être diffusé en arrière-plan lorsqu'il quitte votre application. La lecture vidéo ou le son d'un jeu doivent toujours être mis en pause, sauf si votre application est intégrée et compatible avec le mode Picture-in-picture.