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

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

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

पीआईपी विंडो, स्क्रीन के सबसे ऊपर वाले लेयर में दिखती है. यह उस कोने में दिखती है जिसे शामिल हैं.

पीआईपी की सुविधा, इसके साथ काम करने वाले Android TV OS डिवाइसों पर भी काम करती है Android 14 (एपीआई लेवल 34) या इसके बाद वाला वर्शन. वैसे तो बहुत सी समानताएं हैं, लेकिन ध्यान रखें, टीवी पर पीआईपी.

उपयोगकर्ता, पीआईपी विंडो के साथ कैसे इंटरैक्ट कर सकते हैं

उपयोगकर्ता, पीआईपी विंडो को खींचकर किसी दूसरी जगह पर ले जा सकते हैं. Android 12 और इसके बाद के वर्शन में, ये काम भी कर सकते हैं:

  • फ़ुल-स्क्रीन टॉगल, 'बंद करें' बटन, और सेटिंग बटन और आपके ऐप्लिकेशन से मिलने वाली कस्टम कार्रवाइयाँ (उदाहरण के लिए, Google Play नियंत्रण).

  • पीआईपी के मौजूदा साइज़ और ज़्यादा से ज़्यादा साइज़ के बीच टॉगल करने के लिए, विंडो पर दो बार टैप करें पीआईपी (पिक्चर में पिक्चर) का कम से कम साइज़. उदाहरण के लिए, किसी विंडो पर दो बार टैप करना इसे छोटा कर देता है. साथ ही, इससे बातचीत भी सही हो जाती है.

  • विंडो को बाएं या दाएं किनारे पर खींचकर, छिपने की जगह बनाएं. अनस्टाश करने के लिए विंडो में, छिपी हुई विंडो का दिखाई देने वाला हिस्सा टैप करें या उसे बाहर खींचें.

  • ज़ूम करने के लिए पिंच का इस्तेमाल करके, पीआईपी विंडो का साइज़ बदलें.

आपका ऐप्लिकेशन यह कंट्रोल करता है कि मौजूदा गतिविधि को पीआईपी मोड में कब भेजा जाए. यहां कुछ उदाहरण:

  • जब कोई व्यक्ति होम बटन पर टैप करता है या स्वाइप करता है, तब कोई गतिविधि पीआईपी मोड में जा सकती है घर तक. Google Maps इसी तरह रास्ते के निर्देश दिखाता है, जबकि उपयोगकर्ता उसी समय कोई दूसरी गतिविधि करता हो.

  • जब उपयोगकर्ता किसी वीडियो को पीआईपी मोड में वापस ले जाता है, तब आपका ऐप्लिकेशन उस वीडियो को पीआईपी मोड में ले जा सकता है अन्य कॉन्टेंट ब्राउज़ करने के लिए वीडियो चुनें.

  • आपका ऐप्लिकेशन किसी वीडियो को पीआईपी मोड में तब भी ले सकता है, जब कोई उपयोगकर्ता किसी वीडियो के आखिर में कॉन्टेंट का एपिसोड दिखाया जा रहा है. मुख्य स्क्रीन पर, प्रमोशन से जुड़ी या खास जानकारी दिखती है सीरीज़ के अगले एपिसोड के बारे में जानकारी.

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

पीआईपी की सुविधा से जुड़ी सहायता के बारे में बताना

डिफ़ॉल्ट रूप से, सिस्टम में ऐप्लिकेशन के लिए पीआईपी की सुविधा अपने-आप काम नहीं करती. अगर आपको पीआईपी की सुविधा का इस्तेमाल करके, अपने मेनिफ़ेस्ट में वीडियो गतिविधि को इस तरह रजिस्टर करें android:supportsPictureInPicture को true पर सेट कर रही हूँ. साथ ही, यह भी निर्दिष्ट करें कि यह गतिविधि, लेआउट कॉन्फ़िगरेशन में किए गए बदलावों को हैंडल करती है, ताकि आपकी गतिविधि ये काम न करे पीआईपी मोड में बदलाव के दौरान, लेआउट में बदलाव होने पर, फिर से लॉन्च करें.

<activity android:name="VideoActivity"
    android:supportsPictureInPicture="true"
    android:configChanges=
        "screenSize|smallestScreenSize|screenLayout|orientation"
    ...

अपनी गतिविधि को पीआईपी पर स्विच करें

Android 12 और उसके बाद के वर्शन में, सेटिंग में जाकर अपनी गतिविधि को पीआईपी मोड में स्विच किया जा सकता है setAutoEnterEnabled फ़्लैग को true के लिए फ़्लैग करें. इस सेटिंग के साथ, किसी गतिविधि कॉल करने की ज़रूरत के बिना, ज़रूरत पड़ने पर अपने-आप पीआईपी मोड पर स्विच हो जाता है onUserLeaveHint में enterPictureInPictureMode(). और इसमें आसानी से ट्रांज़िशन करने का कोई फ़ायदा मिला है. विवरण के लिए, देखें बनाएं जेस्चर वाले नेविगेशन से, पीआईपी मोड पर स्विच करना आसान हो जाता है.

अगर आपको Android 11 या इससे पहले के वर्शन को टारगेट करना है, तो किसी गतिविधि के लिए enterPictureInPictureMode() पीआईपी मोड पर जाने के लिए. उदाहरण के लिए, यह कोड एक गतिविधि को पीआईपी मोड में जब उपयोगकर्ता, ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) में किसी खास बटन पर क्लिक करता है, तो:

Kotlin

override fun onActionClicked(action: Action) {
    if (action.id.toInt() == R.id.lb_control_picture_in_picture) {
        activity?.enterPictureInPictureMode()
        return
    }
}

Java

@Override
public void onActionClicked(Action action) {
    if (action.getId() == R.id.lb_control_picture_in_picture) {
        getActivity().enterPictureInPictureMode();
        return;
    }
    ...
}

आप ऐसा लॉजिक शामिल कर सकते हैं जो किसी गतिविधि को पीआईपी मोड में स्विच करता हो बैकग्राउंड में जाने से रोकने में मदद मिलती है. उदाहरण के लिए, अगर Google Maps, पीआईपी मोड पर स्विच करता है, तो ऐप्लिकेशन के नेविगेट करने के दौरान, जब उपयोगकर्ता होम या हाल ही के बटन को दबाता है. आप को ओवरराइड करके इस मामले को onUserLeaveHint():

Kotlin

override fun onUserLeaveHint() {
    if (iWantToBeInPipModeNow()) {
        enterPictureInPictureMode()
    }
}

Java

@Override
public void onUserLeaveHint () {
    if (iWantToBeInPipModeNow()) {
        enterPictureInPictureMode();
    }
}

सुझाव: उपयोगकर्ताओं को पीआईपी ट्रांज़िशन का बेहतर अनुभव दें

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

अगर आपके ऐप्लिकेशन में लागू होने वाले अपडेट शामिल नहीं हैं, तो पीआईपी (पिक्चर में पिक्चर) ट्रांज़िशन के बाद भी ऐसा होगा लेकिन एनिमेशन कम पॉलिश किए गए हैं. उदाहरण के लिए, ट्रांज़िशन फ़ुलस्क्रीन से पीआईपी मोड में जाने पर, हो सकता है कि पीआईपी विंडो इससे पहले कि वह ट्रांज़िशन पूरा हो जाए.

इन बदलावों में ये चीज़ें शामिल हैं.

  • जेस्चर वाले नेविगेशन की मदद से, पीआईपी मोड में आसानी से ट्रांज़िशन करना
  • पीआईपी मोड में जाने और उससे बाहर निकलने के लिए, सही sourceRectHint सेट करना
  • वीडियो के अलावा किसी दूसरे कॉन्टेंट के लिए, आसानी से साइज़ बदलने की सुविधा बंद करना

इसके बारे में ज़्यादा जानने के लिए, Android Kotlin PictureInपिक्चर सैंपल एक बेहतर ट्रांज़िशन अनुभव उपलब्ध कराने के लिए.

जेस्चर वाले नेविगेशन की मदद से, पीआईपी मोड में आसानी से ट्रांज़िशन करें

Android 12 और इसके बाद के वर्शन में, setAutoEnterEnabled फ़्लैग से काफ़ी मदद मिलती है जेस्चर का इस्तेमाल करके, पीआईपी मोड में वीडियो कॉन्टेंट पर स्विच करने के लिए आसान ऐनिमेशन नेविगेशन—उदाहरण के लिए, फ़ुलस्क्रीन से होम स्क्रीन पर ऊपर की ओर स्वाइप करते समय.

यह परिवर्तन करने के लिए नीचे दिए गए चरण पूरे करें और संदर्भ:

  1. इसे बनाने के लिए, setAutoEnterEnabled का इस्तेमाल करें PictureInPictureParams.Builder:

    Kotlin

    setPictureInPictureParams(PictureInPictureParams.Builder()
        .setAspectRatio(aspectRatio)
        .setSourceRectHint(sourceRectHint)
        .setAutoEnterEnabled(true)
        .build())
    

    Java

    setPictureInPictureParams(new PictureInPictureParams.Builder()
        .setAspectRatio(aspectRatio)
        .setSourceRectHint(sourceRectHint)
        .setAutoEnterEnabled(true)
        .build());
    
  2. setPictureInPictureParams को अप-टू-डेट जानकारी के साथ कॉल करें PictureInPictureParams जल्दी. ऐप्लिकेशन, onUserLeaveHint कॉलबैक (जैसा कि Android 11 में होता).

    उदाहरण के लिए, हो सकता है कि आप setPictureInPictureParams को आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) बदलने पर, पहला वीडियो और उसके बाद चलने वाला वीडियो.

  3. setAutoEnterEnabled(false) को कॉल करें, लेकिन सिर्फ़ ज़रूरी होने पर. उदाहरण के लिए, अगर अभी चल रहा वीडियो रुका हुआ है, तो शायद आप पीआईपी का इस्तेमाल न करना चाहें राज्य.

पीआईपी मोड में जाने और उससे बाहर निकलने के लिए, सही sourceRectHint सेट करें

setSourceRectHint में Android 8.0 में पीआईपी की सुविधा लॉन्च की जा रही है उस गतिविधि के क्षेत्र का संकेत दिया, जो इसमें ट्रांज़िशन के बाद दिखाई देता है पिक्चर में पिक्चर—उदाहरण के लिए, वीडियो व्यू वीडियो प्लेयर में बाउंड हो जाता है.

Android 12 के साथ, सिस्टम sourceRectHint का इस्तेमाल करके बेहतर तरीके से काम करता है पीआईपी मोड में जाते और उससे बाहर निकलते समय दिखने वाला ऐनिमेशन.

पीआईपी मोड में जाने और उससे बाहर निकलने के लिए, sourceRectHint को सही तरीके से सेट करने का तरीका:

  1. PictureInPictureParams का निर्माण करें sourceRectHint के रूप में उचित सीमाओं का इस्तेमाल करके. हमारा सुझाव है कि आप लेआउट लिसनर को वीडियो प्लेयर पर बदलने के लिए:

    Kotlin

    val mOnLayoutChangeListener =
    OnLayoutChangeListener { v: View?, oldLeft: Int,
            oldTop: Int, oldRight: Int, oldBottom: Int, newLeft: Int, newTop:
            Int, newRight: Int, newBottom: Int ->
        val sourceRectHint = Rect()
        mYourVideoView.getGlobalVisibleRect(sourceRectHint)
        val builder = PictureInPictureParams.Builder()
            .setSourceRectHint(sourceRectHint)
        setPictureInPictureParams(builder.build())
    }
    
    mYourVideoView.addOnLayoutChangeListener(mOnLayoutChangeListener)
    

    Java

    private final View.OnLayoutChangeListener mOnLayoutChangeListener =
            (v, oldLeft, oldTop, oldRight, oldBottom, newLeft, newTop, newRight,
            newBottom) -> {
        final Rect sourceRectHint = new Rect();
        mYourVideoView.getGlobalVisibleRect(sourceRectHint);
        final PictureInPictureParams.Builder builder =
            new PictureInPictureParams.Builder()
                .setSourceRectHint(sourceRectHint);
        setPictureInPictureParams(builder.build());
    };
    
    mYourVideoView.addOnLayoutChangeListener(mOnLayoutChangeListener);
    
  2. अगर ज़रूरी हो, तो सिस्टम शुरू करने से पहले, sourceRectHint को अपडेट करें से बाहर निकलें. जब सिस्टम पीआईपी मोड से बाहर निकलने वाला होता है, तब गतिविधि देखने के क्रम को इसके डेस्टिनेशन कॉन्फ़िगरेशन के हिसाब से रखा जाता है (उदाहरण के लिए, फ़ुल स्क्रीन मोड) चुनें. ऐप्लिकेशन अपने रूट व्यू में, लेआउट बदलने वाले लिसनर को अटैच कर सकता है या टारगेट व्यू (जैसे कि वीडियो प्लेयर व्यू) का इस्तेमाल करके इवेंट का पता लगाएं और ऐनिमेशन शुरू होने से पहले sourceRectHint को अपडेट करें.

    Kotlin

    // Listener is called immediately after the user exits PiP but before animating.
    playerView.addOnLayoutChangeListener { _, left, top, right, bottom,
                        oldLeft, oldTop, oldRight, oldBottom ->
        if (left != oldLeft
            || right != oldRight
            || top != oldTop
            || bottom != oldBottom) {
            // The playerView's bounds changed, update the source hint rect to
            // reflect its new bounds.
            val sourceRectHint = Rect()
            playerView.getGlobalVisibleRect(sourceRectHint)
            setPictureInPictureParams(
                PictureInPictureParams.Builder()
                    .setSourceRectHint(sourceRectHint)
                    .build()
            )
        }
    }
    
    

    Java

    // Listener is called right after the user exits PiP but before
    // animating.
    playerView.addOnLayoutChangeListener((v, left, top, right, bottom,
                        oldLeft, oldTop, oldRight, oldBottom) -> {
        if (left != oldLeft
            || right != oldRight
            || top != oldTop
            || bottom != oldBottom) {
            // The playerView's bounds changed, update the source hint rect to
            // reflect its new bounds.
            final Rect sourceRectHint = new Rect();
            playerView.getGlobalVisibleRect(sourceRectHint);
            setPictureInPictureParams(
                new PictureInPictureParams.Builder()
                    .setSourceRectHint(sourceRectHint)
                    .build());
        }
    });
    
    

गैर-वीडियो कॉन्टेंट के लिए आसानी से साइज़ बदलने की सुविधा बंद करें

Android 12 में setSeamlessResizeEnabled फ़्लैग जोड़ा गया है, जो पीआईपी में नॉन-वीडियो कॉन्टेंट का साइज़ बदलते समय, क्रॉस-फ़ेडिंग ऐनिमेशन आसान हो जाता है विंडो. पहले, पीआईपी विंडो में बिना वीडियो वाले कॉन्टेंट का साइज़ बदलने पर, परेशान करने वाले विज़ुअल आर्टफ़ैक्ट.

गैर-वीडियो कॉन्टेंट के लिए, आसानी से साइज़ बदलने की सुविधा बंद करने के लिए:

Kotlin

setPictureInPictureParams(PictureInPictureParams.Builder()
    .setSeamlessResizeEnabled(false)
    .build())

Java

setPictureInPictureParams(new PictureInPictureParams.Builder()
    .setSeamlessResizeEnabled(false)
    .build());

पीआईपी के दौरान यूज़र इंटरफ़ेस (यूआई) मैनेज करना

जब गतिविधि पीआईपी मोड में जाती है या उससे बाहर निकलती है, तो सिस्टम Activity.onPictureInPictureModeChanged() या Fragment.onPictureInPictureModeChanged().

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

अगर पीआईपी के लिए, आपके ऐप्लिकेशन को अपनी पसंद के मुताबिक कार्रवाइयां उपलब्ध करानी हैं, तो जोड़ें कंट्रोल के तहत आता है. अपने गतिविधि को पीआईपी में डाल दिया जाता है. साथ ही, आपकी गतिविधि के फ़ुलस्क्रीन मोड में दिखने पर, उसे वापस लाया जा सकता है फिर से:

Kotlin

override fun onPictureInPictureModeChanged(isInPictureInPictureMode: Boolean,
                                           newConfig: Configuration) {
    if (isInPictureInPictureMode) {
        // Hide the full-screen UI (controls, etc.) while in PiP mode.
    } else {
        // Restore the full-screen UI.
    }
}

Java

@Override
public void onPictureInPictureModeChanged (boolean isInPictureInPictureMode, Configuration newConfig) {
    if (isInPictureInPictureMode) {
        // Hide the full-screen UI (controls, etc.) while in PiP mode.
    } else {
        // Restore the full-screen UI.
        ...
    }
}

कंट्रोल बटन जोड़ें

जब उपयोगकर्ता विंडो का मेन्यू खोलता है, तो पीआईपी विंडो में कंट्रोल दिखाए जा सकते हैं (इसके हिसाब से) मोबाइल डिवाइस की विंडो पर टैप करके या टीवी से मेन्यू को चुनें रिमोट.)

अगर किसी ऐप्लिकेशन में चालू मीडिया है सेशन, फिर चलाएं, रोकें, आगे बढ़ें, और पिछले कंट्रोल स्क्रीन पर दिखेंगे.

कस्टम ऐक्शन को सीधे तौर पर बनाते समय, PictureInPictureParams के साथ PictureInPictureParams.Builder.setActions() पीआईपी मोड में जाने से पहले, और पीआईपी मोड में जाने पर, पैरामीटर पास करें enterPictureInPictureMode(android.app.PictureInPictureParams) या setPictureInPictureParams(android.app.PictureInPictureParams). सावधान रहें. अगर आप इससे ज़्यादा पैसे जोड़ने की कोशिश करते हैं, getMaxNumPictureInPictureActions() आपको सिर्फ़ तय सीमा से ज़्यादा का मैसेज ही मिलेगा.

पीआईपी मोड में वीडियो चलाने की सुविधा जारी है

जब आपकी गतिविधि, पीआईपी (पिक्चर में पिक्चर) पर स्विच होती है, तो सिस्टम गतिविधि को 'रोका गया' मोड में रखता है गतिविधि की जानकारी देता है और onPause() तरीका. वीडियो विज्ञापन प्लेबैक रोका नहीं जाना चाहिए. इसके बजाय, अगर गतिविधि पीआईपी मोड पर स्विच करते समय, यह प्रोसेस रुक गई.

Android 7.0 और उसके बाद के वर्शन में, आपको आपकी गतिविधि के डेटा को onStop() और onStart(). ऐसा करने से, आपको onPause() में यह देखने की ज़रूरत नहीं पड़ेगी कि आपका ऐप्लिकेशन पीआईपी मोड में है या नहीं. साथ ही, साफ़ तौर पर वीडियो चलाने की सुविधा.

अगर आपने setAutoEnterEnabled फ़्लैग को true पर सेट नहीं किया है और आपको onPause() लागू करने के दौरान, वीडियो चलाने की सुविधा रोकें. साथ ही, कॉल करके पीआईपी मोड की जांच करें isInPictureInPictureMode() और प्लेबैक को सही तरीके से मैनेज करें. उदाहरण के लिए:

Kotlin

override fun onPause() {
    super.onPause()
    // If called while in PiP mode, do not pause playback
    if (isInPictureInPictureMode) {
        // Continue playback
    } else {
        // Use existing playback logic for paused Activity behavior.
    }
}

Java

@Override
public void onPause() {
    // If called while in PiP mode, do not pause playback
    if (isInPictureInPictureMode()) {
        // Continue playback
        ...
    } else {
        // Use existing playback logic for paused Activity behavior.
        ...
    }
}

जब आपकी गतिविधि पीआईपी मोड से वापस फ़ुल-स्क्रीन मोड में स्विच होती है, तो सिस्टम आपकी गतिविधि फिर से शुरू कर देगा और आपके onResume() तरीका.

पीआईपी के लिए, वीडियो चलाने की किसी एक गतिविधि का इस्तेमाल करना

हो सकता है कि उपयोगकर्ता आपके ऐप्लिकेशन में, मुख्य स्क्रीन पर, जब वीडियो चलाने की कोई गतिविधि पीआईपी मोड में हो. नया वीडियो चलाएं मौजूदा प्लेबैक गतिविधि में फ़ुल स्क्रीन मोड में देखने के बजाय, कोई नई गतिविधि हो सकती है, जो उपयोगकर्ता को भ्रमित कर सकती है.

यह पक्का करने के लिए कि वीडियो चलाने का अनुरोध करने और स्विच करने के लिए, एक ही गतिविधि का इस्तेमाल किया जाए ज़रूरत के हिसाब से पीआईपी मोड में या इससे बाहर निकलने के लिए, गतिविधि की android:launchMode को इस पर सेट करें आपके मेनिफ़ेस्ट में singleTask:

<activity android:name="VideoActivity"
    ...
    android:supportsPictureInPicture="true"
    android:launchMode="singleTask"
    ...

अपनी गतिविधि में, बदलें onNewIntent() और अगर ज़रूरी हो, तो किसी मौजूदा वीडियो को रोकने के लिए, नए वीडियो को हैंडल करें.

सबसे सही तरीके

ऐसा हो सकता है कि कम रैम वाले डिवाइसों पर पीआईपी की सुविधा बंद कर दी जाए. आपके ऐप्लिकेशन को पीआईपी की सुविधा का इस्तेमाल करने से पहले, देखकर पक्का करें कि यह कॉल करके उपलब्ध है hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE).

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

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

जब आपका ऐप्लिकेशन पीआईपी मोड में होता है, तो पीआईपी विंडो में वीडियो चलाने पर, ऑडियो चल सकता है म्यूज़िक प्लेयर ऐप्लिकेशन या वॉइस सर्च ऐप्लिकेशन जैसे किसी दूसरे ऐप्लिकेशन के काम में रुकावट डालना. इससे बचने के लिए, वीडियो चलाते समय ऑडियो फ़ोकस का अनुरोध करें. ऑडियो फ़ोकस में बदलाव की सूचनाएं, जैसा कि ऑडियो मैनेज करना' सेक्शन में बताया गया है फ़ोकस. सूचना मिलने पर पीआईपी मोड में होने पर, वीडियो चलाना बंद या बंद हो जाता है.

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

अतिरिक्त सैंपल कोड

Kotlin में लिखे गए सैंपल ऐप्लिकेशन को डाउनलोड करने के लिए, Android PictureInPicture सैंपल देखें (Kotlin).