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

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

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

ข้อกำหนด

OEM ต้องเป็นไปตามอุปกรณ์และ UI ของระบบจึงจะใช้ฟีเจอร์ซาวด์บาร์ได้ ตามที่ระบุไว้ในส่วนนี้

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

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

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

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

OEM ต้องมีคุณสมบัติตรงตามข้อกำหนดต่อไปนี้ขณะออกแบบ UI ของระบบ:

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

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

การนำเฟรมเวิร์กไปใช้งาน

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

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

ดูตัวอย่างการประกาศต่อไปนี้เพื่อตั้งค่าและดูสถานะของ โหมดซาวด์บาร์:

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

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

วิธีรองรับฟีเจอร์ซาวด์บาร์ในอุปกรณ์

  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. แสดงการตั้งค่าเพื่อสลับโหมดซาวด์บาร์ใน UI ของระบบ

ในการแก้ไขข้อบกพร่อง ให้ใช้คำสั่ง adb ต่อไปนี้เพื่อเปิดฟีเจอร์ซาวด์บาร์ หรือปิด (1 สำหรับเปิด และ 0 สำหรับปิด):

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

การใช้งาน SysUI

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

dsm_audio_output

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

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

dsm_ui_disable_arc

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

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

dsm_ui_enable_arc

รูปที่ 3 UI สำหรับเปิดใช้ DSM

การตรวจสอบความถูกต้อง

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

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

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

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

การตรวจสอบ CTS

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

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

ดูการทดสอบ CEC CTS สำหรับอุปกรณ์ Android TV เพื่อเรียกใช้การทดสอบ CTS ของ Android สำหรับ HDMI CEC