Библиотека 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 |