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“.