অ্যান্ড্রয়েড 14 ফ্রেমওয়ার্ক সমর্থন সহ, বিল্ট-ইন বা সংযুক্ত স্পিকার সহ সেট-টপ বক্স (STBs) এবং ওভার-দ্য-টপ (OTT) ডিভাইসগুলি সংযুক্ত ডিভাইসগুলির জন্য সাউন্ডবার হিসাবে কনফিগার করা যেতে পারে। অ্যান্ড্রয়েড 14-এ ডায়নামিক সাউন্ডবার মোড (DSM) সাউন্ডবারগুলির জন্য HDMI কনজিউমার ইলেকট্রনিক্স কন্ট্রোল (CEC) বৈশিষ্ট্যগুলিকে সমর্থন করে, যেমন অডিও রিটার্ন চ্যানেল (ARC) এবং সিস্টেম অডিও নিয়ন্ত্রণ।
এই বৈশিষ্ট্যটি শুধুমাত্র Android TV CEC প্লেব্যাক ডিভাইসগুলিকে লক্ষ্য করে।
প্রয়োজনীয়তা
সাউন্ডবার বৈশিষ্ট্যটি গ্রহণ করতে, OEM-কে অবশ্যই এই বিভাগে তালিকাভুক্ত ডিভাইস এবং সিস্টেম UI প্রয়োজনীয়তা পূরণ করতে হবে।
ডিভাইসের প্রয়োজনীয়তা
DSM সমর্থন করতে, STB/OTT ডিভাইসকে অবশ্যই নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করতে হবে:
- ডিভাইসটি অবশ্যই Android 14 চালাতে হবে।
- যখন DSM সক্রিয় থাকে, তখন ডিভাইসটিকে HDMI CEC স্পেসিফিকেশন, যেমন ARC অনুসরণ করে একটি সাউন্ডবারের মতো আচরণ করতে হবে।
- ডিভাইসটি অবশ্যই অন্তর্নির্মিত বা সংযুক্ত স্পীকারে শব্দ চালাতে সক্ষম হতে হবে।
- যখন ডিভাইসটি একটি সক্রিয় উত্স না হয়, তখন ডিভাইসে সমস্ত মিডিয়াকে বিরতি দিতে হবে, এর পাওয়ার খরচ সীমিত করে৷
সিস্টেম UI প্রয়োজনীয়তা
DSM সমর্থন করার জন্য, OEM গুলিকে সিস্টেম UI ডিজাইন করার সময় নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করতে হবে:
- UI লেবেলে অবশ্যই ARC বা অডিও রিটার্ন চ্যানেল (ARC) এর একটি রেফারেন্স অন্তর্ভুক্ত করতে হবে।
- ARC সংযোগ স্থাপন করতে UI কে অবশ্যই ব্যবহারকারীকে ডিভাইসটিকে টিভির ARC পোর্টের সাথে সংযুক্ত করতে জানাতে হবে।
- UI কে অবশ্যই ব্যবহারকারীকে জানাতে হবে যে HDMI নেটওয়ার্কে অন্য সাউন্ডবার বা অডিও/ভিডিও রিসিভার (AVR) সংযুক্ত থাকলে বৈশিষ্ট্যটি আশানুরূপ কাজ নাও করতে পারে।
- UI কে অবশ্যই ব্যবহারকারীকে জানাতে হবে যে সেটিং টগল করার সময় স্ক্রীনটি ফ্লিক হতে পারে।
- ডিভাইসে যদি কোনো বিল্ট-ইন স্পিকার না থাকে, তাহলে DSM অবশ্যই ডিফল্টরূপে অক্ষম করতে হবে।
সর্বোত্তম অনুশীলন: আমরা SysUI বাস্তবায়নে দেখানো হিসাবে ARC সক্ষম বা অক্ষম করার জন্য ব্যবহারকারীর সেটিং এর অবস্থান হিসাবে প্রদর্শন এবং শব্দ মেনু ব্যবহার করার পরামর্শ দিই।
ফ্রেমওয়ার্ক বাস্তবায়ন
সিইসি সাউন্ডবার কার্যকারিতা বাস্তবায়ন এবং যৌক্তিক ঠিকানা 5 এর গতিশীল বরাদ্দ অ্যান্ড্রয়েড কাঠামোতে বিদ্যমান। সাউন্ডবার সেটিং সক্ষম হলে ফ্রেমওয়ার্ক যৌক্তিক ঠিকানা বরাদ্দ করে, যাতে ডিভাইসটি গতিশীলভাবে একটি সাউন্ডবার হয়ে ওঠে। যখন সাউন্ডবার সেটিং অক্ষম করা হয়, ফ্রেমওয়ার্ক যৌক্তিক ঠিকানা ডিলকেট করে।
সিস্টেম UI-তে ব্যবহারকারীর ইনপুটের উপর ভিত্তি করে, HdmiControlManager
CEC_SETTING_NAME_SOUNDBAR_MODE
কে SOUNDBAR_MODE_ENABLED
বা SOUNDBAR_MODE_DISABLED
এ সেট করে। CEC_SETTING_NAME_SOUNDBAR_MODE
এর ডিফল্ট মান SOUNDBAR_MODE_DISABLED
এ সেট করা আছে।
HdmiControlService
নিম্নলিখিতগুলি করতে CEC_SETTING_NAME_SOUNDBAR_MODE
সেটিংসের পরিবর্তনের কথা শোনে:
- একটি স্থানীয় প্লেব্যাক ডিভাইস বিদ্যমান থাকলে এবং ARC সম্পত্তি সমর্থিত হলে যাচাই করুন।
- স্থানীয় অডিও ডিভাইস যোগ বা সরাতে লজিক্যাল ঠিকানা বরাদ্দ ট্রিগার করুন।
- ডিভাইসটি হটপ্লাগ করা থাকলে সেটিংসের অবস্থা সংরক্ষিত আছে তা নিশ্চিত করুন।
সাউন্ডবার মোডের স্থিতি সেট করতে এবং পেতে ঘোষণার নিম্নলিখিত নমুনা দেখুন:
/**
* Name of a setting deciding whether the Soundbar mode feature is enabled.
* Before exposing this setting make sure the hardware supports it, otherwise, you may
* experience multiple issues.
*
* @see HdmiControlManager#setSoundbarMode(int)
*/
public static final String CEC_SETTING_NAME_SOUNDBAR_MODE = "soundbar_mode";
/**
* Soundbar mode feature enabled.
*/
public static final int SOUNDBAR_MODE_ENABLED = 1;
/**
* Soundbar mode feature disabled.
*/
public static final int SOUNDBAR_MODE_DISABLED = 0;
/**
* Set the status of Soundbar mode feature.
*
* <p>This allows to enable/disable Soundbar mode on the playback device.
* The setting's effect will be available on devices where the hardware supports this feature.
* If enabled, an audio system local device will be allocated and try to establish an ARC
* connection with the TV. If disabled, the ARC connection will be terminated and the audio
* system local device will be removed from the network.
*/
public void setSoundbarMode(@SoundbarMode int value) {
}
/**
* Get the current status of Soundbar mode feature.
*
* <p>Reflects whether Soundbar mode is currently enabled on the playback device.
* If enabled, an audio system local device will be allocated and try to establish an ARC
* connection with the TV. If disabled, the ARC connection will be terminated and the audio
* system local device will be removed from the network.
*/
public int getSoundbarMode() {}
OEM বাস্তবায়ন
ডায়নামিক সাউন্ডবার বৈশিষ্ট্য সমর্থন করার জন্য, OEMগুলিকে নিশ্চিত করতে হবে যে হার্ডওয়্যার এটি সমর্থন করে। ব্যবহারকারীর ইনপুটগুলির জন্য প্রয়োজনীয় ইন্টারফেস প্রদানের জন্য OEMগুলিকে অবশ্যই ডিভাইসটি কনফিগার করতে হবে এবং সিস্টেম UI প্রয়োগ করতে হবে ৷
ডিভাইস বাস্তবায়ন
একটি ডিভাইসে সাউন্ডবার বৈশিষ্ট্য সমর্থন করতে:
- অ্যান্ড্রয়েড 14 এ প্লেব্যাক ডিভাইস আনুন।
- ড্রাইভারে HDMI ARC পোর্ট প্রয়োগ করুন।
config_cecSoundbarModeEnabled_default
এবংconfig_cecSoundbarModeDisabled_default
এর RRO মানগুলিconfig.xml
এ অপরিবর্তিত রাখুন যাতে বৈশিষ্ট্যটি ডিফল্টরূপে নিষ্ক্রিয় থাকে।নিশ্চিত করুন যে ডিভাইসটিতে অডিও চালানোর জন্য বিল্ট ইন বা সংযুক্ত স্পিকার রয়েছে এবং অডিও নীতি কনফিগারেশন সম্পাদনা করুন৷
সিস্টেম প্রপার্টি
persist.sys.hdmi.property_arc_support
true
তে সেট করুন, যাতে ARC সমর্থিত হয়।সিস্টেম UI- তে সাউন্ডবার মোড টগল করতে সেটিংটি প্রকাশ করুন।
ডিবাগিংয়ের জন্য, সাউন্ডবার বৈশিষ্ট্যটি চালু বা বন্ধ করতে নিম্নলিখিত adb
কমান্ডটি ব্যবহার করুন ( চালুর জন্য 1
এবং বন্ধের জন্য 0
):
adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>
SysUI বাস্তবায়ন
এই বিভাগটি DSM চালু এবং বন্ধ করার জন্য একটি প্রস্তাবিত, মক UI ফ্লো বর্ণনা করে। অডিও আউটপুট সেটিং ডিসপ্লে এবং সাউন্ড মেনুর অধীনে রয়েছে, যেমন চিত্র 1 এ দেখানো হয়েছে:
চিত্র 1. ডিসপ্লে ও সাউন্ড মেনুর অধীনে অডিও আউটপুট সেটিং।
DSM কাজ করার জন্য, HDMI-CEC সক্ষম করুন সেটিংটি টগল করা আবশ্যক৷ HDMI-CEC সক্ষম হলেই ARC সেটিং সক্ষম করা যাবে৷ চিত্র 2-এ দেখানো হিসাবে HDMI-CEC নিষ্ক্রিয় থাকলে ARC সেটিং ধূসর হয়ে যায় এবং নিষ্ক্রিয় করা হয়। নিম্নলিখিত UI ফ্লোতে, যখন ব্যবহারকারী ডিসপ্লে এবং সাউন্ড মেনুতে HDMI-CEC সেটিং সক্ষম করুন এবং হোম স্পিকার নির্বাচন করেন, তখন ARC সেটিং নিষ্ক্রিয়। ব্যবহারকারী HDMI-CEC সক্ষম করে প্লে টেলিভিশন অডিও সেটিং সক্ষম করতে পারেন৷
চিত্র 2. অক্ষম ARC বিকল্পের জন্য UI।
যখন HDMI-CEC সেটিং সক্রিয় থাকে, ব্যবহারকারী DSM চালু এবং বন্ধ করতে অডিও আউটপুটের অধীনে ARC সেটিং ব্যবহার করতে পারেন। DSM চালু করতে, ব্যবহারকারী চিত্র 3-এ UI ফ্লো অনুসরণ করে। নিম্নলিখিত UI ফ্লোতে, সাউন্ডবার মোড সক্ষম করতে, ব্যবহারকারী হোম স্পিকার নির্বাচন করে এবং ARC সেটিং নির্বাচন করে নিশ্চিত করে। DSM বন্ধ করতে, ব্যবহারকারী ARC সেটিং বন্ধ করে দেয়।
চিত্র 3. DSM সক্ষম করতে UI।
বৈধতা
প্লেব্যাক ডিভাইসের স্পিকারগুলি টিভি থেকে বা টিভি প্যানেলের সাথে সংযুক্ত অন্যান্য ডিভাইস থেকে শব্দটি বাজছে তা নিশ্চিত করতে OEMগুলি একটি অডিও পরীক্ষা করতে পারে৷
ম্যানুয়াল বৈধতা
প্রত্যাশিত আচরণ ম্যানুয়ালি যাচাই করতে নিম্নলিখিত পরিস্থিতিতে ব্যবহার করুন:
- ARC সেটিং সক্ষম করা হয়েছে:
- টিভি নিজেই নিঃশব্দ।
- টিভি সাউন্ড ডিভাইসের স্পীকারে রুট করা হয়।
- ARC সেটিং অক্ষম করা হয়েছে:
- টিভি ডিভাইসে অডিও রাউটিং বন্ধ করে দেয়।
- টিভি অডিও বাজতে শুরু করে।
- ARC সেটিং সক্ষম করা হয়েছে এবং ডিভাইসটি টিভিতে একটি নন-ARC পোর্টের সাথে সংযুক্ত রয়েছে:
- ডিভাইসটি টিভির শব্দ চালায় না।
- ARC সেটিং সক্ষম করা হয়েছে এবং ডিভাইসটি সংযুক্ত হওয়ার আগে যৌক্তিক ঠিকানা 5 অন্য ডিভাইস ব্যবহার করছে:
- ডিভাইসটি একটি বিশুদ্ধ প্লেব্যাক ডিভাইসের মতো আচরণ করে, সাউন্ডবার নয়।
- ARC সেটিং সক্ষম করা হয়েছে, যৌক্তিক ঠিকানা 5 ডিভাইস দ্বারা ব্যবহার করা হচ্ছে, এবং অন্য একটি অডিও সিস্টেম নেটওয়ার্কে সংযুক্ত আছে:
- ডিভাইসের সাউন্ডবার আচরণে কোন পরিবর্তন নেই।
- ARC সেটিং সক্ষম করা হয়েছে, লজিক্যাল ঠিকানা 5 একটি নন-ARC পোর্টের সাথে সংযুক্ত ডিভাইস দ্বারা ব্যবহার করা হচ্ছে এবং আরেকটি অডিও সিস্টেম ARC পোর্টের সাথে সংযুক্ত রয়েছে:
- দ্বিতীয় অডিও সিস্টেমের জন্য টিভির সাথে ARC সংযোগ স্থাপন করা হয়নি কারণ এটি একটি অনিবন্ধিত যৌক্তিক ঠিকানা ব্যবহার করে।
- ARC সেটিং সক্ষম করা হয়েছে, এবং ডিভাইসটি হটপ্লাগ করা আছে:
- যখন সেটিং সক্রিয় থাকে তখন ডিভাইসটি স্বাভাবিক আচরণ অনুসরণ করে।
CTS বৈধতা
সাউন্ডবার সেটিং অক্ষম থাকা অবস্থায় CtsHdmiCecHostTestCases
পাস করতে হবে। CtsHdmiCecHostTestCases
টেস্ট স্যুটে HdmiCecSoundbarModeTest.java
পরীক্ষা, DSM কার্যকারিতা পরীক্ষা করে।
যদিও একটি শংসাপত্রের প্রয়োজনীয়তা নয়, আপনার বাস্তবায়ন যাচাই করতে সাউন্ডবার সেটিং সক্ষম করে CtsHdmiCecHostTestCases
চালান।
HDMI CEC-এর জন্য Android CTS পরীক্ষা চালানোর জন্য Android TV ডিভাইসের জন্য CEC CTS পরীক্ষা দেখুন।