Bu sayfada, Media3 ile video oynatma için kullanılabilecek farklı yüzey türleri ve kullanım alanınız için doğru türü nasıl seçeceğiniz açıklanmaktadır. Android'deki Surface nesneleri hakkında daha fazla bilgi edinmek için bu grafik dokümanlarını okuyun.
PlayerView için bir platform türü seçin
PlayerView
öğesinin surface_type
özelliği, video oynatma için kullanılan yüzeyin türünü ayarlamanıza olanak tanır. İzin verilen değerler şunlardır:
surface_view
(SurfaceView
)texture_view
(TextureView
)spherical_gl_surface_view
(SphericalGLSurfaceView
) - küresel video oynatma içinvideo_decoder_gl_surface_view
(VideoDecoderGLSurfaceView
): Uzantı oluşturma araçlarını kullanarak video oluşturmanone
: Yalnızca ses oynatmak için kullanılır ve pahalı olabileceğinden yüzey oluşturmak zorunda kalmamak için kullanılmalıdır.
Görünüm normal video oynatma içinse surface_view
veya texture_view
kullanılmalıdır. SurfaceView
, video oynatma için TextureView
'e kıyasla birçok avantaja sahiptir:
- Birçok cihazda düşük güç tüketimi
- Daha doğru kare zamanlaması sayesinde video daha akıcı oynatılır.
- Uygun özellikli cihazlarda daha yüksek kaliteli HDR video çıkışı desteği.
- DRM korumalı içerik oynatırken güvenli çıkış desteği.
- Kullanıcı arayüzü katmanını ölçeklendiren Android TV cihazlarda video içeriğini ekranın tam çözünürlüğünde oluşturma olanağı.
Bu nedenle, mümkün olduğunda SurfaceView
yerine TextureView
tercih edilmelidir.
TextureView
yalnızca SurfaceView
ihtiyaçlarınızı karşılamıyorsa kullanılmalıdır. Örneğin, aşağıdaki notlarda açıklandığı gibi Android 7.0 (API düzeyi 24) öncesinde video yüzeyinin sorunsuz animasyonlarla veya kaydırmayla gösterilmesi gerekir. Bu durumda, yalnızca SDK_INT
24'ten azsa (Android 7.0) TextureView
, aksi takdirde SurfaceView
kullanılması tercih edilir.
Oluştur'da yüzey türü seçme
Compose'da birlikte çalışabilirlik çözümü, SurfaceView
ve TextureView
öğelerini sarmalamak için AndroidView
Composable'ı kullanır. Buna karşılık gelen iki Composables: AndroidExternalSurface
ve AndroidEmbeddedExternalSurface
.
Media3 ui-compose
modülü, Player
öğesini yaşam döngüsü bilinciyle bir Surface
öğesine bağlayan bir PlayerSurface
Composable sağlar. Bu durumda yüzey türleri şunlardır:
SURFACE_TYPE_SURFACE_VIEW
(etkili bir şekildeAndroidExternalSurface
)SURFACE_TYPE_TEXTURE_VIEW
(etkili bir şekildeAndroidEmbeddedExternalSurface
)
PlayerSurface
, Oluştur kullanıcı arayüzü ağacınızda bulunmadığı için none
türü yoktur.