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 यूज़र इंटरफ़ेस (यूआई) की यूटिलिटी में मिल सकते हैं.

Media3 यूज़र इंटरफ़ेस (यूआई) के बारे में ज़्यादा जानें

कॉम्पोनेंट में बदलाव करना

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

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

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

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

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