পিকচার-ইন-পিকচার সম্পর্কে (পিআইপি)

পিকচার-ইন-পিকচার (পিআইপি) হল একটি বিশেষ ধরণের মাল্টি-উইন্ডো মোড যা বেশিরভাগ সময় ভিডিও প্লেব্যাকের জন্য ব্যবহৃত হয়। এটি ব্যবহারকারীকে অ্যাপগুলির মধ্যে নেভিগেট করার সময় বা মূল স্ক্রিনে কন্টেন্ট ব্রাউজ করার সময় স্ক্রিনের এক কোণে পিন করা একটি ছোট উইন্ডোতে ভিডিও দেখতে দেয়।

পিন করা ভিডিও ওভারলে উইন্ডো প্রদানের জন্য PiP অ্যান্ড্রয়েড ৭.০-এ উপলব্ধ মাল্টি-উইন্ডো API ব্যবহার করে। আপনার অ্যাপে PiP যোগ করতে, আপনাকে আপনার কার্যকলাপ নিবন্ধন করতে হবে, প্রয়োজন অনুসারে আপনার কার্যকলাপ PiP মোডে স্যুইচ করতে হবে এবং নিশ্চিত করতে হবে যে UI উপাদানগুলি লুকানো আছে এবং কার্যকলাপ PiP মোডে থাকা অবস্থায় ভিডিও প্লেব্যাক চলতে থাকে।

জেটপ্যাকের মাধ্যমে পিআইপি বাস্তবায়ন করুন

জেটপ্যাক পিকচার-ইন-পিকচার লাইব্রেরি ব্যবহার করে পিকচার-ইন-পিকচার অভিজ্ঞতা বাস্তবায়ন করুন কারণ এটি ইন্টিগ্রেশনকে সহজ করে তোলে এবং অ্যাপ-মধ্যস্থ সাধারণ সমস্যাগুলি হ্রাস করে। এর ব্যবহারের উদাহরণ দেখতে আমাদের প্ল্যাটফর্ম নমুনা অ্যাপটি দেখুন। তবে, আপনি যদি প্ল্যাটফর্ম API ব্যবহার করে PiP বাস্তবায়ন করতে চান, তাহলে নিম্নলিখিত ডকুমেন্টেশনগুলি দেখুন।

,

জেটপ্যাকের মাধ্যমে পিআইপি বাস্তবায়ন করুন

জেটপ্যাক পিকচার-ইন-পিকচার লাইব্রেরি ব্যবহার করে পিকচার-ইন-পিকচার অভিজ্ঞতা বাস্তবায়ন করুন কারণ এটি ইন্টিগ্রেশনকে সহজ করে তোলে এবং অ্যাপ-মধ্যস্থ সাধারণ সমস্যাগুলি হ্রাস করে। এর ব্যবহারের উদাহরণ দেখতে আমাদের প্ল্যাটফর্ম নমুনা অ্যাপটি দেখুন। তবে, আপনি যদি প্ল্যাটফর্ম API ব্যবহার করে PiP বাস্তবায়ন করতে চান, তাহলে নিম্নলিখিত ডকুমেন্টেশনগুলি দেখুন।

PiP মোডে আপনার UI পরিচালনা করুন

যখন আপনি PiP মোডে প্রবেশ করেন, তখন আপনার অ্যাপের সম্পূর্ণ UI PiP উইন্ডোতে প্রবেশ করে, যদি না আপনি PiP মোডে আপনার UI কেমন দেখাবে তা নির্দিষ্ট করেন।

প্রথমে, আপনার অ্যাপটি কখন PiP মোডে আছে কিনা তা জানতে হবে। এটি অর্জনের জন্য আপনি OnPictureInPictureModeChangedProvider ব্যবহার করতে পারেন। নীচের কোডটি আপনাকে বলে দেবে যে আপনার অ্যাপটি PiP মোডে আছে কিনা।

@Composable
fun rememberIsInPipMode(): Boolean {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        val activity = LocalContext.current.findActivity()
        var pipMode by remember { mutableStateOf(activity.isInPictureInPictureMode) }
        DisposableEffect(activity) {
            val observer = Consumer<PictureInPictureModeChangedInfo> { info ->
                pipMode = info.isInPictureInPictureMode
            }
            activity.addOnPictureInPictureModeChangedListener(
                observer
            )
            onDispose { activity.removeOnPictureInPictureModeChangedListener(observer) }
        }
        return pipMode
    } else {
        return false
    }
}

এখন, অ্যাপটি PiP মোডে প্রবেশ করলে কোন UI উপাদানগুলি দেখাবে তা টগল করতে আপনি rememberIsInPipMode() ব্যবহার করতে পারেন:

val inPipMode = rememberIsInPipMode()

Column(modifier = modifier) {
    // This text will only show up when the app is not in PiP mode
    if (!inPipMode) {
        Text(
            text = "Picture in Picture",
        )
    }
    VideoPlayer()
}

,

পিকচার-ইন-পিকচার (পিআইপি) হল একটি বিশেষ ধরণের মাল্টি-উইন্ডো মোড যা বেশিরভাগ সময় ভিডিও প্লেব্যাকের জন্য ব্যবহৃত হয়। এটি ব্যবহারকারীকে অ্যাপগুলির মধ্যে নেভিগেট করার সময় বা মূল স্ক্রিনে কন্টেন্ট ব্রাউজ করার সময় স্ক্রিনের এক কোণে পিন করা একটি ছোট উইন্ডোতে ভিডিও দেখতে দেয়।

পিন করা ভিডিও ওভারলে উইন্ডো প্রদানের জন্য PiP অ্যান্ড্রয়েড ৭.০-এ উপলব্ধ মাল্টি-উইন্ডো API ব্যবহার করে। আপনার অ্যাপে PiP যোগ করতে, আপনাকে আপনার কার্যকলাপ নিবন্ধন করতে হবে, প্রয়োজন অনুসারে আপনার কার্যকলাপ PiP মোডে স্যুইচ করতে হবে এবং নিশ্চিত করতে হবে যে UI উপাদানগুলি লুকানো আছে এবং কার্যকলাপ PiP মোডে থাকা অবস্থায় ভিডিও প্লেব্যাক চলতে থাকে।

জেটপ্যাকের মাধ্যমে পিআইপি বাস্তবায়ন করুন

জেটপ্যাক পিকচার-ইন-পিকচার লাইব্রেরি ব্যবহার করে পিকচার-ইন-পিকচার অভিজ্ঞতা বাস্তবায়ন করুন কারণ এটি ইন্টিগ্রেশনকে সহজ করে তোলে এবং অ্যাপ-মধ্যস্থ সাধারণ সমস্যাগুলি হ্রাস করে। এর ব্যবহারের উদাহরণ দেখতে আমাদের প্ল্যাটফর্ম নমুনা অ্যাপটি দেখুন। তবে, আপনি যদি প্ল্যাটফর্ম API ব্যবহার করে PiP বাস্তবায়ন করতে চান, তাহলে নিম্নলিখিত ডকুমেন্টেশনগুলি দেখুন।

,

জেটপ্যাকের মাধ্যমে পিআইপি বাস্তবায়ন করুন

জেটপ্যাক পিকচার-ইন-পিকচার লাইব্রেরি ব্যবহার করে পিকচার-ইন-পিকচার অভিজ্ঞতা বাস্তবায়ন করুন কারণ এটি ইন্টিগ্রেশনকে সহজ করে তোলে এবং অ্যাপ-মধ্যস্থ সাধারণ সমস্যাগুলি হ্রাস করে। এর ব্যবহারের উদাহরণ দেখতে আমাদের প্ল্যাটফর্ম নমুনা অ্যাপটি দেখুন। তবে, আপনি যদি প্ল্যাটফর্ম API ব্যবহার করে PiP বাস্তবায়ন করতে চান, তাহলে নিম্নলিখিত ডকুমেন্টেশনগুলি দেখুন।

PiP মোডে আপনার UI পরিচালনা করুন

যখন আপনি PiP মোডে প্রবেশ করেন, তখন আপনার অ্যাপের সম্পূর্ণ UI PiP উইন্ডোতে প্রবেশ করে, যদি না আপনি PiP মোডে আপনার UI কেমন দেখাবে তা নির্দিষ্ট করেন।

প্রথমে, আপনার অ্যাপটি কখন PiP মোডে আছে কিনা তা জানতে হবে। এটি অর্জনের জন্য আপনি OnPictureInPictureModeChangedProvider ব্যবহার করতে পারেন। নীচের কোডটি আপনাকে বলে দেবে যে আপনার অ্যাপটি PiP মোডে আছে কিনা।

@Composable
fun rememberIsInPipMode(): Boolean {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        val activity = LocalContext.current.findActivity()
        var pipMode by remember { mutableStateOf(activity.isInPictureInPictureMode) }
        DisposableEffect(activity) {
            val observer = Consumer<PictureInPictureModeChangedInfo> { info ->
                pipMode = info.isInPictureInPictureMode
            }
            activity.addOnPictureInPictureModeChangedListener(
                observer
            )
            onDispose { activity.removeOnPictureInPictureModeChangedListener(observer) }
        }
        return pipMode
    } else {
        return false
    }
}

এখন, অ্যাপটি PiP মোডে প্রবেশ করলে কোন UI উপাদানগুলি দেখাবে তা টগল করতে আপনি rememberIsInPipMode() ব্যবহার করতে পারেন:

val inPipMode = rememberIsInPipMode()

Column(modifier = modifier) {
    // This text will only show up when the app is not in PiP mode
    if (!inPipMode) {
        Text(
            text = "Picture in Picture",
        )
    }
    VideoPlayer()
}