পিকচার-ইন-পিকচার (PiP) জেটপ্যাক লাইব্রেরিটি অ্যান্ড্রয়েড অ্যাপ ডেভেলপারদের জন্য PiP কার্যকারিতা বাস্তবায়নের একটি সুবিন্যস্ত ও শক্তিশালী সমাধান প্রদান করে, বিশেষত মিডিয়া প্লেব্যাক, ভিডিও কমিউনিকেশন এবং নেভিগেশন অ্যাপের ক্ষেত্রে। একটি সমন্বিত এপিআই (API) প্রদানের মাধ্যমে, এই লাইব্রেরিটি বয়লারপ্লেট কোড ও অ্যাপের সাধারণ বাগগুলো দূর করতে এবং PiP ব্যবহারকারীর অভিজ্ঞতার সামগ্রিক মান উন্নত করতে সাহায্য করে।
PiP Jetpack লাইব্রেরিটি অ্যান্ড্রয়েড ইকোসিস্টেম জুড়ে থাকা বেশ কিছু প্রধান প্রতিবন্ধকতা এবং অসঙ্গতির সমাধান করে বিদ্যমান PiP API-গুলোকে সহজতর করে তোলে:
- OS ফ্র্যাগমেন্টেশন : লাইব্রেরিটি বিভিন্ন অ্যান্ড্রয়েড সংস্করণে PiP API কলের পার্থক্যগুলি স্বয়ংক্রিয়ভাবে পরিচালনা করে, যেমন অ্যান্ড্রয়েড ১২-এর আগে
enterPictureInPictureModeএবং এর পরেisAutoEnterEnabledব্যবহার করা, ফলে ডেভেলপারদের সংস্করণের পার্থক্য পরিচালনা করার প্রয়োজন হয় না। - ভুল PiP প্যারামিটার : এটি মিডিয়া প্লেব্যাকের সময় মসৃণ এবং উচ্চ-মানের অ্যানিমেশন তৈরি করার জন্য, উদাহরণস্বরূপ
setSourceRectHintমতো PiP প্যারামিটারগুলো সঠিকভাবে সেট করার একটি সমন্বিত সমাধান প্রদান করে। - একীভূত PiP স্টেট কলব্যাক : এটি সরলীকৃত স্টেট এবং UI ব্যবস্থাপনার জন্য
onPictureInPictureModeChangedএবংonPictureInPictureUiStateChangedকে একটি একক, একীভূত কলব্যাক ইন্টারফেসে (PictureInPictureDelegate.OnPictureInPictureEventListener) একত্রিত করে। - বয়লারপ্লেট কোড হ্রাস : এই লাইব্রেরিটি প্লেব্যাক কন্ট্রোল এবং ভিডিও কল অ্যাকশনের মতো সাধারণ ব্যবহারের ক্ষেত্রগুলির জন্য পূর্বনির্ধারিত
RemoteActionsএর সেট প্রদান করে পুনরাবৃত্তিমূলক, বয়লারপ্লেট কোডের পরিমাণ কমিয়ে দেয়। - ভবিষ্যৎ-প্রস্তুতি : জেটপ্যাক লাইব্রেরির মাধ্যমে PiP-এর আরও বৈশিষ্ট্য সরবরাহ করা হয়, যা ব্যবহারকারীদের ন্যূনতম বা কোনো প্রচেষ্টা ছাড়াই অতিরিক্ত কার্যকারিতা ব্যবহারের সুযোগ দেয়।
জেটপ্যাক গ্রহণ করুন
জেটপ্যাক লাইব্রেরি ব্যবহার করার জন্য, আপনার বিদ্যমান কাস্টম PiP ইমপ্লিমেন্টেশনকে জেটপ্যাক লাইব্রেরি API দিয়ে প্রতিস্থাপন করুন। এটি ব্যবহারের জটিলতা এবং খরচ অ্যাপটির বর্তমান ইমপ্লিমেন্টেশনের উপর নির্ভর করে ভিন্ন হবে।
নিম্নলিখিত বিভাগগুলিতে PiP-এর কিছু সাধারণ ব্যবহার এবং প্রয়োজনীয় বাস্তবায়ন ধাপসমূহ বর্ণনা করা হয়েছে:
নেভিগেশন
অ্যাপটি লাইব্রেরিকে নেভিগেশনের সক্রিয় বা নিষ্ক্রিয় অবস্থা সম্পর্কে জানায় এবং এর অ্যাস্পেক্ট রেশিও নির্ধারণ করে। বাকি কাজটা জেটপ্যাক লাইব্রেরি সামলে নেয়।
মূল পার্থক্য:
- অ্যাপের দিক থেকে অটো-এন্টার এবং লেগ্যাসি-এন্টার-এর মধ্যে পার্থক্য করার প্রয়োজন নেই।
- সমন্বিত কলব্যাক ইন্টারফেসসমূহ।
- ব্যাক কম্প্যাটিবিলিটির জন্য নতুন
PictureInPictureParamsবিল্ডার।
ভিডিও কল
অ্যাপটি লাইব্রেরিকে কলটির সক্রিয় বা নিষ্ক্রিয় অবস্থা সম্পর্কে জানায় এবং অ্যাস্পেক্ট রেশিও সেট করে।
মূল পার্থক্য:
- অ্যাপের দিক থেকে অটো-এন্টার এবং লেগ্যাসি-এন্টার-এর মধ্যে পার্থক্য করার প্রয়োজন নেই।
- সমন্বিত কলব্যাক ইন্টারফেসসমূহ।
- ব্যাক কম্প্যাটিবিলিটির জন্য নতুন
PictureInPictureParamsবিল্ডার। - ভিডিও কলের জন্য প্রমিত অ্যাকশন আইকন।
ভিডিও প্লেব্যাক
জেটপ্যাক লাইব্রেরিটি প্লেয়ার ডেলিগেট প্রদান করে, যা আপনি PiP চালু বা বন্ধ করা এবং সোর্স রেকটেঙ্গেল হিন্ট নির্ভুলভাবে সেট করার জন্য ইন্টিগ্রেট করতে পারেন। এছাড়াও, আপনি ভিডিও কলের ক্ষেত্রে ব্যবহৃত অবজেক্টগুলোর মতো, আগে থেকে সংজ্ঞায়িত কিছু RemoteAction অবজেক্ট বেছে নিতে পারেন।
প্রধান বৈশিষ্ট্য:
- ব্যাকওয়ার্ড কম্প্যাটিবিলিটি নিশ্চিত করে, ওএস ভার্সন যাচাই করার প্রয়োজন নেই।
- প্লেব্যাক অবস্থার সিঙ্ক্রোনাইজেশন এবং স্বয়ংক্রিয় প্রবেশ নিয়ন্ত্রণ।
-
SourceRectHintব্যবহার করে অবিচ্ছিন্ন জ্যামিতি ট্র্যাকিং।