Добавьте зависимость
Библиотека Media3 включает в себя два модуля пользовательского интерфейса на основе Jetpack Compose. Добавлять оба необязательно, поскольку модуль Material3 зависит от основного модуля.
Котлин
// Include only one of the following dependencies implementation("androidx.media3:media3-ui-compose:1.9.0") implementation("androidx.media3:media3-ui-compose-material3:1.9.0")
Классный
// Include only one of the following dependencies implementation "androidx.media3:media3-ui-compose:1.9.0" implementation "androidx.media3:media3-ui-compose-material3:1.9.0"
Мы настоятельно рекомендуем разрабатывать ваше приложение, используя подход Compose-first, или перейти с использования Views .
Демонстрационное приложение Fully Compose
Хотя библиотека media3-ui-compose не включает в себя готовые элементы Compose (такие как кнопки, индикаторы, изображения или диалоговые окна), вы можете найти демонстрационное приложение, полностью написанное на Compose , которое избегает каких-либо решений по обеспечению совместимости, таких как обертывание PlayerView в AndroidView . Демонстрационное приложение использует классы UI state holder из модуля media3-ui-compose и библиотеку Compose Material3 .
Какая библиотека мне нужна?
В зависимости от необходимого уровня настройки вы можете выбрать одну из двух библиотек Media3 Compose. Чтобы понять разницу, полезно представить себе конвейер создания состояния пользовательского интерфейса : Business logic → UI logic → UI .
Используйте media3-ui-compose для полного контроля над компонентами вашего пользовательского интерфейса.
Эта библиотека обеспечивает связь между Business logic → UI logic . Она содержит базовые компоненты, такие как PlayerSurface и ContentFrame , а также классы-хранилища состояний (например, PlayPauseButtonState ), которые преобразуют состояние Player в состояние пользовательского интерфейса.
Эта библиотека не предоставляет готовых компонентов Material Design. Вы сами отвечаете за создание и стилизацию компонентов пользовательского интерфейса. Она обеспечивает максимальный контроль над внешним видом, что делает её идеальной для систем дизайна с высокой степенью кастомизации.
Используйте media3-ui-compose-material3 для более быстрой интеграции с Material Design.
Эта библиотека предоставляет заключительную часть конвейера UI . Она зависит от media3-ui-compose и включает в себя предварительно созданные функции Composable, стилизованные с помощью компонентов Material3 . Это избавляет вас от необходимости создавать собственные кнопки и другие элементы пользовательского интерфейса с нуля. Вы по-прежнему можете настраивать тему, цвета и значки этих компонентов, но основная реализация предоставляется автоматически.
Вкратце
| Особенность | media3-ui-compose | media3-ui-compose-material3 |
|---|---|---|
| Компоненты пользовательского интерфейса | Встроенные элементы, такие как PlayerSurface и ContentFrame , отсутствуют, но нет предварительно оформленных кнопок или элементов управления. | Предоставляет полный набор предварительно созданных Composables в стиле Material3, таких как PlayPauseButton , SeekBackButton , PositionAndDurationText и т. д. |
| Государственное управление | Предоставляет remember...State управлять логикой. | Управление состоянием осуществляется внутри системы, но при необходимости вы все равно можете получить доступ к владельцам состояния. |
| Зависимости | androidx.compose.foundation | media3-ui-compose , androidx.compose.material3 , com.google.android.material |
| Основной вариант использования | Создание пользовательского интерфейса игрока с помощью собственной системы дизайна. Полный контроль над внешним видом и функциональностью. | Быстрое создание пользовательского интерфейса игрока в соответствии с принципами Material Design 3. |