מצב דינמי של פס קול

עם תמיכה במסגרת של Android 14, יצרני ציוד מקורי (OEM) יכולים להגדיר ממירים ומכשירים במודל 'ישירות ללקוח' (OTT) עם רמקולים מובנים או רמקולים מחוברים, כך שיהפכו למערכות סאונד למכשירים מחוברים. מצב מקרן הקול הדינמי (DSM) ב-Android 14 תומך במאפיינים של בקרת מכשירי אלקטרוניקה לצרכן (CEC) דרך HDMI למקרני קול, כמו ערוץ החזרת אודיו (ARC) ובקרת אודיו של המערכת.

התכונה הזו מיועדת רק למכשירי הפעלה עם CEC ב-Android TV.

דרישות

כדי להטמיע את תכונת סרגל הצלילים, יצרני ציוד מקורי צריכים לעמוד בדרישות המכשיר וממשק המשתמש של המערכת שמפורטות בקטע הזה.

דרישות לגבי מכשירים

כדי לתמוך ב-DSM, הממיר או מכשיר ה-OTT צריכים לעמוד בדרישות הבאות:

  • במכשיר צריכה להיות מותקנת מערכת Android מגרסה 14 ואילך.
  • כש-DSM מופעל, המכשיר צריך להתנהג כמו מקרן קול בהתאם למפרטים של HDMI CEC, כמו ARC.
  • המכשיר צריך להיות מסוגל להשמיע צליל ברמקולים מובנים או ברמקולים מחוברים.
  • כשהמכשיר לא משמש כמקור פעיל, צריך להשהות את כל המדיה במכשיר כדי לצמצם את צריכת החשמל שלו.

דרישות לגבי ממשק המשתמש של המערכת

כדי לתמוך ב-DSM, יצרני ציוד מקורי (OEM) צריכים לעמוד בדרישות הבאות במהלך התכנון של ממשק המשתמש של המערכת:

  • תווית ממשק המשתמש צריכה לכלול הפניה ל-ARC או ל-Audio Return Channel (ARC).
  • ממשק המשתמש צריך להודיע למשתמש לחבר את המכשיר ליציאת ה-ARC בטלוויזיה כדי ליצור את חיבור ה-ARC.
  • ממשק המשתמש צריך להודיע למשתמש שהתכונה לא תפעל כמו שמצופה אם מחובר מקרן קול או מקלט אודיו/וידאו (AVR) אחר ברשת HDMI.
  • ממשק המשתמש צריך ליידע את המשתמש שהמסך עשוי להבהב כשמחליפים את ההגדרה.
  • אם למכשיר אין רמקולים מובנים, DSM חייב להיות מושבת כברירת מחדל.

מומלץ להשתמש בתפריט תצוגה וצליל כמיקום להגדרת המשתמש כדי להפעיל או להשבית את ARC, כמו שמוצג בהטמעה של SysUI.

הטמעה של Framework

ההטמעה של הפונקציונליות של מקרן הקול ב-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 נתמך.
  • מפעילים הקצאה של כתובת לוגית כדי להוסיף או להסיר את מכשיר האודיו המקומי.
  • מוודאים שהמצב של ההגדרה נשמר אם המכשיר מחובר ומוסר בזמן שהמחשב פועל (hotplug).

בדוגמה הבאה מוצגות הצהרות להגדרה ולקבלת הסטטוס של מצב הסאונדבר:

    /**
     * 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 צריכים לוודא שהחומרה תומכת בה. יצרני OEM צריכים להגדיר את המכשיר ולהטמיע את ממשק המשתמש של המערכת כדי לספק את הממשק הנדרש לקלט של המשתמשים.

הטמעה של מכשיר

כדי לתמוך בתכונת הסאונד בר במכשיר:

  1. מציגים את מכשיר ההפעלה ב-Android 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. הצגת ההגדרה להחלפת מצב מקרן הקול בממשק המשתמש של המערכת.

  7. לצורך ניפוי באגים, משתמשים בפקודה adb הבאה כדי להפעיל או להשבית את התכונה של פס הקול (1 להפעלה ו-0 להשבתה):

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

הטמעה של SysUI

בקטע הזה מוסבר על תהליך מומלץ ומוצג ממשק משתמש לדוגמה להפעלה ולהשבתה של DSM. ההגדרה פלט אודיו נמצאת בתפריט תצוגה ושמע, כמו שמוצג באיור 1:

dsm_audio_output

איור 1. הגדרת פלט אודיו בתפריט 'תצוגה ושמע'.

כדי ש-DSM יפעל, צריך להפעיל את ההגדרה הפעלת HDMI-CEC. אפשר להפעיל את ההגדרה ARC רק אם מופעלת ההגדרה HDMI-CEC. ההגדרה ARC לא זמינה ומושבתת אם ההגדרה HDMI-CEC מושבתת, כמו שמוצג באיור 2. בתרשים זרימת ממשק המשתמש הבא, כשהמשתמש משבית את ההגדרה הפעלת HDMI-CEC בתפריט תצוגה וצליל ובוחר באפשרות רמקול ביתי, ההגדרה ARC מושבתת. המשתמש יכול להפעיל את ההגדרה הפעלת אודיו בטלוויזיה על ידי הפעלת ההגדרה הפעלת HDMI-CEC.

dsm_ui_disable_arc

איור 2. ממשק משתמש לאפשרות ARC מושבתת.

כשההגדרה HDMI-CEC מופעלת, המשתמש יכול להשתמש בהגדרה ARC בקטע פלט אודיו כדי להפעיל או להשבית את ה-DSM. כדי להפעיל את ה-DSM, המשתמש פועל לפי זרימת ממשק המשתמש באיור 3. בתרשים זרימת ממשק המשתמש הבא, כדי להפעיל את מצב פס הקול, המשתמש בוחר באפשרות רמקול ביתי, בוחר בהגדרה ARC ומאשר אותה. כדי להשבית את DSM, המשתמש משבית את ההגדרה ARC.

dsm_ui_enable_arc

איור 3. ממשק משתמש להפעלת DSM.

אימות

יצרני ציוד מקורי יכולים לבצע בדיקת אודיו כדי לוודא שהרמקולים של מכשיר ההפעלה משמיעים צליל שמגיע מהטלוויזיה או ממכשירים אחרים שמחוברים ללוח הטלוויזיה.

אימות ידני

כדי לאמת באופן ידני את ההתנהגות הצפויה, אפשר להשתמש בתרחישים הבאים:

  • ההגדרה ARC מופעלת:
    • הטלוויזיה מושתקת.
    • הצליל מהטלוויזיה מנותב לרמקולים של המכשיר.
  • ההגדרה ARC מושבתת:
    • הטלוויזיה מפסיקה להעביר את האודיו למכשיר.
    • האודיו מתחיל לפעול בטלוויזיה.
  • ההגדרה ARC מופעלת והמכשיר מחובר ליציאה שאינה ARC בטלוויזיה:
    • הסאונד של הטלוויזיה לא מושמע במכשיר.
  • ההגדרה ARC מופעלת וכתובת לוגית 5 נמצאת בשימוש על ידי מכשיר אחר לפני שהמכשיר מחובר:
    • המכשיר מתנהג כמו מכשיר הפעלה בלבד, ולא כמו מקרן קול.
  • ההגדרה ARC מופעלת, כתובת לוגית 5 נמצאת בשימוש על ידי המכשיר, ומערכת אודיו אחרת מחוברת לרשת:
    • לא יהיה שינוי בהתנהגות של מקרן הקול במכשיר.
  • ההגדרה ARC מופעלת, כתובת לוגית 5 נמצאת בשימוש על ידי המכשיר שמחובר ליציאה שאינה ARC, ומערכת אודיו אחרת מחוברת ליציאת ה-ARC:
    • חיבור ה-ARC לא נוצר עם הטלוויזיה עבור מערכת האודיו השנייה כי נעשה בה שימוש בכתובת לוגית לא רשומה.
  • ההגדרה ARC מופעלת, והמכשיר מחובר בחיבור חם:
    • המכשיר יפעל כרגיל, כמו במצב שבו ההגדרה מופעלת.

אימות CTS

CtsHdmiCecHostTestCases חובה להעביר את הבדיקה כשההגדרה של מקרן הקול מושבתת. הבדיקה HdmiCecSoundbarModeTest.java בחבילת הבדיקות CtsHdmiCecHostTestCases בודקת את הפונקציות של DSM.

למרות שזה לא נדרש לאישור, מומלץ להריץ את CtsHdmiCecHostTestCases עם ההגדרה של פס הקול מופעלת כדי לאמת את ההטמעה.

כדי להריץ את בדיקות ה-CTS של Android ל-HDMI CEC, אפשר לעיין במאמר בנושא בדיקות CEC CTS למכשירי Android TV.