Utiliser l'application de test du contrôleur multimédia

Les applications multimédias qui interagissent par commande vocale avec l'Assistant Google sur les téléphones, voitures, téléviseurs et écouteurs Android sont optimisées par les API de session multimédia Android et utilisent des actions multimédias. Le cycle de vie des actions multimédias peut être difficile à suivre. Même une lecture simple à partir d'une requête de recherche comporte de nombreuses étapes intermédiaires où un problème peut se produire, comme illustré dans la chronologie simplifiée:

Cycle de vie des actions multimédias

Figure 1. Cycle de vie des actions multimédias

L'application Media Controller Test (MCT) vous permet de tester les subtilités de la lecture des contenus multimédias sur Android et vous aide à vérifier la mise en œuvre de votre session multimédia.

L'application Media Controller Test est disponible en deux versions:

  • L'application cliente est implémentée sur l'ancienne MediaControllerCompat. Cela permet de tester votre application de session multimédia basée sur une ancienne MediaSessionCompat ou sur la MediaSession Media3 lorsqu'elle est accessible par une application externe via une ancienne MediaControllerCompat. Recherchez le code source de l'ancienne version sur GitHub.
  • L'application cliente est implémentée sur la dernière MediaController Media3. Cela permet de tester votre application de session multimédia basée sur une ancienne MediaSessionCompat ou sur la MediaSession Media3 lorsqu'elle est accessible par une application externe via une MediaController Media3. Vous trouverez le code source de la version Media3 sur GitHub.

Le MCT affiche des informations sur le MediaController de votre application, telles que son PlaybackState et ses métadonnées, et peut être utilisé pour tester les commandes multimédias inter-applications. Le MCT inclut également un framework de test de validation qui vous permet d'automatiser vos tests de contrôle qualité.

Pour utiliser le MCT, votre application doit disposer d'un service de navigateur multimédia et vous devez autoriser le MCT à s'y connecter. Pour en savoir plus, consultez la section Créer un service de navigateur multimédia.

Démarrer le MCT

Page de lancement de MCT
Figure 2. Page de lancement de MCT

Lorsque vous lancez MCT, deux listes s'affichent:

  • Active MediaSessions (Sessions multimédias actives) : cette liste est initialement vide lorsque vous lancez le MCT. Le message "No media apps found" (Aucune application multimédia trouvée) s'affiche. L'autorisation "Notification Listener" est requise pour rechercher des sessions multimédias actives." Cliquez sur Settings (Paramètres) pour accéder à l'écran des autorisations et activer l'autorisation pour le MCT.
  • Implémentations de MediaBrowserService : cette liste présente les applications qui ont implémenté un service de navigateur multimédia. Si vous avez implémenté un service de navigateur multimédia, votre application apparaît dans cette liste, mais vous ne pouvez utiliser le MCT que si vous avez configuré votre application pour qu'elle accepte toutes les connexions ou si vous avez ajouté le MCT à la liste d'autorisation. Pour en savoir plus, consultez la section Contrôler les connexions client avec onGetRoot().

Tester manuellement une application pour téléphone

Si vous avez autorisé le MCT à se connecter au service de navigateur multimédia de votre application, votre application apparaît dans la liste des implémentations de la liste de services de navigateur multimédia. Recherchez-la, puis cliquez sur Contrôler pour démarrer votre application en arrière-plan.

Sinon, vous devez d'abord démarrer vous-même votre application en arrière-plan, puis cliquer sur Control (Contrôler) lorsqu'elle apparaît dans la liste des sessions multimédias actives.

Préparation et test du jeu

Lorsque le MCT commence à contrôler votre application, il affiche les métadonnées de la session actuelle de l'application: les médias actuellement sélectionnés et les actions que la session est prête à gérer.

Page de contrôle
Figure 3 : Page de contrôle

En haut de la page de commandes du MCT, vous trouverez un menu déroulant dans lequel vous pouvez sélectionner Search (Recherche), URI (URI), Media ID (ID multimédia) ou None (Aucun). Vous trouverez également un champ de texte pour spécifier les données d'entrée associées à la recherche, à l'URI ou à l'ID multimédia si vous sélectionnez l'une de ces options.

Les boutons Prepare (Préparer) et Play (Lire) situés juste en dessous du champ de texte effectuent les appels appropriés (onPrepare(), onPrepareFromSearch(), onPrepareFromUri(), onPrepareFromMediaId(), onPlay(), onPlayFromSearch(), onPlayFromUri() et onPlayFromMediaId()) en fonction de l'action sélectionnée.

Tester la priorité audio

Une application multimédia bien gérée doit pouvoir gérer la priorité audio. Vous pouvez tester la priorité audio en exécutant une autre application audio en même temps que votre application. La page de commandes MCT inclut un bouton qui demande et libère la priorité audio.

Pour tester la mise au point audio, procédez comme suit:

  1. Dans le menu déroulant Concentration audio, sélectionnez l'une des trois suggestions de durée : AUDIOFOCUS_GAIN, AUDIOFOCUS_GAIN_TRANSIENT ou AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK.
  2. Appuyez sur le bouton pour demander la mise au point.
  3. Appuyez à nouveau sur le bouton pour annuler la sélection.

Tester les commandes de transport

Tester les commandes de transport
Figure 4. Tester les commandes de transport

Balayez l'écran vers la gauche pour afficher l'UI du MCT. Cette vue comporte les boutons de transport standard du contrôleur multimédia et affiche l'image et les données du programme de la session. Les boutons de transport désactivés sont entourés en orange. Toutes les autres sont actives.

Testez votre lecteur à l'aide des boutons de transport. L'état des boutons de transport devrait changer comme prévu. Par exemple, lorsque vous appuyez sur le bouton "PLAY", il doit être désactivé, et les boutons "PAUSE" et "STOP" doivent être activés.

Balayez l'écran vers la gauche une nouvelle fois pour afficher les actions facultatives. Chaque action est associée à un bouton qui indique si elle est active ou non. Si elle est active, vous pouvez effectuer l'action en cliquant dessus.

Si vous vous êtes connecté à partir de la liste des applications disposant d'un service de navigateur multimédia, vous pouvez balayer l'écran vers la gauche deux fois de plus pour afficher des vues qui vous permettent de parcourir la hiérarchie des contenus de votre application ou de rechercher dans l'arborescence des contenus.

Tester manuellement une application vidéo

Utilisez le mode Écran partagé pour tester les commandes des applications vidéo. Commencez par ouvrir votre application vidéo dans une fenêtre, puis ouvrez le MCT en mode Écran partagé.

Exécuter des tests de validation

Le framework de test de validation propose des tests en un clic que vous pouvez exécuter pour vous assurer que votre application multimédia répond correctement à une requête de lecture.

Tester une application pour téléphone

Bouton de test
Figure 5 : Bouton de test

Pour accéder aux tests de validation, cliquez sur le bouton Tester à côté de votre application multimédia.

État du MCT

État de la commande multimédia
Figure 6 État des commandes multimédias

La vue suivante affiche des informations détaillées sur le MediaController du MCT, par exemple le PlaybackState, les métadonnées et la file d'attente. Deux boutons sont situés en haut à droite de la barre d'outils. Le bouton de gauche permet de basculer entre les journaux lisibles et les journaux mis en forme. Le bouton de droite actualise la vue pour afficher les informations les plus récentes.

Sélectionner un test

Page de sélection des tests
Figure 7 Page de sélection des tests

Balayez l'écran vers la gauche pour accéder à la vue des tests de validation, où vous pouvez voir une liste déroulante des tests disponibles. Si un test utilise une requête, comme le test de lecture à partir de la recherche illustré dans la figure 7, un champ de texte permet de saisir la chaîne de requête.

Le MCT inclut des tests pour les actions multimédias suivantes, et d'autres tests sont continuellement ajoutés au projet:

  • Lire
  • Lire depuis la recherche
  • ID de contenu multimédia à lire
  • URI de lecture depuis
  • Mettre en pause
  • Arrêter
  • Passer au suivant
  • Passer au précédent
  • Passer à l'élément de la file d'attente
  • Accéder à

Résultats des tests

Résultat du test réussi
Figure 8 Résultat du test réussi

La zone de résultats en bas de l'affichage est initialement vide. Il affiche les résultats lorsque vous exécutez un test. Par exemple, pour exécuter le test de lecture à partir de la recherche, saisissez une requête de recherche dans le champ de texte, puis cliquez sur Exécuter le test. La capture d'écran suivante montre un résultat de test réussi.

Tester une application Android TV

Lorsque vous lancez le MCT sur Android TV, une liste des applications multimédias installées s'affiche. Notez qu'une application n'apparaît dans cette liste que si elle implémente un service de navigateur multimédia.

Page de lancement de la MCT sur un téléviseur

Figure 9 Page de lancement de MCM sur un téléviseur

Si vous sélectionnez une application, vous êtes redirigé vers l'écran de test, qui affiche une liste de tests de validation sur la droite.

Page des tests de validation sur le téléviseur

Figure 10 Page "Tests de validation" sur le téléviseur

Lorsque vous exécutez un test, le côté gauche de l'écran affiche des informations sur le MediaController sélectionné. Pour en savoir plus, consultez les journaux MCT dans Logcat.

Page d'informations sur le test sur la TV

Figure 11 Page "Informations sur le test" sur le téléviseur

Les tests qui nécessitent une requête sont marqués d'une icône en forme de clavier. Cliquez sur l'un de ces tests pour ouvrir un champ de saisie pour la requête. Appuyez sur Entrée pour exécuter le test.

Pour faciliter la saisie de texte, vous pouvez également utiliser une commande adb:

adb shell input text your-query

Vous pouvez utiliser "%s" pour ajouter un espace entre les mots. Par exemple, la commande suivante ajoute le texte "hello world" au champ de saisie.

adb shell input text hello%sworld

Créer un test

Vous pouvez envoyer une demande de tirage avec d'autres tests que vous jugez utiles. Pour découvrir comment créer des tests, consultez le Wiki GitHub de MCT et les instructions de test de validation.

Veuillez consulter les instructions de contribution.

Ressources supplémentaires

Le MCT est destiné à être utilisé avec des applications qui implémentent des API multimédias. Consultez Universal Android Music Player pour obtenir un exemple d'une telle application.

Les corrections de bugs et les améliorations sont toujours les bienvenues. Veuillez consulter les instructions de contribution.