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 casques Android sont basées sur 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 simple requête de recherche comporte de nombreuses étapes intermédiaires au cours desquelles un problème peut survenir, 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.

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

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

Démarrer l'événement MCT

Page de lancement MCT
Figure 2 : Page de lancement MCT

Lorsque vous lancez la fonctionnalité MCT, deux listes s'affichent:

  • Active MediaSessions : cette liste est initialement vide lorsque vous lancez la MCT et le message "Aucune application multimédia trouvée" s'affiche. L'autorisation "Écouteur de notifications" est requise pour rechercher les sessions multimédias actives. Cliquez sur Settings (Paramètres) pour accéder à l'écran des autorisations et activer l'autorisation pour la MCT.
  • Implémentations de MediaBrowserService : cette liste affiche 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îtra dans cette liste, mais vous ne pouvez utiliser la MCT que si vous l'avez configurée pour accepter toutes les connexions ou si vous l'avez ajoutée à la liste d'autorisation. Pour en savoir plus, consultez la page Contrôler les connexions client avec onGetRoot().

Tester manuellement une application pour téléphone

Si vous avez autorisé la MCT à se connecter au service de navigateur multimédia de votre application, celle-ci apparaît dans la liste des implémentations de la liste de services du navigateur multimédia. Trouvez-le et cliquez sur Ctrl pour démarrer votre application en arrière-plan.

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

Préparation et test des tests

Lorsque la MCT commence à contrôler votre application, elle affiche les métadonnées de session en cours de l'application: le contenu multimédia actuellement sélectionné 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 des commandes MCT, vous trouverez un menu déroulant dans lequel vous pouvez sélectionner Search (Rechercher), URI, Media ID (ID multimédia) ou None (Aucun), ainsi qu'un champ de texte permettant de 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 Préparer et Lire situés juste en dessous du champ de texte effectuent les appels appropriés (onPrepare(), onPrepareFromSearch(), onPrepareFromUri(), onPrepareFromMediaId(), onPlay(), onPlayFromSearch(), onPlayFromUri(), onPlayFromMediaId()) en fonction de l'action que vous avez sélectionnée.

Test de la priorité audio

Une application multimédia bien conçue doit pouvoir gérer la priorité audio. Vous pouvez tester le ciblage audio en exécutant une autre application audio en même temps que votre application. La page des commandes MCT comprend un bouton qui demande et libère la priorité audio.

Pour tester la priorité audio, procédez comme suit:

  1. Utilisez le menu déroulant Focus audio (Focus audio) pour sélectionner l'un des trois conseils de durée AUDIOFOCUS_GAIN, AUDIOFOCUS_GAIN_TRANSIENT ou AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK.
  2. Appuyez sur le bouton pour demander la sélection.
  3. Appuyez de nouveau sur le bouton pour libérer la sélection.

Tester les commandes de transport

Tester les contrôles de transport
Figure 4 : Tester les contrôles de transport

Balayez l'écran vers la gauche pour afficher la vue de l'interface utilisateur de la section "MCT". Cette vue contient les boutons de transport standards 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 d'un cercle orange. Tous les autres sont actifs.

Testez votre lecteur à l'aide des boutons de transport. L'état des boutons de transport doit changer comme prévu. Par exemple, lorsque vous appuyez sur le bouton LECTURE, celui-ci doit se désactiver, et les boutons PAUSE et STOP deviennent activés.

Balayez à nouveau l'écran vers la gauche pour afficher des actions facultatives. Chaque action est associée à une commande indiquant si elle est active ou non. S'il est actif, 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 monter et de descendre dans la hiérarchie de contenu de votre application, ou d'effectuer une recherche dans l'arborescence de contenu.

Tester manuellement une application vidéo

Utilisez le mode Écran partagé pour tester les commandes vidéo de l'application. Tout d'abord, ouvrez votre application vidéo dans une fenêtre, puis ouvrez 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 vérification, cliquez sur le bouton Test à côté de votre application multimédia.

État de la MCT

Media Control State
Figure 6 : Media Control State

La vue suivante affiche des informations détaillées sur le MediaController de la MCT, par exemple le PlaybackState, les métadonnées et la file d'attente. Il y a deux boutons en haut à droite de la barre d'outils. Le bouton de gauche permet de basculer entre les journaux analysables et 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

En balayant l'écran vers la gauche, vous accédez à la vue des tests de vérification, qui affiche une liste déroulante des tests disponibles. Si un test utilise une requête, comme le test de lecture à partir de la recherche illustré à la figure 7, un champ de texte permet de saisir la chaîne de requête.

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

  • Lire
  • Lire depuis la recherche
  • Lire à partir de l'ID multimédia
  • Lire à partir de l'URI
  • Suspendre
  • Arrêter
  • Passer à l'élément suivant
  • Passer au précédent
  • Passer à l'élément de la file d'attente
  • Rechercher

Résultats des tests

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

La zone de résultats en bas de la vue est initialement vide. Les résultats s'afficheront lorsque vous exécuterez un test. Par exemple, pour exécuter le test de recherche, saisissez une requête de recherche dans le champ de texte, puis cliquez sur Run Test (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 la 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 MCT sur les téléviseurs

Figure 9. Page de lancement de MCT sur les téléviseurs

Lorsque 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 "Tests de validation" sur téléviseur

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

Lorsque vous exécutez un test, la partie 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 les tests télévisés

Figure 11. Page d'informations sur les tests sur téléviseur

Les tests nécessitant une requête sont signalés par une icône de clavier. Cliquez sur l'un de ces tests pour ouvrir un champ de saisie pour la requête. Cliquez 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" dans le champ de saisie.

adb shell input text hello%sworld

Créer un test

Vous pouvez envoyer une demande d'extraction avec d'autres tests qui vous semblent utiles. Pour savoir comment créer de nouveaux tests, consultez le wiki GitHub de MCT et les instructions de test de vérification.

Veuillez consulter les instructions de contribution.

Ressources supplémentaires

La MCT est destinée à être utilisée avec des applications qui implémentent des API multimédias. Pour voir un exemple de ce type d'application, reportez-vous à la documentation de Universal Android Music Player.

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