Erste Schritte mit der auf Ansichten basierenden Benutzeroberfläche

Abhängigkeit hinzufügen

Kotlin

implementation("androidx.media3:media3-ui:1.6.0")

Groovy

implementation "androidx.media3:media3-ui:1.6.0"

PlayerView

Die wichtigste Komponente ist PlayerView, eine Ansicht für die Medienwiedergabe. PlayerView zeigt während der Wiedergabe Video, Bilder, Untertitel und Albumcover sowie Wiedergabesteuerelemente an.

PlayerView hat eine setPlayer()-Methode zum Anhängen und Trennen (durch Übergeben von null) von Player-Instanzen.

PlayerView kann sowohl für die Video-, Bild- als auch die Audiowiedergabe verwendet werden. Bei der Videowiedergabe werden Video und Untertitel gerendert, bei der Bildwiedergabe Bitmaps und es kann Artwork angezeigt werden, das als Metadaten in Audiodateien enthalten ist. Sie können sie wie jede andere UI-Komponente in Ihre Layoutdateien einfügen. Ein PlayerView kann beispielsweise in das folgende XML-Element eingefügt werden:

<androidx.media3.ui.PlayerView
    android:id="@+id/player_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:show_buffering="when_playing"
    app:show_shuffle_button="true"/>

Das Snippet oben zeigt, dass PlayerView mehrere Attribute bietet. Mit diesen Attributen können Sie das Verhalten und das Erscheinungsbild der Ansicht anpassen. Die meisten dieser Attribute haben entsprechende Setzermethoden, mit denen sich die Ansicht zur Laufzeit anpassen lässt. In der PlayerView-Dokumentation werden diese Attribute und Setzermethoden ausführlicher beschrieben.

Nachdem die Ansicht in der Layoutdatei deklariert wurde, kann sie in der onCreate-Methode der Aktivität abgerufen werden:

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  // ...
  playerView = findViewById(R.id.player_view)
}

Java

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  // ...
  playerView = findViewById(R.id.player_view);
}

Nachdem ein Player initialisiert wurde, kann er der Ansicht durch Aufrufen von setPlayer hinzugefügt werden:

Kotlin

// Instantiate the player.
val player = ExoPlayer.Builder(context).build()
// Attach player to the view.
playerView.player = player
// Set the media item to be played.
player.setMediaItem(mediaItem)
// Prepare the player.
player.prepare()

Java

// Instantiate the player.
player = new ExoPlayer.Builder(context).build();
// Attach player to the view.
playerView.setPlayer(player);
// Set the media item to be played.
player.setMediaItem(mediaItem);
// Prepare the player.
player.prepare();

PlayerControlView

PlayerControlView ist eine der untergeordneten Ansichten von PlayerView, die die Fortschrittsanzeige und Schaltflächen zur Steuerung der Wiedergabe enthält. PlayerControlView ist nicht als eigenständige Komponente außerhalb von PlayerView vorgesehen. Sie können sie anpassen, indem Sie Attribute für PlayerView festlegen (die an PlayerControlView übergeben werden) oder einen benutzerdefinierten Controller mit android:id="@id/exo_controller bereitstellen.

Oberfläche auswählen

Mit dem surface_type-Attribut von PlayerView können Sie die Art der Oberfläche festlegen, die für die Videowiedergabe verwendet wird. Zulässige Werte sind surface_view, texture_view, spherical_gl_surface_view (ein spezieller Wert für die Wiedergabe von sphärischen Videos), video_decoder_gl_surface_view (für das Video-Rendering mit Erweiterungs-Renderern) und none (nur für die Audiowiedergabe). Weitere Informationen dazu, welchen Oberflächentyp Sie auswählen sollten, finden Sie auf der Seite „Oberfläche“.