Material3 Compose

La biblioteca media3-ui-compose-material3 controla internamente la administración del estado y el diseño de Material 3. Para obtener más información sobre qué biblioteca usar, consulta la descripción general 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)
  }
}

Personaliza los componentes de Material 3

Si bien media3-ui-compose-material3 proporciona componentes que siguen el diseño de Material 3, aún tienes control total sobre la aplicación de temas. Puedes personalizar los colores, la tipografía y las formas envolviendo la IU del reproductor en un MaterialTheme.

Por ejemplo, para cambiar el color de PlayPauseButton, puedes proporcionar un colorScheme personalizado:

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

Componentes de Material 3 disponibles

La biblioteca de media3-ui-compose-material3 proporciona un conjunto de elementos componibles prediseñados para los controles comunes del reproductor. Estos son algunos de los componentes que puedes usar directamente en tu app:

Componente Descripción
PlayPauseButton Botón que alterna entre reproducir y pausar.
SeekBackButton Botón para retroceder en un incremento definido.
SeekForwardButton Botón para avanzar en un incremento definido.
NextButton Botón para buscar el elemento multimedia siguiente.
PreviousButton Botón para buscar el elemento multimedia anterior.
RepeatButton Botón para cambiar de un modo de repetición a otro.
ShuffleButton Botón para activar o desactivar el modo aleatorio.
MuteButton Botón para silenciar y activar el sonido del reproductor.
PositionAndDurationText Elemento componible de texto que muestra la posición actual y la duración total.
PositionText Elemento componible de texto que muestra la posición actual.
DurationText Elemento componible de texto que muestra la duración total.
RemainingDurationText Elemento componible de texto que muestra la duración restante.
ProgressSlider Un control deslizante que muestra el progreso de la reproducción y permite que el usuario busque un punto específico.

Esta no es una lista exhaustiva. Consulta la referencia de la API de la biblioteca para ver todos los componentes disponibles.

Otros dos elementos precompilados que probablemente necesites están relacionados con la administración de plataformas y se encuentran en el módulo media3-ui-compose porque no poseen temas de Material.

Componente Descripción
ContentFrame Plataforma para mostrar contenido multimedia que controla la administración de la relación de aspecto, el cambio de tamaño y un obturador
PlayerSurface Plataforma sin procesar que une SurfaceView y TextureView en AndroidView