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

डिफ़ॉल्ट PiP कंट्रोल.

कस्टम पीआईपी कंट्रोल का उदाहरण.
इस्तेमाल
उपयोगकर्ताओं को न सिर्फ़ आपके ऐप्लिकेशन में, बल्कि अपने सभी डिवाइसों पर वीडियो देखने की सुविधा दें. आपका ऐप्लिकेशन यह कंट्रोल करता है कि मौजूदा गतिविधि कब पीआईपी मोड में जाएगी. यह कोई इंटरैक्शन हो सकता है, जैसे कि मौजूदा व्यू छोड़ना या होम स्क्रीन पर जाने के लिए ऊपर की ओर स्वाइप करना.
यहां कुछ कार्रवाइयों के उदाहरण दिए गए हैं:
जब उपयोगकर्ता होम बटन पर टैप करता है या होम स्क्रीन पर ऊपर की ओर स्वाइप करता है, तब कोई गतिविधि PiP मोड में आ सकती है. इस तरह, Google Maps एक ही समय में उपयोगकर्ता की दूसरी गतिविधि के दौरान भी दिशा-निर्देश दिखाता रहता है.
चौथी इमेज: रास्ता ढूंढने के अनुभव को जारी रखने के लिए पीआईपी का इस्तेमाल किया गया है जब कोई उपयोगकर्ता वीडियो से वापस आकर अन्य कॉन्टेंट ब्राउज़ करता है, तब आपका ऐप्लिकेशन वीडियो को पीआईपी मोड में ले जा सकता है.
जब कोई व्यक्ति कॉन्टेंट के किसी एपिसोड के आखिर में पहुंचता है, तब आपका ऐप्लिकेशन वीडियो को पीआईपी मोड में स्विच कर सकता है. मुख्य स्क्रीन पर, सीरीज़ के अगले एपिसोड के बारे में प्रमोशन या खास जानकारी दिखती है.
आपका ऐप्लिकेशन, लोगों को वीडियो देखते समय अन्य कॉन्टेंट को कतार में लगाने की सुविधा दे सकता है. मुख्य स्क्रीन पर कॉन्टेंट चुनने की गतिविधि के दौरान, वीडियो PiP मोड में चलता रहता है.
ऐसा इंटरैक्शन पैटर्न इस्तेमाल करें जो देखने के अनुभव को बेहतर बनाए और उसमें रुकावट न डाले. उदाहरण के लिए, अगर कोई वीडियो किसी एपिसोड के आखिर में है, तो होम स्क्रीन से बाहर निकलते समय पीआईपी मोड में जाने पर, उपयोगकर्ता को वीडियो फिर से चलाने या उसे रोकने के लिए अतिरिक्त कार्रवाई करनी होगी. इसके अलावा, छोटे कंट्रोलर को नेविगेट करने के लिए भी अतिरिक्त कार्रवाई करनी होगी.
आपके ऐप्लिकेशन में, कोई उपयोगकर्ता मुख्य स्क्रीन पर कॉन्टेंट ब्राउज़ करते समय नया वीडियो चुन सकता है. ऐसा तब होता है, जब वीडियो चलाने की गतिविधि पीआईपी मोड में हो. नए वीडियो को मौजूदा वीडियो चलाने की गतिविधि में फ़ुल स्क्रीन मोड में चलाएं. इसके बजाय, ऐसी नई गतिविधि शुरू न करें जिससे उपयोगकर्ता भ्रमित हो सकता है.
इंटरैक्शन पैटर्न
उपयोगकर्ता, पीआईपी विंडो को किसी दूसरी जगह पर खींचकर छोड़ सकते हैं.
विंडो पर एक बार टैप करें. इससे आपको फ़ुल-स्क्रीन टॉगल, बंद करें बटन, सेटिंग बटन, और आपके ऐप्लिकेशन की ओर से उपलब्ध कराई गई कस्टम कार्रवाइयां दिखेंगी. उदाहरण के लिए, मीडिया प्लेयर को कंट्रोल करने के बटन.
विंडो के मौजूदा PiP साइज़ और ज़्यादा से ज़्यादा या कम से कम PiP साइज़ के बीच टॉगल करने के लिए, उस पर दो बार टैप करें. उदाहरण के लिए, बड़ी की गई विंडो पर दो बार टैप करने से वह छोटी हो जाती है. इसी तरह, छोटी की गई विंडो पर दो बार टैप करने से वह बड़ी हो जाती है.
विंडो को बाईं या दाईं ओर खींचकर, उसे स्टैश करें. विंडो को वापस लाने के लिए, छिपाई गई विंडो के दिखने वाले हिस्से पर टैप करें या उसे खींचकर बाहर लाएं.
पिंच करके ज़ूम करने की सुविधा का इस्तेमाल करके, पीआईपी विंडो का साइज़ बदलें.
विंडो हटाने के लिए, पीआईपी को नीचे की ओर स्वाइप करें.
ट्रांज़िशन
पीआईपी मोड में जाने और उससे बाहर आने के दौरान उपयोगकर्ता अनुभव को बेहतर बनाने के लिए, एंट्री और एग्ज़िट ट्रांज़िशन को पसंद के मुताबिक बनाएं.
PiP मोड में आसानी से स्विच करने के लिए ऐनिमेशन
जब कोई उपयोगकर्ता PiP मोड चालू करता है, तो मौजूदा गतिविधि फ़ुलस्क्रीन से छोटी विंडो में बदल जाती है. इसमें कॉन्टेंट दिखता रहता है और कोई यूज़र इंटरफ़ेस (यूआई) ओवरले नहीं होता.
Android 12 में, फ़ुलस्क्रीन और पीआईपी विंडो के बीच ट्रांज़िशन को बेहतर बनाया गया है. इन अपडेट को लागू करने के बाद, ये अपने-आप टैबलेट और फ़ोल्ड किए जा सकने वाले डिवाइसों के हिसाब से अडजस्ट हो जाते हैं.
इन अपडेट के बिना, ट्रांज़िशन काम करते हैं, लेकिन वे बेहतर नहीं होते. उदाहरण के लिए, ट्रांज़िशन के दौरान पीआईपी विंडो कुछ समय के लिए गायब हो सकती है.
Android 12 से, PictureInPictureParams.Builder.setAutoEnterEnabled(true) फ़्लैग, जेस्चर ट्रांज़िशन को बेहतर बनाता है. जैसे, होम स्क्रीन पर जाने के लिए ऊपर की ओर स्वाइप करना. हमारा सुझाव है कि आप ENTERTAINMENT, COMMUNICATION या VIDEO_PLAYER ऐप्लिकेशन के लिए ऐसा करें.
इस फ़्लैग के बिना, जेस्चर ट्रांज़िशन की वजह से विंडो, ऐप्लिकेशन के आइकॉन में छोटी हो जाती है. इसके बाद, यह पीआईपी विंडो के तौर पर फिर से दिखती है. जैसा कि वीडियो 1 में दिखाया गया है.
अगर PiP में setAutoEnterEnabled को सही तरीके से लागू नहीं किया गया है, तो ट्रांज़िशन का अनुभव बेहतर नहीं होता
ऐप्लिकेशन में setAutoEnterEnabled को जोड़ा गया है, ताकि ट्रांज़िशन का बेहतर अनुभव मिल सके.
स्मूद वीडियो विज़ुअल
हमने Android 8.0 में पीआईपी सुविधा लॉन्च की थी. इसमें sourceRectHint से, पीआईपी में ट्रांज़िशन के बाद दिखने वाली गतिविधि के क्षेत्र का पता चलता था. उदाहरण के लिए, वीडियो प्लेयर में वीडियो व्यू बाउंड. Android 12 से, ओएस sourceRectHint का इस्तेमाल करता है. इससे पीआईपी मोड में जाने और उससे बाहर निकलने के दौरान, ऐनिमेशन ज़्यादा स्मूद तरीके से काम करता है.
अगर आपका ऐप्लिकेशन सही sourceRectHint नहीं देता है, तो पीआईपी ट्रांज़िशन अब भी काम करते हैं. हालांकि, ऐनिमेशन कम बेहतर होते हैं. उदाहरण के लिए, तीसरे वीडियो में फ़ुलस्क्रीन से पीआईपी मोड में ट्रांज़िशन का एक ऐसा उदाहरण दिखाया गया है जो कम बेहतर है: फ़ुलस्क्रीन विंडो के पीआईपी विंडो में छोटा होने के बाद, वीडियो को फिर से दिखाने से पहले उसे ब्लैक ओवरले से कवर किया जाता है.
sourceRectHint सही तरीके से लागू नहीं किया गया हैsourceRectHint को सही तरीके से लागू करने पर, पीआईपी ऐनिमेशन कैसा दिखता है, इसका उदाहरण देखने के लिए, पिछले सेक्शन में मौजूद दूसरा वीडियो देखें.
बेहतर ट्रांज़िशन अनुभव को चालू करने के लिए, Android Kotlin PictureInPicture सैंपल देखें.
पीआईपी सुविधा लागू करने के बारे में ज़्यादा जानने के लिए, पिक्चर में पिक्चर सुविधा के लिए डेवलपर दस्तावेज़ देखें.