Medien-Apps, die auf Android-Smartphones, Autos, Fernsehern und Kopfhörern per Sprachbefehl mit Google Assistant interagieren, basieren auf Android Media Session APIs und nutzen Medienaktionen. Der Lebenszyklus einer Mediaaktion ist manchmal schwer nachzuvollziehen. Sogar eine einfache Wiedergabe aus einer Suchanfrage umfasst viele Zwischenschritte, bei denen etwas schiefgehen könnte, wie die vereinfachte Zeitachse zeigt:
Mit der App Media Controller Test (MCT) können Sie die Feinheiten der Medienwiedergabe auf Android testen und die Implementierung Ihrer Mediensitzungen prüfen.
Das MCT zeigt Informationen zum MediaController
Ihrer App an, z. B. PlaybackState
und Metadaten, und kann zum Testen der App-übergreifenden Mediensteuerung verwendet werden.
Das MCT umfasst außerdem ein Framework für Verifizierungstests, mit dem Sie QA-Tests automatisieren können.
Zur Verwendung des MCT muss Ihre Anwendung einen Medienbrowserdienst haben und Sie müssen zulassen, dass die MCT eine Verbindung zu diesem herstellen kann. Weitere Informationen finden Sie unter Medienbrowserdienst erstellen.
MCT starten
Nach dem Start von MCT werden zwei Listen angezeigt:
- Active MediaSessions (Aktive MediaSessions): Diese Liste ist anfangs leer, wenn Sie das MCT starten. Sie sehen die Meldung „Keine Medien-Apps gefunden. Zum Suchen nach aktiven Mediensitzungen ist die Berechtigung des Notification-Listeners erforderlich.“ Klicken Sie auf Einstellungen, um zum Berechtigungsbildschirm zu gelangen und die Berechtigung für das MCT zu aktivieren.
- MediaBrowserService-Implementierungen: In dieser Liste sind Apps aufgeführt, in denen ein Medienbrowserdienst implementiert ist. Wenn Sie einen Medienbrowserdienst implementiert haben, wird Ihre Anwendung in dieser Liste angezeigt. Sie können das MCT aber nur verwenden, wenn Sie Ihre Anwendung so konfiguriert haben, dass alle Verbindungen akzeptiert werden oder wenn Sie die MCT auf die Zulassungsliste gesetzt haben. Weitere Informationen finden Sie unter Clientverbindungen mit onGetRoot() steuern.
Manuelles Testen einer Telefon-App
Wenn Sie dem MCT erlaubt haben, eine Verbindung zum Medienbrowserdienst Ihrer App herzustellen, wird Ihre Anwendung in der Liste der Implementierungen der Liste der Medienbrowserdienste angezeigt. Klicken Sie dort auf Control (Steuerung), um Ihre App im Hintergrund zu starten.
Andernfalls müssen Sie die App zuerst im Hintergrund starten und dann in der Liste der aktiven Mediensitzungen auf Steuerung klicken.
Tests: Vorbereitung und Wiedergabe
Wenn das MCT mit der Steuerung Ihrer Anwendung beginnt, zeigt es die aktuellen Sitzungsmetadaten der Anwendung an: die aktuell ausgewählten Medien und die Aktionen, für die die Sitzung vorbereitet ist.
Oben auf der Seite mit den MCT-Steuerelementen finden Sie ein Drop-down-Menü, in dem Sie Suche, URI, Media-ID oder Keine auswählen können. Außerdem werden in einem Textfeld die Eingabedaten für die Suche, URI oder Media-ID angegeben, wenn Sie eine dieser Optionen auswählen.
Über die Schaltflächen Vorbereiten und Wiedergabe direkt unter dem Textfeld werden je nach ausgewählter Aktion die entsprechenden Aufrufe (onPrepare()
, onPrepareFromSearch()
, onPrepareFromUri()
, onPrepareFromMediaId()
, onPlay()
, onPlayFromSearch()
, onPlayFromUri()
, onPlayFromMediaId()
) ausgeführt.
Audiofokus wird getestet
Eine gut funktionierende Medien-App sollte mit dem Audiofokus umgehen können. Sie können den Audiofokus testen, indem Sie neben Ihrer App eine andere Audio-App ausführen. Die Seite der MCT-Steuerelemente enthält eine Schaltfläche, über die der Audiofokus angefordert und freigegeben wird.
So testen Sie den Audiofokus:
- Verwenden Sie das Drop-down-Menü Audiofokus, um einen der drei Hinweise für die Dauer
AUDIOFOCUS_GAIN
,AUDIOFOCUS_GAIN_TRANSIENT
oderAUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK
auszuwählen. - Drücke die Taste, um den Fokus anzufordern.
- Drücken Sie die Taste noch einmal, um den Fokus loszulassen.
Transportsteuerung testen
Wischen Sie nach links, um die UI-Ansicht des MCT anzuzeigen. Diese Ansicht enthält die Standardschaltflächen für den Media-Controller-Transport sowie das Programmbild und die Daten der Sitzung. Deaktivierte Transportschaltflächen sind orange eingekreist. Alle anderen sind aktiv.
Teste deinen Player mit den Transportschaltflächen. Der Status der Transportschaltflächen sollte sich wie erwartet ändern. Wenn Sie beispielsweise die Wiedergabeschaltfläche drücken, sollte diese deaktiviert werden und die Schaltflächen PAUSE und STOPP werden aktiviert.
Wischen Sie noch einmal nach links, um eine Ansicht aufzurufen, in der optionale Aktionen angezeigt werden. Für jede Aktion gibt es ein Steuerelement, das anzeigt, ob sie aktiv ist. Wenn es aktiv ist, können Sie die Aktion ausführen, indem Sie darauf klicken.
Wenn Sie über die Liste der Apps mit einem Medienbrowserdienst eine Verbindung hergestellt haben, können Sie zweimal nach links wischen, um Ansichten zu erhalten, in denen Sie in der Inhaltshierarchie Ihrer App nach oben oder unten gehen oder im Inhaltsbaum suchen können.
Video-App manuell testen
Verwenden Sie den Splitscreen-Modus, um Video-App-Controller zu testen. Öffnen Sie zuerst Ihre Video-App in einem Fenster und dann das MCT im Splitscreen-Modus.
Überprüfungstests ausführen
Das Framework für Verifizierungstests bietet Ein-Klick-Tests, mit denen Sie prüfen können, ob Ihre Medien-App korrekt auf eine Wiedergabeanfrage reagiert.
Telefon-App testen
Klicken Sie neben Ihrer Medien-App auf die Schaltfläche Test (Testen), um auf die Bestätigungstests zuzugreifen.
MCT-Status
Die nächste Ansicht zeigt detaillierte Informationen zum MediaController
des MCT, z. B. PlaybackState
, Metadaten und Warteschlange. Es gibt zwei Schaltflächen
oben rechts in der Symbolleiste. Mit der Schaltfläche auf der linken Seite können Sie zwischen analysierbaren und formatierten Logs wechseln. Mit der Schaltfläche rechts wird die Ansicht aktualisiert und die aktuellen Informationen angezeigt.
Test auswählen
Durch Wischen nach links gelangen Sie zur Ansicht der Bestätigungstests, in der Sie eine scrollbare Liste der verfügbaren Tests sehen. Wenn ein Test eine Abfrage verwendet, wie die Wiedergabe aus dem Suchtest in Abbildung 7, gibt es ein Textfeld, in das der Abfragestring eingegeben werden kann.
Das MCT umfasst Tests für die folgenden Medienaktionen und dem Projekt werden kontinuierlich weitere Tests hinzugefügt:
- Spielen
- Über die Suche wiedergeben
- Von Media-ID wiedergeben
- Wiedergabe von URI
- Pausieren
- Aufnahme beenden
- Weiter zum nächsten
- Zurück zum vorherigen
- Zur Warteschlange springen
- Suchen nach
Testergebnisse
Der Ergebnisbereich unten in der Ansicht ist anfangs leer. Die Ergebnisse werden angezeigt, wenn Sie einen Test durchführen. Um beispielsweise den Suchtest auszuführen, geben Sie eine Suchanfrage in das Textfeld ein und klicken Sie auf Test ausführen. Der folgende Screenshot zeigt ein erfolgreiches Testergebnis.
Android TV-App testen
Wenn Sie MCT auf Android TV starten, wird eine Liste der installierten Medien-Apps angezeigt. Eine Anwendung wird nur dann in dieser Liste aufgeführt, wenn sie einen Medienbrowserdienst implementiert.
Wenn Sie eine App auswählen, gelangen Sie zum Testbildschirm, auf dem rechts eine Liste mit Bestätigungstests angezeigt wird.
Wenn Sie einen Test ausführen, werden auf der linken Seite des Bildschirms Informationen zum ausgewählten MediaController angezeigt. Weitere Informationen finden Sie in den MCT-Protokollen in Logcat.
Tests, die eine Abfrage erfordern, sind mit einem Tastatursymbol gekennzeichnet. Wenn Sie auf einen dieser Tests klicken, wird ein Eingabefeld für die Abfrage geöffnet. Drücken Sie die Eingabetaste, um den Test auszuführen.
Sie können auch einen adb
-Befehl verwenden, um die Texteingabe zu vereinfachen:
adb shell input text your-query
Sie können „%s“ verwenden, um ein Leerzeichen zwischen Wörtern einzufügen. Mit dem folgenden Befehl wird beispielsweise der Text "Hello World" in das Eingabefeld eingefügt.
adb shell input text hello%sworld
Test erstellen
Sie können eine Pull-Anfrage mit mehr Tests senden, die Sie für nützlich halten. Informationen zum Erstellen neuer Tests finden Sie im MCT-GitHub-Wiki und in der Anleitung für Bestätigungstests.
Lies dir bitte die Anleitung für Beiträge durch.
Weitere Informationen
Das MCT ist für den Einsatz in Verbindung mit Apps vorgesehen, die Medien-APIs implementieren. Ein Beispiel für eine solche App findest du im Universal Android Music Player.
Fehlerkorrekturen und Verbesserungen sind immer willkommen. Weitere Informationen findest du in der Anleitung für Beiträge.