Material3 Compose

media3-ui-compose-material3 라이브러리는 재생 컨트롤, 진행률 표시줄, 현재 미디어 콘텐츠를 표시하는 Player 컴포저블을 제공합니다. 상태 관리와 Material3 스타일 지정을 모두 내부적으로 처리합니다. 사용할 라이브러리에 관한 자세한 내용은 Media3 Compose 개요를 참고하세요.

// The library provides styled UI components
Row {
  SeekBackButton(player)
  PlayPauseButton(player)
  SeekForwardButton(player)
}

// You can rearrange the composables into a layout that suits your needs
@Composable
fun PlayerProgressControlsLeftAligned(player: Player) {
  Row {
    PositionAndDurationText(player)
    ProgressSlider(player)
  }
}

@Composable
fun PlayerProgressControlsCenterAligned(player: Player) {
  Row {
    PositionText(player)
    ProgressSlider(player)
    DurationText(player)
  }
}

Material3 구성요소 맞춤설정

media3-ui-compose-material3는 Material3 디자인을 따르는 구성요소를 제공하지만 테마 설정은 여전히 완전히 제어할 수 있습니다. 플레이어 UI를 MaterialTheme로 래핑하여 색상, 서체, 도형을 맞춤설정할 수 있습니다.

예를 들어 PlayPauseButton의 색상을 변경하려면 맞춤 colorScheme를 제공하면 됩니다.

MaterialTheme(
  colorScheme =
    lightColorScheme(
      primary = Color.Red, // Change the primary color for the button
      onPrimary = Color.White,
    )
) {
  // The PlayPauseButton will now use the custom colors
  PlayPauseButton(player)
}

사용 가능한 Material3 구성요소

media3-ui-compose-material3 라이브러리는 일반적인 재생 컨트롤을 위한 사전 빌드된 컴포저블 집합을 제공합니다. 앱에서 직접 사용할 수 있는 구성요소는 다음과 같습니다.

구성요소 설명
Player 컨트롤, 진행률 표시줄, 자막, 동영상 또는 아트워크용 콘텐츠 프레임이 있는 플레이어입니다.
PlayPauseButton 재생과 일시중지 간에 전환하고 버퍼링, 다시보기, 다시 시도 상태를 표시하는 버튼입니다.
SeekBackButton 정의된 증분만큼 뒤로 탐색하는 버튼입니다.
SeekForwardButton 정의된 증분만큼 앞으로 탐색하는 버튼입니다.
NextButton 다음 미디어 항목을 찾는 버튼입니다.
PreviousButton 이전 미디어 항목으로 이동하는 버튼입니다.
RepeatButton 반복 모드를 순환하는 버튼입니다.
ShuffleButton 셔플 모드를 전환하는 버튼입니다.
MuteButton 플레이어를 음소거 및 음소거 해제하는 버튼입니다.
LiveButton 라이브 스트림 재생이 라이브 에지에 있는지 여부를 나타내고 탭하면 라이브 에지를 찾는 버튼입니다.
PositionAndDurationText 현재 위치와 총 재생 시간을 표시하는 텍스트 컴포저블입니다.
PositionText 현재 위치를 표시하는 텍스트 컴포저블
DurationText 총 기간을 표시하는 텍스트 컴포저블
RemainingDurationText 남은 시간을 표시하는 텍스트 컴포저블입니다.
ProgressSlider 재생 진행률을 표시하고 사용자가 탐색할 수 있는 슬라이더입니다.
BufferingIndicator 플레이어가 버퍼링하는 동안 표시되는 진행 상태 표시기입니다.

이 목록은 일부에 불과합니다. 사용 가능한 모든 구성요소는 라이브러리의 API 참조를 참고하세요.

필요할 수 있는 다른 두 가지 사전 빌드된 컴포저블은 표시 경로 관리와 관련이 있으며 Material 테마 설정이 없으므로 media3-ui-compose 모듈에 있습니다.

구성요소 설명
ContentFrame 가로세로 비율 관리, 크기 조절, 셔터, 아트워크, 자막 슬롯을 처리하는 미디어 콘텐츠의 표시 영역입니다.
PlayerSurface AndroidView에서 SurfaceView 및 TextureView를 래핑하는 원시 표면입니다.