Abhängigkeit hinzufügen
Kotlin
implementation("androidx.media3:media3-ui:1.7.1")
Groovy
implementation "androidx.media3:media3-ui:1.7.1"
PlayerView
Die wichtigste Komponente ist PlayerView
, eine Ansicht für die Medienwiedergabe.
PlayerView
zeigt während der Wiedergabe Videos, Bilder, Untertitel und Albumcover sowie die Wiedergabesteuerung an.
PlayerView
hat eine setPlayer()
-Methode zum Anhängen und Trennen (durch Übergeben von null
) von Player
-Instanzen.
PlayerView
kann sowohl für die Wiedergabe von Videos und Bildern als auch für die Audiowiedergabe verwendet werden. Er rendert Video und Untertitel bei der Videowiedergabe, Bitmaps bei der Bildwiedergabe und kann Artwork anzeigen, 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 mit dem folgenden XML 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"/>
Der Snippet oben zeigt, dass PlayerView
mehrere Attribute bereitstellt.
Mit diesen Attributen können Sie das Verhalten sowie das Erscheinungsbild der Ansicht anpassen. Die meisten dieser Attribute haben entsprechende Setter-Methoden, mit denen die Ansicht zur Laufzeit angepasst werden kann. In der PlayerView
-Dokumentation werden diese Attribute und Setter-Methoden genauer beschrieben.
Um die Nutzerfreundlichkeit zu verbessern, sollten Sie das Android-Attribut keepScreenOn
hinzufügen oder einen Wake Lock festlegen, wenn Sie ExoPlayer verwenden. Auf den Seiten zu Hintergrundaufgaben können Sie andere Aktionen untersuchen, die das Gerät aktiv halten.
android:keepScreenOn="true"
Sobald die Ansicht in der Layoutdatei deklariert ist, kann sie in der onCreate
-Methode der Aktivität gesucht 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 mit dem Aufruf von setPlayer
an die Ansicht angehängt 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 PlayerView
-Unteransichten, die den Fortschrittsbalken und die Schaltflächen zur Steuerung der Wiedergabe enthält. PlayerControlView
ist nicht als eigenständige Komponente außerhalb von PlayerView
vorgesehen. Sie kann angepasst werden, indem Attribute für PlayerView
festgelegt werden (die an PlayerControlView
übergeben werden) oder indem mit android:id="@id/exo_controller
ein benutzerdefinierter Controller bereitgestellt wird.
Plattformtyp auswählen
Mit dem Attribut surface_type
von PlayerView
können Sie den Typ der Oberfläche festlegen, die für die Videowiedergabe verwendet wird. Die zulässigen Werte sind surface_view
, texture_view
, spherical_gl_surface_view
(ein Sonderwert für die Wiedergabe von sphärischen Videos), video_decoder_gl_surface_view
(für das Rendern von Videos mit Erweiterungsrenderern) und none
(nur für die Audiowiedergabe). Weitere Informationen