뷰 기반 UI 시작하기

종속 항목 추가

Kotlin

implementation("androidx.media3:media3-ui:1.6.0")

Groovy

implementation "androidx.media3:media3-ui:1.6.0"

PlayerView

가장 중요한 구성요소는 미디어 재생을 위한 뷰인 PlayerView입니다. PlayerView는 재생 중 동영상, 이미지, 자막, 앨범 아트 및 재생 컨트롤을 표시합니다.

PlayerView에는 Player 인스턴스를 연결 및 연결 해제 (null 전달)하는 setPlayer() 메서드가 있습니다.

PlayerView는 동영상, 이미지, 오디오 재생 모두에 사용할 수 있습니다. 동영상 재생의 경우 동영상과 자막을 렌더링하고 이미지 재생의 경우 비트맵을 렌더링하며 오디오 파일에 메타데이터로 포함된 아트워크를 표시할 수 있습니다. 다른 UI 구성요소와 마찬가지로 레이아웃 파일에 포함할 수 있습니다. 예를 들어 PlayerView는 다음 XML에 포함될 수 있습니다.

<androidx.media3.ui.PlayerView
    android:id="@+id/player_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:show_buffering="when_playing"
    app:show_shuffle_button="true"/>

위 스니펫은 PlayerView가 여러 속성을 제공함을 보여줍니다. 이러한 속성은 뷰의 동작과 모양과 느낌을 맞춤설정하는 데 사용할 수 있습니다. 이러한 속성의 대부분에는 런타임에 뷰를 맞춤설정하는 데 사용할 수 있는 상응하는 setter 메서드가 있습니다. PlayerView 문서에는 이러한 속성과 setter 메서드가 더 자세히 나와 있습니다.

뷰가 레이아웃 파일에서 선언되면 활동의 onCreate 메서드에서 조회할 수 있습니다.

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  // ...
  playerView = findViewById(R.id.player_view)
}

자바

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  // ...
  playerView = findViewById(R.id.player_view);
}

플레이어가 초기화되면 setPlayer를 호출하여 뷰에 연결할 수 있습니다.

Kotlin

// Instantiate the player.
val player = ExoPlayer.Builder(context).build()
// Attach player to the view.
playerView.player = player
// Set the media item to be played.
player.setMediaItem(mediaItem)
// Prepare the player.
player.prepare()

자바

// Instantiate the player.
player = new ExoPlayer.Builder(context).build();
// Attach player to the view.
playerView.setPlayer(player);
// Set the media item to be played.
player.setMediaItem(mediaItem);
// Prepare the player.
player.prepare();

PlayerControlView

PlayerControlView는 진행률 표시줄과 재생을 제어하는 버튼이 포함된 PlayerView 하위 뷰 중 하나입니다. PlayerControlViewPlayerView 외부에서 독립형 구성요소로 사용하기 위한 것이 아닙니다. PlayerView에서 속성을 설정하거나 (PlayerControlView에 전달됨) android:id="@id/exo_controller로 맞춤 컨트롤러를 제공하여 맞춤설정할 수 있습니다.

노출 영역 유형 선택

PlayerViewsurface_type 속성을 사용하면 동영상 재생에 사용되는 노출 영역 유형을 설정할 수 있습니다. 허용되는 값은 surface_view, texture_view, spherical_gl_surface_view (구형 동영상 재생의 특수 값), video_decoder_gl_surface_view (확장 프로그램 렌더러를 사용한 동영상 렌더링용), none (오디오 재생 전용)입니다. 선택할 표시 경로 유형에 관한 자세한 내용은 표시 경로 페이지를 참고하세요.