انواع سطح، انواع سطح

این صفحه انواع مختلف سطوحی را که می‌توانند برای پخش ویدیو با Media3 استفاده شوند، و نحوه انتخاب نوع مناسب برای مورد استفاده شما را شرح می‌دهد. برای کسب اطلاعات بیشتر در مورد اشیاء سطحی در اندروید، این مستندات گرافیکی را مطالعه کنید.

یک نوع سطح برای PlayerView انتخاب کنید

ویژگی surface_type از PlayerView به شما امکان می‌دهد نوع سطح مورد استفاده برای پخش ویدیو را تنظیم کنید. مقادیر مجاز عبارتند از:

  • 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.
  • قابلیت رندر کردن محتوای ویدیویی با وضوح کامل نمایشگر در دستگاه‌های اندروید تی‌وی که لایه رابط کاربری را ارتقا می‌دهد.

بنابراین، در صورت امکان، SurfaceView باید بر TextureView ترجیح داده شود. TextureView فقط در صورتی باید استفاده شود که SurfaceView نیازهای شما را برآورده نکند. یک مثال، جایی است که انیمیشن‌های روان یا پیمایش سطح ویدیو قبل از اندروید ۷.۰ (سطح API ۲۴) مورد نیاز است، همانطور که در یادداشت‌های بعدی توضیح داده شده است. در این مورد، ترجیحاً فقط زمانی TextureView استفاده شود که SDK_INT کمتر از ۲۴ باشد (اندروید ۷.۰) و در غیر این صورت SurfaceView استفاده شود.

یک نوع سطح را در Compose انتخاب کنید

در Compose، راهکار interop از AndroidView Composable برای پوشش SurfaceView و TextureView استفاده می‌کند. دو Composable که با آن مطابقت دارند AndroidExternalSurface و AndroidEmbeddedExternalSurface هستند.

ماژول Media3 ui-compose یک PlayerSurface Composable ارائه می‌دهد که Player را به شیوه‌ای آگاه از چرخه حیات به یک Surface متصل می‌کند. انواع سطوح در این مورد عبارتند از:

هیچ نوع none وجود ندارد، زیرا این به معنای عدم گنجاندن PlayerSurface در درخت رابط کاربری Compose شما خواهد بود.