Compose ベースの UI のスタートガイド

依存関係を追加する

Media3 ライブラリには、Jetpack Compose ベースの UI モジュールが 2 つ含まれています。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 を優先してアプリを開発するか、ビューの使用から移行することを強くおすすめします。

完全な Compose デモアプリ

media3-ui-compose ライブラリには、すぐに使用できる Composable(ボタン、インジケーター、画像、ダイアログなど)は含まれていませんが、PlayerViewAndroidView でラップするなどの相互運用性ソリューションを回避する、Compose で完全に記述されたデモアプリがあります。このデモアプリは、media3-ui-compose モジュールの UI 状態ホルダー クラスを利用し、Compose Material3 ライブラリを使用しています。

どのライブラリが必要ですか?

必要なカスタマイズのレベルに応じて、2 つの Media3 Compose ライブラリから選択できます。違いを理解するには、UI 状態生成パイプラインBusiness logic → UI logic → UI)について考えるとわかりやすくなります。

UI コンポーネントを完全に制御するには media3-ui-compose を使用します。

このライブラリは Business logic → UI logic 接続を提供します。PlayerSurfaceContentFrame などの基盤となるコンポーネントと、状態ホルダー クラス(PlayPauseButtonState)を使用して、Player 状態を UI 状態に変換します。

このライブラリには、すぐに使用できるマテリアル デザイン コンポーネントは含まれていません。独自の UI コンポーネントを構築してスタイルを設定する責任はお客様にあります。ルック アンド フィールを最大限に制御できるため、高度にカスタマイズされたデザイン システムがある場合に最適です。

media3-ui-compose-material3 を使用して、Material Design との統合を高速化します。

このライブラリは、パイプラインの最後の UI 部分を提供します。media3-ui-compose に依存し、Material3 コンポーネントでスタイル設定された事前構築済みのコンポーズ可能な関数が含まれています。これにより、ボタンやその他の UI 要素をゼロから作成する必要がなくなります。これらのコンポーネントのテーマ、色、アイコンはカスタマイズできますが、コア実装は提供されます。

スナップショット

機能 media3-ui-compose media3-ui-compose-material3
UI コンポーネント PlayerSurfaceContentFrame などの基本的な要素はありますが、事前にスタイル設定されたボタンやコントロールはありません。 PlayPauseButtonSeekBackButtonPositionAndDurationText など、マテリアル 3 スタイルの事前ビルド済み Composables の完全なセットを提供します。
状態管理 ロジックを管理する remember...State ホルダーを提供します。 状態を内部で管理しますが、必要に応じて状態ホルダーにアクセスすることもできます。
依存関係 androidx.compose.foundation media3-ui-composeandroidx.compose.material3com.google.android.material
主なユースケース カスタム デザイン システムでプレーヤー UI を構築する。デザインを自由に管理できる。 マテリアル デザイン 3 のガイドラインに沿ったプレーヤー UI をすばやく構築できます。