Jetpack की पिक्चर में पिक्चर लाइब्रेरी का इस्तेमाल करना

पिक्चर में पिक्चर (पीआईपी) Jetpack लाइब्रेरी, Android ऐप्लिकेशन डेवलपर को पीआईपी की सुविधा लागू करने के लिए एक बेहतर और मज़बूत समाधान उपलब्ध कराती है. खास तौर पर, मीडिया चलाने, वीडियो कम्यूनिकेशन, और नेविगेशन ऐप्लिकेशन के लिए. यह लाइब्रेरी, यूनिफ़ाइड एपीआई उपलब्ध कराती है. इससे बॉयलरप्लेट कोड और ऐप्लिकेशन में होने वाली सामान्य गड़बड़ियों को ठीक करने में मदद मिलती है. साथ ही, PiP सुविधा का इस्तेमाल करने वाले लोगों को बेहतर अनुभव मिलता है.

PiP Jetpack लाइब्रेरी, मौजूदा PiP API को बेहतर बनाती है. यह Android इकोसिस्टम में कई मुख्य चुनौतियों और गड़बड़ियों को ठीक करती है:

  • ओएस फ़्रैगमेंटेशन: यह लाइब्रेरी, अलग-अलग Android वर्शन पर PiP API कॉल में होने वाले अंतर को अपने-आप मैनेज करती है. जैसे, Android 12 से पहले enterPictureInPictureMode और इसके बाद isAutoEnterEnabled का इस्तेमाल करना. इसलिए, डेवलपर को वर्शन के अंतर को मैनेज करने की ज़रूरत नहीं होती.
  • पीआईपी के गलत पैरामीटर: यह पीआईपी के पैरामीटर को सही तरीके से सेट करने के लिए, एक यूनिफ़ाइड समाधान उपलब्ध कराता है. उदाहरण के लिए, मीडिया चलाने के दौरान स्मूद और अच्छी क्वालिटी के ऐनिमेशन बनाने के लिए setSourceRectHint.
  • पीआईपी मोड की स्थिति के लिए एक ही तरह के कॉलबैक: यह onPictureInPictureModeChanged और onPictureInPictureUiStateChanged को एक ही तरह के कॉलबैक इंटरफ़ेस (PictureInPictureDelegate.OnPictureInPictureEventListener) में शामिल करता है, ताकि स्थिति और यूज़र इंटरफ़ेस (यूआई) को आसानी से मैनेज किया जा सके.
  • बॉयलरप्लेट कोड कम करना: यह लाइब्रेरी, बार-बार इस्तेमाल होने वाले बॉयलरप्लेट कोड को कम करती है. इसके लिए, यह लाइब्रेरी सामान्य इस्तेमाल के मामलों के लिए, RemoteActions के पहले से तय किए गए सेट उपलब्ध कराती है. जैसे, वीडियो चलाने के कंट्रोल और वीडियो कॉल से जुड़ी कार्रवाइयां.
  • आने वाले समय में भी काम करने वाली सुविधा: PiP की अन्य सुविधाएँ, Jetpack लाइब्रेरी के ज़रिए उपलब्ध कराई जाती हैं. इससे, इस सुविधा को अपनाने वाले लोगों को कम से कम या बिना किसी मेहनत के अतिरिक्त सुविधाएँ ऐक्सेस करने की अनुमति मिलती है.

Jetpack का इस्तेमाल करना

Jetpack लाइब्रेरी का इस्तेमाल करने के लिए, कस्टम PiP लागू करने के मौजूदा तरीके को Jetpack लाइब्रेरी के एपीआई से बदलें. ऐप्लिकेशन में मौजूदा समय में लागू किए गए तरीके के आधार पर, इसे लागू करने में आने वाली मुश्किलों और लागत में अंतर होगा.

यहां दिए गए सेक्शन में, PiP के इस्तेमाल के कुछ सामान्य उदाहरणों के बारे में बताया गया है. साथ ही, इसे लागू करने के ज़रूरी चरणों के बारे में भी बताया गया है:

ऐप्लिकेशन, लाइब्रेरी को नेविगेशन के चालू या बंद होने की स्थिति के बारे में बताता है. साथ ही, यह पहलू अनुपात सेट करता है. बाकी काम Jetpack लाइब्रेरी करती है.

मुख्य अंतर:

  1. ऐप्लिकेशन के लिए, ऑटो-एंटर और लेगसी-एंटर के बीच अंतर करने की ज़रूरत नहीं है.
  2. कॉलबैक इंटरफ़ेस को एक साथ मैनेज करने की सुविधा.
  3. पुराने सिस्टम के साथ काम करने की सुविधा के लिए, नया PictureInPictureParams बिल्डर.

वीडियो कॉल

यह ऐप्लिकेशन, लाइब्रेरी को कॉल के चालू या बंद होने की स्थिति के बारे में बताता है. साथ ही, यह ऐस्पेक्ट रेशियो सेट करता है.

मुख्य अंतर:

  1. ऐप्लिकेशन के लिए, ऑटो-एंटर और लेगसी-एंटर के बीच अंतर करने की ज़रूरत नहीं है.
  2. कॉलबैक इंटरफ़ेस को एक साथ मैनेज करने की सुविधा.
  3. पुराने सिस्टम के साथ काम करने की सुविधा के लिए, नया PictureInPictureParams बिल्डर.
  4. वीडियो कॉल के लिए स्टैंडर्ड ऐक्शन आइकॉन.

वीडियो प्लेबैक

Jetpack लाइब्रेरी, प्लेयर डेलिगेट उपलब्ध कराती है. इन्हें इंटिग्रेट करके, पीआईपी मोड को चालू या बंद किया जा सकता है. साथ ही, सोर्स रेक्टैंगल हिंट को सटीक तरीके से सेट किया जा सकता है. आपके पास RemoteAction ऑब्जेक्ट के पहले से तय किए गए सेट में ऑप्ट-इन करने का विकल्प भी होता है. ये ऑब्जेक्ट, वीडियो कॉल के दौरान इस्तेमाल किए जाने वाले ऑब्जेक्ट की तरह होते हैं.

मुख्य सुविधाएं:

  1. यह पुराने सिस्टम के साथ काम करने की सुविधा को मैनेज करता है. इसके लिए, ओएस वर्शन की जांच करने की ज़रूरत नहीं होती.
  2. प्लेबैक के स्टेटस को सिंक करने और अपने-आप एंट्री होने की सुविधा को कंट्रोल करने के लिए.
  3. SourceRectHint का इस्तेमाल करके, लगातार ज्यामिति को ट्रैक करना.