Le app multimediali che interagiscono tramite comandi vocali con l'Assistente Google su telefoni, auto, TV e cuffie Android sono basate sulle API di sessione multimediale di Android e utilizzano le azioni multimediali. Il ciclo di vita dell'azione media può essere difficile da seguire. Anche una semplice richiesta di riproduzione dalla ricerca include molti passaggi intermedi in cui potrebbe verificarsi un errore, come mostrato nella sequenza temporale semplificata:
L'app Media Controller Test (MCT) consente di testare le complessità della riproduzione dei contenuti multimediali su Android e 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 di sessione multimediale creata su unMediaSessionCompat
precedente o su Media3MediaSession
quando viene visualizzata da un'app esterna tramite unMediaControllerCompat
precedente. 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 l'app di sessione multimediale basata su unMediaSessionCompat
precedente o su Media3MediaSession
quando viene acceduta da un'app esterna tramite unMediaController
Media3. Trova il codice sorgente della versione Media3 su GitHub.
L'MCT mostra informazioni sul MediaController
della tua app, ad esempio il PlaybackState
e i metadati, e può essere utilizzato per testare i controlli multimediali inter-app.
L'MCT include anche un framework di test di verifica che consente di automatizzare i test di QA.
Per utilizzare l'MCT, la tua app deve avere un servizio di browser multimediale e devi consentire all'MCT di connettersi. Per ulteriori informazioni, consulta la sezione Creare un servizio di browser multimediale.
Avvio del MCT

Quando avvii MCT, vedrai due elenchi:
- MediaSession attive: questo elenco è inizialmente vuoto quando avvii l'MCT e viene visualizzato il messaggio "Nessuna app multimediale trovata. L'autorizzazione Notification Access è necessaria per eseguire la ricerca di sessioni multimediali attive." Fai clic su Impostazioni per accedere alla schermata delle autorizzazioni e attivare l'autorizzazione per il MCT.
- Implementazioni di MediaBrowserService: questo elenco mostra le app che hanno implementato un servizio di browser multimediale. Se hai implementato un servizio di browser multimediale, la tua app verrà visualizzata in questo elenco, ma potrai utilizzare l'MCT solo se hai configurato l'app in modo da accettare tutte le connessioni o se hai inserito l'MCT nella lista consentita. Per ulteriori informazioni, consulta Controllare le connessioni dei client con onGetRoot().
Testare manualmente un'app per smartphone
Se hai consentito all'MCT di connettersi al servizio di browser multimediale della tua app, quest'ultima viene visualizzata nell'elenco delle implementazioni dell'elenco del servizio di browser multimediale. Trova l'app e fai clic su Controlla per avviarla in background.
In caso contrario, devi prima avviare l'app in background, quindi fare clic su Controllo quando viene visualizzata nell'elenco delle sessioni multimediali attive.
Testare la preparazione e la riproduzione
Quando l'MCT inizia a controllare l'app, mostra i metadati della sessione corrente dell'app: i contenuti multimediali attualmente selezionati e le azioni che la sessione è preparata a gestire.

Nella parte superiore della pagina dei controlli MCT è presente un menu a discesa in cui puoi selezionare Ricerca, URI, ID media o Nessuna, insieme a un campo di testo per specificare i dati di input associati alla ricerca, all'URI o all'ID media 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.
Testare il focus audio
Un'app multimediale ben comportata dovrebbe essere in grado di gestire l'attenzione audio. Puoi testare l'attenzione audio eseguendo un'altra app audio insieme alla tua. La pagina dei controlli MCT include un pulsante che richiede e rilascia l'attenzione audio.
Per testare l'attenzione audio:
- Utilizza il menu a discesa Audio Focus per selezionare uno dei tre suggerimenti sulla durata
AUDIOFOCUS_GAIN
,AUDIOFOCUS_GAIN_TRANSIENT
oAUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK
. - Premi il pulsante per richiedere lo stato attivo.
- Premi di nuovo il pulsante per annullare lo stato attivo.
Testare i controlli dei trasporti

Scorri verso sinistra per visualizzare la visualizzazione dell'interfaccia utente del 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.
Prova il player utilizzando i pulsanti di trasporto. Lo stato dei pulsanti di trasporto dovrebbe cambiare come previsto. Ad esempio, quando premi il pulsante RIProduci, dovrebbe essere disattivato e i pulsanti PAUSA e INTERRUPI vengono attivati.
Scorri di nuovo verso sinistra per visualizzare una visualizzazione che mostra le azioni facoltative. Ogni azione ha un controllo che indica se è attiva o meno. Se è attiva, puoi eseguire l'azione facendo clic su di essa.
Se hai eseguito la connessione dall'elenco di app con un servizio di browser multimediale, puoi scorrere verso sinistra altre due volte per visualizzare le viste che ti consentono di spostarti nella gerarchia dei contenuti dell'app o di cercare nell'albero dei contenuti.
Testare manualmente un'app video
Usa 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 di test di verifica
Il framework di test di verifica offre test con un solo clic che puoi eseguire per verificare che la tua app multimediale risponda correttamente a una richiesta di riproduzione.
Testare un'app per smartphone

Per accedere ai test di verifica, fai clic sul pulsante Test accanto all'app media.
Stato MCT

La visualizzazione successiva mostra informazioni dettagliate sul MediaController
dell'MCT, ad esempio il PlaybackState
, i metadati e la coda. Nella parte in alto a destra della barra degli strumenti sono presenti due pulsanti. Il pulsante a sinistra consente di passare dai log parsabili ai log formattati e viceversa. Il pulsante a destra aggiorna la vista per visualizzare le informazioni più aggiornate.
Selezione di un test

Scorri verso sinistra per visualizzare la 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 in Figura 7, è presente un campo di testo per inserire la stringa di query.
L'MCT include test per le seguenti azioni sui contenuti multimediali e al progetto vengono aggiunti continuamente altri test:
- Riproduci
- Riproduci dalla Ricerca
- ID media di Riproduzione da
- Riproduci da URI
- Metti in pausa
- Interrompi
- Vai al successivo
- Vai ai contenuti precedenti
- Vai all'elemento della coda
- Vai a
Risultati del test

L'area dei risultati nella parte inferiore della visualizzazione è inizialmente vuota. Verranno mostrati 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 positivo.
Test di un'app per Android TV
Quando avvii il MCT su Android TV, viene visualizzato un elenco di app multimediali installate. Tieni presente che un'app viene visualizzata in questo elenco solo se implementa un servizio di browser media.
Se selezioni un'app, viene visualizzata la schermata di test, che mostra a destra un elenco di test di verifica.
Quando esegui un test, sul lato sinistro dello schermo vengono visualizzate informazioni sul MediaController selezionato. Per ulteriori dettagli, controlla i log MCT in Logcat.
I test che richiedono una query sono contrassegnati da un'icona a forma di tastiera. Se fai clic su uno di questi test, si apre un campo di immissione per la query. Fai clic su Invio per eseguire il test.
Per semplificare l'inserimento di 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 pull con altri test che ritieni utili. Per scoprire come creare nuovi test, visita la Wiki di GitHub di MCT e consulta le istruzioni per il test di verifica.
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 questo tipo di app, consulta Universal Android Music Player.
Le correzioni di bug e i miglioramenti sono sempre benvenuti. Consulta le istruzioni per i contributi.