अलग-अलग तरह के प्लैटफ़ॉर्म

इस पेज पर, अलग-अलग तरह के ऐसे प्लैटफ़ॉर्म के बारे में बताया गया है जिनका इस्तेमाल Media3 की मदद से वीडियो चलाने के लिए किया जा सकता है. साथ ही, अपने इस्तेमाल के उदाहरण के लिए सही प्लैटफ़ॉर्म चुनने का तरीका भी बताया गया है. Android में Surface ऑब्जेक्ट के बारे में ज़्यादा जानने के लिए, यह ग्राफ़िक दस्तावेज़ पढ़ें.

PlayerView के लिए प्लैटफ़ॉर्म टाइप चुनना

PlayerView के surface_type एट्रिब्यूट की मदद से, वीडियो चलाने के लिए इस्तेमाल किए जाने वाले प्लैटफ़ॉर्म का टाइप सेट किया जा सकता है. इन वैल्यू का इस्तेमाल किया जा सकता है:

  • surface_view (SurfaceView)
  • texture_view (TextureView)
  • spherical_gl_surface_view (SphericalGLSurfaceView) - गोलाकार वीडियो चलाने के लिए
  • video_decoder_gl_surface_view (VideoDecoderGLSurfaceView) - एक्सटेंशन रेंडरर का इस्तेमाल करके वीडियो रेंडर करना
  • none - यह सिर्फ़ ऑडियो चलाने के लिए है. इसका इस्तेमाल, प्लैटफ़ॉर्म बनाने से बचने के लिए किया जाना चाहिए, क्योंकि ऐसा करना महंगा हो सकता है.

अगर व्यू, सामान्य वीडियो चलाने के लिए है, तो surface_view या texture_view का इस्तेमाल किया जाना चाहिए. वीडियो चलाने के लिए, SurfaceView के मुकाबले TextureView के कई फ़ायदे हैं:

  • कई डिवाइसों पर बैटरी की खपत काफ़ी कम होती है.
  • फ़्रेम की टाइमिंग ज़्यादा सटीक होती है. इससे वीडियो प्लेबैक बेहतर तरीके से होता है.
  • जिन डिवाइसों पर यह सुविधा काम करती है उन पर अच्छी क्वालिटी में एचडीआर वीडियो आउटपुट की सुविधा.
  • डीआरएम (डिजिटल राइट मैनेजमेंट) से सुरक्षित कॉन्टेंट चलाते समय, सुरक्षित आउटपुट के लिए सहायता.
  • Android TV डिवाइसों पर, वीडियो कॉन्टेंट को डिसप्ले के पूरे रिज़ॉल्यूशन में रेंडर करने की सुविधा. ये डिवाइस, यूज़र इंटरफ़ेस (यूआई) लेयर को अपस्केल करते हैं.

इसलिए, जहां तक हो सके SurfaceView को TextureView के बजाय प्राथमिकता दी जानी चाहिए. TextureView का इस्तेमाल सिर्फ़ तब किया जाना चाहिए, जब SurfaceView आपकी ज़रूरतों को पूरा न करता हो. एक उदाहरण के लिए, Android 7.0 (एपीआई लेवल 24) से पहले, वीडियो के प्लैटफ़ॉर्म पर ऐनिमेशन या स्क्रोल करने की सुविधा को आसानी से इस्तेमाल किया जा सकता है. इस बारे में यहां दिए गए नोट में बताया गया है. इस मामले में, TextureView का इस्तेमाल सिर्फ़ तब करना चाहिए, जब SDK_INT 24 (Android 7.0) से कम हो. इसके अलावा, SurfaceView का इस्तेमाल करें.

Compose में कोई प्लैटफ़ॉर्म चुनना

Compose में, इंटरऑपरेबल समाधान, SurfaceView और TextureView को रैप करने के लिए, AndroidView Composable का इस्तेमाल करता है. AndroidExternalSurface और AndroidEmbeddedExternalSurface से जुड़े दो Composables.

Media3 ui-compose मॉड्यूल, PlayerSurface Composable उपलब्ध कराता है. यह Player को Surface से लाइफ़साइकल के हिसाब से लिंक करता है. इस मामले में, प्लैटफ़ॉर्म के टाइप ये हैं:

none टाइप नहीं है, क्योंकि इसका मतलब होगा कि आपने Compose के यूज़र इंटरफ़ेस (यूआई) ट्री में PlayerSurface को शामिल नहीं किया है.