新增依附元件
Media3 程式庫包含兩個以 Jetpack Compose 為基礎的 UI 模組。您不必同時新增這兩者,因為 Material3 依附於核心。
Kotlin
// 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")
Groovy
// 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 為優先開發應用程式,或從使用 Views 遷移。
完整的 Compose 示範應用程式
雖然 media3-ui-compose 程式庫不包含現成的 Composable (例如按鈕、指標、圖片或對話方塊),但您可以找到完全以 Compose 編寫的示範應用程式,避免使用任何互通性解決方案,例如將 PlayerView 包裝在 AndroidView 中。這個範例應用程式會使用 media3-ui-compose 模組中的 UI 狀態持有者類別,並採用 Compose Material3 程式庫。
我需要哪個程式庫?
您可以根據所需的自訂程度,選擇兩種 Media3 Compose 程式庫。如要瞭解兩者差異,請參考UI 狀態產生管道:Business logic → UI logic → UI。
使用 media3-ui-compose 完全控管 UI 元件。
這個程式庫提供 Business logic → UI logic 連線。其中包含 PlayerSurface 和 ContentFrame 等基礎元件,以及狀態持有者類別 (例如 PlayPauseButtonState),可將 Player 狀態轉換為 UI 狀態。
這個程式庫「不會」提供可直接使用的 Material Design 元件。您必須自行建構 UI 元件並設定樣式。可讓您全面掌控外觀和風格,因此非常適合採用高度自訂設計系統的網站。
使用 media3-ui-compose-material3 可加快與 Material Design 的整合速度。
這個程式庫提供管道的最後一個 UI 部分。這項功能依附於 media3-ui-compose,並內建以Material 3 元件設定樣式的可組合函式。您不必從頭建構自己的按鈕和其他 UI 元素。您仍可自訂這些元件的主題、顏色和圖示,但核心實作部分是由系統提供。
資訊一覽
| 功能 | media3-ui-compose |
media3-ui-compose-material3 |
|---|---|---|
| UI 元件 | 基礎元素,例如 PlayerSurface 和 ContentFrame,但沒有預先設定樣式的按鈕或控制項。 |
提供一整套預先建構的 Material 3 樣式 Composables,例如 PlayPauseButton、SeekBackButton、PositionAndDurationText 等。 |
| 狀態管理 | 提供 remember...State 持有人管理邏輯。 |
在內部管理狀態,但您仍可視需要存取狀態容器。 |
| 依附元件 | androidx.compose.foundation |
media3-ui-compose、androidx.compose.material3、com.google.android.material |
| 主要用途 | 使用自訂設計系統建構播放器 UI。全面掌控外觀和風格。 | 快速建構符合 Material Design 3 指南的播放器 UI。 |