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