Android 14 के फ़्रेमवर्क के साथ काम करने की सुविधा की मदद से, ओईएम सेट-टॉप बॉक्स (एसटीबी) और ओवर-द-टॉप (ओटीटी) डिवाइसों को कॉन्फ़िगर कर सकते हैं. इन डिवाइसों में, बिल्ट-इन या कनेक्ट किए गए स्पीकर होते हैं. इन्हें कनेक्ट किए गए डिवाइसों के लिए साउंडबार के तौर पर इस्तेमाल किया जा सकता है. Android 14 में मौजूद डाइनैमिक साउंडबार मोड (डीएसएम), साउंडबार के लिए एचडीएमआई कंज्यूमर इलेक्ट्रॉनिक्स कंट्रोल (सीईसी) एट्रिब्यूट के साथ काम करता है. जैसे, ऑडियो रिटर्न चैनल (एआरसी) और सिस्टम ऑडियो कंट्रोल.
यह सुविधा, सिर्फ़ Android TV पर सीईसी की मदद से वीडियो चलाने वाले डिवाइसों के लिए है.
ज़रूरी शर्तें
साउंडबार की सुविधा को अपनाने के लिए, ओईएम को इस सेक्शन में बताई गई डिवाइस और सिस्टम यूज़र इंटरफ़ेस (यूआई) से जुड़ी ज़रूरी शर्तें पूरी करनी होंगी.
डिवाइस की ज़रूरी शर्तें
डीएसएम के साथ काम करने के लिए, एसटीबी या ओटीटी डिवाइस को ये ज़रूरी शर्तें पूरी करनी होंगी:
- डिवाइस पर Android 14 चलना चाहिए.
- डीएसएम चालू होने पर, डिवाइस को एचडीएमआई सीईसी की खास जानकारी के मुताबिक साउंडबार की तरह काम करना चाहिए. जैसे, एआरसी.
- डिवाइस में, बिल्ट-इन या कनेक्ट किए गए स्पीकर पर आवाज़ चलाने की सुविधा होनी चाहिए.
- जब डिवाइस, ऐक्टिव सोर्स न हो, तो उस पर चल रहे सभी मीडिया को पॉज़ किया जाना चाहिए. इससे डिवाइस की पावर खपत कम होती है.
सिस्टम यूज़र इंटरफ़ेस (यूआई) की ज़रूरी शर्तें
डीएसएम के साथ काम करने के लिए, ओईएम को सिस्टम यूज़र इंटरफ़ेस (यूआई) डिज़ाइन करते समय ये ज़रूरी शर्तें पूरी करनी होंगी:
- यूआई लेबल में एआरसी या ऑडियो रिटर्न चैनल (एआरसी) का रेफ़रंस शामिल होना चाहिए.
- यूआई में, उपयोगकर्ता को एआरसी कनेक्शन बनाने के लिए, डिवाइस को टीवी के एआरसी पोर्ट से कनेक्ट करने की जानकारी दी जानी चाहिए.
- यूआई में, उपयोगकर्ता को यह जानकारी दी जानी चाहिए कि अगर एचडीएमआई नेटवर्क में कोई दूसरा साउंडबार या ऑडियो-वीडियो रिसीवर (एवीआर) कनेक्ट किया जाता है, तो हो सकता है कि यह सुविधा उम्मीद के मुताबिक काम न करे.
- यूआई में, उपयोगकर्ता को यह जानकारी दी जानी चाहिए कि सेटिंग को टॉगल करने पर, स्क्रीन फ़्लिकर हो सकती है.
- अगर डिवाइस में बिल्ट-इन स्पीकर नहीं हैं, तो डीएसएम को डिफ़ॉल्ट रूप से बंद किया जाना चाहिए.
फ़्रेमवर्क को लागू करना
सीईसी साउंडबार की सुविधा और लॉजिकल पता 5 के डाइनैमिक तरीके से असाइनमेंट को, Android फ़्रेमवर्क में लागू किया गया है. साउंडबार की सेटिंग चालू होने पर, फ़्रेमवर्क लॉजिकल पता असाइन करता है, ताकि डिवाइस डाइनैमिक तरीके से साउंडबार बन सके. साउंडबार की सेटिंग बंद होने पर, फ़्रेमवर्क लॉजिकल पता को हटा देता है.
सिस्टम यूज़र इंटरफ़ेस (यूआई) पर उपयोगकर्ता के इनपुट के आधार पर, 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 सेटिंग में होने वाले बदलाव को सुनकर, ये काम करता है:
- यह पुष्टि करता है कि स्थानीय तौर पर वीडियो चलाने वाला कोई डिवाइस मौजूद है या नहीं. साथ ही, यह भी पुष्टि करता है कि एआरसी प्रॉपर्टी काम करती है या नहीं.
- स्थानीय ऑडियो डिवाइस को जोड़ने या हटाने के लिए, लॉजिकल पता असाइन करने की प्रोसेस शुरू करता है.
- यह पक्का करता है कि डिवाइस को हॉटप्लग करने पर, सेटिंग की स्थिति सेव रहे.
साउंडबार मोड की स्थिति को सेट करने और पाने के लिए, यहां दिए गए सैंपल के तौर पर डिक्लेरेशन देखें:
/**
* 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.
*
* 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.
*
* 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() {}
ओईएम के लिए लागू करने का तरीका
डाइनैमिक साउंडबार की सुविधा के साथ काम करने के लिए, ओईएम को यह पक्का करना होगा कि हार्डवेयर इस सुविधा के साथ काम करता हो. ओईएम को डिवाइस को कॉन्फ़िगर करना होगा और सिस्टम यूज़र इंटरफ़ेस (यूआई) को लागू करना होगा, ताकि उपयोगकर्ता के इनपुट के लिए ज़रूरी इंटरफ़ेस उपलब्ध कराया जा सके.
डिवाइस के लिए लागू करने का तरीका
किसी डिवाइस पर साउंडबार की सुविधा को लागू करने के लिए:
- Android 14 पर वीडियो चलाने वाले डिवाइस को चालू करें.
- ड्राइवर में, एचडीएमआई एआरसी पोर्ट को लागू करें.
config.xmlमें,config_cecSoundbarModeEnabled_defaultऔरconfig_cecSoundbarModeDisabled_defaultकी RRO वैल्यू में कोई बदलाव न करें, ताकि यह सुविधा डिफ़ॉल्ट रूप से बंद रहे.यह पक्का करें कि डिवाइस में बिल्ट-इन या कनेक्ट किए गए स्पीकर हों, ताकि उन पर ऑडियो चलाया जा सके. साथ ही, ऑडियो नीति के कॉन्फ़िगरेशन में बदलाव करें.
यह बताने के लिए कि एआरसी की सुविधा काम करती है, सिस्टम प्रॉपर्टी
persist.sys.hdmi.property_arc_supportकोtrueपर सेट करें.सिस्टम यूज़र इंटरफ़ेस (यूआई) में, साउंडबार मोड को टॉगल करने की सेटिंग उपलब्ध कराएं.
डीबग करने के लिए, साउंडबार की सुविधा को चालू या बंद करने के लिए, यहां दिया गया
adbकमांड इस्तेमाल करें. चालू करने के लिए1और बंद करने के लिए0का इस्तेमाल करें:
adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>
SysUI को लागू करने का तरीका
इस सेक्शन में, डीएसएम को चालू और बंद करने के लिए, यूज़र इंटरफ़ेस (यूआई) के मॉक फ़्लो का सुझाव दिया गया है. ऑडियो आउटपुट सेटिंग, डिसप्ले और आवाज़ मेन्यू में होती है. इसके बारे में, पहली इमेज में दिखाया गया है:
पहली इमेज. डिसप्ले और आवाज़ मेन्यू में, ऑडियो आउटपुट सेटिंग.
डीएसएम के काम करने के लिए, एचडीएमआई-सीईसी चालू करें सेटिंग को टॉगल करके चालू करना ज़रूरी है. एआरसी सेटिंग को सिर्फ़ तब चालू किया जा सकता है, जब एचडीएमआई-सीईसी चालू हो. अगर एचडीएमआई-सीईसी बंद है, तो एआरसी सेटिंग उपलब्ध नहीं होती और वह बंद रहती है. इसके बारे में, दूसरी इमेज में दिखाया गया है. यूज़र इंटरफ़ेस (यूआई) के इस फ़्लो में, जब उपयोगकर्ता डिसप्ले और आवाज़ मेन्यू में एचडीएमआई-सीईसी चालू करें सेटिंग को बंद करता है और होम स्पीकर चुनता है, तो एआरसी सेटिंग बंद हो जाती है. उपयोगकर्ता, एचडीएमआई-सीईसी चालू करें सेटिंग को चालू करके, टेलीविज़न का ऑडियो चलाएं सेटिंग को चालू कर सकता है.
दूसरी इमेज. एआरसी विकल्प के बंद होने पर दिखने वाला यूज़र इंटरफ़ेस (यूआई).
एचडीएमआई-सीईसी सेटिंग चालू होने पर, उपयोगकर्ता ऑडियो आउटपुट में मौजूद एआरसी सेटिंग का इस्तेमाल करके, डीएसएम को चालू और बंद कर सकता है. डीएसएम को चालू करने के लिए, उपयोगकर्ता तीसरी इमेज में दिखाए गए यूज़र इंटरफ़ेस (यूआई) के फ़्लो को फ़ॉलो करता है. यूज़र इंटरफ़ेस (यूआई) के इस फ़्लो में, साउंडबार मोड को चालू करने के लिए, उपयोगकर्ता होम स्पीकर चुनता है. इसके बाद, एआरसी सेटिंग को चुनकर उसकी पुष्टि करता है. डीएसएम को बंद करने के लिए, उपयोगकर्ता एआरसी सेटिंग को बंद करता है.
तीसरी इमेज. डीएसएम को चालू करने के लिए दिखने वाला यूज़र इंटरफ़ेस (यूआई).
सत्यापन
ओईएम, ऑडियो टेस्ट करके यह पक्का कर सकते हैं कि वीडियो चलाने वाले डिवाइस के स्पीकर, टीवी से आने वाली आवाज़ या टीवी पैनल से कनेक्ट किए गए अन्य डिवाइसों से आने वाली आवाज़ चला रहे हों.
मैन्युअल तरीके से पुष्टि करना
उम्मीद के मुताबिक काम करने की पुष्टि करने के लिए, यहां दिए गए उदाहरणों का इस्तेमाल करें:
- एआरसी सेटिंग चालू है:
- टीवी की आवाज़ अपने-आप म्यूट हो जाती है.
- टीवी की आवाज़, डिवाइस के स्पीकर पर सुनाई देती है.
- एआरसी सेटिंग बंद है:
- टीवी, डिवाइस पर ऑडियो भेजना बंद कर देता है.
- टीवी पर ऑडियो बजने लगता है.
- एआरसी सेटिंग चालू है और डिवाइस, टीवी के किसी ऐसे पोर्ट से कनेक्ट है जो एआरसी के साथ काम नहीं करता:
- डिवाइस पर, टीवी की आवाज़ नहीं सुनाई देती.
- एआरसी सेटिंग चालू है और डिवाइस के कनेक्ट होने से पहले, लॉजिकल पता 5 का इस्तेमाल किसी दूसरे डिवाइस ने किया है:
- डिवाइस, साउंडबार की तरह नहीं, बल्कि सिर्फ़ वीडियो चलाने वाले डिवाइस की तरह काम करता है.
- एआरसी सेटिंग चालू है, लॉजिकल पता 5 का इस्तेमाल डिवाइस कर रहा है, और नेटवर्क में कोई दूसरा ऑडियो सिस्टम कनेक्ट है:
- डिवाइस के साउंडबार की तरह काम करने के तरीके में कोई बदलाव नहीं होता.
- एआरसी सेटिंग चालू है, लॉजिकल पता 5 का इस्तेमाल किसी ऐसे डिवाइस ने किया है जो एआरसी के साथ काम नहीं करने वाले पोर्ट से कनेक्ट है. साथ ही, एआरसी पोर्ट से कोई दूसरा ऑडियो सिस्टम कनेक्ट है:
- दूसरे ऑडियो सिस्टम के लिए, टीवी के साथ एआरसी कनेक्शन नहीं बनता, क्योंकि यह रजिस्टर न किए गए लॉजिकल पते का इस्तेमाल करता है.
- एआरसी सेटिंग चालू है और डिवाइस को हॉटप्लग किया गया है:
- डिवाइस, सामान्य तरीके से काम करता है. जैसे, सेटिंग चालू होने पर करता है.
सीटीएस की मदद से पुष्टि करना
CtsHdmiCecHostTestCases
साउंडबार की सेटिंग बंद होने पर, पास करना ज़रूरी है. HdmiCecSoundbarModeTest.java
टेस्ट सुइट में मौजूद CtsHdmiCecHostTestCases टेस्ट, डीएसएम की सुविधाओं की जांच करता है.
हालांकि, यह सर्टिफ़िकेशन की ज़रूरी शर्त नहीं है, लेकिन अपने डिवाइस पर लागू करने के तरीके की पुष्टि करने के लिए, साउंडबार की सेटिंग चालू करके CtsHdmiCecHostTestCases चलाएं.
एचडीएमआई सीईसी के लिए Android सीटीएस टेस्ट चलाने के लिए, Android TV डिवाइसों के लिए सीईसी सीटीएस टेस्ट देखें.