Con l'app di prova del controller multimediale

Le app multimediali che interagiscono tramite comandi vocali con l'Assistente Google su smartphone, auto, TV e cuffie Android sono basate sulle API Android MediaSession e utilizzano le azioni multimediali. Il ciclo di vita delle azioni multimediali può essere difficile da seguire. Anche una semplice richiesta di riproduzione dalla ricerca prevede molti passaggi intermedi in cui qualcosa potrebbe andare storto, come mostrato nella cronologia semplificata:

Il ciclo di vita dell'azione multimediale

Figura 1. Il ciclo di vita dell'azione multimediale

L'app Media Controller Test (MCT) ti consente di testare le complessità della riproduzione di contenuti multimediali su Android e ti aiuta a verificare l'implementazione della sessione multimediale.

L'app Media Controller Test è disponibile in due versioni:

  • L'app client è implementata sulla versione precedente di MediaControllerCompat. In questo modo, puoi testare l'app per sessioni multimediali creata su un MediaSessionCompat legacy o su Media3 MediaSession quando un'app esterna vi accede tramite un MediaControllerCompat legacy. Trova il codice sorgente della versione precedente su GitHub.
  • L'app client è implementata sulla versione più recente di Media3 MediaController. In questo modo, puoi testare la tua app per sessioni multimediali creata su un MediaSessionCompat legacy o su Media3 MediaSession quando un'app esterna vi accede tramite un MediaController Media3. Trova il codice sorgente della versione Media3 su GitHub.

MCT mostra informazioni sulla MediaController della tua app, ad esempio PlaybackState e i metadati, e può essere utilizzato per testare i controlli multimediali tra app. MCT include anche un framework di test di verifica che ti consente di automatizzare i test di controllo qualità.

Per utilizzare l'MCT, la tua app deve disporre di un servizio di browser multimediale e devi consentire all'MCT di connettersi. Per saperne di più, consulta Creazione di un servizio di navigazione dei contenuti multimediali.

Avvio dell'MCT

Pagina di lancio di MCT
Figura 2. The MCT Launch Page

Quando avvii MCT, vedrai due elenchi:

  • MediaSession attive: questo elenco è inizialmente vuoto quando avvii l'MCT e vedrai il messaggio "Nessuna app multimediale trovata. Per cercare sessioni multimediali attive è necessaria l'autorizzazione di ascolto delle notifiche." Fai clic su Impostazioni per andare alla schermata delle autorizzazioni e attivare l'autorizzazione per l'MCT.
  • Implementazioni di MediaBrowserService: questo elenco mostra le app che hanno implementato un servizio di browser multimediale. Se hai implementato un servizio di navigazione dei contenuti multimediali, la tua app verrà visualizzata in questo elenco, ma puoi utilizzare l'MCT solo se hai configurato l'app in modo che accetti tutte le connessioni o se hai inserito l'MCT nella lista consentita. Per saperne di più, consulta Controllo delle connessioni client con onGetRoot().

Test manuale di un'app Telefono

Se hai consentito all'MCT di connettersi al servizio del browser multimediale della tua app, quest'ultima viene visualizzata nell'elenco delle implementazioni dell'elenco dei servizi del browser multimediale. Trovala lì e fai clic su Controllo per avviare l'app in background.

In caso contrario, devi prima avviare l'app in background e poi fare clic su Controlla quando viene visualizzata nell'elenco delle sessioni multimediali attive.

Test di preparazione e riproduzione

Quando l'MCT inizia a controllare la tua app, mostra i metadati della sessione corrente dell'app: i contenuti multimediali attualmente selezionati e le azioni che la sessione è pronta a gestire.

Pagina di controllo
Figura 3. La pagina di controllo

Nella parte superiore della pagina dei controlli MCT è presente un menu a discesa in cui puoi selezionare Ricerca, URI, ID elemento multimediale o Nessuno, oltre a un campo di testo per specificare i dati di input associati alla ricerca, all'URI o all'ID elemento multimediale se selezioni una di queste opzioni.

I pulsanti Prepara e Riproduci appena sotto il campo di testo eseguono le chiamate appropriate (onPrepare(), onPrepareFromSearch(), onPrepareFromUri(), onPrepareFromMediaId(), onPlay(), onPlayFromSearch(), onPlayFromUri(), onPlayFromMediaId()) a seconda dell'azione selezionata.

Test del focus audio

Un'app multimediale che funziona correttamente deve essere in grado di gestire la priorità audio. Puoi testare l'audio focus eseguendo un'altra app audio insieme alla tua. La pagina dei controlli di MCT include un pulsante che richiede e rilascia l'audio focus.

Per testare la selezione audio, segui questi passaggi:

  1. Utilizza il menu a discesa Audio Focus per selezionare uno dei tre suggerimenti di durata AUDIOFOCUS_GAIN, AUDIOFOCUS_GAIN_TRANSIENT o AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK.
  2. Premi il pulsante per richiedere lo stato attivo.
  3. Premi di nuovo il pulsante per rilasciare lo stato attivo.

Test dei controlli di trasporto

Test dei controlli di trasporto
Figura 4. Test dei controlli di trasporto

Scorri verso sinistra per visualizzare la UI di MCT. Questa visualizzazione contiene i pulsanti di trasporto del controller multimediale standard e mostra l'immagine e i dati del programma della sessione. I pulsanti di trasporto disattivati sono cerchiati in arancione. Tutti gli altri sono attivi.

Testa il player utilizzando i pulsanti di trasporto. Lo stato dei pulsanti di trasporto dovrebbe cambiare come previsto. Ad esempio, quando premi il pulsante PLAY, questo dovrebbe essere disattivato, mentre i pulsanti PAUSA e STOP dovrebbero essere attivati.

Scorri di nuovo verso sinistra per visualizzare le azioni facoltative. Ogni azione ha un controllo che mostra se è attiva o meno. Se è attiva, puoi eseguire l'azione facendo clic su di essa.

Se hai eseguito la connessione dall'elenco di app che dispongono di un servizio di navigazione multimediale, puoi scorrere verso sinistra altre due volte per visualizzare le schermate che ti consentono di spostarti verso l'alto e verso il basso nella gerarchia dei contenuti dell'app o di cercare nell'albero dei contenuti.

Test manuale di un'app video

Utilizza la modalità schermo diviso per testare i controller delle app video. Innanzitutto, apri l'app video in una finestra e poi apri l'MCT in modalità schermo diviso.

Esecuzione dei test di verifica

Il framework di test di verifica offre test con un solo clic che puoi eseguire per assicurarti che la tua app multimediale risponda correttamente a una richiesta di riproduzione.

Test dell'app Telefono

Il tasto Tuttofare
Figura 5. Il pulsante di test

Per accedere ai test di verifica, fai clic sul pulsante Test accanto alla tua app multimediale.

Stato MCT

Stato del controllo multimediale
Figura 6. The Media Control State

La visualizzazione successiva mostra informazioni dettagliate sui MediaController dell'MCT, ad esempio PlaybackState, metadati e coda. Nella parte in alto a destra della barra degli strumenti sono presenti due pulsanti. Il pulsante a sinistra consente di passare dai log analizzabili a quelli formattati. Il pulsante a destra aggiorna la visualizzazione per mostrare le informazioni più aggiornate.

Selezione di un test

Pagina di selezione dei test
Figura 7. La pagina di selezione dei test

Scorrendo verso sinistra, arrivi alla visualizzazione dei test di verifica, dove puoi vedere un elenco scorrevole dei test disponibili. Se un test utilizza una query, come il test di riproduzione dalla ricerca mostrato nella Figura 7, è presente un campo di testo per inserire la stringa di query.

MCT include test per le seguenti azioni multimediali e altri test vengono aggiunti continuamente al progetto:

  • Riproduci
  • Riproduci dalla ricerca
  • Riproduci da ID elemento multimediale
  • Riproduci da URI
  • Metti in pausa
  • Interrompi
  • Vai ai contenuti successivi
  • Vai ai contenuti precedenti
  • Passa all'elemento in coda
  • Vai a

Risultati del test

Un risultato positivo del test
Figura 8. Un risultato positivo del test

L'area dei risultati nella parte inferiore della visualizzazione è inizialmente vuota. Mostrerà i risultati quando esegui un test. Ad esempio, per eseguire il test di riproduzione dalla ricerca, inserisci una query di ricerca nel campo di testo e fai clic su Esegui test. Lo screenshot seguente mostra un risultato del test con esito positivo.

Test di un'app per Android TV

Quando avvii l'MCT su Android TV, viene visualizzato un elenco di app multimediali installate. Tieni presente che un'app verrà visualizzata in questo elenco solo se implementa un servizio di browser multimediale.

La pagina di lancio di MCT sulla TV

Figura 9. La pagina di lancio di MCT sulla TV

Selezionando un'app, viene visualizzata la schermata di test, che mostra un elenco di test di verifica sulla destra.

La pagina dei test di verifica sulla TV

Figura 10. La pagina dei test di verifica sulla TV

Quando esegui un test, sul lato sinistro dello schermo vengono visualizzate le informazioni relative al MediaController selezionato. Per maggiori dettagli, controlla i log MCT in Logcat.

Pagina delle informazioni sul test sulla TV

Figura 11. La pagina delle informazioni sul test sulla TV

I test che richiedono una query sono contrassegnati con un'icona a forma di tastiera. Se fai clic su uno di questi test, si apre un campo di immissione per la query. Premi Invio per eseguire il test.

Per semplificare l'inserimento del testo, puoi anche utilizzare un comando adb:

adb shell input text your-query

Puoi utilizzare "%s" per aggiungere uno spazio tra le parole. Ad esempio, il seguente comando aggiunge il testo "hello world" al campo di immissione.

adb shell input text hello%sworld

Creazione di un test

Puoi inviare una richiesta di pull con altri test che ritieni utili. Per scoprire come creare nuovi test, visita il wiki di GitHub di MCT e consulta le istruzioni per i test di verifica.

Per saperne di più, consulta le istruzioni per i contributi.

Risorse aggiuntive

L'MCT è progettato per essere utilizzato in combinazione con app che implementano API multimediali. Per un esempio di app di questo tipo, consulta Universal Android Music Player.

Le correzioni di bug e i miglioramenti sono sempre ben accetti. Consulta le istruzioni per i contributi.