Compose 기반 UI 시작하기

종속 항목 추가

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 우선 방식으로 앱을 개발하거나 뷰 사용에서 이전하는 것이 좋습니다.

완전 Compose 데모 앱

media3-ui-compose 라이브러리에는 기본적으로 컴포저블 (예: 버튼, 표시기, 이미지 또는 대화상자)이 포함되어 있지 않지만 PlayerViewAndroidView로 래핑하는 것과 같은 상호 운용성 솔루션을 방지하는 Compose로 완전히 작성된 데모 앱을 찾을 수 있습니다. 데모 앱은 media3-ui-compose 모듈의 UI 상태 홀더 클래스를 활용하고 Compose Material3 라이브러리를 사용합니다.

어떤 라이브러리가 필요한가요?

필요한 맞춤설정 수준에 따라 두 가지 Media3 Compose 라이브러리 중에서 선택할 수 있습니다. 차이점을 이해하려면 UI 상태 생성 파이프라인(Business logic → UI logic → UI)을 생각해 보는 것이 좋습니다.

UI 구성요소를 완전히 제어하려면 media3-ui-compose를 사용하세요.

이 라이브러리는 Business logic → UI logic 연결을 제공합니다. PlayerSurfaceContentFrame과 같은 기본 구성요소와 상태 보유자 클래스 (예: PlayPauseButtonState)를 사용하여 Player 상태를 UI 상태로 변환합니다.

이 라이브러리는 즉시 사용 가능한 Material Design 구성요소를 제공하지 않습니다. UI 구성요소를 직접 빌드하고 스타일을 지정해야 합니다. 디자인과 분위기를 최대한 제어할 수 있으므로 맞춤 디자인 시스템이 있는 경우에 적합합니다.

media3-ui-compose-material3을 사용하여 Material Design과 더 빠르게 통합하세요.

이 라이브러리는 파이프라인의 최종 UI 부분을 제공합니다. media3-ui-compose에 종속되며 Material3 구성요소로 스타일이 지정된 사전 빌드된 컴포저블 함수를 포함합니다. 처음부터 버튼과 기타 UI 요소를 직접 빌드할 필요가 없습니다. 이러한 구성요소의 테마, 색상, 아이콘은 맞춤설정할 수 있지만 핵심 구현은 제공됩니다.

한눈에 보기

기능 media3-ui-compose media3-ui-compose-material3
UI 구성요소 PlayerSurface, ContentFrame과 같은 기본 요소는 있지만 사전 스타일이 지정된 버튼이나 컨트롤은 없습니다. PlayPauseButton, SeekBackButton, PositionAndDurationText 등 사전 빌드된 Material 3 스타일의 Composables 전체 세트를 제공합니다.
상태 관리 로직을 관리할 remember...State 보유자를 제공합니다. 내부적으로 상태를 관리하지만 필요한 경우 상태 홀더에 액세스할 수 있습니다.
종속 항목 androidx.compose.foundation media3-ui-compose, androidx.compose.material3, com.google.android.material
기본 사용 사례 맞춤 디자인 시스템으로 플레이어 UI를 빌드합니다. 디자인과 분위기를 완전하게 관리할 수 있습니다. Material Design 3 가이드라인을 따르는 플레이어 UI를 빠르게 빌드합니다.