Compose Material3

La bibliothèque media3-ui-compose-material3 fournit un composable Player qui affiche les commandes du lecteur, la barre de progression et le contenu multimédia actuel. Elle gère en interne la gestion de l'état et le style Material3. Pour en savoir plus sur la bibliothèque à utiliser, consultez la présentation de 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)
  }
}

Personnaliser les composants Material3

Bien que media3-ui-compose-material3 fournisse des composants conformes à la conception Material3, vous conservez le contrôle total sur les thèmes. Vous pouvez personnaliser les couleurs, la typographie et les formes en encapsulant l'interface utilisateur de votre lecteur dans un MaterialTheme.

Par exemple, pour modifier la couleur du PlayPauseButton, vous pouvez fournir un custom 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)
}

Composants Material3 disponibles

La bibliothèque media3-ui-compose-material3 fournit un ensemble de composables prédéfinis pour les commandes de lecteur courantes. Voici quelques-uns des composants que vous pouvez utiliser directement dans votre application :

Component Description
Player Lecteur avec commandes, barre de progression et cadre de contenu.
PlayPauseButton Bouton permettant d'alterner entre lecture et pause.
SeekBackButton Bouton permettant de revenir en arrière d'un incrément défini.
SeekForwardButton Bouton permettant d'avancer d'un incrément défini.
NextButton Bouton permettant de passer à l'élément multimédia suivant.
PreviousButton Bouton permettant de passer à l'élément multimédia précédent.
RepeatButton Bouton permettant de parcourir les modes de répétition.
ShuffleButton Bouton permettant d'activer ou de désactiver le mode aléatoire.
MuteButton Bouton permettant de couper et de réactiver le son du lecteur.
PositionAndDurationText Composable de texte qui affiche la position actuelle et la durée totale.
PositionText Composable de texte qui affiche la position actuelle.
DurationText Composable de texte qui affiche la durée totale.
RemainingDurationText Composable de texte qui affiche la durée restante.
ProgressSlider Curseur qui affiche la progression de la lecture et permet à l'utilisateur de rechercher.

Cette liste n'est pas exhaustive. Pour connaître tous les composants disponibles, consultez la documentation de référence de l'API de la bibliothèque.

Deux autres composables prédéfinis dont vous aurez probablement besoin sont liés à la gestion de la surface et se trouvent dans le module media3-ui-compose, car ils ne possèdent pas de thème Material.

Component Description
ContentFrame Surface permettant d'afficher du contenu multimédia qui gère le format d'image, le redimensionnement et un obturateur
PlayerSurface Surface brute qui encapsule SurfaceView et TextureView dans AndroidView