যেসব টিভি অ্যাপ অডিও প্লে করে, ব্যবহারকারী হোম স্ক্রিনে ফিরে গেলেও বা অন্য কোনো অ্যাপে চলে গেলেও সেগুলো তা চালিয়ে যেতে পারে। এটি করার জন্য, অ্যাপটিকে হোম স্ক্রিনে একটি ‘নাউ প্লেয়িং’ কার্ড দেখাতে হবে। এই কার্ডটি ব্যবহারকারীদের বুঝতে সাহায্য করে যে অডিওটি কোথা থেকে আসছে এবং মিডিয়া প্লেব্যাক নিয়ন্ত্রণ করতে তাদের আপনার অ্যাপে ফিরে আসতে সহায়তা করে।
যখনই কোনো সক্রিয় MediaSession চালু থাকে, অ্যান্ড্রয়েড ফ্রেমওয়ার্ক হোম স্ক্রিনে একটি ‘নাউ প্লেয়িং’ কার্ড প্রদর্শন করে। এই কার্ডে মিডিয়ার মেটাডেটা যেমন অ্যালবাম আর্ট, শিরোনাম এবং অ্যাপ আইকন অন্তর্ভুক্ত থাকে। ব্যবহারকারী যখন কার্ডটি নির্বাচন করেন, তখন সিস্টেম অ্যাপটি খুলে দেয়।
এখন তাস খেলা হচ্ছে
আপনি একটি মিডিয়া সেশন চালু করার পর, সেশনটিকে সক্রিয় করুন এবং অডিও ফোকাসের জন্য অনুরোধ করলে, 'নাউ প্লেয়িং ' কার্ডটি প্রদর্শিত হবে।
দ্রষ্টব্য: ‘নাউ প্লেয়িং’ কার্ডটি শুধুমাত্র সেইসব মিডিয়া সেশনের জন্য প্রদর্শিত হয়, যেগুলিতে FLAG_HANDLES_TRANSPORT_CONTROLS ফ্ল্যাগটি সেট করা থাকে। এই ফ্ল্যাগটি API লেভেল ২৬-এ অপ্রচলিত (deprecated) করা হয়েছে। তবে, ব্যাকওয়ার্ড কম্প্যাটিবিলিটির (backwards compatibility) জন্য পুরোনো ডিভাইসগুলিতে এই ফ্ল্যাগটির এখনও প্রয়োজন হতে পারে।
যখন setActive(false) কলের মাধ্যমে মিডিয়া সেশন নিষ্ক্রিয় করা হয় অথবা অন্য কোনো অ্যাপ মিডিয়া প্লেব্যাক শুরু করে, তখন কার্ডটি লঞ্চার স্ক্রিন থেকে সরিয়ে ফেলা হয়। যদি প্লেব্যাক সম্পূর্ণভাবে বন্ধ থাকে এবং কোনো সক্রিয় মিডিয়া না থাকে, তাহলে মিডিয়া সেশনটি অবিলম্বে নিষ্ক্রিয় করুন। যদি প্লেব্যাক পজ করা থাকে, তাহলে একটি নির্দিষ্ট সময় পর, সাধারণত ৫ থেকে ৩০ মিনিট পর, মিডিয়া সেশনটি নিষ্ক্রিয় করুন।
কার্ডটি আপডেট করুন
যখনই আপনার অ্যাপ MediaSession এ প্লেব্যাক অবস্থা আপডেট করে, তখন Now Playing কার্ডটি বর্তমান মিডিয়ার অবস্থা দেখানোর জন্য আপডেট হয়। এটি কীভাবে করতে হয় তা জানতে, “প্লেব্যাক অবস্থা আপডেট করুন” দেখুন।
একইভাবে, আপনার অ্যাপ MediaMetadata আপডেট করে ‘ নাউ প্লেয়িং ’ কার্ডে বর্তমান মিডিয়া সম্পর্কে তথ্য, যেমন শিরোনাম, উপ-শিরোনাম এবং বিভিন্ন আইকন, সরবরাহ করতে পারে। এটি কীভাবে করতে হয় তা জানতে, ‘মিডিয়া মেটাডেটা আপডেট করুন’ দেখুন।
ব্যবহারকারীর ক্রিয়ার প্রতিক্রিয়া জানান
যখন ব্যবহারকারী 'Now Playing' কার্ডটি নির্বাচন করেন, তখন সিস্টেম সেশনটির মালিক অ্যাপটি খোলে। যদি আপনার অ্যাপ setSessionActivity() এর জন্য একটি PendingIntent প্রদান করে, তাহলে সিস্টেম আপনার নির্দিষ্ট করা অ্যাক্টিভিটিটি চালু করে, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে। অন্যথায়, ডিফল্ট সিস্টেম ইন্টেন্টটি খোলে। আপনার নির্দিষ্ট করা অ্যাক্টিভিটিতে অবশ্যই প্লেব্যাক কন্ট্রোল থাকতে হবে, যা ব্যবহারকারীদের প্লেব্যাক পজ বা স্টপ করার সুযোগ দেয়।
কোটলিন
val pi: PendingIntent = Intent(context, MyActivity::class.java).let { intent -> PendingIntent.getActivity( context, 99 /*request code*/, intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE ) } session.setSessionActivity(pi)
জাভা
Intent intent = new Intent(context, MyActivity.class); PendingIntent pi = PendingIntent.getActivity(context, 99 /*request code*/, intent, PendingIntent.FLAG_UPDATE_CURRENT); session.setSessionActivity(pi);
গৃহীত ব্যবহারের ক্ষেত্র
‘নাউ প্লেয়িং’ কার্ডটি শুধুমাত্র তখনই ব্যবহার করা উচিত, যখন ব্যবহারকারী চান যে আপনার অ্যাপ থেকে বেরিয়ে যাওয়ার পরেও ব্যাকগ্রাউন্ডে অডিও চলতে থাকুক। ভিডিও প্লেব্যাক বা গেমের সাউন্ড সবসময় থেমে থাকা উচিত, যদি না আপনার অ্যাপটি পিকচার-ইন-পিকচার প্রযুক্তির সাথে সমন্বিত এবং সামঞ্জস্যপূর্ণ হয়।