'এখন চলছে' কার্ড দেখানো

যেসব টিভি অ্যাপ অডিও চালায়, ব্যবহারকারী হোম স্ক্রিনে ফিরে এলে বা অন্য অ্যাপে পাল্টে গেলেও সেগুলি অডিও চালানো চালিয়ে যেতে পারে। এটি করার জন্য, অ্যাপটিকে হোম স্ক্রিনে এখন চলছে কার্ড দেখাতে হবে। এই কার্ড ব্যবহারকারীদের বুঝতে সাহায্য করে যে অডিও কোথা থেকে আসছে এবং মিডিয়া প্লেব্যাক কন্ট্রোল করতে আপনার অ্যাপে ফিরে যেতে সাহায্য করে।

কোনও অ্যাক্টিভ MediaSession উপস্থিত থাকলে, Android ফ্রেমওয়ার্ক হোম স্ক্রিনে এখন চলছে কার্ড দেখায়। কার্ডে অ্যালবাম আর্ট, শীর্ষক ও অ্যাপ আইকনের মতো মিডিয়া মেটাডেটা অন্তর্ভুক্ত থাকে। ব্যবহারকারী কার্ড বেছে নিলে, সিস্টেম অ্যাপটি খুলে দেয়।

'এখন চলছে' কার্ড

আপনি মিডিয়া সেশন প্রয়োগ করার পরে, সেশনকে অ্যাক্টিভ হিসেবে সেট করুন এবং অডিও ফোকাসের অনুরোধ করুন, তাহলে এখন চলছে কার্ড দেখা যাবে।

মনে রাখবেন: এখন চলছে কার্ডটি শুধুমাত্র FLAG_HANDLES_TRANSPORT_CONTROLS ফ্ল্যাগ সেট করা মিডিয়া সেশনের জন্য দেখানো হয়। API লেভেল ২৬-এ এই ফ্ল্যাগটি বাতিল করা হয়েছে। তবে, পুরনো ডিভাইসে ব্যাকওয়ার্ড কম্প্যাটিবিলিটির জন্য এই ফ্ল্যাগ এখনও প্রয়োজন হতে পারে।

কোনও setActive(false) কল মিডিয়া সেশন ডিঅ্যাক্টিভেট করলে অথবা অন্য কোনও অ্যাপ মিডিয়া প্লেব্যাক শুরু করলে, লঞ্চার স্ক্রিন থেকে কার্ডটি সরিয়ে দেওয়া হয়। প্লেব্যাক সম্পূর্ণ বন্ধ হয়ে গেলে এবং কোনও অ্যাক্টিভ মিডিয়া না থাকলে, সঙ্গে সঙ্গে মিডিয়া সেশন ডিঅ্যাক্টিভেট করুন। প্লেব্যাক পজ করা থাকলে, কিছু সময় পরে মিডিয়া সেশন ডিঅ্যাক্টিভেট করুন, সাধারণত ৫ থেকে ৩০ মিনিট।

কার্ড আপডেট করা

আপনার অ্যাপ যখনই MediaSession-এ প্লেব্যাকের অবস্থা আপডেট করে, তখন এখন চলছে কার্ডটি বর্তমান মিডিয়ার অবস্থা দেখাতে আপডেট হয়। এটি কীভাবে করবেন তা জানতে, প্লেব্যাক স্টেট আপডেট করুন দেখুন।

একইভাবে, আপনার অ্যাপ MediaMetadata আপডেট করে বর্তমান মিডিয়া সম্পর্কে এখন চলছে কার্ডে তথ্য প্রদান করতে পারে, যেমন, শীর্ষক, সাবটাইটেল এবং বিভিন্ন আইকন। এটি কীভাবে করবেন তা জানতে, মিডিয়া মেটাডেটা আপডেট করুন দেখুন।

ব্যবহারকারীর অ্যাকশনের উত্তর দেওয়া

ব্যবহারকারী এখন চলছে কার্ড বেছে নিলে, সিস্টেম সেই অ্যাপটি খোলে যেটির সেশন চলছে। আপনার অ্যাপ যদি PendingIntent থেকে setSessionActivity(), প্রদান করে, তাহলে সিস্টেম আপনার নির্দিষ্ট করা অ্যাক্টিভিটি লঞ্চ করে, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে। তা না হলে, ডিফল্ট সিস্টেম ইনটেন্ট খুলবে। আপনার উল্লেখ করা অ্যাক্টিভিটিতে প্লেব্যাক কন্ট্রোল থাকতে হবে যা ব্যবহারকারীকে প্লেব্যাক পজ বা বন্ধ করতে দেয়।

Kotlin

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);

অনুমোদিত ব্যবহারিক ক্ষেত্র

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