মোবাইল অ্যাপে Picture-in-Picture — এটি কী, কীভাবে কাজ করে এবং কোথায় ব্যবহার করা হয়

লেখক: IT Sectr প্রকাশিত: 2026-05-25 পড়ার সময়: 9 মিনিট

Picture-in-Picture (PiP) হল একটি ভিডিও প্লেব্যাক মোড যা অন্যান্য অ্যাপ্লিকেশনের উপরে ফ্লোটিং উইন্ডোতে ভিডিও দেখায়, যা ব্যবহারকারীকে অ্যাপ মিনিমাইজ করার বা প্রোগ্রামের মধ্যে সুইচ করার সময়ও দেখতে চালিয়ে যেতে দেয়। PiP উইন্ডো স্বয়ংক্রিয়ভাবে স্ক্রিনের কোণে অবস্থান করে এবং ব্যবহারকারী এটি সরাতে পারেন। Apple AVPictureInPictureController ডকুমেন্টেশন (2026) অনুসারে, PiP মোড iOS সংস্করণ 14 এবং Android সংস্করণ 8.0 থেকে সমর্থিত।

মূল পয়েন্ট

  • Picture-in-Picture — মাল্টিটাস্কিং দেখার জন্য অন্যান্য অ্যাপের উপরে ফ্লোটিং ভিডিও উইন্ডো
  • iOS PiP AVPictureInPictureController এবং AVPlayer-এর মাধ্যমে iOS 14 থেকে উপলব্ধ
  • Android PiP supportsPictureInPicture প্যারামিটার সহ Activity-তে PIP মোডের মাধ্যমে Android 8.0 থেকে উপলব্ধ
  • সীমাবদ্ধতা: PiP উইন্ডোর আকার নির্দিষ্ট এবং এটি ইন্টারঅ্যাকটিভ UI উপাদান সমর্থন করে না
  • ব্যবহার — ভিডিও কল, স্ট্রিমিং, শিক্ষামূলক প্ল্যাটফর্ম, ব্যাকগ্রাউন্ডে ভিডিও

Picture-in-Picture কী?

Picture-in-Picture (PiP) হল একটি ভিডিও প্রদর্শন মোড যা একটি ছোট ফ্লোটিং উইন্ডোতে কন্টেন্ট দেখায় যা অন্যান্য সমস্ত উইন্ডো এবং অ্যাপ্লিকেশনের উপরে থাকে। ব্যবহারকারী PiP উইন্ডোটি স্ক্রিনে ঘুরাতে পারেন, এর আকার পরিবর্তন করতে পারেন (কিছু প্ল্যাটফর্মে) এবং অন্যান্য অ্যাপ্লিকেশনে কাজ করার সময় কন্টেন্ট দেখতে চালিয়ে যেতে পারেন।

PiP-এর ধারণা টেলিভিশন থেকে এসেছে: ১৯৯০-এর দশকে টিভি সেট স্ক্রিনের কোণে দ্বিতীয় চ্যানেল দেখানোর অনুমতি দিত। মোবাইল ডিভাইসে, PiP প্রথমবার iPad-এ iOS 9 (2015)-এ Safari ভিডিওর জন্য দেখা যায়, যখন অ্যাপের জন্য পূর্ণ সিস্টেম PiP iOS 14 (2020)-এ উপলব্ধ হয়। Android-এ PiP সমর্থন আগে এসেছিল — সংস্করণ 8.0 Oreo (2017)-এ, কিন্তু শুধুমাত্র ভিডিওর জন্য, এবং Android 12 থেকে সব ধরনের কন্টেন্টের জন্য।

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

PiP কীভাবে কাজ করে?

স্থাপত্যিকভাবে, PiP একটি সিস্টেম উইন্ডো ম্যানেজারের মাধ্যমে বাস্তবায়িত হয় যা কম প্রদর্শন অগ্রাধিকার সহ একটি পৃথক উইন্ডো তৈরি করে। অ্যাপ একটি সিস্টেম সার্ভিসে ভিডিও আউটপুট অর্পণ করে যা অ্যাপ ব্যাকগ্রাউন্ডে যাওয়া বা মিনিমাইজ করার পরেও ভিডিও রেন্ডার করতে থাকে।

PiP সেশনের জীবনচক্র

প্রক্রিয়াটি শুরু হয় যখন ব্যবহারকারী সক্রিয় ভিডিও সহ অ্যাপ মিনিমাইজ করেন বা PiP বাটন চাপেন (iOS-এ), অথবা সিস্টেম স্বয়ংক্রিয়ভাবে Activity-কে PiP মোডে স্থানান্তর করে (Android-এ)। সিস্টেম উইন্ডো ম্যানেজার ভিডিও স্ট্রিম ক্যাপচার করে এবং নির্দিষ্ট অনুপাত সহ একটি ফ্লোটিং উইন্ডো তৈরি করে। উইন্ডোর আকার মূল ভিডিওর আকৃতি অনুপাত এবং প্ল্যাটফর্মের সীমাবদ্ধতার উপর নির্ভর করে: iOS-এ, PiP উইন্ডো স্ক্রিনের প্রস্থের প্রায় 1/6–1/4 অংশ নেয়; Android-এ, মোবাইল ডিভাইসের জন্য প্রস্থে 108 dp এবং উচ্চতায় 240 dp-এর কম নয়।

যখন PiP উইন্ডো সক্রিয় থাকে, অ্যাপ তিনটি অবস্থার একটিতে থাকতে পারে: ব্যাকগ্রাউন্ডে (মিনিমাইজড), সক্রিয় অবস্থায় (ব্যবহারকারী অ্যাপে ফিরে এসেছেন), অথবা অপেক্ষার অবস্থায় (সিস্টেম সম্পদের অভাবে PiP বিরতি দিয়েছে)। PiP-তে রূপান্তরের সময়, অ্যাপের অপ্রয়োজনীয় UI অপারেশন (অ্যানিমেশন, ইন্টারফেস রেন্ডারিং) বিরতি দেওয়া এবং মেমরি মুক্ত করা উচিত, কারণ মাল্টিটাস্কিং মোডে সিস্টেম সম্পদ আরও কঠোরভাবে বরাদ্দ করা হয়। iOS স্বয়ংক্রিয়ভাবে অ্যাপকে AVPictureInPictureControllerWillStartNotification পাঠায়, যখন Android onPictureInPictureModeChanged কলব্যাক পাঠায়।

PiP মোডের সীমাবদ্ধতা

PiP উইন্ডোর উল্লেখযোগ্য সীমাবদ্ধতা রয়েছে: এটি মানক UI নিয়ন্ত্রণ উপাদান (পজ বাটন, প্রোগ্রেস বার) প্রদর্শন করতে পারে না — শুধুমাত্র ন্যূনতম সিস্টেম ওভারলে যাতে মৌলিক নিয়ন্ত্রণ থাকে: প্লে/পজ, বন্ধ, পূর্ণ স্ক্রিনে প্রসারিত। সিস্টেম PiP UI-তে iOS-এ পজ এবং বন্ধ বাটন অন্তর্ভুক্ত, যখন Android-এ একই উপাদান এবং একটি অতিরিক্ত সেটিংস বাটন অন্তর্ভুক্ত। PiP-এর ভিতরে কন্টেন্টের সাথে ইন্টারঅ্যাকশন (রিওয়াইন্ড, সাবটাইটেল নির্বাচন) সম্ভব নয় — এর জন্য অ্যাপকে পূর্ণ স্ক্রিনে প্রসারিত করতে হবে।

iOS-এ PiP: বাস্তবায়ন এবং সীমাবদ্ধতা

iOS-এ, PiP AVKit ফ্রেমওয়ার্ক এবং AVPictureInPictureController ক্লাসের মাধ্যমে বাস্তবায়িত হয়। এই API iPhone এবং iPad-এর জন্য iOS 14+ এ উপলব্ধ, কিন্তু ভিন্ন প্রয়োজনীয়তা সহ: iPad-এ, PiP AVPlayerLayer-এর মাধ্যমে কাজ করে; iPhone-এ, শুধুমাত্র AVPlayerViewController-এর মাধ্যমে।

iOS-এ PiP-এর জন্য প্রয়োজনীয়তা

iOS-এ PiP কাজ করার জন্য বেশ কয়েকটি শর্ত পূরণ করতে হবে: অ্যাপকে ভিডিও প্লেব্যাকের জন্য AVPlayer ব্যবহার করতে হবে, অডিও সেশন .playback বা .playAndRecord ক্যাটাগরিতে সেট করতে হবে, এবং অ্যাপের ব্যাকগ্রাউন্ড অডিওর জন্য এনটাইটেলমেন্ট (UIBackgroundModes = audio) থাকতে হবে। এই সেটিংস ছাড়া, PiP শুরু হবে না — সিস্টেম PiP সেশন অনুরোধ প্রত্যাখ্যান করবে কারণ এটি ব্যাকগ্রাউন্ডে যাওয়ার পরে সঠিক প্লেব্যাকের গ্যারান্টি দিতে পারে না।

iOS-এ, PiP উইন্ডো স্বয়ংক্রিয়ভাবে অ্যাপ মিনিমাইজ করলে দেখা যায় যদি ভিডিও সক্রিয়ভাবে চলছে এবং ব্যবহারকারী সেটিংসে এই বৈশিষ্ট্য নিষ্ক্রিয় না করে থাকেন। ব্যবহারকারী AVPlayerViewController-এ বাটনের মাধ্যমে ম্যানুয়ালি ভিডিও PiP-তে মিনিমাইজ করতে পারেন। iOS-এ PiP উইন্ডোর আকার নির্দিষ্ট এবং সিস্টেম দ্বারা নির্ধারিত — ডেভেলপার এটি পরিবর্তন করতে পারেন না। PiP উইন্ডোর আকৃতি অনুপাত মূল ভিডিওর অনুপাতের সাথে মেলে, কিন্তু সর্বাধিক আকার iPhone-এ স্ক্রিন প্রস্থের 1/4 এবং iPad-এ 1/3 পর্যন্ত সীমাবদ্ধ।

iOS PiP-এর সীমাবদ্ধতা

iOS-এ PiP-এর প্রধান সীমাবদ্ধতা: PiP উইন্ডোতে কাস্টম UI-র অসম্ভাবনা, একবারে একটি PiP স্ট্রিম, এবং PiP কাজ করার জন্য সক্রিয় AVPlayer-এর প্রয়োজন। Multi-PiP — একসাথে একাধিক PiP উইন্ডোর প্লেব্যাক — iOS-এ সমর্থিত নয়। দ্বিতীয় PiP শুরু করার চেষ্টায় প্রথমটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়। এটি একটি হার্ডওয়্যার সীমাবদ্ধতা: ভিডিও প্রসেসর DMA এবং ভিডিও মেমরি সীমাবদ্ধতার কারণে একসাথে দুটি স্বাধীন PiP চ্যানেল পরিষেবা দিতে পারে না।

আরেকটি গুরুত্বপূর্ণ সীমাবদ্ধতা হল ব্যাকগ্রাউন্ড প্লেব্যাকের সময়কাল। যদি ব্যবহারকারী PiP উইন্ডোর সাথে ইন্টারঅ্যাক্ট না করেন, তাহলে সিস্টেম শক্তি বাঁচাতে কিছু সময় পরে প্লেব্যাক বিরতি দিতে পারে। iOS-এ স্বয়ংক্রিয় PiP বিরতি 10–15 মিনিটের নিষ্ক্রিয়তার পরে ঘটে যদি অ্যাপ ব্যাকগ্রাউন্ড টাস্কের মাধ্যমে keep-alive প্রক্রিয়া বাস্তবায়ন না করে থাকে। ভিডিও কল এবং স্ট্রিমের জন্য, PushKit এবং VoIP সার্টিফিকেট ব্যবহার করার পরামর্শ দেওয়া হয়, যা এই সীমাবদ্ধতা এড়িয়ে চলে।

Android-এ PiP: বাস্তবায়ন এবং সীমাবদ্ধতা

Android-এ, PiP একটি অন্তর্নির্মিত Activity মোড হিসাবে বাস্তবায়িত যা enterPictureInPictureMode পদ্ধতির মাধ্যমে সক্রিয় হয়। Android 8.0 (API 26) থেকে, যেকোনো Activity PiP মোডে প্রবেশ করতে পারে, এবং Android 12 (API 31) থেকে MediaCodec ব্যবহার ছাড়াই SurfaceView এবং TextureView-এর জন্য PiP সমর্থন উপলব্ধ।

ম্যানিফেস্ট কনফিগারেশন

Android ম্যানিফেস্টে PiP সমর্থনের জন্য, বিভাগে Activity-র জন্য android:supportsPictureInPicture অ্যাট্রিবিউট নির্দিষ্ট করতে হবে। এই অ্যাট্রিবিউট ছাড়া, সিস্টেম PiP-তে রূপান্তরের অনুমতি দেবে না। অতিরিক্তভাবে, android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation" নির্দিষ্ট করার পরামর্শ দেওয়া হয় যাতে PiP-তে রূপান্তরের সময় উইন্ডোর আকার পরিবর্তনে Activity পুনর্নির্মিত না হয়। মৌলিক PiP কাজ করার জন্য বিল্ডের targetSdkVersion >= 26 (Android 8.0) হতে হবে।

Android-এ, PiP উইন্ডোতে ডিফল্টভাবে কোনও নিয়ন্ত্রণ উপাদান থাকে না। ডেভেলপার setPictureInPictureParams পদ্ধতিতে RemoteAction-এর মাধ্যমে কাস্টম অ্যাকশন যোগ করতে পারেন। ৩টি অ্যাকশন উপলব্ধ (উদাহরণ: পজ/প্লে, পিছনে/সামনে ঘুরানো, বন্ধ)। প্রতিটি অ্যাকশন সিস্টেম PiP ওভারলেতে একটি আইকন হিসাবে দেখা যায়। iOS-এর বিপরীতে, যেখানে সমস্ত UI উপাদান কঠোরভাবে নির্দিষ্ট, Android মৌলিক নিয়ন্ত্রণের জন্য আরও নমনীয়তা প্রদান করে।

বিভিন্ন সংস্করণের জন্য অভিযোজন

Android-এ PiP-র OS সংস্করণের উপর নির্ভর করে বিভিন্ন ক্ষমতা রয়েছে। Android 8.0–8.1-এ, PiP শুধুমাত্র MediaPlayer বা MediaCodec-এর সাথে SurfaceView-এর মাধ্যমে চালানো ভিডিওর জন্য উপলব্ধ। Android 9 থেকে PictureInPictureArgs.Builder ব্যবহার করে PiP উইন্ডোর আকৃতি অনুপাত কনফিগার করা যায়। Android 12 কাস্টম SurfaceView এবং TextureView-এর জন্য PiP সমর্থন যোগ করেছে, পূর্ণ স্ক্রিন এবং PiP মোডের মধ্যে উন্নত রূপান্তর সহ। Android 13+ স্ক্রিন লক থাকলেও PiP উইন্ডো প্রদর্শনের অনুমতি দেয়, যদি অ্যাপের উপযুক্ত অনুমতি থাকে।

Android সংস্করণPiP ক্ষমতাAPI
8.0–8.1MediaPlayer/MediaCodec-এর জন্য মৌলিক PiP26–27
9–11আকৃতি অনুপাত কনফিগারেশন, কাস্টম অ্যাকশন28–30
12SurfaceView/TextureView PiP সমর্থন31
13+লক স্ক্রিনে PiP, উন্নত অ্যানিমেশন33+

Android PiP-র মূল পার্থক্য iOS থেকে হল multi-PiP ক্ষমতা। Android 12+-এ, সিস্টেম একসাথে একাধিক PiP উইন্ডো প্রদর্শন করতে পারে যদি অ্যাপগুলি এটি সমর্থন করে এবং ডিভাইসের কর্মক্ষমতা অনুমতি দেয়। তবে, বাস্তবে, multi-PiP SoC ক্ষমতা দ্বারা সীমাবদ্ধ: বেশিরভাগ ডিভাইস হার্ডওয়্যার ডিকোডার সীমাবদ্ধতার কারণে শুধুমাত্র একটি PiP উইন্ডো সমর্থন করে, কারণ প্রতিটি PiP উইন্ডোর নিজস্ব ভিডিও স্ট্রিম এবং একটি পৃথক ডিকোডিং সেশন প্রয়োজন।

PiP কোড উদাহরণ

সর্বশেষ API পরিবর্তনগুলি বিবেচনায় রেখে, উভয় মোবাইল প্ল্যাটফর্মে PiP-র ব্যবহারিক বাস্তবায়ন দেখি।

iOS-এ AVPictureInPictureController-এর সাথে PiP

swift
import AVKit
import AVFoundation

class VideoPlayerViewController: UIViewController {
    var player: AVPlayer!
    var pipController: AVPictureInPictureController?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let playerLayer = AVPlayerLayer(player: player)
        playerLayer.videoGravity = .resizeAspect
        view.layer.addSublayer(playerLayer)
        
        guard AVPictureInPictureController.isPictureInPictureSupported()
        else { return }
        
        pipController = AVPictureInPictureController(playerLayer: playerLayer)
        pipController?.delegate = self
    }
    
    @IBAction func startPiPTapped() {
        pipController?.startPictureInPicture()
    }
}

extension VideoPlayerViewController: AVPictureInPictureControllerDelegate {
    func pictureInPictureControllerWillStart(
        _ pictureInPictureController: AVPictureInPictureController
    ) {
        // UI উপাদান লুকান, মেমরি মুক্ত করুন
    }
    
    func pictureInPictureControllerDidStop(
        _ pictureInPictureController: AVPictureInPictureController
    ) {
        // UI পুনরুদ্ধার করুন, রেন্ডারিং পুনরায় শুরু করুন
    }
}

এই উদাহরণে, AVPictureInPictureController isPictureInPictureSupported যাচাইয়ের পর playerLayer-এর সাথে আরম্ভ করা হয় (PiP iPhone SE ১ম প্রজন্ম এবং পর্যাপ্ত মেমরি ছাড়া কিছু iPad-এ সমর্থিত নয়)। ডেলিগেট অ্যাপকে PiP শুরু এবং শেষ হওয়া সম্পর্কে জানায় — এই কলব্যাকে UI উপাদান লুকানো এবং পুনরুদ্ধার করা উচিত, কারণ PiP মোডে অ্যাপ ইন্টারফেস দৃশ্যমান নয়। PiP-তে রূপান্তরের সময়, সমস্ত অ্যানিমেশন বন্ধ করা, প্লেয়ার নিয়ন্ত্রণ লুকানো এবং অব্যবহৃত মেমরি মুক্ত করার পরামর্শ দেওয়া হয় যাতে সিস্টেম দ্বারা অ্যাপ জোর করে আনলোড হওয়া থেকে রোধ করা যায়।

Android-এ PictureInPictureParams-এর সাথে PiP

kotlin
class PipVideoActivity : AppCompatActivity() {
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setupVideoPlayer()
    }
    
    private fun enterPipMode() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            val aspectRatio = Rational(16, 9)
            
            val pipParams = PictureInPictureParams.Builder()
                .setAspectRatio(aspectRatio)
                .setAutoEnterEnabled(true)
                .build()
            
            enterPictureInPictureMode(pipParams)
        }
    }
    
    override fun onPictureInPictureModeChanged(
        isInPictureInPictureMode: Boolean,
        newConfig: Configuration
    ) {
        if (isInPictureInPictureMode) {
            // UI লুকান, শুধুমাত্র মিডিয়ায় ফোকাস করুন
            binding.controlsGroup.visibility = View.GONE
        } else {
            // UI পুনরুদ্ধার করুন
            binding.controlsGroup.visibility = View.VISIBLE
        }
    }
}

Kotlin-এর উদাহরণ PiP কনফিগার করার জন্য PictureInPictureParams.Builder ব্যবহার করে। setAspectRatio পদ্ধতি PiP উইন্ডোর আকৃতি অনুপাত সেট করে (সাধারণ ভিডিওর জন্য 16:9)। setAutoEnterEnabled(true) অ্যাপ মিনিমাইজ করার সময় স্বয়ংক্রিয় PiP রূপান্তর সক্ষম করে। onPictureInPictureModeChanged কলব্যাক PiP-তে প্রবেশ এবং প্রস্থানের সময় বলা হয় — এতে UI উপাদান লুকানো বা দেখানো উচিত। SurfaceView-এ ভিডিওর জন্য, PiP মোডে রূপান্তরের সময় Activity পুনর্নির্মাণ রোধ করতে ম্যানিফেস্টে android:configChanges="screenSize|smallestScreenSize" যোগ করে অতিরিক্ত কনফিগারেশন হ্যান্ডলিং প্রয়োজন।

কখন Picture-in-Picture ব্যবহার করবেন

PiP সেই অ্যাপগুলিতে ব্যবহারকারীর অভিজ্ঞতা উন্নত করার জন্য একটি শক্তিশালী টুল যেখানে কন্টেন্ট অন্যান্য কাজে সুইচ করার পরেও প্রাসঙ্গিক থাকে। তবে, PiP বাস্তবায়ন যুক্তিযুক্ত হতে হবে এবং ব্যবহারকারীকে বিভ্রান্ত করবে না।

সর্বোত্তম পরিস্থিতি

ভিডিও কল এবং কনফারেন্স PiP-র প্রধান ব্যবহারের মধ্যে একটি। Zoom, FaceTime, Google Meet-এ, PiP ব্যবহারকারীকে অন্যান্য অ্যাপে কাজ করার সময় বক্তাকে দেখতে দেয়: নোট পড়া, উপস্থাপনা দেখা বা ইমেল চেক করা। ভিডিও কলের জন্য PiP-তে ব্যাকগ্রাউন্ডে ক্যামেরা সমর্থন এবং ব্যাকগ্রাউন্ডে অডিও ক্যাপচার চালিয়ে যাওয়ার জন্য অডিও সেশনের সঠিক কনফিগারেশন প্রয়োজন। iOS-এ, এটি AVPlayerLayer-এর পরিবর্তে AVSampleBufferDisplayLayer ব্যবহার করে করা হয়, কারণ ভিডিও কল AVPlayer ব্যবহার করে না।

স্ট্রিমিং পরিষেবা (YouTube, Netflix, Twitch) নতুন কন্টেন্ট খুঁজতে গিয়ে ধারাবাহিক দেখার জন্য PiP সক্রিয়ভাবে ব্যবহার করে। YouTube Premium PiP-কে একটি অর্থপ্রদত্ত বৈশিষ্ট্য হিসাবে অফার করে, Netflix-ও কন্টেন্ট লাইসেন্সিং সীমাবদ্ধতার কারণে কিছু সাবস্ক্রিপশন প্ল্যানে PiP সীমাবদ্ধ করে। স্ট্রিমিং অ্যাপে PiP বাস্তবায়নের জন্য DRM সিস্টেম (FairPlay, Widevine)-এর সাথে একীকরণ প্রয়োজন যা PiP মোডে সুরক্ষিত পাইপলাইন সমর্থন করে।

কখন PiP প্রয়োজন নেই

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

সঙ্গীত এবং পডকাস্ট অ্যাপের জন্য, PiP অতিরিক্ত — ভিজুয়াল উইন্ডো ছাড়া ব্যাকগ্রাউন্ড অডিও যথেষ্ট। PiP ফ্লোটিং উইন্ডোতে ভিডিও রেন্ডার করার জন্য অতিরিক্ত GPU সম্পদ খরচ করে, যা ব্যাটারি লাইফ হ্রাস করে। যদি কন্টেন্ট অডিও-ভিত্তিক হয় (সঙ্গীত, পডকাস্ট, অডিওবুক) — PiP ছাড়া ব্যাকগ্রাউন্ড প্লেব্যাক ব্যবহার করুন। যদি ভিজুয়াল হয় — ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে PiP বাস্তবায়ন করুন।

সচরাচর জিজ্ঞাসিত প্রশ্ন

কেন আমার iPhone-এ PiP কাজ করে না?

iOS-এ PiP-র জন্য iPhone 6s+, iOS 14+ এবং সমর্থিত অঞ্চল (মার্কিন যুক্তরাষ্ট্র, কানাডা, অস্ট্রেলিয়া, ইইউ, রাশিয়া এবং অন্যান্য) প্রয়োজন। অ্যাপটিকে অডিও সেশন .playback ক্যাটাগরিতে কনফিগার করতে হবে এবং UIBackgroundModes = audio যোগ করতে হবে। সেটিংসও পরীক্ষা করুন: সেটিংস > জেনারেল > পিকচার ইন পিকচার।

PiP উইন্ডোর আকার কাস্টমাইজ করা যায় কি?

iOS-এ, PiP উইন্ডোর আকার সম্পূর্ণভাবে সিস্টেম দ্বারা নির্ধারিত এবং ডেভেলপার দ্বারা কনফিগার করা যায় না। Android-এ, শুধুমাত্র আকৃতি অনুপাত setAspectRatio-এর মাধ্যমে PictureInPictureParams.Builder-এ সেট করা যায়, কিন্তু সঠিক উইন্ডো আকার সিস্টেম নির্ধারণ করে। ব্যবহারকারী Android 12+-এ পিঞ্চ-টু-জুম জেসচার দিয়ে PiP উইন্ডোর আকার পরিবর্তন করতে পারেন।

PiP কি DRM কন্টেন্টের সাথে কাজ করে?

হ্যাঁ, PiP DRM-সুরক্ষিত কন্টেন্টের (iOS-এ FairPlay, Android-এ Widevine L1) সাথে কাজ করে যদি DRM সেশন PiP মোডে সুরক্ষিত পাইপলাইন সমর্থন করে। Widevine L3 PiP সমর্থন নাও করতে পারে, কারণ এটি ফ্লোটিং উইন্ডোতে ডিকোড করা কন্টেন্টের সুরক্ষার গ্যারান্টি দেয় না। পরীক্ষার পর্যায়ে PiP-এর সাথে DRM সামঞ্জস্য পরীক্ষা করুন।

একসাথে কতগুলি PiP উইন্ডো খোলা যেতে পারে?

iOS-এ — শুধুমাত্র একটি PiP উইন্ডো। Android 12+-এ, তাত্ত্বিকভাবে multi-PiP সমর্থিত, কিন্তু বাস্তবে বেশিরভাগ ডিভাইস হার্ডওয়্যার সীমাবদ্ধতার কারণে একটি উইন্ডোতে সীমাবদ্ধ। শীর্ষ ডিভাইস (Samsung Galaxy S24, Pixel 8) ২টি PiP উইন্ডো সমর্থন করতে পারে, কিন্তু কম কর্মক্ষমতা সহ।

PiP চলাকালীন জীবনচক্র পরিচালনা করা প্রয়োজন কি?

হ্যাঁ, জীবনচক্র পরিচালনা অত্যন্ত গুরুত্বপূর্ণ। iOS-এ, PiP-তে রূপান্তরের সময়, অ্যাপ willStart বিজ্ঞপ্তি পায় যেখানে UI লুকানো এবং মেমরি মুক্ত করা উচিত। Android-এ, PiP-তে প্রবেশ/প্রস্থানে onPictureInPictureModeChanged বলা হয়। সঠিক জীবনচক্র পরিচালনা ছাড়া, সিস্টেম অ্যাপকে মেমরি থেকে আনলোড করতে পারে, প্লেব্যাক ব্যাহত করে।

সারাংশ

  • Picture-in-Picture — মাল্টিটাস্কিং মোডে অন্যান্য অ্যাপের উপরে ভিডিও দেখার জন্য ফ্লোটিং উইন্ডো
  • iOS-এ PiP AVPlayerLayer এবং অডিও সেশন .playback-সহ AVPictureInPictureController-এর মাধ্যমে বাস্তবায়িত
  • Android-এ PiP PictureInPictureParams.Builder-সহ enterPictureInPictureMode-এর মাধ্যমে বাস্তবায়িত
  • সীমাবদ্ধতা: একটি PiP স্ট্রিম, নির্দিষ্ট উইন্ডো আকার, PiP-র ভিতরে কোনও কাস্টম UI নেই
  • জীবনচক্র PiP-তে UI উপাদান লুকানো এবং আনলোডিং রোধে মেমরি মুক্ত করা প্রয়োজন
  • প্রধান ব্যবহার — ভিডিও কল, স্ট্রিমিং, শিক্ষামূলক ভিডিও, নেভিগেশনের সময় কন্টেন্ট দেখা
  • PiP ব্যবহার করবেন না অডিও কন্টেন্টের জন্য (ব্যাকগ্রাউন্ড অডিও যথেষ্ট) বা UI উপাদানযুক্ত ইন্টারঅ্যাকটিভ ভিডিওর জন্য

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন