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

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

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

הדרישות

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

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

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

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

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

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

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

מומלץ להשתמש בתפריט Display & Sound (תצוגה וסאונד) כמיקום של הגדרת המשתמש להפעלה או להשבתה של ARC, כפי שמתואר בקטע הטמעת SysUI.

הטמעת המסגרת

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

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

    /**
     * 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

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

הטמעה במכשיר

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

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

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

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

הטמעת SysUI

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

dsm_audio_output

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

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

dsm_ui_disable_arc

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

כשההגדרה HDMI-CEC מופעלת, המשתמש יכול להשתמש בהגדרה ARC בקטע Audio output כדי להפעיל או להשבית את DSM. כדי להפעיל את DSM, המשתמש פועל לפי תהליך הממשק המתואר באיור 3. בתהליך ממשק המשתמש הבא, כדי להפעיל את מצב פס ההשמעה, המשתמש בוחר באפשרות Home Speaker (רמקול בית), בוחר את ההגדרה 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 של CEC למכשירי Android TV מוסבר איך מריצים את בדיקות Android CTS ל-HDMI CEC.