โหมดไดนามิกซาวด์บาร์

ด้วยการรองรับเฟรมเวิร์ก Android 14 คุณสามารถกำหนดค่า set-top box (STB) และอุปกรณ์ Over-the-top (OTT) ที่มีลำโพงในตัวหรือเชื่อมต่ออยู่ให้เป็น Soundbar สำหรับอุปกรณ์ที่เชื่อมต่อได้ โหมดไดนามิกซาวด์บาร์ (DSM) ใน Android 14 รองรับคุณลักษณะการควบคุมอุปกรณ์อิเล็กทรอนิกส์สำหรับผู้บริโภค (CEC) HDMI สำหรับซาวด์บาร์ เช่น Audio Return Channel (ARC) และการควบคุมเสียงของระบบ

ฟีเจอร์นี้กำหนดเป้าหมายเฉพาะอุปกรณ์เล่น Android TV CEC

ความต้องการ

หากต้องการนำคุณสมบัติ Soundbar มาใช้ OEM จะต้องมีคุณสมบัติตรงตามข้อกำหนดของอุปกรณ์และ System UI ที่ระบุไว้ในส่วนนี้

ข้อกำหนดของอุปกรณ์

หากต้องการรองรับ DSM อุปกรณ์ STB/OTT จะต้องเป็นไปตามข้อกำหนดต่อไปนี้:

  • อุปกรณ์ต้องใช้ Android 14
  • เมื่อเปิดใช้งาน DSM อุปกรณ์จะต้องทำงานเหมือนซาวด์บาร์ตามข้อกำหนด HDMI CEC เช่น ARC
  • อุปกรณ์จะต้องสามารถเล่นเสียงจากลำโพงในตัวหรือที่เชื่อมต่อได้
  • เมื่ออุปกรณ์ไม่ใช่แหล่งที่มาที่ใช้งานอยู่ สื่อทั้งหมดจะต้องหยุดชั่วคราวบนอุปกรณ์ เพื่อจำกัดการใช้พลังงาน

ข้อกำหนด UI ของระบบ

เพื่อรองรับ DSM นั้น OEM จะต้องปฏิบัติตามข้อกำหนดต่อไปนี้ในขณะที่ออกแบบ System UI:

  • ป้ายกำกับ UI ต้องมีการอ้างอิงถึง ARC หรือ Audio Return Channel (ARC)
  • UI ต้องแจ้งให้ผู้ใช้เชื่อมต่ออุปกรณ์เข้ากับพอร์ต ARC ของทีวีเพื่อสร้างการเชื่อมต่อ ARC
  • UI จะต้องแจ้งให้ผู้ใช้ทราบว่าคุณสมบัติอาจไม่ทำงานตามที่คาดไว้ หากมีการเชื่อมต่อซาวด์บาร์หรือตัวรับสัญญาณเสียง/วิดีโอ (AVR) อื่นในเครือข่าย HDMI
  • UI ต้องแจ้งให้ผู้ใช้ทราบว่าหน้าจออาจกะพริบเมื่อสลับการตั้งค่า
  • หากอุปกรณ์ไม่มีลำโพงในตัว จะต้องปิดใช้งาน DSM ตามค่าเริ่มต้น

แนวปฏิบัติที่ดีที่สุด: เราขอแนะนำให้ใช้เมนูการแสดงผลและเสียงเป็นตำแหน่งสำหรับการตั้งค่าผู้ใช้เพื่อเปิดหรือปิดใช้ งาน ARC ดังที่แสดงใน การใช้งาน SysUI

การนำกรอบการทำงานไปใช้

การใช้งานฟังก์ชันการทำงานของแถบเสียง CEC และการจัดสรรแบบไดนามิกของที่อยู่แบบลอจิคัล 5 มีอยู่ในเฟรมเวิร์ก Android กรอบงานจะจัดสรรที่อยู่แบบลอจิคัลเมื่อเปิดใช้งานการตั้งค่า Soundbar เพื่อให้อุปกรณ์กลายเป็น Soundbar แบบไดนามิก เมื่อปิดใช้งานการตั้งค่า Soundbar เฟรมเวิร์กจะจัดสรรที่อยู่โลจิคัลใหม่

ตามอินพุตของผู้ใช้บน System UI นั้น 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.
     *
     * <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 ต้อง กำหนดค่าอุปกรณ์ และ ใช้ System UI เพื่อจัดเตรียมอินเทอร์เฟซที่จำเป็นสำหรับอินพุตของผู้ใช้

การใช้งานอุปกรณ์

หากต้องการรองรับคุณสมบัติ Soundbar บนอุปกรณ์:

  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. เปิดเผยการตั้งค่าเพื่อสลับโหมดแถบเสียงใน System UI

สำหรับการดีบัก ให้ใช้คำสั่ง adb ต่อไปนี้เพื่อเปิดหรือปิดคุณสมบัติ Soundbar ( 1 สำหรับเปิดและ 0 สำหรับปิด):

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

การใช้งาน SysUI

ส่วนนี้จะอธิบายขั้นตอน UI จำลองที่แนะนำสำหรับการเปิดและปิด DSM การตั้งค่า เอาต์พุตเสียง จะอยู่ภายใต้เมนู การแสดงผลและเสียง ดังแสดงในรูปที่ 1:

dsm_audio_output

รูปที่ 1 การตั้งค่าเอาต์พุตเสียงใต้เมนู จอแสดงผลและเสียง

เพื่อให้ DSM ทำงาน ต้องเปิดการตั้งค่า เปิดใช้งาน HDMI-CEC สามารถเปิดใช้งานการตั้งค่า ARC ได้เฉพาะเมื่อเปิดใช้งาน HDMI-CEC เท่านั้น การตั้งค่า ARC จะเป็นสีเทาและปิดใช้งานหากปิดใช้งาน HDMI-CEC ดังแสดงในรูปที่ 2 ในขั้นตอน UI ต่อไปนี้ เมื่อผู้ใช้ปิดการตั้งค่า เปิดใช้งาน HDMI-CEC ในเมนู การแสดงผลและเสียง และเลือก ลำโพงภายในบ้าน ARC การตั้งค่าถูกปิดใช้งาน ผู้ใช้สามารถเปิดใช้งานการตั้งค่า เล่นเสียงโทรทัศน์ ได้โดยเปิดใช้งาน เปิดใช้งาน HDMI-CEC

dsm_ui_disable_arc

รูปที่ 2 UI สำหรับตัวเลือก ARC ที่ปิดใช้งาน

เมื่อเปิดใช้งานการตั้งค่า HDMI-CEC ผู้ใช้สามารถใช้การตั้งค่า ARC ใต้ เอาต์พุตเสียง เพื่อเปิดและปิด DSM หากต้องการเปิด DSM ผู้ใช้จะปฏิบัติตามขั้นตอนของ UI ในรูปที่ 3 ในขั้นตอนของ UI ต่อไปนี้ หากต้องการเปิดใช้งานโหมด Soundbar ผู้ใช้เลือก ลำโพงภายในบ้าน จากนั้นเลือกและยืนยันการตั้งค่า ARC หากต้องการปิด DSM ผู้ใช้จะปิดการตั้งค่า ARC

dsm_ui_enable_arc

รูปที่ 3 UI เพื่อเปิดใช้งาน DSM

การตรวจสอบ

OEM สามารถทำการทดสอบเสียงเพื่อให้แน่ใจว่าลำโพงของอุปกรณ์เล่นเสียงจะเล่นเสียงที่มาจากทีวีหรือจากอุปกรณ์อื่นๆ ที่เชื่อมต่อกับแผงทีวี

การตรวจสอบด้วยตนเอง

ใช้สถานการณ์ต่อไปนี้เพื่อตรวจสอบลักษณะการทำงานที่คาดไว้ด้วยตนเอง:

  • เปิดใช้งานการตั้งค่า ARC :
    • ทีวีจะปิดเสียงตัวเอง
    • เสียงทีวีถูกส่งไปยังลำโพงของอุปกรณ์
  • การตั้งค่า ARC ถูกปิดใช้งาน:
    • ทีวีหยุดกำหนดเส้นทางเสียงไปยังอุปกรณ์
    • ทีวีเริ่มเล่นเสียง
  • การตั้งค่า ARC ถูกเปิดใช้งาน และอุปกรณ์เชื่อมต่อกับพอร์ตที่ไม่ใช่ ARC เข้ากับทีวี:
    • อุปกรณ์ไม่เล่นเสียงของทีวี
  • การตั้งค่า ARC ถูกเปิดใช้งานและมีการใช้งานที่อยู่แบบลอจิคัล 5 โดยอุปกรณ์อื่นก่อนที่อุปกรณ์จะเชื่อมต่อ:
    • อุปกรณ์ทำงานเหมือนกับอุปกรณ์เล่นเพลง ไม่ใช่ซาวด์บาร์
  • เปิดใช้งานการตั้งค่า ARC อุปกรณ์ใช้ที่อยู่แบบลอจิคัล 5 และระบบเสียงอื่นเชื่อมต่ออยู่ในเครือข่าย:
    • ลักษณะการทำงานของ Soundbar ของอุปกรณ์ไม่มีการเปลี่ยนแปลง
  • การตั้งค่า ARC ถูกเปิดใช้งาน ที่อยู่โลจิคัล 5 ใช้งานโดยอุปกรณ์ที่เชื่อมต่อกับพอร์ตที่ไม่ใช่ ARC และระบบเสียงอื่นเชื่อมต่อกับพอร์ต ARC:
    • การเชื่อมต่อ ARC ไม่ได้ถูกสร้างขึ้นกับทีวีสำหรับระบบออดิโอตัวที่สอง เนื่องจากใช้ที่อยู่โลจิคัลที่ไม่ได้ลงทะเบียน
  • เปิดใช้งานการตั้งค่า ARC และอุปกรณ์กำลังเสียบอยู่:
    • อุปกรณ์จะทำงานตามปกติเหมือนกับเมื่อเปิดใช้งานการตั้งค่า

การตรวจสอบซีทีเอส

CtsHdmiCecHostTestCases จะต้องผ่านเมื่อปิดใช้งานการตั้งค่า Soundbar การทดสอบ HdmiCecSoundbarModeTest.java ในชุดทดสอบ CtsHdmiCecHostTestCases จะทดสอบฟังก์ชันการทำงานของ DSM

แม้ว่าจะไม่ใช่ข้อกำหนดการรับรอง ให้รัน CtsHdmiCecHostTestCases โดยเปิดใช้งานการตั้งค่า Soundbar เพื่อตรวจสอบการใช้งานของคุณ

ดู การทดสอบ CEC CTS สำหรับอุปกรณ์ Android TV เพื่อดำเนินการทดสอบ Android CTS สำหรับ HDMI CEC