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