অডিও ডিভাইসের জন্য Google Cast শুধুমাত্র অডিও প্লেব্যাক সমর্থন করে। এই নির্দেশিকাটি বর্ণনা করে যে কীভাবে কেবল অডিও ডিভাইসগুলির জন্য কাস্ট অ্যাপ্লিকেশনগুলিকে অপ্টিমাইজ করা যায় এবং মেমরি, সিপিইউ এবং নেটওয়ার্ক ব্যান্ডউইথ ব্যবহারের হ্রাসকৃত চাহিদাগুলির সুবিধা নেওয়া যায়৷
অডিওর জন্য Google Cast সমর্থন করে এমন একটি অ্যাপ অবশ্যই নিম্নলিখিতগুলি বিবেচনা করবে:
- অডিও ডিভাইসের জন্য Google Cast ভিডিও বা গ্রাফিক্স প্রদর্শন করে না। যাইহোক, অনেক অডিও ডিভাইসে মেটাডেটা দেখানোর জন্য একটি ডিসপ্লে থাকে, যেমন প্লেব্যাক অবস্থা (বাজানো বা বিরতি দেওয়া) এবং অগ্রগতি। আপনার আবেদন শুধুমাত্র রিসিভারে এই ধরনের সমালোচনামূলক ব্যবহারকারীর তথ্য প্রদর্শন করা উচিত নয়; সমালোচনামূলক তথ্য, এবং বেশিরভাগ ইউজার ইন্টারফেস অবশ্যই প্রেরকের উপর দেখাতে হবে।
- ওয়েব রিসিভার অ্যাপ্লিকেশানগুলি সঠিকভাবে চালানোর জন্য, অডিও ডিভাইসগুলির জন্য Google কাস্টকে এখনও গ্রাফিক্স রেন্ডার করতে হবে, যদিও সেগুলি প্রদর্শিত না হয়৷ যেহেতু ডিভাইসগুলি হার্ডওয়্যার-অ্যাক্সিলারেটেড গ্রাফিক্স ক্রিয়াকলাপগুলিকে সমর্থন করতে পারে না, তাই রিসিভার অ্যাপ্লিকেশনগুলিকে গ্রাফিক্স-নিবিড় ক্রিয়াকলাপগুলি যেমন রঙ গ্রেডিয়েন্ট, ঘূর্ণন, আলফা ব্লেন্ডিং এবং প্রতি সেকেন্ডে একাধিকবার অগ্রগতি বারের মতো বড় অবজেক্টগুলি পুনরায় অঙ্কন করা এড়ানো উচিত।
- অডিও ডিভাইসের জন্য Google Cast শুধুমাত্র Widevine for Digital Right Management (DRM) সুরক্ষিত সামগ্রী সমর্থন করে৷
- অডিও ডিভাইসের জন্য বেশিরভাগ Google কাস্টের জন্য, প্রেরক অ্যাপ্লিকেশনটি ডিভাইসের সম্পূর্ণ ভলিউম পরিসীমা নিয়ন্ত্রণ করে (উদাহরণস্বরূপ, একটি স্পিকার), শুধুমাত্র টিভিতে অডিও উত্স ইনপুটের ভলিউম নয়, যেমন একটি Chromecast ডিভাইসের সাথে।
- প্রেরক ডিভাইসের সাথে প্লেব্যাক নিয়ন্ত্রণ করা ছাড়াও (উদাহরণস্বরূপ, একটি ফোন), অ্যাপটিকে ডিভাইসের নিজস্ব কন্ট্রোলার যেমন রিমোট কন্ট্রোল, অন-ডিভাইস বোতাম বা একটি বহিরাগত রিমোট অ্যাপ্লিকেশন দিয়ে প্লেব্যাক নিয়ন্ত্রণের জন্য প্রদান করতে হতে পারে।
- অডিও ডিভাইসের জন্য একটি Google Cast একটি ছোট LCD স্ক্রীন, HDMI আউটপুট (সাউন্ডবার বা অডিও-ভিডিও রিসিভারের জন্য), বা একটি বাহ্যিক দূরবর্তী অ্যাপ্লিকেশন, নির্দিষ্ট ডিভাইস UI এর উপর নির্ভর করে সামগ্রী মেটাডেটা প্রদর্শন সমর্থন করতে পারে৷
উন্নয়ন
অডিওর জন্য Google Cast সমর্থন করার জন্য একটি কাস্ট অ্যাপ্লিকেশন বিকাশের প্রথম ধাপ হল অডিও-ভিডিওর জন্য একটি কাস্ট অ্যাপ্লিকেশন বিকাশ করা এবং এটি একটি Chromecast এ চলে তা নিশ্চিত করা৷ এই দস্তাবেজটি অনুমান করে যে আপনি এমন একটি অ্যাপ তৈরি করেছেন এবং পরীক্ষা করেছেন৷
একটি অ্যাপ অডিও-ভিডিও এবং অডিও-শুধু ডিভাইস উভয়ই সমর্থন করতে পারে। এটি কখন একটি বনাম অন্যটিতে কাস্ট করা হয় তা জানতে হবে এবং প্রদত্ত পরিস্থিতিতে সর্বোত্তম ব্যবহারকারীর অভিজ্ঞতা নিশ্চিত করার জন্য ব্যবস্থা গ্রহণ করতে হবে।
উদাহরণস্বরূপ, দ্বৈত ভিডিও এবং অডিও অ্যাপ্লিকেশনগুলি (যেমন স্থানীয়/এনএএস ফাইল প্লেব্যাক অ্যাপ্লিকেশনগুলি) অডিও ফাইলগুলি চালানো সমর্থন করার জন্য কেবলমাত্র অডিও ডিভাইসগুলিতে কাস্টিং সক্ষম করা উচিত, তবে অ্যাপটি ব্যবহারকারীকে কেবলমাত্র অডিওতে ভিডিও ফাইলগুলি প্রেরণের অনুমতি দেবে না ডিভাইস অ্যাপটি ডিভাইসের জন্য উপযুক্ত বিষয়বস্তু নির্ধারণ করতে নীচে বর্ণিত প্রেরকদের জন্য ডিভাইস ক্ষমতা API ব্যবহার করতে পারে।
অডিওর জন্য Google Cast সমর্থন করতে, আপনার অ্যাপটিকে অবশ্যই নিম্নলিখিতগুলি করতে হবে:
শুধুমাত্র-অডিও সমর্থন করুন: স্ট্রিমিং সঙ্গীত এবং অডিও ফাইল, রেডিও, ইত্যাদি। ওয়েব রিসিভার অ্যাপে স্ট্রিম করা মিডিয়া অবশ্যই একটি ভিডিও স্ট্রিম হতে হবে না। এছাড়াও, অ্যাপ্লিকেশন লঞ্চের সময় এবং মেমরি ব্যবহার উন্নত করতে স্ট্রিমিং গ্রাফিক্স এবং চিত্রগুলি এড়িয়ে চলুন। নীচে মেমরি ব্যবহারের নির্দেশিকা দেখুন।
অডিও ডিভাইসের জন্য কাস্টের পাশাপাশি নিয়মিত Chromecast-এ প্রত্যাশিতভাবে চালান।
ডিভাইসের ক্ষমতা
আপনার অ্যাপ্লিকেশানটি ডিভাইসের সক্ষমতা APIগুলির গুণে, ডিভাইস থেকে পাওয়া যায় বা প্রেরক বা রিসিভার APIগুলির মাধ্যমে এটি একটি অডিও-অডিও ডিভাইসে চলছে কিনা তা জানতে পারে৷
ডিভাইস HTTP হেডার
অ্যাপ্লিকেশন লঞ্চের সময় কাস্ট ডিভাইস দ্বারা প্রদত্ত CAST-DEVICE-CAPABILITIES
HTTP শিরোনামটি ডিভাইসের ক্ষমতা বর্ণনা করে৷ ডিভাইসটি ওয়েব রিসিভার অ্যাপ হোস্ট করা সার্ভারে এই হেডার সহ একটি অনুরোধ পাঠায়। শুধুমাত্র-অডিও ডিভাইসের শিরোনামটি CAST-DEVICE-CAPABILITIES: {"display_supported":false}
যখন আপনার সার্ভার ডিভাইস থেকে অনুরোধ গ্রহণ করে, তখন আপনি এই শিরোনামের তথ্য ব্যবহার করে অনুরোধটিকে ওয়েব রিসিভার অ্যাপে রিডাইরেক্ট করতে পারেন যা অডিও ডিভাইসের জন্য অপ্টিমাইজ করা হয়েছে।
ওয়েব রিসিভার API
যখন ওয়েব রিসিভার অ্যাপটি লোড হয় তখন আপনি CastReceiverManager.getDeviceCapabilities()
কল করে একই ডিভাইসের ক্ষমতার বস্তু পেতে পারেন।
আরও তথ্যের জন্য ডিভাইসের ক্ষমতা দেখুন।
প্রেরক API
প্রতিটি কাস্ট প্রেরক API-এর ডিভাইসের ক্ষমতার তথ্যও রয়েছে। এগুলি আপনার প্রেরক অ্যাপকে রিসিভারকে কোন ধরনের মিডিয়া পাঠাতে হবে তা নির্ধারণ করতে দেয়। যদি আপনার অ্যাপটি অডিও এবং ভিডিও উভয়ই সমর্থন করে, তাহলে এটি শুধুমাত্র অডিও ডিভাইসে ভিডিও সামগ্রী পাঠানো এড়াতে পারে। এছাড়াও, ডিজাইন চেকলিস্টে বর্ণিত ডিভাইসের জন্য সবচেয়ে উপযুক্ত পদ্ধতি ব্যবহার করে আপনার অ্যাপ ভলিউম নিয়ন্ত্রণ করতে পারে। প্রেরকদের জন্য নিম্নলিখিত ডিভাইস ক্ষমতা API দেখুন:
- Android: CastDevice.hasCapabilities
- iOS: ডিভাইস সক্ষমতা
- ক্রোম: chrome.cast.Capability
মেমরি ব্যবহারের নির্দেশিকা
অডিও ডিভাইসে চলমান ওয়েব রিসিভার অ্যাপগুলিকে অবশ্যই মেমরির ব্যবহার নিম্নরূপ পরিচালনা করতে হবে:
- মেমরি ফুটপ্রিন্ট কমাতে এবং প্লেব্যাক শুরু না হওয়া পর্যন্ত সময় কমাতে কোনো ছবি বা গ্রাফিক্স সম্পদ ডাউনলোড বা ব্যবহার করা এড়িয়ে চলুন।
- মিডিয়া সোর্স এক্সটেনশন (MSE) ব্যবহার করার সময়, অ্যাপ্লিকেশনগুলিকে অবশ্যই স্ট্রীম বাফার 2MB পর্যন্ত সীমাবদ্ধ করতে হবে। মিডিয়া প্লেয়ার লাইব্রেরি (MPL) ব্যবহার করলে, অ্যাপ্লিকেশনটির স্ট্রীম বাফার আকার ইতিমধ্যে MPL দ্বারা সংজ্ঞায়িত করা হয়েছে।
- HTMLMediaElement ব্যবহার করার সময়, অ্যাপ্লিকেশনটির স্ট্রীম বাফার আকার স্ট্রীম হারের উপর ভিত্তি করে Chrome দ্বারা সংজ্ঞায়িত করা হয়। অডিও বিটরেট প্রতি সেকেন্ডে 2 মেগাবিটে সীমাবদ্ধ করুন, যা সমর্থিত মিডিয়াতে বর্ণিত সমস্ত কোডেককে সমর্থন করে (48KHz/16bit পর্যন্ত)।
ভলিউম নিয়ন্ত্রণ
অডিও ডিভাইসের জন্য বেশিরভাগ Google কাস্টের জন্য, প্রেরক অ্যাপ্লিকেশনটি ডিভাইসের সম্পূর্ণ ভলিউম পরিসীমা নিয়ন্ত্রণ করে, শুধু অডিও উৎস ইনপুট ভলিউম নয়, Chromecast ডিভাইসের মতো। এর মানে হল অডিও-অডিও অ্যাপ্লিকেশনের জন্য ভলিউম পরিবর্তনের বৃদ্ধি অবশ্যই ছোট হতে হবে। আপনার অ্যাপে ভলিউম নিয়ন্ত্রণ প্রদানের নির্দেশিকাগুলির জন্য নিম্নলিখিত নথিগুলি দেখুন:
- ডিজাইন চেকলিস্টে প্রেরকের ভলিউম নিয়ন্ত্রণ
- অ্যান্ড্রয়েড প্রেরকের ভলিউম
- iOS প্রেরকের ভলিউম
- ওয়েব প্রেরকের ভলিউম
ডিভাইস নিয়ন্ত্রণ
অডিও ডিভাইসের জন্য Google Cast এর নিজস্ব প্লেব্যাক নিয়ন্ত্রণ থাকতে পারে (যেমন বোতাম, রিমোট)। এগুলি urn:x-cast:com.google.cast.media
নামস্থানের জন্য সংজ্ঞায়িত মিডিয়া প্লেব্যাক বার্তাগুলি ব্যবহার করে, যেমন মিডিয়া প্লেব্যাক বার্তাগুলিতে বর্ণিত হয়েছে, রিসিভার অ্যাপ্লিকেশনে প্লেব্যাক নিয়ন্ত্রণ করতে৷ ডিভাইসের প্লেব্যাক নিয়ন্ত্রণগুলিকে সমর্থন করার জন্য আপনার রিসিভার অ্যাপ্লিকেশনটিকে অবশ্যই এই মিডিয়া প্লেব্যাক বার্তাগুলিকে সমর্থন করতে হবে৷
এছাড়াও, আপনার প্রেরক অ্যাপটি রিসিভার থেকে প্রেরকের বার্তাগুলিকে সমর্থন করবে যাতে ব্যবহারকারী যদি ডিভাইস নিয়ন্ত্রণের সাথে মিডিয়া অবস্থা পরিবর্তন করে, আপনার প্রেরক অ্যাপটি প্রাপকের কাছ থেকে একটি স্থিতি বার্তা পেতে পারে এবং সেই অনুযায়ী UI আপডেট করতে পারে।
ডিভাইস প্রদর্শন
অডিও ডিভাইসের জন্য একটি Google কাস্ট ডিভাইসে একটি LCD স্ক্রিন বা একটি ডিভাইস-নির্দিষ্ট নিয়ন্ত্রণ অ্যাপ্লিকেশন থাকতে পারে যা মিডিয়া মেটাডেটা প্রদর্শন করে। আপনার রিসিভার অ্যাপটিকে অবশ্যই সমস্ত অডিও ট্র্যাকের জন্য এই মেটাডেটা প্রদান করতে হবে এবং মেটাডেটা প্রদর্শনে যথাযথভাবে প্রদর্শিত হয় তা নিশ্চিত করতে এটি বর্তমানে বাজানো সামগ্রীর সাথে সিঙ্কে রয়েছে তা নিশ্চিত করতে হবে। যদি অ্যাপ্লিকেশনটি কাস্টম মেটাডেটা ব্যবহার করে, তবে এটি অবশ্যই মানক অডিও মেটাডেটা (ট্র্যাক নাম, শিল্পীর নাম, অ্যালবামের শিরোনাম, ইত্যাদি) প্রদান করতে হবে যা নীচের প্রতিটি প্ল্যাটফর্মের জন্য বর্ণনা করা হয়েছে৷
রিসিভার মিডিয়া লোড করার সময় প্রেরকের কাছ থেকে মেটাডেটা পায়। আপনার প্রেরক অ্যাপে, রিসিভারে মিডিয়া লোড করার কমান্ড সহ, আপনাকে অবশ্যই নীচে বর্ণিত ক্ষেত্রগুলি নির্দিষ্ট করতে হবে যাতে মেটাডেটা অডিও ডিভাইসের জন্য Google Cast-এ প্রদর্শিত হয়৷ নিম্নলিখিত API ব্যবহার করুন:
MEDIA_TYPE_MUSIC_TRACK
সহ AndroidMediaMetadata
এবং:GCKMediaMetadataType
GCKMediaMetadataTypeMusicTrack
সহ iOSGCKMediaMetadata
এবং:MusicTrackMediaMetadata
সহ ChromeMediaInfo
এবং:
কাস্ট অ্যাপ যদি রিসিভারে বা ক্লাউডে একটি মিডিয়া সারি পরিচালনা করে, তাহলে ওয়েব রিসিভারকে অবশ্যই urn:x-cast:com.google.cast.media
নামস্থান ব্যবহার করে যেকোন মিডিয়া স্ট্যাটাস আপডেট সম্প্রচার করতে হবে যাতে সমস্ত প্রেরক সিঙ্ক্রোনাইজ হয়৷
নিবন্ধন
আপনাকে অবশ্যই পরীক্ষার জন্য অডিও ডিভাইসের জন্য আপনার Google Cast নিবন্ধন করতে হবে এবং Google Cast SDK বিকাশকারী কনসোল ব্যবহার করে অডিও ডিভাইসের জন্য Google Cast সমর্থন করতে আপনার অ্যাপ নিবন্ধন করতে হবে৷
- ডিভাইস নিবন্ধন সম্পর্কে আরো তথ্যের জন্য ডিভাইস দেখুন.
- আপনার অ্যাপটিকে অডিও ডিভাইসের জন্য Google Cast আবিষ্কার করার অনুমতি দিতে আপনার অ্যাপ্লিকেশন নিবন্ধন করার সময় আপনাকে অবশ্যই কেবলমাত্র অডিও ডিভাইসগুলিতে কাস্টিং সমর্থন করে চেকবক্সটি চেক করতে হবে৷ আপনার আবেদন নিবন্ধন দেখুন.
অপ্রকাশিত অ্যাপ্লিকেশানগুলির জন্য, যেমন পরীক্ষার জন্য ব্যবহার করা হয়, আপনাকে অবশ্যই অডিও-অডিও ডিভাইসগুলিকে সমর্থন করার বিকল্পটি নির্বাচন করতে হবে যাতে অ্যাপটি কেবলমাত্র অডিও ডিভাইসগুলি আবিষ্কার করতে পারে৷
অডিও 2.0 এর জন্য Google Cast
অডিওর জন্য Google Cast (GC4A) 2.0 হল পরবর্তী প্রজন্মের কাস্ট অডিও প্ল্যাটফর্ম যা কম মেমরির ডিভাইসগুলিকে লক্ষ্য করার জন্য ডিজাইন করা হয়েছে, এমন ডিভাইসগুলির ইকোসিস্টেমকে প্রসারিত করতে যা আপনার সামগ্রী স্ট্রিম করতে পারে৷ যেহেতু GC4A 2.0 অডিও প্ল্যাটফর্মগুলিকে লক্ষ্য করে, ওয়েব API সেটটি প্রদর্শনহীন ডিভাইসগুলির সাথে সারিবদ্ধ করার জন্য হ্রাস করা হয়েছে৷ GC4A 2.0 কাস্ট সমর্থন করে এমন নতুন এবং বিদ্যমান স্পিকারগুলিতে রোল আউট হচ্ছে৷
পরীক্ষা এবং ডিবাগিং
যেহেতু সমস্ত সমর্থিত স্পিকার GC4A 2.0-এ রূপান্তরিত হবে, তাই এটি গুরুত্বপূর্ণ যে অডিও অ্যাপ বিকাশকারীরা তাদের অ্যাপগুলি GC4A 2.0-এ পরীক্ষা করে। আপনি একটি প্রোডাকশন Bose Wi-Fi স্পিকার, JBL Charge 5 Wi-Fi, JBL প্রমাণীকরণ, ক্যামব্রিজ অডিও, Teuful Motiv Home, LG 2024 Soundbars-এ GC4A 2.0-এর জন্য আপনার কাস্ট অ্যাপটি পরীক্ষা করতে পারেন।
GC4A 2.0 Chrome রিমোট ডিবাগার সমর্থন করে না। আপনি যদি আপনার অ্যাপ ডিবাগ করতে চান, Google কাস্ট ডিবাগ লগার ব্যবহার করার পরামর্শ দেয়।
প্রস্তাবিত মৌলিক পরীক্ষার ক্ষেত্রে
GC4A 2.0-এ অ্যাপের সমস্ত বৈশিষ্ট্য পরীক্ষা করার পরামর্শ দেওয়া হয়। সমস্ত মিডিয়া প্রকার (পডকাস্ট, স্ট্রিম, ইত্যাদি), বিরতি, স্ক্রাবিং, এড়িয়ে যাওয়া, প্লেলিস্ট পরিবর্তন, থামানো এবং কাস্ট পুনরায় সংযোগ করার পরীক্ষা অন্তর্ভুক্ত করতে ভুলবেন না।
সমর্থিত API
GC4A 2.0 নিম্নলিখিত API সমর্থন করে:
- এইচটিএমএল
- জাভাস্ক্রিপ্ট ECMA 6
- DOMParser
- XMLSerializer
- ডকুমেন্ট এবং সাবক্লাস
- ডকুমেন্ট ফ্র্যাগমেন্ট
- HTMLMediaElement এবং HTMLAudioElement
- HTMLVideoElement (শুধুমাত্র অডিও সামগ্রী চালাতে পারে)
- HTMLScriptElement
- HTMLBaseElement
- HTML TemplateElement
- কাস্টম উপাদান
- ছায়া DOM
- স্ক্রিপ্ট মডিউল / async / বিলম্বিত
- আনয়ন / এক্সএইচআর
- ওয়েবসকেট
- মেসেজপোর্ট
- কুকিজ
- MSE (মিডিয়া সোর্স এক্সটেনশন)
- EME (এনক্রিপ্ট করা মিডিয়া এক্সটেনশন)
- স্থানীয় / সেশন স্টোরেজ
GC4A 2.0 সমর্থন করে না :
- ডায়নামিক মডিউল আমদানি (2024 সালে যোগ করা হবে)
- সিএসএস
- আইফ্রেম
- টেক্সটট্র্যাকস
যোগাযোগ
পরীক্ষার জন্য সেট আপ করতে সাহায্যের প্রয়োজন হলে অথবা বোস স্পিকার ব্যবহার করতে অক্ষম হলে অনুগ্রহ করে gc4a-support-external@google.com-এর সাথে যোগাযোগ করুন।