با پشتیبانی چارچوب Android 14، سازندگان تجهیزات اصلی میتوانند گیرندههای دیجیتال (STB) و دستگاههای فراتلویزیونی (OTT) را با بلندگوهای داخلی یا متصلشده بهعنوان بلندگوی ستونی برای دستگاههای متصلشده پیکربندی کنند. حالت بلندگوی ستونی پویا (DSM) در Android 14 از ویژگیهای کنترل الکترونیک مصرفکننده HDMI (CEC) برای بلندگوهای ستونی، مانند کانال برگشتی صدا (ARC) و کنترل صدای سیستم پشتیبانی میکند.
این ویژگی فقط دستگاههای پخش CEC در Android TV را هدف قرار میدهد.
الزامات
برای استفاده از ویژگی بلندگوی ستونی، سازندگان اصلی تجهیزات باید الزامات دستگاه و میانای کاربر سامانه را که در این بخش فهرست شده است برآورده کنند.
پیشنیازهای دستگاه
برای پشتیبانی از DSM، دستگاه STB یا OTT باید شرایط زیر را داشته باشد:
- دستگاه باید Android 14 را اجرا کند.
- وقتی DSM فعال باشد، دستگاه باید مانند یک بلندگوی ستونی که از مشخصات HDMI CEC، مانند ARC، پیروی میکند عمل کند.
- دستگاه باید بتواند صدا را در بلندگوهای داخلی یا متصل پخش کند.
- وقتی دستگاه منبع فعال نباشد، همه رسانهها باید در دستگاه متوقف شوند و مصرف برق آن محدود شود.
الزامات واسط کاربری سیستم
برای پشتیبانی از DSM، تولیدکنندگان تجهیزات اصلی باید هنگام طراحی «میانای کاربری سیستم» الزامات زیر را رعایت کنند:
- برچسب واسط کاربر باید شامل ارجاع به ARC یا کانال برگشتی صدا (ARC) باشد.
- «میانای کاربر» باید به کاربر اطلاع دهد که دستگاه را به درگاه ARC تلویزیون متصل کند تا اتصال ARC برقرار شود.
- واسط کاربر باید به کاربر اطلاع دهد که اگر بلندگوی ستونی یا گیرنده صوتی تصویری (AVR) دیگری به شبکه HDMI متصل باشد، ممکن است این ویژگی طبق انتظار کار نکند.
- واسط کاربر باید به کاربر اطلاع دهد که هنگام روشن/خاموش کردن این تنظیم ممکن است صفحهنمایش سوسو بزند.
- اگر دستگاه بلندگوی داخلی ندارد، DSM باید بهطور پیشفرض غیرفعال باشد.
بهعنوان روال مطلوب، توصیه میکنیم از منو نمایش و صدا بهعنوان مکان تنظیم کاربر برای فعال یا غیرفعال کردن ARC استفاده کنید، همانطور که در پیادهسازی SysUI نشان داده شده است.
پیادهسازی چارچوب
پیادهسازی عملکرد بلندگوی ستونی CEC و تخصیص پویا نشانی منطقی ۵ در چارچوب 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 بالا بیاورید.
- درگاه HDMI ARC را در درایور پیادهسازی کنید.
مقادیر RRO مربوط به
config_cecSoundbarModeEnabled_defaultوconfig_cecSoundbarModeDisabled_defaultرا درconfig.xmlتغییر ندهید تا این ویژگی بهطور پیشفرض غیرفعال باقی بماند.مطمئن شوید که دستگاه دارای بلندگوهای داخلی یا متصل برای پخش صدا باشد و پیکربندی خطمشی صوتی را ویرایش کنید.
خصوصیت سیستم
persist.sys.hdmi.property_arc_supportرا رویtrueتنظیم کنید تا نشان دهد ARC پشتیبانی میشود.تنظیم را برای روشن/خاموش کردن حالت نوار صوتی در واسط کاربر سیستم آشکار کنید.
برای اشکالزدایی، از فرمان
adbزیر برای روشن یا خاموش کردن ویژگی نوار صوتی استفاده کنید (1برای روشن کردن و0برای خاموش کردن):
adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>
پیادهسازی SysUI
این بخش جریان توصیه شده میانای کاربر ساختگی برای روشن و خاموش کردن DSM را شرح میدهد. تنظیم خروجی صدا در منو نمایشگر و صدا قرار دارد، همانطور که در شکل ۱ نشان داده شده است:
شکل ۱. تنظیم خروجی صوتی در منو «نمایشگر و صدا».
برای اینکه DSM کار کند، تنظیم فعال کردن HDMI-CEC باید روشن باشد. تنظیم ARC فقط درصورتی فعال میشود که HDMI-CEC فعال باشد. اگر HDMI-CEC غیرفعال باشد، تنظیم ARC دردسترس نیست و غیرفعال است، همانطور که در شکل ۲ نشان داده شده است. در جریان واسط کاربر زیر، وقتی کاربر تنظیم فعال کردن HDMI-CEC را در منو نمایشگر و صدا خاموش میکند و بلندگوی Home را انتخاب میکند، تنظیم ARC غیرفعال میشود. کاربر میتواند تنظیم پخش صدای تلویزیون را با فعال کردن فعال کردن HDMI-CEC فعال کند.
شکل ۲. واسط کاربر برای گزینه غیرفعال ARC.
وقتی تنظیم HDMI-CEC فعال باشد، کاربر میتواند از تنظیم ARC در بخش برونداد صدا برای روشن و خاموش کردن DSM استفاده کند. برای روشن کردن DSM، کاربر باید جریان واسط کاربر در شکل ۳ را دنبال کند. در جریان واسط کاربر زیر، برای فعال کردن حالت نوار صوتی، کاربر بلندگوی خانگی را انتخاب میکند و تنظیم ARC را انتخاب و تأیید میکند. برای خاموش کردن DSM، کاربر تنظیم ARC را خاموش میکند.
شکل ۳. واسط کاربر برای فعال کردن DSM.
اعتبارسنجی
تولیدکنندگان تجهیزات اصلی میتوانند آزمایش صدا انجام دهند تا مطمئن شوند بلندگوهای دستگاه بازپخش صدای تولیدشده از تلویزیون یا از دستگاههای دیگر متصل به پنل تلویزیون را پخش میکنند.
اعتبارسنجی دستی
از سناریوهای زیر برای اعتبارسنجی دستی رفتار موردانتظار استفاده کنید:
- تنظیم ARC فعال باشد:
- تلویزیون خودبهخود بیصدا میشود.
- صدای تلویزیون به بلندگوهای دستگاه منتقل میشود.
- تنظیم ARC غیرفعال است:
- تلویزیون مسیریابی صدا به دستگاه را متوقف میکند.
- تلویزیون شروع به پخش صدا میکند.
- تنظیم ARC فعال است و دستگاه به درگاه غیر ARC تلویزیون متصل است:
- دستگاه صدای تلویزیون را پخش نمیکند.
- تنظیم ARC فعال است و نشانی منطقی ۵ قبلاز اتصال دستگاه توسط دستگاه دیگری استفاده میشود:
- دستگاه مانند یک دستگاه بازپخش خالص رفتار میکند، نه یک بلندگوی ستونی.
- تنظیم ARC فعال باشد، دستگاه از نشانی منطقی ۵ استفاده کند، و
سیستم صوتی دیگری در شبکه متصل باشد:
- عملکرد نوار صوتی دستگاه تغییری نمیکند.
- تنظیم ARC فعال است، نشانی منطقی ۵ توسط دستگاه متصل به درگاه غیر ARC درحال استفاده است، و سیستم صوتی دیگری به درگاه ARC متصل است:
- اتصال ARC با تلویزیون برای سیستم صوتی دوم برقرار نشد زیرا از نشانی منطقی ثبتنشده استفاده میکند.
- تنظیم ARC فعال است و دستگاه بهصورت داغ متصل شده است:
- دستگاه از رفتار عادی پیروی میکند، مانند زمانی که تنظیم فعال است.
اعتبارسنجی CTS
CtsHdmiCecHostTestCases
وقتی تنظیم بلندگوی ستونی غیرفعال است، باید قبول شود. آزمایش HdmiCecSoundbarModeTest.java
در مجموعه آزمایشی CtsHdmiCecHostTestCases، عملکردهای DSM را آزمایش میکند.
اگرچه این کار یکی از الزامات گواهینامه نیست، برای تأیید پیادهسازیتان، CtsHdmiCecHostTestCases را با فعال بودن تنظیمات نوار صوتی اجرا کنید.
برای اجرای آزمایشهای Android CTS برای HDMI CEC، به آزمایش CEC CTS برای دستگاههای Android TV مراجعه کنید.