Material3 Compose

Biblioteka media3-ui-compose-material3 udostępnia komponent Player, który wyświetla elementy sterujące odtwarzacza, pasek postępu i bieżące treści multimedialne. Wewnętrznie obsługuje zarówno zarządzanie stanem, jak i styl Material3. Więcej informacji o tym, której biblioteki użyć, znajdziesz w omówieniu 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)
  }
}

Dostosowywanie komponentów Material3

media3-ui-compose-material3 udostępnia komponenty zgodne z zasadami Material 3, ale nadal masz pełną kontrolę nad motywami. Możesz dostosować kolory, typografię i kształty, umieszczając interfejs odtwarzacza w tagu MaterialTheme.

Aby na przykład zmienić kolor elementu PlayPauseButton, możesz podać niestandardowy element colorScheme:

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)
}

Dostępne komponenty Material 3

Biblioteka media3-ui-compose-material3 zawiera zestaw gotowych komponentów kompozycyjnych do typowych elementów sterujących odtwarzaczem. Oto niektóre komponenty, których możesz używać bezpośrednio w aplikacji:

Komponent Opis
Player Odtwarzacz z elementami sterującymi, paskiem postępu i ramką treści.
PlayPauseButton Przycisk, który przełącza między odtwarzaniem a wstrzymaniem.
SeekBackButton Przycisk przewijania do tyłu o określony przyrost.
SeekForwardButton Przycisk przewijania do przodu o określony przyrost.
NextButton Przycisk przewijania do następnego elementu multimedialnego.
PreviousButton Przycisk przewijania do poprzedniego elementu multimedialnego.
RepeatButton Przycisk przełączania trybów powtarzania.
ShuffleButton Przycisk do przełączania trybu odtwarzania losowego.
MuteButton Przycisk wyciszania i wyłączania wyciszenia odtwarzacza.
PositionAndDurationText Kompozycja tekstowa, która wyświetla bieżącą pozycję i całkowity czas trwania.
PositionText Komponent tekstowy wyświetlający bieżącą pozycję.
DurationText Kompozycja tekstowa, która wyświetla łączny czas trwania.
RemainingDurationText Kompozycja tekstowa, która wyświetla pozostały czas trwania.
ProgressSlider Suwak, który pokazuje postęp odtwarzania i umożliwia użytkownikowi przewijanie.

Ta lista nie jest wyczerpująca. Wszystkie dostępne komponenty znajdziesz w dokumentacji API biblioteki.

Dwa inne gotowe komponenty, które prawdopodobnie będą Ci potrzebne, są związane z zarządzaniem powierzchnią i znajdują się w module media3-ui-compose, ponieważ nie mają motywu Material.

Komponent Opis
ContentFrame Powierzchnia do wyświetlania treści multimedialnych, która zarządza współczynnikiem proporcji, zmianą rozmiaru i migawką.
PlayerSurface Surowa powierzchnia, która otacza SurfaceView i TextureView w AndroidView