অ্যান্ড্রয়েড একটি সমৃদ্ধ ইউজার এক্সপেরিয়েন্স প্রদান করে, যা হাই-ডেফিনিশন টেলিভিশনের মতো বড় স্ক্রিনের ডিভাইসে চালিত অ্যাপের জন্য বিশেষভাবে তৈরি। অ্যান্ড্রয়েড টিভির জন্য আপনার অ্যাপটি তৈরি করে আপনি এর ব্যবহারকারীর সংখ্যা বাড়াতে পারেন। কীভাবে এটি কার্যকরভাবে করা যায়, এই ডকুমেন্টটিতে তার নির্দেশনা দেওয়া হয়েছে।
টিভি অ্যাপ তৈরি করুন
টিভি অ্যাপগুলো ফোন এবং ট্যাবলেটের অ্যাপের মতোই একই কাঠামো ব্যবহার করে। এই পদ্ধতির অর্থ হলো, অ্যান্ড্রয়েডের জন্য অ্যাপ তৈরির বিষয়ে আপনার পূর্বজ্ঞানকে কাজে লাগিয়ে আপনি নতুন টিভি অ্যাপ তৈরি করতে পারেন, অথবা আপনার বিদ্যমান অ্যাপগুলোকে টিভি ডিভাইসেও চালানোর জন্য সম্প্রসারিত করতে পারেন।
তবে, টিভির জন্য ব্যবহারকারীর মিথস্ক্রিয়ার মডেলটি ফোন এবং ট্যাবলেট ডিভাইস থেকে যথেষ্ট ভিন্ন। টিভি ডিভাইসে আপনার অ্যাপকে সফল করতে হলে, আপনাকে এমন নতুন লেআউট ডিজাইন করতে হবে যা ১০ ফুট দূর থেকেও স্পষ্টভাবে বোঝা যায়, এবং এমন নেভিগেশন ব্যবস্থা রাখতে হবে যা শুধু একটি ডিরেকশনাল প্যাড ও একটি সিলেক্ট বাটন দিয়েই কাজ করে।
টিভি হার্ডওয়্যার কন্ট্রোলার কীভাবে পরিচালনা করতে হয়, টিভি লেআউট তৈরি করা এবং টিভি নেভিগেশন তৈরির মতো বিষয়গুলো সম্পর্কে আরও তথ্যের জন্য, “বিল্ড টিভি অ্যাপস” দেখুন।
Media3 ExoPlayer ব্যবহার করুন
Jetpack Media3 একটি প্লেয়ার ইন্টারফেস প্রদান করে যা প্লে, পজ, সিক এবং ট্র্যাকের তথ্য প্রদর্শনের মতো মৌলিক বৈশিষ্ট্যগুলো নির্ধারণ করে। Media3-তে ExoPlayer হলো এই ইন্টারফেসের ডিফল্ট বাস্তবায়ন।
অ্যান্ড্রয়েডের MediaPlayer API-এর তুলনায়, এটি একাধিক স্ট্রিমিং প্রোটোকলের সমর্থন, ডিফল্ট অডিও ও ভিডিও রেন্ডারার এবং মিডিয়া বাফারিং পরিচালনাকারী কম্পোনেন্টের মতো অতিরিক্ত সুবিধা যোগ করে।
আপনি ExoPlayer-কে নিজের মতো করে সাজিয়ে নিতে ও এর পরিধি বাড়াতে পারেন এবং প্লে স্টোর অ্যাপ্লিকেশন আপডেটের মাধ্যমে এটি আপডেট করা যায়। আরও তথ্যের জন্য, Media3 ExoPlayer দেখুন।
Media3 MediaSession ব্যবহার করুন
মিডিয়া সেশন আপনার অ্যাপের অডিও বা ভিডিও প্লেয়ারের সাথে সিস্টেমের যোগাযোগের একটি সার্বজনীন উপায় প্রদান করে। পূর্ববর্তী মিডিয়া এপিআইগুলো থেকে মিডিয়া৩-কে আলাদা করে এমন একটি প্রধান বৈশিষ্ট্য হলো, কম্পোনেন্টগুলোর মধ্যে আর কানেক্টরের প্রয়োজন নেই।
নতুন MediaSession ক্লাসটি Player ইন্টারফেস ইমপ্লিমেন্ট করে এমন যেকোনো ক্লাস গ্রহণ করে। ExoPlayer এবং MediaController উভয়ই এমন ক্লাস যা ঐ ইন্টারফেসটি ইমপ্লিমেন্ট করে। এটি কম্পোনেন্টগুলোর মধ্যে মিথস্ক্রিয়াকে অনেক সহজতর করে তোলে। আরও তথ্যের জন্য, The Player interface দেখুন।
মিডিয়া প্লেব্যাক অ্যাপ তৈরি করার বিষয়ে আরও তথ্যের জন্য, ExoPlayer ব্যবহার করে একটি বেসিক মিডিয়া প্লেয়ার তৈরি করুন দেখুন।
আপনার মিডিয়া অ্যাপের ব্যবহারকারীদের জন্য সেরা অভিজ্ঞতা তৈরি করতে, আপনাকে MediaSession প্রয়োগ করতে হবে। এটি করার জন্য, একটি Player ইনিশিয়ালাইজ করুন এবং এটিকে MediaSession.Builder এ এইভাবে সরবরাহ করুন:
কোটলিন
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এর মাধ্যমে, আপনার অ্যাপ প্ল্যাটফর্মকে জানাতে পারে যে এটি মিডিয়া প্লে করছে, এবং প্ল্যাটফর্মও অ্যাপকে প্লেব্যাক বন্ধ করার জন্য জানাতে পারে।অ্যাপ থেকে বেরিয়ে গেলে বা টিভির ডিসপ্লে বন্ধ করলে মিউজিক প্লেব্যাক অপ্রত্যাশিতভাবে বন্ধ হয়ে যায় ।
MediaSessionAPI ব্যবহার করে একটি ব্যাকগ্রাউন্ড সার্ভিসে প্লেব্যাক অব্যাহত রাখা যায়।কন্টেন্টের সাথে সীমিত ইন্টারঅ্যাকশন , যা ব্যবহারকারীদের প্লেব্যাক নিয়ন্ত্রণ করতে বাধা দেয়। উদাহরণস্বরূপ, ব্যাকগ্রাউন্ডে গান বাজলে আপনার অ্যাপে ফিরে আসা, অথবা ভয়েস কমান্ড সমর্থন করা। আপনার অ্যাপে
MediaSessionথাকলে, ব্যবহারকারীরা ভয়েস কমান্ড ব্যবহার করে গান বা এপিসোড খোঁজা এবং এড়িয়ে যেতে পারেন।
আরও বিবেচ্য বিষয়
আপনি যখন আপনার মিডিয়া অ্যাপটি অ্যান্ড্রয়েড ফর টিভি-তে প্রসারিত করবেন, তখন আপনাকে অ্যাক্সেসিবিলিটি সংক্রান্ত বিষয়, ব্যবহারকারীদের সম্পৃক্ততা বাড়ানোর উপায়, ব্যবহারকারীরা যাতে সহজে কন্টেন্ট খুঁজে পায় তার ব্যবস্থা, এবং সেই সাথে গেম ও টিভি ইনপুট পরিষেবা তৈরির বিষয়গুলো বিবেচনা করতে হবে।
টিভি অ্যাক্সেসযোগ্যতা
যদিও সহায়ক প্রযুক্তি স্বল্প দৃষ্টিসম্পন্ন ব্যবহারকারীদের সাহায্য করতে পারে এবং করেও থাকে, টিভি অ্যাপের ক্ষেত্রে বিষয়বস্তু খুঁজে বের করার প্রক্রিয়ায় প্রবেশগম্যতাকে সমর্থন করা গুরুত্বপূর্ণ।
উদাহরণস্বরূপ, নেভিগেশন নির্দেশনা প্রদান এবং উপাদানগুলোকে সঠিকভাবে চিহ্নিত করার দিকে বাড়তি মনোযোগ দিন, এবং টিভি অ্যাপগুলো যেন টকব্যাক-এর মতো অ্যাক্সেসিবিলিটি ফিচারগুলোর সাথে ভালোভাবে কাজ করে, তা নিশ্চিত করতে সাহায্য করুন। এই পদক্ষেপগুলো দৃষ্টি প্রতিবন্ধী ব্যবহারকারীদের অভিজ্ঞতাকে উল্লেখযোগ্যভাবে উন্নত করতে পারে।
অ্যাক্সেসিবিলিটি উন্নত করার প্রথম ধাপ হলো সচেতনতা। টেক্সট স্কেলিং, কীবোর্ড লেআউট এবং অডিও বর্ণনা সম্পর্কে আরও তথ্যের জন্য, অ্যাক্সেসিবিলিটি রিসোর্স দেখুন।
গুগল টিভিতে এনগেজমেন্ট বাড়ানোর সেরা উপায়
অ্যান্ড্রয়েড টিভির জন্য তৈরি সমস্ত অ্যাপ গুগল টিভি চালিত ডিভাইসে কাজ করে। গুগল টিভিতে সর্বোত্তম ব্যবহারকারীর অভিজ্ঞতা প্রদানের জন্য, আমরা আপনাকে নিম্নলিখিত সেরা অনুশীলনগুলি প্রয়োগ করার পরামর্শ দিই।
অডিও বা ভিডিও প্লেয়ারের সাথে সার্বিকভাবে যোগাযোগের একটি উপায় হিসেবে আপনাকে MediaSession ব্যবহার করতে হবে। এটি কীভাবে প্রয়োগ করতে হয় সে সম্পর্কে আরও তথ্যের জন্য, "Use Media3 MediaSession" দেখুন।
ন্যূনতম শর্ত হিসেবে, আপনার অ্যাপে গুগল কাস্ট সাপোর্ট থাকা প্রয়োজন। এর মাধ্যমে আপনি আপনার অ্যান্ড্রয়েড, আইওএস এবং ক্রোম অ্যাপগুলোকে অ্যান্ড্রয়েড টিভি, ক্রোমকাস্ট ডিভাইস এবং অ্যাসিস্ট্যান্ট ডিভাইসে অডিও ও ভিডিও স্ট্রিমিংয়ের জন্য সম্প্রসারিত করতে পারেন। আরও তথ্যের জন্য, গুগল কাস্ট ডকুমেন্টেশন দেখুন।
আপনিও ব্যবহারকারীদের সাহায্য করতে পারেন:
মিডিয়া অ্যাকশন ফিড প্রদান করে, অথবা 'ওয়াচ নেক্সট' ইন্টিগ্রেট করার মাধ্যমে বিভিন্ন প্ল্যাটফর্মে কন্টেন্ট আবিষ্কার করুন ।
অ্যাকাউন্ট লিঙ্কিং ও এনটাইটেলমেন্ট সিঙ্ক সমর্থন, ভয়েস কাস্টিং সুবিধা এবং কাস্ট কানেক্ট সক্রিয় করার মাধ্যমে ভয়েস ও এনগেজমেন্টের সুবিধা গ্রহণ করুন ।
গুগল প্লে বিলিং সংযুক্ত করে এবং ঝামেলাহীন সাবস্ক্রিপশন প্রদানের মাধ্যমে আরও সহজে পেমেন্ট করুন ।
টিভি ইনপুট ফ্রেমওয়ার্ক তৈরি করুন
লাইভ টিভি শো এবং অন্যান্য নিরবচ্ছিন্ন, চ্যানেল-ভিত্তিক কন্টেন্ট দেখা টিভি অভিজ্ঞতার একটি বড় অংশ। ব্যবহারকারীরা চ্যানেল ব্রাউজ করে টিভিতে শো নির্বাচন ও দেখতে অভ্যস্ত। টিভি ইনপুট ফ্রেমওয়ার্কটি টিভি প্রোগ্রামিং গাইডে ভিডিও বা মিউজিক কন্টেন্ট প্রকাশের জন্য চ্যানেল তৈরি করে।
টিভি ইনপুট ফ্রেমওয়ার্কটি হার্ডওয়্যার উৎস (যেমন HDMI পোর্ট ও বিল্ট-ইন-টিউনার) এবং সফটওয়্যার উৎস (যেমন ইন্টারনেটের মাধ্যমে স্ট্রিম করা ভিডিও) থেকে লাইভ ভিডিও কন্টেন্ট গ্রহণ ও প্লেব্যাক করার জন্য একটি সমন্বিত পদ্ধতি প্রদান করে। আরও তথ্যের জন্য, ‘বিল্ড টিভি ইনপুট সার্ভিসেস’ দেখুন।