Le app multimediali che interagiscono tramite comandi vocali con l'Assistente Google su telefoni, auto, TV e cuffie Android utilizzano le API per sessioni multimediali di Android e utilizzano azioni multimediali. Il ciclo di vita delle azioni multimediali può essere difficile da seguire. Anche una semplice riproduzione dalla richiesta di ricerca prevede molti passaggi intermedi in cui qualcosa potrebbe andare storto, come mostrato nella sequenza temporale semplificata:
L'app Media Controller Test (MCT) ti consente di testare gli aspetti complessi della riproduzione di contenuti multimediali su Android e di verificare l'implementazione delle sessioni multimediali.
L'MCT mostra informazioni sul MediaController
della tua app, ad esempio PlaybackState
e metadati, e può essere utilizzato per testare i controlli multimediali tra app.
L'MCT include anche un framework per i test di verifica che consente di automatizzare i test di QA.
Per utilizzare l'MCT, la tua app deve disporre di un servizio browser multimediale a cui devi consentire l'accesso all'MCT. Per ulteriori informazioni, consulta Creazione di un servizio browser multimediale.
Avvio dell'MCT
![Pagina di lancio MCT](https://developer.android.google.cn/static/media/images/MCT/MCT-Launch-Screen.png?authuser=9&hl=it)
Quando avvii MCT, vengono visualizzati due elenchi:
- MediaSessions attive: questo elenco inizialmente è vuoto quando avvii l'MCT e viene visualizzato il messaggio "Nessuna app multimediale trovata. L'autorizzazione Listener di notifica è necessaria per eseguire la scansione delle sessioni multimediali attive." Fai clic su Impostazioni per andare alla schermata delle autorizzazioni e abilitare l'autorizzazione per MCT.
- MediaBrowserService Implementations: questo elenco mostra le app per cui è stato 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 l'hai configurata in modo da accettare tutte le connessioni o inserito nella lista consentita dell'MCT. Per ulteriori informazioni, consulta Controllo delle connessioni client con onGetRoot().
Test manuale di un'app per smartphone
Se hai consentito all'MCT di connettersi al servizio del browser multimediale dell'app, l'app verrà visualizzata nell'elenco delle implementazioni dell'elenco di servizi del browser multimediale. Cercala lì e fai clic su Controlla per avviare l'app in background.
Altrimenti, devi prima avviare l'app autonomamente in background e poi fare clic su Controllo quando viene visualizzata nell'elenco delle sessioni multimediali attive.
Preparati ai test e gioca
Quando l'MCT inizia a controllare l'app, vengono visualizzati i relativi metadati della sessione attuale: i contenuti multimediali attualmente selezionati e le azioni che la sessione è preparata a gestire.
![Pagina di controllo](https://developer.android.google.cn/static/media/images/MCT/audio-focus.png?authuser=9&hl=it)
La parte superiore della pagina dei controlli MCT contiene 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 a Ricerca, URI o ID elemento multimediale se selezioni una di queste opzioni.
I pulsanti Preparati e Gioca subito sotto il campo di testo eseguono le
chiamate appropriate (onPrepare()
, onPrepareFromSearch()
, onPrepareFromUri()
,
onPrepareFromMediaId()
, onPlay()
, onPlayFromSearch()
, onPlayFromUri()
,
onPlayFromMediaId()
) a seconda dell'azione selezionata.
Test della messa a fuoco audio in corso...
Un'app multimediale ben strutturata dovrebbe essere in grado di gestire la messa a fuoco audio. Puoi testare il focus audio eseguendo un'altra app audio insieme alla tua app. La pagina dei controlli MCT include un pulsante che richiede e rilascia lo stato attivo sull'audio.
Per testare il focus audio:
- Utilizza il menu a discesa Messa a fuoco audio per selezionare uno dei tre suggerimenti relativi alla 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 rilasciare lo stato attivo.
Test dei controlli di trasporto
![Test dei controlli di trasporto](https://developer.android.google.cn/static/media/images/MCT/MCT-Controller-Screen.png?authuser=9&hl=it)
Scorri il dito a sinistra per visualizzare l'interfaccia utente dell'MCT. Questa vista include 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, il pulsante RIPRODUCI dovrebbe essere disattivato e i pulsanti PAUSA e INTERROMPI diventano attivi.
Scorri di nuovo verso sinistra per una visualizzazione che mostra 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 ti sei connesso dall'elenco di app che dispongono di un servizio browser multimediale, puoi scorrere verso sinistra altre due volte per visualizzare visualizzazioni che ti consentono di salire e scendere nella gerarchia dei contenuti dell'app o di eseguire ricerche nell'albero dei contenuti.
Test manuale di un'app video
Usa la modalità schermo diviso per testare i controller delle app video. Per prima cosa, apri l'app video in una finestra, poi apri l'MCT in modalità schermo diviso.
Esecuzione dei test di verifica
Il framework di test della 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 di un'app per telefono
![Pulsante Test](https://developer.android.google.cn/static/media/images/MCT/MCT-Test-Button.png?authuser=9&hl=it)
Per accedere ai test di verifica, fai clic sul pulsante Test accanto alla tua app multimediale.
Stato MCT
![Lo stato del controllo multimediale](https://developer.android.google.cn/static/media/images/MCT/MCT-Testing-Info-Screen.png?authuser=9&hl=it)
La visualizzazione successiva mostra informazioni dettagliate su MediaController
dell'MCT, ad esempio PlaybackState
, metadati e coda. Ci sono due pulsanti
in alto a destra nella barra degli strumenti. Il pulsante a sinistra consente di passare
tra i log analizzabili e formattati. Il pulsante a destra aggiorna la visualizzazione per mostrare le informazioni più recenti.
Selezione di un test
![La pagina Selezione test](https://developer.android.google.cn/static/media/images/MCT/MCT-Testing-Verification-Screen.png?authuser=9&hl=it)
Se scorri 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 la riproduzione del test di ricerca mostrato nella Figura 7, è disponibile un campo di testo in cui inserire la stringa di query.
L'MCT include test per le seguenti azioni multimediali e altri test vengono aggiunti continuamente al progetto:
- Gioca
- Riproduci dalla ricerca
- Riproduci da ID elemento multimediale
- Riproduci da URI
- Mettere in pausa
- Interrompi
- Passa a successivo
- Passa a precedente
- Salta elemento alla coda
- Vai a
Risultati del test
![Un risultato del test con esito positivo](https://developer.android.google.cn/static/media/images/MCT/MCT-Testing-Success-Screen.png?authuser=9&hl=it)
Inizialmente, l'area dei risultati nella parte inferiore della visualizzazione è vuota. I risultati verranno mostrati quando esegui un test. Ad esempio, per eseguire la riproduzione dal test di ricerca, inserisci una query di ricerca nel campo di testo e fai clic su Esegui test. Il seguente screenshot mostra un risultato del test con esito positivo.
Test di un'app Android TV
Quando avvii l'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 multimediale.
Se selezioni un'app, vieni indirizzato alla schermata di test, che sulla destra mostra 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 con l'icona di una 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 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 "ciao mondo" al campo di immissione.
adb shell input text hello%sworld
Creazione di un test
Puoi inviare una richiesta di pull con più test che ritieni utili. Per informazioni su come creare nuovi test, visita la Wiki GitHub di MCT e consulta le istruzioni per i test di verifica.
Consulta le istruzioni per il contributo.
Risorse aggiuntive
L'MCT è pensato per essere utilizzato insieme alle app che implementano le API multimediali. Per un esempio di app di questo tipo, vedi il lettore musicale per Android universale.
Correzioni di bug e miglioramenti sono sempre benvenuti. Consulta le istruzioni per il contributo.