Material3 Compose

Die media3-ui-compose-material3-Bibliothek bietet eine Player-Komponente, die Steuerelemente des Videoplayers, eine Fortschrittsanzeige und aktuelle Medieninhalte anzeigt. Sie übernimmt intern sowohl die Statusverwaltung als auch das Material3-Styling. Weitere Informationen dazu, welche Bibliothek Sie verwenden sollten, finden Sie in der Übersicht zu Media3 Compose.

// The library provides styled UI components
Row {
  SeekBackButton(player)
  PlayPauseButton(player)
  SeekForwardButton(player)
}

// You can rearrange the composables into a layout that suits your needs
@Composable
fun PlayerProgressControlsLeftAligned(player: Player) {
  Row {
    PositionAndDurationText(player)
    ProgressSlider(player)
  }
}

@Composable
fun PlayerProgressControlsCenterAligned(player: Player) {
  Row {
    PositionText(player)
    ProgressSlider(player)
    DurationText(player)
  }
}

Material3-Komponenten anpassen

media3-ui-compose-material3 bietet zwar Komponenten, die dem Material 3-Design entsprechen, Sie haben aber trotzdem die volle Kontrolle über das Design. Sie können benutzerdefinierte Farben, Typografie und Formen anpassen, indem Sie die Player-UI in ein MaterialTheme einbinden.

Wenn Sie beispielsweise die Farbe des PlayPauseButton ändern möchten, können Sie einen benutzerdefinierten colorScheme angeben:

MaterialTheme(
  colorScheme =
    lightColorScheme(
      primary = Color.Red, // Change the primary color for the button
      onPrimary = Color.White,
    )
) {
  // The PlayPauseButton will now use the custom colors
  PlayPauseButton(player)
}

Verfügbare Material 3-Komponenten

Die media3-ui-compose-material3-Bibliothek bietet eine Reihe vordefinierter Composables für gängige Steuerelemente des Videoplayers. Hier sind einige der Komponenten, die Sie direkt in Ihrer App verwenden können:

Komponente Beschreibung
Player Ein Player mit Steuerelementen, einer Fortschrittsanzeige, Untertiteln und einem Inhaltsframe für Videos oder Bilder.
PlayPauseButton Eine Schaltfläche, mit der zwischen Wiedergabe und Pause gewechselt werden kann und die den Status für Zwischenspeichern, Wiederholen und Wiederholen anzeigt.
SeekBackButton Eine Schaltfläche, mit der du um einen bestimmten Zeitraum zurückspringen kannst.
SeekForwardButton Eine Schaltfläche, mit der du um einen bestimmten Zeitraum vorspringen kannst.
NextButton Eine Schaltfläche, um zur nächsten Mediendatei zu springen.
PreviousButton Ein Button, um zur vorherigen Mediendatei zu springen.
RepeatButton Eine Schaltfläche, mit der du zwischen den Wiederholungsmodi wechseln kannst.
ShuffleButton Eine Schaltfläche zum Aktivieren oder Deaktivieren des Zufallsmodus.
MuteButton Eine Schaltfläche zum Stummschalten und Aufheben der Stummschaltung des Players.
LiveButton Eine Schaltfläche, die angibt, ob die Wiedergabe eines Livestreams am Live-Edge erfolgt, und die bei Berührung zum Live-Edge springt.
PositionAndDurationText Ein Text-Composable, das die aktuelle Position und die Gesamtdauer anzeigt.
PositionText Ein Text-Composable, das die aktuelle Position anzeigt.
DurationText Ein Text-Composable, das die Gesamtdauer anzeigt.
RemainingDurationText Ein Text-Composable, das die verbleibende Dauer anzeigt.
ProgressSlider Ein Schieberegler, der den Wiedergabefortschritt anzeigt und es dem Nutzer ermöglicht, zu einer bestimmten Stelle zu springen.
BufferingIndicator Eine Fortschrittsanzeige, die während des Zwischenspeicherns des Players angezeigt wird.

Diese Liste ist nicht vollständig. Alle verfügbaren Komponenten finden Sie in der API-Referenz der Bibliothek.

Zwei weitere vordefinierte Composables, die du wahrscheinlich benötigst, beziehen sich auf die Oberflächenverwaltung und befinden sich im Modul media3-ui-compose, da sie kein Material Theming haben.

Komponente Beschreibung
ContentFrame Eine Oberfläche für Medieninhalte, die das Seitenverhältnis, die Größenanpassung, einen Shutter, Artwork und einen Untertitel-Slot verwaltet.
PlayerSurface Rohfläche, die SurfaceView und TextureView in AndroidView umschließt.