इस पेज पर, अलग-अलग तरह के ऐसे प्लैटफ़ॉर्म के बारे में बताया गया है जिनका इस्तेमाल 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
से लाइफ़साइकल के हिसाब से लिंक करता है. इस मामले में, प्लैटफ़ॉर्म के टाइप ये हैं:
SURFACE_TYPE_SURFACE_VIEW
(असल मेंAndroidExternalSurface
)SURFACE_TYPE_TEXTURE_VIEW
(बेहतर तरीके सेAndroidEmbeddedExternalSurface
)
none
टाइप नहीं है, क्योंकि इसका मतलब होगा कि आपने Compose के यूज़र इंटरफ़ेस (यूआई) ट्री में PlayerSurface
को शामिल नहीं किया है.