Jetpack Media3, मीडिया लाइब्रेरी के लिए नया प्लैटफ़ॉर्म है. इसकी मदद से, Android ऐप्लिकेशन में ऑडियो और विज़ुअल का बेहतर अनुभव दिया जा सकता है. Media3, एक आसान आर्किटेक्चर उपलब्ध कराता है. इसमें डिवाइस की क्षमताओं के आधार पर, मनमुताबिक बदलाव करने, भरोसेमंद तरीके से काम करने, और ऑप्टिमाइज़ेशन की बेहतर सुविधाएं मिलती हैं. इससे फ़्रैगमेंटेशन की वजह से होने वाली जटिलता को कम किया जा सकता है.
इस दस्तावेज़ में, Media3 के साथ वीडियो चलाने और वीडियो में बदलाव करने के लिए, मुख्य एपीआई के बारे में जानकारी दी गई है.
वीडियो चलाने के कॉम्पोनेंट
Media3, प्लेबैक के इस्तेमाल के उदाहरणों के लिए कई मुख्य कॉम्पोनेंट उपलब्ध कराता है. अगर आपने Android की पिछली मीडिया लाइब्रेरी के साथ काम किया है, तो आपको इन कॉम्पोनेंट को बनाने वाली क्लास के बारे में पता होगा.
इस डायग्राम में दिखाया गया है कि ये कॉम्पोनेंट, किसी सामान्य ऐप्लिकेशन में एक साथ कैसे काम करते हैं.
 
  मीडिया प्लेयर
मीडिया प्लेयर, आपके ऐप्लिकेशन का एक कॉम्पोनेंट होता है. इसकी मदद से, मीडिया फ़ाइलें चलाई जा सकती हैं. 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 को बनाने वाले इंजीनियरों से इसके बारे में जानने के लिए, यहां दिया गया वीडियो देखें.
काम के लिंक
- Media Developer Center
- ExoPlayerdocs
- माइग्रेशन गाइड
- GitHub पर AndroidX Media3
- Media3 मीडिया सेशन का सैंपल ऐप्लिकेशन
- यूनिवर्सल Android Music Player का सैंपल ऐप्लिकेशन
