حالت نوار صوتی پویا

با پشتیبانی از چارچوب Android 14، جعبه‌های تنظیم (STB) و دستگاه‌های رو به بالا (OTT) با بلندگوهای داخلی یا متصل می‌توانند به‌عنوان نوار صوتی برای دستگاه‌های متصل پیکربندی شوند. حالت داینامیک نوار صوتی (DSM) در Android 14 از ویژگی‌های کنترل الکترونیکی مصرفی HDMI (CEC) برای نوارهای صوتی، مانند کانال بازگشت صدا (ARC) و کنترل صدای سیستم پشتیبانی می‌کند.

این ویژگی فقط دستگاه های پخش CEC Android TV را هدف قرار می دهد.

الزامات

برای استفاده از ویژگی نوار صوتی، OEMها باید الزامات دستگاه و رابط کاربری سیستم که در این بخش ذکر شده است را برآورده کنند.

الزامات دستگاه

برای پشتیبانی از DSM، دستگاه STB/OTT باید شرایط زیر را برآورده کند:

  • دستگاه باید اندروید 14 را اجرا کند.
  • هنگامی که DSM فعال است، دستگاه باید مانند یک نوار صوتی مطابق با مشخصات HDMI CEC مانند ARC رفتار کند.
  • دستگاه باید قابلیت پخش صدا را روی بلندگوهای داخلی یا متصل داشته باشد.
  • وقتی دستگاه منبع فعال نیست، تمام رسانه ها باید روی دستگاه متوقف شوند و مصرف انرژی آن محدود شود.

الزامات رابط کاربری سیستم

برای پشتیبانی از DSM، OEM ها باید هنگام طراحی رابط کاربری سیستم، شرایط زیر را داشته باشند:

  • برچسب رابط کاربری باید حاوی ارجاع به ARC یا کانال بازگشت صوتی (ARC) باشد.
  • رابط کاربری باید به کاربر اطلاع دهد تا دستگاه را به پورت ARC تلویزیون وصل کند تا اتصال ARC برقرار شود.
  • رابط کاربری باید به کاربر اطلاع دهد که اگر نوار صوتی یا گیرنده صوتی/تصویری دیگری (AVR) به شبکه HDMI متصل باشد، ممکن است این ویژگی آن طور که انتظار می رود کار نکند.
  • رابط کاربری باید به کاربر اطلاع دهد که ممکن است هنگام تغییر تنظیمات، صفحه نمایش سوسو بزند.
  • اگر دستگاه فاقد بلندگوی داخلی باشد، DSM باید به طور پیش فرض غیرفعال شود.

بهترین روش: توصیه می کنیم همانطور که در پیاده سازی SysUI نشان داده شده است، از منوی Display & Sound به عنوان مکانی برای تنظیمات کاربر برای فعال یا غیرفعال کردن ARC استفاده کنید.

اجرای چارچوب

اجرای عملکرد نوار صوتی 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.
     *
     * <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 ها باید دستگاه را پیکربندی کنند و رابط کاربری سیستم را برای ارائه رابط مورد نیاز برای ورودی های کاربر پیاده سازی کنند .

پیاده سازی دستگاه

برای پشتیبانی از ویژگی نوار صوتی در دستگاه:

  1. دستگاه پخش را در اندروید 14 بالا بیاورید.
  2. پورت HDMI ARC را در درایور اجرا کنید.
  3. مقادیر RRO config_cecSoundbarModeEnabled_default و config_cecSoundbarModeDisabled_default را در config.xml بدون تغییر بگذارید تا این ویژگی به طور پیش‌فرض غیرفعال بماند.

  4. مطمئن شوید که دستگاه دارای بلندگوهای داخلی یا متصل برای پخش صدا در آن است و پیکربندی خط مشی صدا را ویرایش کنید.

  5. ویژگی سیستم persist.sys.hdmi.property_arc_support را روی true تنظیم کنید تا نشان دهد که ARC پشتیبانی می شود.

  6. تنظیم را برای تغییر حالت نوار صوتی در رابط کاربری سیستم قرار دهید.

برای رفع اشکال، از دستور adb زیر برای روشن یا خاموش کردن ویژگی نوار صوتی استفاده کنید ( 1 برای روشن و 0 برای خاموش):

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

پیاده سازی SysUI

این بخش یک جریان UI ساختگی توصیه شده برای روشن و خاموش کردن DSM را توضیح می دهد. تنظیمات خروجی صدا در زیر منوی Display & Sound است، همانطور که در شکل 1 نشان داده شده است:

dsm_audio_output

شکل 1. تنظیمات خروجی صدا در منوی Display & Sound .

برای اینکه DSM کار کند، تنظیم Enable HDMI-CEC باید روشن باشد. تنظیم ARC را فقط در صورتی می توان فعال کرد که HDMI-CEC فعال باشد. همانطور که در شکل 2 نشان داده شده است، اگر HDMI-CEC غیرفعال باشد، تنظیم ARC خاکستری و غیرفعال می شود. در جریان رابط کاربری زیر، وقتی کاربر تنظیمات Enable HDMI-CEC را در منوی Display & Sound خاموش می کند و بلندگوی Home را انتخاب می کند، ARC تنظیم غیرفعال است کاربر می تواند با فعال کردن Enable HDMI-CEC، تنظیمات صوتی پخش تلویزیون را فعال کند.

dsm_ui_disable_arc

شکل 2. UI برای گزینه ARC غیرفعال.

هنگامی که تنظیم HDMI-CEC فعال است، کاربر می تواند از تنظیم ARC در زیر خروجی صدا برای روشن و خاموش کردن DSM استفاده کند. برای روشن کردن DSM، کاربر جریان UI را در شکل 3 دنبال می کند. در جریان رابط کاربری زیر، برای فعال کردن حالت نوار صوتی، کاربر Home Speaker را انتخاب کرده و تنظیم ARC را انتخاب و تأیید می کند. برای خاموش کردن DSM، کاربر تنظیمات ARC را خاموش می کند.

dsm_ui_enable_arc

شکل 3. UI برای فعال کردن DSM.

اعتبار سنجی

OEM ها می توانند برای اطمینان از اینکه بلندگوهای دستگاه پخش صدایی را که از تلویزیون یا سایر دستگاه های متصل به پنل تلویزیون متصل هستند، یک آزمایش صوتی انجام دهند.

اعتبار سنجی دستی

از سناریوهای زیر برای اعتبارسنجی دستی رفتار مورد انتظار استفاده کنید:

  • تنظیم ARC فعال است:
    • تلویزیون خودش را قطع می کند.
    • صدای تلویزیون به بلندگوهای دستگاه هدایت می شود.
  • تنظیم ARC غیرفعال است:
    • تلویزیون مسیریابی صدا را به دستگاه متوقف می کند.
    • تلویزیون شروع به پخش صدا می کند.
  • تنظیم ARC فعال است و دستگاه به یک پورت غیر ARC به تلویزیون متصل است:
    • دستگاه صدای تلویزیون را پخش نمی کند.
  • تنظیم ARC فعال است و آدرس منطقی 5 قبل از اتصال دستگاه توسط دستگاه دیگری در حال استفاده است:
    • دستگاه مانند یک دستگاه پخش خالص عمل می کند، نه نوار صدا.
  • تنظیم ARC فعال است، آدرس منطقی 5 توسط دستگاه در حال استفاده است، و یک سیستم صوتی دیگر در شبکه متصل است:
    • هیچ تغییری در رفتار نوار صوتی دستگاه وجود ندارد.
  • تنظیم ARC فعال است، آدرس منطقی 5 توسط دستگاه متصل به یک درگاه غیر ARC استفاده می شود، و یک سیستم صوتی دیگر به پورت ARC متصل است:
    • اتصال ARC با تلویزیون برای سیستم صوتی دوم برقرار نیست زیرا از یک آدرس منطقی ثبت نشده استفاده می کند.
  • تنظیم ARC فعال است و دستگاه هات پلاگ شده است:
    • دستگاه مانند زمانی که تنظیم فعال است از رفتار عادی پیروی می کند.

اعتبار سنجی CTS

هنگامی که تنظیمات نوار صوتی غیرفعال است، باید CtsHdmiCecHostTestCases ارسال شود. تست HdmiCecSoundbarModeTest.java در مجموعه آزمایشی CtsHdmiCecHostTestCases ، عملکردهای DSM را آزمایش می کند.

اگرچه نیازی به صدور گواهینامه نیست، اما CtsHdmiCecHostTestCases با تنظیم نوار صوتی فعال کنید تا اجرای خود را تأیید کنید.

برای اجرای تست‌های Android CTS برای HDMI CEC، به تست CEC CTS برای دستگاه‌های Android TV مراجعه کنید.