Android TV-তে আপনার মিডিয়া অ্যাপ এক্সটেন্ড করুন

Android, হাই-ডেফিনিশন টেলিভিশনের মতো বড় স্ক্রিনের ডিভাইসে চলা অ্যাপের জন্য অপ্টিমাইজ করা একটি সমৃদ্ধ ব্যবহারকারীর অভিজ্ঞতা অফার করে। Android TV-র জন্য অ্যাপ ডেভেলপ করে আপনি আরও বেশি দর্শকের কাছে পৌঁছাতে পারবেন। এই ডকুমেন্ট থেকে আপনি জানতে পারবেন কীভাবে এটি কার্যকরভাবে করা যায়।

TV অ্যাপ তৈরি করুন

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

তবে, টিভির জন্য ব্যবহারকারীর ইন্টার‌্যাকশন মডেল ফোন এবং ট্যাবলেট ডিভাইসের থেকে যথেষ্ট আলাদা। টিভি ডিভাইসে আপনার অ্যাপকে সফল করতে, আপনাকে অবশ্যই এমন নতুন লেআউট ডিজাইন করতে হবে যা ১০ ফুট দূর থেকে স্পষ্টভাবে বোঝা যায় এবং এমন নেভিগেশন প্রদান করতে হবে যা শুধুমাত্র একটি ডিরেকশনাল প্যাড এবং একটি সিলেক্ট বোতামের মাধ্যমে কাজ করে।

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

Media3 ExoPlayer ব্যবহার করুন

Jetpack Media3 একটি প্লেয়ার ইন্টারফেস প্রদান করে যা প্লে, পজ, সিক ও ট্র্যাকের তথ্য দেখানোর মতো সাধারণ ফিচারকে সংজ্ঞায়িত করে। ExoPlayer হল Media3-তে এই ইন্টারফেসের ডিফল্ট ইমপ্লিমেন্টেশন।

Android-এর MediaPlayer API-এর তুলনায়, এটি অতিরিক্ত সুবিধা যোগ করে যেমন একাধিক স্ট্রিমিং প্রোটোকলের জন্য সহায়তা, ডিফল্ট অডিও এবং ভিডিও রেন্ডারার, এবং মিডিয়া বাফারিং ম্যানেজ করে এমন কম্পোনেন্ট।

আপনি ExoPlayer কাস্টমাইজ ও এক্সটেন্ড করতে পারবেন এবং Play Store অ্যাপ্লিকেশন আপডেটের মাধ্যমে এটি আপডেট করা যাবে। আরও তথ্যের জন্য, Media3 ExoPlayer দেখুন।

Media3 MediaSession ব্যবহার করুন

মিডিয়া সেশন, সিস্টেমকে আপনার অ্যাপের অডিও বা ভিডিও প্লেয়ারের সাথে ইন্টার‍্যাক্ট করার জন্য একটি সর্বজনীন উপায় প্রদান করে। Media3-কে আগের মিডিয়া API থেকে আলাদা করার অন্যতম প্রধান বৈশিষ্ট্য হল, কম্পোনেন্টের মধ্যে কানেক্টরের আর কোনও প্রয়োজন নেই।

নতুন MediaSession ক্লাস এমন যেকোনও ক্লাস নেয় যা Player ইন্টারফেস প্রয়োগ করে। ExoPlayer এবং MediaController, দুটিই হল ক্লাস যা সেই ইন্টারফেস প্রয়োগ করে। এর ফলে কম্পোনেন্টগুলির মধ্যে আরও সহজ ইন্টার‍্যাকশন সম্ভব হয়। আরও তথ্যের জন্য, প্লেয়ার ইন্টারফেস দেখুন।

মিডিয়া প্লেব্যাক অ্যাপ তৈরি করা সম্পর্কে আরও জানতে, ExoPlayer ব্যবহার করে বেসিক মিডিয়া প্লেয়ার তৈরি করুন দেখুন।

আপনার মিডিয়া অ্যাপের ব্যবহারকারীদের জন্য সেরা অভিজ্ঞতা তৈরি করতে, আপনাকে MediaSession প্রয়োগ করতে হবে। এটি করতে, Player ইনিশিয়ালাইজ করুন এবং এটি MediaSession.Builder-এ এইভাবে সাপ্লাই করুন:

Kotlin

val player = ExoPlayer.Builder(context).build()
val mediaSession = MediaSession.Builder(context, player).build()

জাভা

ExoPlayer player = new ExoPlayer.Builder(context).build();
MediaSession mediaSession = new MediaSession.Builder(context, player).build();

অটোমেটিক স্টেট হ্যান্ডলিং

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

প্লেব্যাক কন্ট্রোল ও বিজ্ঞাপন দেখানো

Media3-তে, ডিফল্ট প্লেয়ার হল ExoPlayer ক্লাস, যা Player ইন্টারফেস ইমপ্লিমেন্ট করে। প্লেয়ারের সাথে মিডিয়া সেশন কানেক্ট করলে, অ্যাপটি এক্সটার্নাল সোর্স থেকে মিডিয়া প্লেব্যাক বিজ্ঞাপন দেখাতে এবং প্লেব্যাক কমান্ড পেতে পারে। মিডিয়া সেশন এইসব কমান্ড মিডিয়া অ্যাপের প্লেয়ারে প্রতিনিধি হিসেবে পাঠায়।

মিডিয়া সেশন হল প্লেব্যাক কন্ট্রোল করার মূল চাবিকাঠি। এটি আপনাকে এক্সটার্নাল সোর্স থেকে প্লেয়ারে কমান্ড রুট করতে দেয় যা আপনার মিডিয়া চালানোর কাজ করে। এক্সটার্নাল ক্লায়েন্টরা মিডিয়া কন্ট্রোলার ব্যবহার করে আপনার মিডিয়া অ্যাপে প্লেব্যাক কমান্ড ইস্যু করতে পারে। এগুলি আপনার মিডিয়া সেশন রিসিভ করে, যা শেষ পর্যন্ত মিডিয়া প্লেয়ারে কমান্ড ডেলিগেট করে।

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

আপনার অ্যাপে বিঘ্ন এড়ান

MediaSession ব্যবহার করলে আপনি এইসব অপ্রয়োজনীয় বাধা এড়াতে পারবেন:

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

  • অ্যাপ থেকে বেরিয়ে আসার সময় বা টিভির ডিসপ্লে বন্ধ করার সময় মিউজিক প্লেব্যাক অপ্রত্যাশিতভাবে বন্ধ হয়ে যায়। MediaSession API ব্যবহার করলে ব্যাকগ্রাউন্ড পরিষেবায় নিরবচ্ছিন্ন প্লেব্যাক চালু থাকে।

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

আরও কিছু বিবেচ্য বিষয়

Android for TV-তে আপনার মিডিয়া অ্যাপ এক্সটেন্ড করার সময়, আপনাকে অ্যাক্সেসিবিলিটি সংক্রান্ত সমস্যা, কীভাবে এনগেজমেন্ট বাড়ানো যায়, কীভাবে ব্যবহারকারীদের কন্টেন্ট খুঁজে পেতে সাহায্য করা যায়, তার পাশাপাশি কীভাবে গেম ও টিভি ইনপুট পরিষেবা তৈরি করা যায়, সেইসব বিষয় বিবেচনা করতে হবে।

টিভিতে অ্যাক্সেসিবিলিটি

যদিও সহায়ক প্রযুক্তি স্বল্প দৃষ্টিশক্তি সম্পন্ন ব্যবহারকারীদের সাহায্য করতে পারে এবং করে, টিভি অ্যাপের জন্য কন্টেন্ট খোঁজার যাত্রায় অ্যাক্সেসিবিলিটি সমর্থন করা গুরুত্বপূর্ণ।

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

অ্যাক্সেসিবিলিটি উন্নত করার প্রথম ধাপ হল সচেতনতা। টেক্সট স্কেলিং, কীবোর্ড লেআউট ও অডিও বিবরণ সম্পর্কে আরও জানতে, অ্যাক্সেসিবিলিটি রিসোর্স দেখুন।

Google TV-তে এনগেজমেন্ট বাড়ানোর পেশাদার পদ্ধতি

Android TV-র জন্য তৈরি করা সব অ্যাপ Google TV-তে চলে এমন ডিভাইসে কাজ করে। Google TV-তে ব্যবহারকারীকে সবচেয়ে ভালো অভিজ্ঞতা প্রদান করার জন্য, আমরা আপনাকে নিম্নলিখিত পেশাদার পদ্ধতি প্রয়োগ করতে সাজেস্ট করি।

অডিও বা ভিডিও প্লেয়ারের সাথে ইন্টার‍্যাক্ট করার জন্য একটি ইউনিভার্সাল উপায় প্রদান করতে, আপনাকে MediaSession ব্যবহার করতে হবে। এটি কীভাবে প্রয়োগ করতে হয় সেই সম্পর্কে আরও জানতে, Media3 MediaSession ব্যবহার করুন দেখুন।

বেসলাইন হিসেবে, আপনার অ্যাপে Google Cast কাজ করতে হবে। এটি আপনাকে Android, iOS এবং Chrome অ্যাপের পরিধি বাড়াতে সাহায্য করে যাতে Android TV, Chromecast ডিভাইস এবং Assistant ডিভাইসে অডিও ও ভিডিও স্ট্রিম করা যায়। আরও তথ্যের জন্য, Google Cast ডকুমেন্টেশন দেখুন।

এছাড়াও, আপনি ব্যবহারকারীদের সাহায্য করতে পারেন:

  • মিডিয়া অ্যাকশন ফিড অফার করে অথবা 'পরের ভিডিওটি দেখুন' ফিচার ইন্টিগ্রেট করে বিভিন্ন সারফেস জুড়ে কন্টেন্ট খুঁজে নিন।

  • অ্যাকাউন্ট লিঙ্কিং ও এনটাইটেলমেন্ট সিঙ্ক, ভয়েস কাস্টিং অফার করা এবং Cast Connect চালু করার মাধ্যমে ভয়েস ও এনগেজমেন্টের সুবিধা নিন।

  • Google Play বিলিং ইন্টিগ্রেট করে এবং সাবস্ক্রিপশন নেওয়ার সময় কোনও বাধা না দিয়ে আরও সহজে পেমেন্ট করুন।

টিভি ইনপুট ফ্রেমওয়ার্ক তৈরি করুন

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

টিভি ইনপুট ফ্রেমওয়ার্ক, হার্ডওয়্যার সোর্স (যেমন, HDMI পোর্ট ও বিল্ট-ইন টিউনার) এবং সফ্টওয়্যার সোর্স (যেমন, ইন্টারনেটে স্ট্রিম করা ভিডিও) থেকে লাইভ ভিডিও কন্টেন্ট রিসিভ ও প্লেব্যাক করার জন্য একটি ইউনিফায়েড পদ্ধতি প্রদান করে। আরও তথ্যের জন্য, টিভি ইনপুট পরিষেবা তৈরি করুন দেখুন।