Jetpack Media3 के बारे में जानकारी

Jetpack Media3, मीडिया लाइब्रेरी के लिए नया प्लैटफ़ॉर्म है. इसकी मदद से, Android ऐप्लिकेशन में ऑडियो और विज़ुअल का बेहतर अनुभव दिया जा सकता है. Media3, एक आसान आर्किटेक्चर उपलब्ध कराता है. इसमें डिवाइस की क्षमताओं के आधार पर, मनमुताबिक बदलाव करने, भरोसेमंद तरीके से काम करने, और ऑप्टिमाइज़ेशन की बेहतर सुविधाएं मिलती हैं. इससे फ़्रैगमेंटेशन की वजह से होने वाली जटिलता को कम किया जा सकता है.

इस दस्तावेज़ में, Media3 के साथ वीडियो चलाने और वीडियो में बदलाव करने के लिए, मुख्य एपीआई के बारे में जानकारी दी गई है.

वीडियो चलाने के कॉम्पोनेंट

Media3, प्लेबैक के इस्तेमाल के उदाहरणों के लिए कई मुख्य कॉम्पोनेंट उपलब्ध कराता है. अगर आपने Android की पिछली मीडिया लाइब्रेरी के साथ काम किया है, तो आपको इन कॉम्पोनेंट को बनाने वाली क्लास के बारे में पता होगा.

इस डायग्राम में दिखाया गया है कि ये कॉम्पोनेंट, किसी सामान्य ऐप्लिकेशन में एक साथ कैसे काम करते हैं.

Media3 का इस्तेमाल करने वाले मीडिया ऐप्लिकेशन के अलग-अलग कॉम्पोनेंट, कई आसान तरीकों से एक-दूसरे से कनेक्ट होते हैं. ऐसा इसलिए होता है, क्योंकि वे इंटरफ़ेस और क्लास शेयर करते हैं.
पहली इमेज: मीडिया ऐप्लिकेशन के कॉम्पोनेंट

मीडिया प्लेयर

मीडिया प्लेयर, आपके ऐप्लिकेशन का एक कॉम्पोनेंट होता है. इसकी मदद से, मीडिया फ़ाइलें चलाई जा सकती हैं. Media3 में, आपको ये चीज़ें मिलेंगी:

क्लास ब्यौरा लागू करने से जुड़ी जानकारी
Player Player एक ऐसा इंटरफ़ेस है जो मीडिया प्लेयर के लिए, सामान्य तौर पर उपलब्ध होने वाली सुविधाएं तय करता है. जैसे, चलाने, रोकने, और ढूंढने की सुविधा. Media3 में, Player इंटरफ़ेस एक सामान्य एपीआई है. इसे कई कॉम्पोनेंट लागू करते हैं या इस्तेमाल करते हैं. जैसे, MediaSession और MediaController.
ExoPlayer ExoPlayer, Media3 में Player इंटरफ़ेस का डिफ़ॉल्ट तरीका है.

Media3 ExoPlayer के बारे में ज़्यादा जानें

मीडिया सेशन

मीडिया सेशन, मीडिया प्लेयर के साथ इंटरैक्ट करने का एक सामान्य तरीका है. इससे ऐप्लिकेशन, बाहरी सोर्स पर मीडिया प्लेबैक का विज्ञापन दिखा पाता है. साथ ही, बाहरी सोर्स से प्लेबैक कंट्रोल करने के अनुरोध पा पाता है. Media3 में, आपको ये चीज़ें मिलेंगी:

क्लास ब्यौरा लागू करने से जुड़ी जानकारी
MediaSession मीडिया सेशन की मदद से, आपका ऐप्लिकेशन ऑडियो या वीडियो प्लेयर के साथ इंटरैक्ट कर सकता है. ये मीडिया को बाहरी तौर पर चलाने का विज्ञापन करते हैं और बाहरी सोर्स से प्लेबैक के निर्देश पाते हैं. Media3 में, किसी MediaSession को निर्देश लागू करने और मौजूदा स्थिति की जानकारी पाने के लिए, Player की ज़रूरत होती है.
MediaSessionService MediaSessionService, मीडिया सेशन और उससे जुड़े प्लेयर को आपके ऐप्लिकेशन के मुख्य Activity से अलग सेवा में रखता है, ताकि बैकग्राउंड में वीडियो चलाया जा सके.
MediaController MediaController क्लास का इस्तेमाल आम तौर पर, आपके ऐप्लिकेशन के बाहर से कमांड भेजने के लिए किया जाता है. उदाहरण के लिए, अन्य ऐप्लिकेशन या सिस्टम से. ये निर्देश, MediaSession से जुड़े Player को भेजे जाते हैं. MediaController क्लास, Player इंटरफ़ेस को लागू करती है. हालांकि, किसी तरीके को कॉल करते समय, MediaController कनेक्ट किए गए MediaSession को भेजा गया कमांड भेजता है. Google Assistant जैसे क्लाइंट ऐप्लिकेशन, कनेक्ट किए गए सेशन में कॉन्टेंट चलाने की सुविधा को कंट्रोल करने के लिए MediaController का इस्तेमाल कर सकते हैं.
MediaLibraryService MediaLibraryService, MediaSessionService की तरह ही होता है. हालांकि, इसमें अतिरिक्त एपीआई शामिल होते हैं, ताकि क्लाइंट ऐप्लिकेशन को अपनी कॉन्टेंट लाइब्रेरी दिखाई जा सके.
MediaBrowser MediaBrowser क्लास की मदद से, उपयोगकर्ता किसी मीडिया ऐप्लिकेशन की कॉन्टेंट लाइब्रेरी में जाकर, यह चुन सकता है कि उसे कौनसे आइटम चलाने हैं. MediaBrowser क्लास, MediaController और Player, दोनों इंटरफ़ेस लागू करती है. MediaController की तरह, Android Auto जैसे क्लाइंट ऐप्लिकेशन आम तौर पर MediaBrowser लागू करते हैं.

Media3 MediaSession के बारे में ज़्यादा जानें

यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट

Media3, वीडियो देखने और प्लेबैक को कंट्रोल करने के लिए डिफ़ॉल्ट यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट उपलब्ध कराता है.

क्लास ब्यौरा लागू करने से जुड़ी जानकारी
PlayerView वीडियो और प्लेबैक कंट्रोल दिखाने के लिए, डिफ़ॉल्ट View. ExoPlayer, MediaController या किसी अन्य कस्टम Player से कनेक्ट होता है.
PlayerSurface यह कंपोज़ेबल, वीडियो दिखाने के लिए खास तौर पर डिज़ाइन किया गया है Surface. यह किसी भी Player से कनेक्ट होता है, लेकिन इसमें प्लेबैक कंट्रोल नहीं होते. इसका इस्तेमाल सिर्फ़ फ़्रेम रेंडर करने के लिए किया जाता है. इसे अलग-अलग ContentScale टाइप के हिसाब से बदला जा सकता है. इस तरह के कई अन्य कंपोज़ेबल, Compose UI यूटिलिटी में मिल सकते हैं.

Media3 UI के बारे में ज़्यादा जानें

बदलाव करने से जुड़े कॉम्पोनेंट

Media3 में, मीडिया में बदलाव करने के लिए Transformer API शामिल हैं. इनका इस्तेमाल इन कामों के लिए किया जा सकता है:

  • ऑडियो और वीडियो प्रोसेसिंग, जैसे कि फ़िल्टर और इफ़ेक्ट जोड़ना
  • एचडीआर वीडियो और स्लो-मोशन वीडियो जैसे खास फ़ॉर्मैट को मैनेज करना
  • कंपोज़िशन, जैसे कि कई इनपुट फ़ाइलों को एक साथ जोड़ना
  • फ़ाइनल आउटपुट को किसी फ़ाइल में एक्सपोर्ट करना
क्लास ब्यौरा लागू करने से जुड़ी जानकारी
Transformer Transformer क्लास का इस्तेमाल करके, ट्रांसफ़ॉर्मेशन शुरू और बंद करें. साथ ही, चल रहे ट्रांसफ़ॉर्मेशन के प्रोग्रेस अपडेट देखें.
Effects Effects ऑब्जेक्ट, ऑडियो और वीडियो इफ़ेक्ट का एक कलेक्शन होता है. इसका इस्तेमाल किसी मीडिया आइटम पर इफ़ेक्ट लागू करने के लिए किया जाता है. एक्सपोर्ट प्रोसेस शुरू करने से पहले, मीडिया आइटम में जोड़े गए इफ़ेक्ट की झलक देखने के लिए, ExoPlayer का इस्तेमाल किया जा सकता है.
EditedMediaItem EditedMediaItem, प्रोसेस करने के लिए मीडिया आइटम और उस पर लागू किए जाने वाले बदलावों को दिखाता है.

Media3 Transformer के बारे में ज़्यादा जानें

ऐप्लिकेशन की शुरुआती जानकारी देने वाला वीडियो

Media3 को बनाने वाले इंजीनियरों से इसके बारे में जानने के लिए, यहां दिया गया वीडियो देखें.