Medien-Apps, die per Sprachbefehl mit Google Assistant auf Android-Smartphones, -Autos, -Fernsehern und -Kopfhörern interagieren, basieren auf Android-Media-Sitzungs-APIs und verwenden Medienaktionen. Der Media-Action-Lebenszyklus kann schwer nachzuvollziehen sein. Selbst eine einfache Wiedergabeanfrage über die Suche umfasst viele Zwischenschritte, in denen etwas schiefgehen kann, wie in der vereinfachten Zeitachse dargestellt:
Mit der Media Controller Test App (MCT) können Sie die Feinheiten der Medienwiedergabe auf Android-Geräten testen und die Implementierung Ihrer Mediensitzung überprüfen.
Die Media Controller Test App ist in zwei Versionen verfügbar:
- Die Client-App wird auf der alten
MediaControllerCompat
implementiert. So können Sie Ihre Mediensitzungs-App, die auf einer älterenMediaSessionCompat
oder der Media3MediaSession
basiert, testen, wenn eine externe App über eine ältereMediaControllerCompat
darauf zugreift. Den Quellcode der alten Version finden Sie auf GitHub. - Die Client-App ist auf der neuesten Media3-
MediaController
-Version implementiert. So können Sie Ihre Mediensitzungs-App, die auf einer älterenMediaSessionCompat
oder der Media3MediaSession
basiert, testen, wenn eine externe App über eine Media3MediaController
darauf zugreift. Den Quellcode der Media3-Version finden Sie auf GitHub.
Der MCT zeigt Informationen zur MediaController
Ihrer App an, z. B. die PlaybackState
und Metadaten. Außerdem kann er zum Testen von App-internen Mediensteuerelementen verwendet werden.
Der MCT enthält auch ein Framework für Validierungstests, mit dem Sie Ihre QA-Tests automatisieren können.
Damit du die MCT verwenden kannst, muss deine App einen Medienbrowserdienst haben und du musst der MCT erlauben, eine Verbindung dazu herzustellen. Weitere Informationen finden Sie unter Media-Browserdienst erstellen.
MCT starten

Wenn Sie MCT starten, werden zwei Listen angezeigt:
- Active MediaSessions (Aktive MediaSessions): Diese Liste ist beim Starten des MCT zunächst leer und Sie sehen die Meldung „Keine Medien-Apps gefunden. Die Berechtigung „Benachrichtigungslistener“ ist erforderlich, um nach aktiven Mediensitzungen zu suchen.“ Klicken Sie auf Einstellungen, um den Bildschirm mit den Berechtigungen aufzurufen und die Berechtigung für die MCT zu aktivieren.
- MediaBrowserService-Implementierungen: Diese Liste enthält Apps, die einen Media-Browser-Dienst implementiert haben. Wenn Sie einen Media-Browser-Dienst implementiert haben, wird Ihre App in dieser Liste angezeigt. Sie können den MCT jedoch nur verwenden, wenn Sie Ihre App so konfiguriert haben, dass alle Verbindungen akzeptiert werden, oder den MCT auf die Zulassungsliste gesetzt haben. Weitere Informationen finden Sie unter Clientverbindungen mit onGetRoot() steuern.
Smartphone-App manuell testen
Wenn du dem MCT erlaubt hast, eine Verbindung zum Media-Browser-Dienst deiner App herzustellen, wird deine App in der Liste der Implementierungen von Media-Browser-Dienstlisten aufgeführt. Klicken Sie dort auf Steuerung, um die App im Hintergrund zu starten.
Andernfalls müssen Sie Ihre App zuerst selbst im Hintergrund starten und dann auf Steuerung klicken, wenn sie in der Liste der aktiven Mediensitzungen angezeigt wird.
Tests vorbereiten und ausführen
Wenn der MCT die Steuerung deiner App übernimmt, werden die aktuellen Sitzungsmetadaten der App angezeigt: die aktuell ausgewählten Medien und die Aktionen, die für die Sitzung verarbeitet werden können.

Oben auf der Seite mit den MCT-Steuerelementen befindet sich ein Drop-down-Menü, in dem du Suche, URI, Media-ID oder Kein auswählen kannst. Außerdem gibt es ein Textfeld, in dem du die Eingabedaten für die Suche, den URI oder die Media-ID angeben kannst, wenn du eine dieser Optionen auswählst.
Die Schaltflächen Vorbereiten und Abspielen direkt unter dem Textfeld führen je nach ausgewählter Aktion die entsprechenden Aufrufe (onPrepare()
, onPrepareFromSearch()
, onPrepareFromUri()
, onPrepareFromMediaId()
, onPlay()
, onPlayFromSearch()
, onPlayFromUri()
, onPlayFromMediaId()
) aus.
Audiofokus testen
Eine gut funktionierende Medien-App sollte den Audiofokus unterstützen. Sie können den Audiofokus testen, indem Sie neben Ihrer App eine weitere Audio-App ausführen. Auf der Seite mit den MCT-Steuerelementen gibt es eine Schaltfläche, mit der der Audiofokus angefordert und aufgehoben wird.
So testen Sie den Audiofokus:
- Wählen Sie im Drop-down-Menü Audiofokus einen der drei Hinweise zur Dauer aus:
AUDIOFOCUS_GAIN
,AUDIOFOCUS_GAIN_TRANSIENT
oderAUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK
. - Drücken Sie die Schaltfläche, um den Fokus anzufordern.
- Drücken Sie die Taste noch einmal, um den Fokus zu lösen.
Steuerelemente für öffentliche Verkehrsmittel testen

Wische nach links, um die Benutzeroberfläche des MCT aufzurufen. Diese Ansicht enthält die standardmäßigen Wiedergabe-/Pause-Schaltflächen der Mediensteuerung und zeigt das Programmbild und die Daten der Sitzung an. Deaktivierte Transportschaltflächen sind orange umkreist. Alle anderen sind aktiv.
Teste den Player mit den Transporttasten. Der Status der Transportschaltflächen sollte sich wie erwartet ändern. Wenn Sie beispielsweise die Wiedergabeschaltfläche drücken, sollte sie deaktiviert werden und die Schaltflächen „Pausieren“ und „Beenden“ aktiviert werden.
Wischen Sie noch einmal nach links, um eine Ansicht mit optionalen Aktionen aufzurufen. Jede Aktion hat ein Steuerelement, das angibt, ob sie aktiv ist oder nicht. Wenn es aktiv ist, können Sie die Aktion ausführen, indem Sie darauf klicken.
Wenn Sie eine Verbindung über die Liste der Apps mit einem Medienbrowserdienst hergestellt haben, können Sie noch zweimal nach links wischen, um Ansichten aufzurufen, mit denen Sie die Inhaltshierarchie der App auf- und absteigen oder im Inhaltsbaum suchen können.
Video-App manuell testen
Verwenden Sie den Splitscreen-Modus, um Steuerelemente für Video-Apps zu testen. Öffne zuerst die Video-App in einem Fenster und dann die MCT im Splitscreen-Modus.
Bestätigungstests ausführen
Das Framework für Bestätigungstests bietet Tests mit nur einem Klick, mit denen Sie prüfen können, ob Ihre Medien-App richtig auf eine Wiedergabeanfrage reagiert.
Smartphone-App testen

Klicken Sie neben Ihrer Medien-App auf die Schaltfläche Testen, um auf die Bestätigungstests zuzugreifen.
MCT-Status

In der nächsten Ansicht findest du detaillierte Informationen zur MediaController
des MCT, z. B. die PlaybackState
, Metadaten und die Warteschlange. Oben rechts in der Symbolleiste befinden sich zwei Schaltflächen. Mit der Schaltfläche links können Sie zwischen parsbaren und formatierten Protokollen wechseln. Mit der Schaltfläche rechts wird die Ansicht aktualisiert, um die neuesten Informationen anzuzeigen.
Test auswählen

Wenn Sie nach links wischen, gelangen Sie zur Ansicht der Bestätigungstests. Dort sehen Sie eine scrollbare Liste der verfügbaren Tests. Wenn in einem Test eine Suchanfrage verwendet wird, wie im Test „Über die Suche abspielen“ in Abbildung 7, gibt es ein Textfeld, in das der Abfragestring eingegeben werden kann.
Der MCT umfasst Tests für die folgenden Medienaktionen. Dem Projekt werden laufend weitere Tests hinzugefügt:
- Wiedergeben
- Über die Suche abspielen
- „Abspielen über“-Medien-ID
- Play From URI
- Pausieren
- Aufnahme beenden
- Zum nächsten Element springen
- Zum vorherigen Element springen
- Zu Element in der Warteschlange springen
- Springen zu
Testergebnisse

Der Ergebnisbereich unten in der Ansicht ist anfangs leer. Die Ergebnisse werden angezeigt, wenn Sie einen Test ausführen. Wenn Sie beispielsweise den Test für die Wiedergabe über die Suche ausführen möchten, 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 du die MCT auf Android TV startest, wird eine Liste der installierten Medien-Apps angezeigt. Eine App wird nur dann in dieser Liste angezeigt, wenn sie einen Media-Browserdienst implementiert.
Wenn Sie eine App auswählen, gelangen Sie zum Testbildschirm, auf dem rechts eine Liste mit Verifizierungstests angezeigt wird.
Wenn Sie einen Test ausführen, werden auf der linken Seite des Bildschirms Informationen zur ausgewählten MediaController angezeigt. Weitere Informationen finden Sie in den MCT-Protokollen in Logcat.
Tests, für die eine Abfrage erforderlich ist, sind mit einem Tastatursymbol gekennzeichnet. Wenn Sie auf einen dieser Tests klicken, wird ein Eingabefeld für die Abfrage geöffnet. Klicken Sie auf 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
Mit „%s“ können Sie ein Leerzeichen zwischen Wörtern einfügen. Mit dem folgenden Befehl wird beispielsweise der Text „Hallo Welt“ in das Eingabefeld eingefügt.
adb shell input text hello%sworld
Test erstellen
Sie können einen Pull-Request mit weiteren Tests einreichen, die Ihrer Meinung nach nützlich sind. Informationen zum Erstellen neuer Tests finden Sie im MCT GitHub Wiki in der Anleitung für den Bestätigungstest.
Bitte lesen Sie die Anleitung für Beiträge.
Weitere Informationen
Der MCT ist für die Verwendung in Verbindung mit Apps gedacht, die Media APIs implementieren. Ein Beispiel für eine solche App ist der Universal Android Music Player.
Fehlerkorrekturen und Verbesserungen sind immer willkommen. Weitere Informationen finden Sie in der Anleitung zum Einreichen von Beiträgen.