מצב מקרן קול דינמי

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

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

הטמעת מסגרת

ההטמעה של הפונקציונליות של מקרן הקול CEC וההקצאה הדינמית של הכתובת הלוגית 5 קיימת במסגרת Android. המסגרת מקצה את הכתובת הלוגית כאשר הגדרת מקרן הקול מופעלת, כדי שהמכשיר הופכים למקרן קול באופן דינמי. כשההגדרה של מקרן הקול מושבתת, framework מקצה את הכתובת הלוגית.

על סמך הקלט של המשתמשים בממשק המשתמש של המערכת, 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 (יצרן ציוד מקורי)

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

הטמעת מכשירים

כדי לתמוך בתכונת מקרן הקול במכשיר:

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

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

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