Yüzey türleri

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çin
  • video_decoder_gl_surface_view (VideoDecoderGLSurfaceView): Uzantı oluşturma araçlarını kullanarak video oluşturma
  • none: 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:

PlayerSurface, Oluştur kullanıcı arayüzü ağacınızda bulunmadığı için none türü yoktur.