표시 경로 유형

이 페이지에서는 Media3로 동영상을 재생하는 데 사용할 수 있는 다양한 유형의 화면과 사용 사례에 적합한 유형을 선택하는 방법을 설명합니다. Android의 Surface 객체에 관해 자세히 알아보려면 이 그래픽 문서를 참고하세요.

PlayerView의 노출 영역 유형 선택

PlayerViewsurface_type 속성을 사용하면 동영상 재생에 사용되는 화면 유형을 설정할 수 있습니다. 허용되는 값은 다음과 같습니다.

  • surface_view(SurfaceView)
  • texture_view(TextureView)
  • spherical_gl_surface_view (SphericalGLSurfaceView) - 구형 동영상 재생
  • video_decoder_gl_surface_view (VideoDecoderGLSurfaceView) - 확장 프로그램 렌더러를 사용한 동영상 렌더링
  • none - 오디오 재생 전용이며, 서페이스를 만들면 비용이 많이 들 수 있으므로 서페이스를 만들지 않기 위해 사용해야 합니다.

뷰가 일반 동영상 재생용인 경우 surface_view 또는 texture_view을 사용해야 합니다. SurfaceView은 동영상 재생 시 TextureView에 비해 다음과 같은 여러 이점이 있습니다.

  • 많은 기기에서 전력 소비량이 크게 감소했습니다.
  • 더 정확한 프레임 타이밍으로 동영상 재생이 더 부드러워집니다.
  • 지원되는 기기에서 고화질 HDR 동영상 출력을 지원합니다.
  • DRM으로 보호된 콘텐츠를 재생할 때 보안 출력 지원
  • UI 레이어를 업스케일하는 Android TV 기기에서 디스플레이의 전체 해상도로 동영상 콘텐츠를 렌더링하는 기능

따라서 가능한 경우 TextureView보다 SurfaceView를 사용하는 것이 좋습니다. SurfaceView가 요구사항을 충족하지 않는 경우에만 TextureView를 사용해야 합니다. 한 가지 예는 다음 참고사항에 설명된 대로 Android 7.0 (API 수준 24) 이전에 동영상 화면의 부드러운 애니메이션이나 스크롤이 필요한 경우입니다. 이 경우 SDK_INT이 24 (Android 7.0) 미만인 경우에만 TextureView을 사용하고 그 외의 경우에는 SurfaceView을 사용하는 것이 좋습니다.

Compose에서 노출 영역 유형 선택

Compose에서 상호 운용성 솔루션은 AndroidView 컴포저블을 사용하여 SurfaceViewTextureView을 래핑합니다. 이에 해당하는 두 컴포저블은 AndroidExternalSurfaceAndroidEmbeddedExternalSurface입니다.

Media3 ui-compose 모듈은 수명 주기를 인식하는 방식으로 PlayerSurface에 연결하는 PlayerSurface 컴포저블을 제공합니다. 이 경우의 표시 유형은 다음과 같습니다.

none 유형은 Compose UI 트리에 PlayerSurface을 포함하지 않는 것에 해당하므로 없습니다.