डाइनैमिक साउंडबार मोड

Android 14 फ़्रेमवर्क की सुविधा के साथ, OEM सेट-टॉप बॉक्स (एसटीबी) और ओवर-द-टॉप (OTT) डिवाइसों को कॉन्फ़िगर कर सकता है. इनमें पहले से मौजूद या कनेक्ट किए गए स्पीकर की सुविधा होती है. इससे, OEM, कनेक्ट किए गए डिवाइसों के साउंडबार के तौर पर काम करता है. Android 14 में डाइनैमिक साउंडबार मोड (डीएसएम), साउंडबार के लिए एचडीएमआई कंज्यूमर इलेक्ट्रॉनिक्स कंट्रोल (सीईसी) एट्रिब्यूट के साथ काम करता है. जैसे, ऑडियो रिटर्न चैनल (एआरसी) और सिस्टम ऑडियो कंट्रोल.

यह सुविधा सिर्फ़ Android TV CEC वाले प्लेबैक डिवाइसों को टारगेट करती है.

ज़रूरी शर्तें

साउंडबार की सुविधा इस्तेमाल करने के लिए, OEM को इस सेक्शन में दी गई डिवाइस और सिस्टम यूज़र इंटरफ़ेस (यूआई) की ज़रूरी शर्तों को पूरा करना होगा.

डिवाइस की ज़रूरी शर्तें

डीएसएम की सुविधा के साथ काम करने के लिए, एसटीबी या ओटीटी डिवाइस को ये शर्तें पूरी करनी होंगी:

  • आपके डिवाइस पर Android 14 होना चाहिए.
  • डीएसएम चालू होने पर, डिवाइस को साउंडबार की तरह काम करना चाहिए. इसके लिए, डिवाइस को एचडीएमआई सीईसी की खास बातों का पालन करना होगा. जैसे, एआरसी.
  • डिवाइस में पहले से मौजूद या कनेक्ट किए गए स्पीकर पर आवाज़ चलनी चाहिए.
  • जब डिवाइस कोई चालू सोर्स नहीं होता, तो उस पर मौजूद सभी मीडिया को रोक दिया जाना चाहिए. इससे डिवाइस की बैटरी खर्च होने की दर कम हो जाती है.

सिस्टम यूज़र इंटरफ़ेस (यूआई) की ज़रूरी शर्तें

डीएसएम की सुविधा देने के लिए, OEM को सिस्टम यूज़र इंटरफ़ेस डिज़ाइन करते समय ये ज़रूरी शर्तें पूरी करनी होंगी:

  • यूज़र इंटरफ़ेस (यूआई) लेबल में, एआरसी या ऑडियो रिटर्न चैनल (एआरसी) का रेफ़रंस शामिल होना चाहिए.
  • यूज़र इंटरफ़ेस (यूआई) को उपयोगकर्ता को यह बताना चाहिए कि ARC कनेक्शन बनाने के लिए, डिवाइस को टीवी के ARC पोर्ट से कनेक्ट करें.
  • यूज़र इंटरफ़ेस (यूआई) को उपयोगकर्ता को यह बताना चाहिए कि अगर HDMI नेटवर्क में कोई दूसरा साउंडबार या ऑडियो-वीडियो रिसीवर (एवीआर) कनेक्ट है, तो हो सकता है कि यह सुविधा उम्मीद के मुताबिक काम न करे.
  • यूज़र इंटरफ़ेस (यूआई) में उपयोगकर्ता को यह बताना चाहिए कि सेटिंग को टॉगल करने पर स्क्रीन झिलमिला सकती है.
  • अगर डिवाइस में पहले से कोई स्पीकर नहीं है, तो DSM की सुविधा डिफ़ॉल्ट रूप से बंद होनी चाहिए.

हमारा सुझाव है कि डिसप्ले और साउंड मेन्यू को उपयोगकर्ता सेटिंग के तौर पर इस्तेमाल करें, ताकि ARC को चालू या बंद किया जा सके. इस बारे में ज़्यादा जानकारी के लिए, SysUI लागू करने सेक्शन देखें.

फ़्रेमवर्क लागू करना

Android फ़्रेमवर्क में, सीईसी साउंडबार की सुविधा को लागू करने और लॉजिकल पते 5 को डाइनैमिक तौर पर असाइन करने की सुविधा मौजूद है. साउंडबार की सेटिंग चालू होने पर फ़्रेमवर्क, डिवाइस को डाइनैमिक तरीके से साउंडबार के तौर पर दिखाने के लिए लॉजिकल पता तय करता है. साउंडबार की सेटिंग बंद होने पर, फ़्रेमवर्क लॉजिकल पते को डिलीकेट कर देता है.

सिस्टम यूज़र इंटरफ़ेस (यूआई) पर उपयोगकर्ता के इनपुट के आधार पर, 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() {}

OEM के लिए लागू करना

डाइनैमिक साउंडबार की सुविधा काम कर सके, इसके लिए ओईएम को यह पक्का करना होगा कि हार्डवेयर इसके साथ काम करता हो. OEM को डिवाइस को कॉन्फ़िगर करना होगा और उपयोगकर्ता के इनपुट के लिए ज़रूरी इंटरफ़ेस उपलब्ध कराने के लिए, सिस्टम यूज़र इंटरफ़ेस (यूआई) लागू करना होगा.

डिवाइस पर लागू करना

किसी डिवाइस पर साउंडबार की सुविधा इस्तेमाल करने के लिए:

  1. Android 14 पर, वीडियो चलाने वाले डिवाइस को दिखाएं.
  2. ड्राइवर में एचडीएमआई एआरसी पोर्ट लागू करें.
  3. config.xml में, config_cecSoundbarModeEnabled_default और config_cecSoundbarModeDisabled_default की आरआरओ वैल्यू में कोई बदलाव न करें, ताकि यह सुविधा डिफ़ॉल्ट रूप से बंद रहे.

  4. पक्का करें कि ऑडियो चलाने के लिए, डिवाइस में पहले से मौजूद या कनेक्ट किए गए स्पीकर हों. साथ ही, ऑडियो नीति के कॉन्फ़िगरेशन में बदलाव करें.

  5. सिस्टम प्रॉपर्टी persist.sys.hdmi.property_arc_support को true पर सेट करें, ताकि यह पता चल सके कि ARC काम करता है.

  6. सिस्टम यूज़र इंटरफ़ेस (यूआई) में साउंडबार मोड को टॉगल करने के लिए सेटिंग का ऐक्सेस दें.

  7. डीबग करने के लिए, साउंडबार की सुविधा को चालू या बंद करने के लिए, यहां दिए गए adb कमांड का इस्तेमाल करें (चालू करने के लिए 1 और बंद करने के लिए 0):

adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>

SysUI लागू करना

इस सेक्शन में, डीएसएम को चालू और बंद करने के लिए, यूज़र इंटरफ़ेस (यूआई) के सुझाए गए फ़्लो के बारे में बताया गया है. ऑडियो आउटपुट सेटिंग, डिसप्ले और साउंड मेन्यू में होती है, जैसा कि पहले चित्र में दिखाया गया है:

dsm_audio_output

पहली इमेज. डिसप्ले और साउंड मेन्यू में ऑडियो आउटपुट की सेटिंग.

डीएसएम के काम करने के लिए, HDMI-CEC चालू करें सेटिंग को टॉगल करके चालू करना ज़रूरी है. एआरसी सेटिंग सिर्फ़ तब चालू की जा सकती है, जब एचडीएमआई-सीईसी चालू हो. अगर HDMI-CEC की सुविधा बंद है, तो ARC सेटिंग उपलब्ध नहीं होती और यह बंद रहती है. इसकी जानकारी, दूसरे चित्र में दी गई है. यहां दिए गए यूज़र इंटरफ़ेस (यूआई) फ़्लो में, जब उपयोगकर्ता डिसप्ले और साउंड मेन्यू में एचडीएमआई-सीईसी चालू करें सेटिंग को बंद करता है और होम स्पीकर चुनता है, तो एआरसी सेटिंग बंद हो जाती है. उपयोगकर्ता, एचडीएमआई-सीईसी चालू करें को चालू करके, टीवी का ऑडियो चलाएं सेटिंग चालू कर सकता है.

dsm_ui_disable_arc

दूसरी इमेज. बंद किए गए ARC विकल्प के लिए यूज़र इंटरफ़ेस (यूआई).

HDMI-CEC सेटिंग चालू होने पर, उपयोगकर्ता ऑडियो आउटपुट में जाकर, ARC सेटिंग का इस्तेमाल करके, डीएसएम को चालू और बंद कर सकता है. डीएसएम को चालू करने के लिए, उपयोगकर्ता तीसरे चित्र में दिए गए यूज़र इंटरफ़ेस (यूआई) फ़्लो का पालन करता है. यहां दिए गए यूज़र इंटरफ़ेस (यूआई) फ़्लो में, उपयोगकर्ता साउंडबार मोड चालू करने के लिए, होम स्पीकर चुनता है. इसके बाद, वह एआरसी सेटिंग को चुनता है और उसकी पुष्टि करता है. डीएसएम बंद करने के लिए उपयोगकर्ता, ARC सेटिंग को बंद करता है.

dsm_ui_enable_arc

तीसरी इमेज. डीएसएम को चालू करने के लिए यूज़र इंटरफ़ेस (यूआई).

पुष्टि करें

OEM, ऑडियो टेस्ट कर सकते हैं. इससे यह पक्का किया जा सकता है कि वीडियो चलाने वाले डिवाइस के स्पीकर, टीवी या टीवी पैनल से कनेक्ट किए गए अन्य डिवाइसों से आने वाली आवाज़ को चलाते हैं.

मैन्युअल तरीके से पुष्टि करना

उम्मीद के मुताबिक व्यवहार की मैन्युअल तौर पर पुष्टि करने के लिए, इन स्थितियों का इस्तेमाल करें:

  • ARC सेटिंग चालू हो:
    • टीवी अपने-आप म्यूट हो जाता है.
    • टीवी की आवाज़ को डिवाइस के स्पीकर में रूट किया जाता है.
  • ARC सेटिंग बंद है:
    • टीवी, डिवाइस पर ऑडियो भेजना बंद कर देता है.
    • टीवी पर ऑडियो चलने लगता है.
  • ARC सेटिंग चालू हो और डिवाइस, टीवी के ऐसे पोर्ट से कनेक्ट हो जो ARC के साथ काम नहीं करता:
    • डिवाइस पर टीवी की आवाज़ नहीं आ रही है.
  • ARC सेटिंग चालू हो और डिवाइस के कनेक्ट होने से पहले, कोई दूसरा डिवाइस, लॉजिकल अड्रेस 5 का इस्तेमाल कर रहा हो:
    • यह डिवाइस, साउंडबार की तरह नहीं, बल्कि सिर्फ़ एक प्लेबैक डिवाइस की तरह काम करता है.
  • ARC सेटिंग चालू है, डिवाइस पर लॉजिकल पता 5 का इस्तेमाल किया जा रहा है, और नेटवर्क में कोई दूसरा ऑडियो सिस्टम कनेक्ट है:
    • डिवाइस के साउंडबार के काम करने के तरीके में कोई बदलाव नहीं होता.
  • ARC सेटिंग चालू हो, लॉजिकल अड्रेस 5 का इस्तेमाल, बिना एआरसी पोर्ट से जुड़े डिवाइस के लिए किया जा रहा हो, और एआरसी पोर्ट से कोई दूसरा ऑडियो सिस्टम कनेक्ट किया गया हो:
    • दूसरे ऑडियो सिस्टम के लिए, टीवी के साथ ARC कनेक्शन सेट अप नहीं किया जा सकता, क्योंकि यह रजिस्ट्रेशन नहीं किए गए लॉजिकल पते का इस्तेमाल करता है.
  • ARC सेटिंग चालू हो और डिवाइस को हॉटप्लग किया गया हो:
    • यह सेटिंग चालू रहने पर, डिवाइस सामान्य तरीके से काम करता है.

सीटीएस की पुष्टि

साउंडबार की सेटिंग के बंद होने पर, CtsHdmiCecHostTestCases पास करना ज़रूरी है. CtsHdmiCecHostTestCases टेस्ट सुइट में HdmiCecSoundbarModeTest.java टेस्ट, डीएसएम की सुविधाओं की जांच करता है.

हालांकि, यह सर्टिफ़िकेशन ज़रूरी नहीं है, लेकिन लागू करने की पुष्टि करने के लिए, साउंडबार की सेटिंग चालू करके CtsHdmiCecHostTestCases चलाएं.

एचडीएमआई सीईसी के लिए Android सीटीएस टेस्ट करने के लिए, Android TV डिवाइसों के लिए सीईसी सीटीएस टेस्टिंग लेख पढ़ें.