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

依存関係を追加する

Media3 ライブラリには、Jetpack Compose ベースの UI モジュールが 2 つ含まれています。Material3 モジュールはコア モジュールに依存しているため、両方を追加する必要はありません。

Kotlin

// Include only one of the following dependencies
implementation("androidx.media3:media3-ui-compose:1.10.0")
implementation("androidx.media3:media3-ui-compose-material3:1.10.0")

Groovy

// Include only one of the following dependencies
implementation "androidx.media3:media3-ui-compose:1.10.0"
implementation "androidx.media3:media3-ui-compose-material3:1.10.0"

Compose を優先した方法でアプリを開発するか、 ビューの使用から移行することを強くおすすめします。

完全な Compose デモアプリ

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

必要なライブラリ

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

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

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

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

マテリアル デザインとの統合を迅速に行うには、media3-ui-compose-material3を使用します。

このライブラリは、パイプラインの最後の UI 部分を提供します。 media3-ui-compose に依存し、 Material3 コンポーネントでスタイル設定された事前構築済みのコンポーザブル関数が含まれています。これには、動画、コントロール、 プログレス バーを備えた包括的なメディア再生エクスペリエンスを提供する Player コンポーザブルが含まれます。独自のボタンやその他の UI 要素をゼロから構築する必要がなくなります。これらのコンポーネントのテーマ、色、アイコンはカスタマイズできますが、コア実装は提供されます。

概要

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