Material3 Compose

Библиотека media3-ui-compose-material3 обрабатывает как управление состоянием, так и стилизацию Material3 внутри себя. Для получения дополнительной информации о том, какую библиотеку использовать, см. обзор 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

Хотя media3-ui-compose-material3 предоставляет компоненты, соответствующие дизайну Material3, у вас по-прежнему есть полный контроль над оформлением. Вы можете настраивать цвета, типографику и формы, обернув пользовательский интерфейс плеера в MaterialTheme .

Например, чтобы изменить цвет PlayPauseButton , вы можете указать пользовательскую 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)
}

Доступные материалы3 Компоненты

Библиотека media3-ui-compose-material3 предоставляет набор готовых компонентов для распространенных элементов управления проигрывателем. Вот некоторые из компонентов, которые вы можете использовать непосредственно в своем приложении:

Компонент Описание
PlayPauseButton Кнопка, переключающая режимы воспроизведения и паузы.
SeekBackButton Кнопка для перемотки назад на заданный шаг.
SeekForwardButton Кнопка для перемотки вперед на заданный шаг.
NextButton Кнопка для перехода к следующему медиафайлу.
PreviousButton Кнопка для перехода к предыдущему медиафайлу.
RepeatButton Кнопка для переключения между режимами повтора.
ShuffleButton Кнопка для переключения режима случайного воспроизведения.
MuteButton Кнопка для включения и выключения звука плеера.
PositionAndDurationText Текстовый элемент, отображающий текущую позицию и общую продолжительность.
PositionText Текстовый элемент, отображающий текущую позицию.
DurationText Текстовый элемент, отображающий общую продолжительность.
RemainingDurationText Текстовый элемент, отображающий оставшееся время.
ProgressSlider Ползунок, отображающий ход воспроизведения и позволяющий пользователю перематывать запись.

Это не исчерпывающий список. Для получения информации обо всех доступных компонентах обратитесь к справочнику API библиотеки.

Два других предварительно созданных компонента Composable, которые вам, вероятно, понадобятся, связаны с управлением поверхностью и находятся в модуле media3-ui-compose поскольку в них отсутствует поддержка тем Material Design.

Компонент Описание
ContentFrame Поверхность для отображения медиаконтента, которая управляет соотношением сторон, изменением размера и имеет затвор.
PlayerSurface Сырая поверхность, которая оборачивает SurfaceView и TextureView в AndroidView