뷰 기반 UI 시작하기

종속 항목 추가

Kotlin

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

Groovy

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

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 메서드가 자세히 나와 있습니다.

더 편안한 사용자 환경을 위해 ExoPlayer를 사용하는 경우 keepScreenOn Android 속성을 추가하거나 절전 모드 해제 잠금을 설정하는 것이 좋습니다. 백그라운드 작업 페이지에서 기기를 절전 모드로 전환하지 않는 다른 작업을 조사할 수 있습니다.

android:keepScreenOn="true"

뷰가 레이아웃 파일에 선언되면 활동의 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 (오디오 재생 전용)입니다. 선택할 플랫폼 유형에 대한 자세한 내용은 플랫폼 페이지를 참고하세요.