Jenis platform

Halaman ini menjelaskan berbagai jenis platform yang dapat digunakan untuk pemutaran video dengan Media3, dan cara memilih jenis yang tepat untuk kasus penggunaan Anda. Untuk mengetahui lebih lanjut objek Platform di Android, baca dokumentasi grafik ini.

Memilih jenis platform untuk PlayerView

Atribut surface_type dari PlayerView memungkinkan Anda menetapkan jenis platform yang digunakan untuk pemutaran video. Nilai yang diizinkan adalah:

  • surface_view (SurfaceView)
  • texture_view (TextureView)
  • spherical_gl_surface_view (SphericalGLSurfaceView) - untuk pemutaran video sferis
  • video_decoder_gl_surface_view (VideoDecoderGLSurfaceView) - rendering video menggunakan perender ekstensi
  • none - yang hanya untuk pemutaran audio dan harus digunakan agar tidak perlu membuat platform karena melakukannya dapat mahal.

Jika tampilan ditujukan untuk pemutaran video reguler, surface_view atau texture_view harus digunakan. SurfaceView memiliki sejumlah manfaat dibandingkan TextureView untuk pemutaran video:

  • Mengurangi konsumsi daya secara signifikan di banyak perangkat.
  • Pengaturan waktu frame yang lebih akurat, sehingga menghasilkan pemutaran video yang lebih lancar.
  • Dukungan untuk output video HDR berkualitas lebih tinggi di perangkat yang kompatibel.
  • Dukungan untuk output yang aman saat memutar konten yang dilindungi DRM.
  • Kemampuan untuk merender konten video pada resolusi penuh layar di perangkat Android TV yang meningkatkan kualitas lapisan UI.

Oleh karena itu, SurfaceView harus lebih diutamakan daripada TextureView jika memungkinkan. TextureView hanya boleh digunakan jika SurfaceView tidak memenuhi kebutuhan Anda. Salah satu contohnya adalah saat animasi atau scroll permukaan video yang lancar diperlukan sebelum Android 7.0 (API level 24), seperti yang dijelaskan dalam catatan berikut. Untuk kasus ini, sebaiknya gunakan TextureView hanya jika SDK_INT kurang dari 24 (Android 7.0) dan SurfaceView jika tidak.

Memilih jenis platform di Compose

Di Compose, solusi interop menggunakan Composable AndroidView untuk menggabungkan SurfaceView dan TextureView. Dua Composable yang sesuai dengan AndroidExternalSurface dan AndroidEmbeddedExternalSurface.

Modul ui-compose Media3 menyediakan Composable PlayerSurface yang menautkan Player ke Surface dengan cara yang mendukung siklus proses. Jenis platform dalam hal ini adalah:

Tidak ada jenis none, karena hal itu akan sesuai dengan tidak menyertakan PlayerSurface dalam hierarki UI Compose Anda.