Les applications multimédias qui interagissent par commande vocale avec l'Assistant Google sur les téléphones, les voitures, les téléviseurs et les casques 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 simple requête de lecture à partir d'une recherche comporte de nombreuses étapes intermédiaires où un problème peut survenir, comme le montre la chronologie simplifiée :
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'ancien
MediaControllerCompat. Cela vous permet de tester votre application de session multimédia basée sur un ancienMediaSessionCompatou sur leMediaSessionMedia3 lorsqu'elle est accessible par une application externe via un ancienMediaControllerCompat. Le code source de l'ancienne version est disponible sur GitHub. - L'application cliente est implémentée sur la version la plus récente de Media3
MediaController. Cela vous permet de tester votre application de session multimédia basée sur un ancienMediaSessionCompatou sur leMediaSessionMedia3 lorsqu'elle est accessible par une application externe via unMediaControllerMedia3. Le code source de la version Media3 est disponible sur GitHub.
Le MCT affiche des informations sur la MediaController de votre application, telles que son PlaybackState et ses métadonnées, et peut être utilisé pour tester les commandes multimédias entre applications.
Le MCT inclut également un framework de test de validation qui vous permet d'automatiser vos tests d'assurance 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 Créer un service de navigateur multimédia.
Démarrer le 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, et le message "No media apps found. L'autorisation d'écoute des notifications est requise pour rechercher des sessions multimédias actives." Cliquez sur Paramètres pour accéder à l'écran des autorisations et activer l'autorisation pour l'outil de migration.
- 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 s'affiche 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 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, celle-ci apparaît dans la liste des implémentations de la liste des services de navigateur multimédia. Recherchez-la, puis cliquez sur Control (Contrôle) 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 Contrôler lorsqu'elle apparaît dans la liste des sessions multimédias actives.
Tester la préparation et la lecture
Lorsque le MCT commence à contrôler votre application, il affiche les métadonnées de session actuelles de l'application : le contenu multimédia actuellement sélectionné et les actions que la session est prête à gérer.
En haut de la page des commandes MCT, un menu déroulant vous permet de sélectionner Recherche, URI, ID d'élément multimédia ou Aucun. Un champ de texte vous permet également de spécifier les données d'entrée associées à la recherche, à l'URI ou à l'ID d'élément 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(), onPlayFromMediaId()) en fonction de l'action que vous avez sélectionnée.
Tester la priorité audio
Une application multimédia bien conçue 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 la vôtre. La page des commandes de l'application MCT inclut un bouton qui demande et libère la priorité audio.
Pour tester la mise au point audio, procédez comme suit :
- Utilisez le menu déroulant Audio Focus (Focus audio) pour sélectionner l'un des trois indices de durée :
AUDIOFOCUS_GAIN,AUDIOFOCUS_GAIN_TRANSIENTouAUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK. - Appuyez sur le bouton pour demander la sélection.
- Appuyez de nouveau sur le bouton pour annuler la mise au point.
Tester les commandes de transport
Balayez l'écran vers la gauche pour afficher la vue de l'interface utilisateur du MCT. Cette vue comporte les boutons de transport du contrôleur multimédia standard 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. 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, il doit être désactivé, et les boutons PAUSE et ARRÊT doivent être activés.
Balayez à nouveau l'écran vers la gauche pour afficher les actions facultatives. Chaque action est associée à une commande qui indique 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 deux fois de plus vers la gauche pour afficher des vues qui vous permettent de parcourir la hiérarchie de contenu de votre application ou de rechercher dans l'arborescence de contenu.
Tester manuellement une application vidéo
Utilisez le mode Écran partagé pour tester les contrôleurs d'applications vidéo. Tout d'abord, ouvrez votre application vidéo dans une fenêtre, puis ouvrez l'outil de création de contenu en mode Écran partagé.
Exécution 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 demande de lecture.
Tester une application pour téléphone
Pour accéder aux tests de validation, cliquez sur le bouton Tester à côté de votre application multimédia.
État MCT
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 analysables et les journaux formatés. Le bouton de droite actualise la vue pour afficher les informations les plus récentes.
Sélectionner un test
En balayant l'écran vers la gauche, vous accédez à la vue des tests de vérification, où vous pouvez voir une liste déroulante des tests disponibles. Si un test utilise une requête, comme le test de lecture à partir d'une 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
- Lire à partir de l'ID d'élément multimédia
- Lire à partir de l'URI
- 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
La zone de résultats en bas de la vue est initialement vide. Il affichera les résultats lorsque vous exécuterez 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 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 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.
Lorsque vous sélectionnez une application, l'écran de test s'affiche. Il présente une liste de tests de validation sur la droite.
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.
Les tests qui nécessitent une requête sont marqués d'une icône 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 d'extraction avec d'autres tests que vous jugez utiles. Pour savoir comment créer des tests, consultez le wiki GitHub de MCT et les instructions de test de validation.
Pour en savoir plus, consultez les instructions de contribution.
Ressources supplémentaires
Le MCT est destiné à être utilisé avec des applications qui implémentent des API multimédias. Pour obtenir un exemple d'une telle application, consultez Universal Android Music Player.
Les corrections de bugs et les améliorations sont toujours les bienvenues. Veuillez consulter les instructions de contribution.