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 sferisvideo_decoder_gl_surface_view
(VideoDecoderGLSurfaceView
) - rendering video menggunakan perender ekstensinone
- 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:
SURFACE_TYPE_SURFACE_VIEW
(secara efektifAndroidExternalSurface
)SURFACE_TYPE_TEXTURE_VIEW
(secara efektifAndroidEmbeddedExternalSurface
)
Tidak ada jenis none
, karena hal itu akan sesuai dengan tidak menyertakan
PlayerSurface
dalam hierarki UI Compose Anda.