Abhängigkeit hinzufügen
Kotlin
implementation("androidx.media3:media3-ui:1.11.1")
Groovy
implementation "androidx.media3:media3-ui:1.11.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. Bei der Videowiedergabe werden Video und Untertitel gerendert, bei der Bildwiedergabe Bitmaps. Außerdem kann das 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 mit dem folgenden XML-Code 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.
Wenn Sie ExoPlayer verwenden, können Sie das keepScreenOn-Android-Attribut hinzufügen oder einen Wakelock festlegen, um die Nutzerfreundlichkeit zu verbessern. Auf den Seiten zu Hintergrundprozessen 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); }
Nach der Initialisierung kann ein Player an die Ansicht angehängt werden, indem setPlayer aufgerufen wird:
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 Unteransichten von PlayerView, die die Fortschrittsanzeige 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 ein benutzerdefinierter Controller mit android:id="@id/exo_controller bereitgestellt wird.
Plattform 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