Material3 Compose

Библиотека media3-ui-compose-material3 предоставляет компонуемый элемент Player, который показывает элементы управления проигрывателем, индикатор выполнения и текущий медиаконтент. Он управляет состоянием и стилем 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 Design, вы по-прежнему можете полностью контролировать их оформление. Вы можете настроить цвета, типографику и формы, обернув интерфейс проигрывателя в тег 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)
}

Доступные компоненты Material3

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

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

Это неполный список. Список всех доступных компонентов приведен в справочной документации по API библиотеки.

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

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