पिक्चर में पिक्चर (पीआईपी) की सुविधा का इस्तेमाल करना

François Beaufort
François Beaufort

अप्रैल 2017 से, Android O के लिए Chrome में पिक्चर में पिक्चर की सुविधा काम करती है. इसकी मदद से, उपयोगकर्ता किसी छोटी ओवरले विंडो में <video> एलिमेंट चला सकते हैं. यह विंडो, अन्य विंडो से ब्लॉक नहीं होती, ताकि उपयोगकर्ता दूसरे काम करते हुए भी इसे देख सकें.

यह इस तरह से काम करता है: Chrome खोलें, किसी वीडियो वाली वेबसाइट पर जाएं और उसे फ़ुलस्क्रीन में चलाएं. इसके बाद, Android की होम स्क्रीन पर जाने के लिए होम बटन दबाएं. ऐसा करने पर, चल रहा वीडियो अपने-आप पिक्चर में पिक्चर मोड में चलने लगेगा. बस इतना ही! काफ़ी अच्छा है ना?

Android पर &#39;पिक्चर में पिक्चर&#39; मोड में वीडियो देखते समय फ़ोटो
पहला डायग्राम. Android पर पिक्चर में पिक्चर मोड में वीडियो देखते समय फ़ोटो का स्क्रीनशॉट लेने का तरीका

यह सुविधा उपलब्ध है, लेकिन डेस्कटॉप पर क्या? अगर वेबसाइट उस अनुभव को कंट्रोल करना चाहती है, तो क्या होगा?

अच्छी बात यह है कि फ़िलहाल, पिक्चर में पिक्चर वेब एपीआई के लिए स्पेसिफ़िकेशन तैयार किया जा रहा है. इस स्पेसिफ़िकेशन का मकसद, वेबसाइटों को इस व्यवहार को शुरू करने और कंट्रोल करने की अनुमति देना है. इसके लिए, एपीआई को प्रॉपर्टी के इस सेट को दिखाया जाता है:

  • जब कोई वीडियो पिक्चर में पिक्चर मोड में चलाया जाता है और उससे बाहर निकला जाता है, तब वेबसाइट को सूचना भेजें.
  • वेबसाइट को उपयोगकर्ता के जेस्चर की मदद से, वीडियो एलिमेंट पर पिक्चर में पिक्चर मोड को ट्रिगर करने की अनुमति दें.
  • वेबसाइट को पिक्चर में पिक्चर मोड से बाहर निकलने की अनुमति दें.
  • वेबसाइट को यह जांचने की अनुमति दें कि पिक्चर में पिक्चर की सुविधा ट्रिगर हो सकती है या नहीं.

यह इस तरह दिख सकता है:

<video id="video" src="https://example.com/file.mp4"></video>

<button id="pipButton"></button>

<script>
    // Hide button if Picture-in-Picture is not supported.
    pipButton.hidden = !document.pictureInPictureEnabled;

    pipButton.addEventListener('click', function() {
    // If there is no element in Picture-in-Picture yet, let's request Picture
    // In Picture for the video, otherwise leave it.
    if (!document.pictureInPictureElement) {
        video.requestPictureInPicture()
        .catch(error => {
        // Video failed to enter Picture-in-Picture mode.
        });
    } else {
        document.exitPictureInPicture()
        .catch(error => {
        // Video failed to leave Picture-in-Picture mode.
        });
    }
    });
</script>

सुझाव/राय दें या शिकायत करें

तो आपकी क्या राय है? कृपया अपना सुझाव/राय सबमिट करें और पिक्चर में पिक्चर (पीआईपी) WICG रिपॉज़िटरी में समस्याएं बताएं. हमें आपके सुझावों का इंतज़ार रहेगा!

Android के डिफ़ॉल्ट PIP व्यवहार को रोकना

फ़िलहाल, Chrome में वीडियो को Android के डिफ़ॉल्ट पीआईपी मोड का इस्तेमाल करने से रोका जा सकता है. इसके लिए, आपको वीडियो के साइज़ में हुए बदलाव के इवेंट का जवाब देना होगा. साथ ही, यह पता लगाना होगा कि विंडो का साइज़ काफ़ी बदला है या नहीं. इसके लिए, नीचे दिया गया कोड देखें. हम इसे हमेशा के लिए इस्तेमाल करने का सुझाव नहीं देते. हालांकि, वेब एपीआई लागू होने तक, यह एक अच्छा विकल्प है.

// See whether resize is small enough to be PiP. It's a hack, but it'll
// work for now.
window.addEventListener('resize', function() {
    if (!document.fullscreenElement) {
    return;
    }

    var minimumScreenSize = 0.33;
    var screenArea = screen.width * screen.height;
    var windowArea = window.outerHeight * window.outerWidth;

    // If the size of the window relative to the screen is less than a third,
    // let's assume we're in PiP and exit fullscreen to prevent Auto PiP.
    if ((windowArea / screenArea) < minimumScreenSize) {
    document.exitFullscreen();
    }
});