ด้วยการรองรับเฟรมเวิร์ก 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 บนอุปกรณ์:
- เปิดอุปกรณ์การเล่นบน Android 14
- ใช้พอร์ต HDMI ARC ในไดรเวอร์
ปล่อยให้ค่า RRO ของ
config_cecSoundbarModeEnabled_default
และconfig_cecSoundbarModeDisabled_default
ไม่เปลี่ยนแปลงในconfig.xml
เพื่อให้คุณลักษณะนี้ยังคงปิดใช้งานตามค่าเริ่มต้นตรวจสอบให้แน่ใจว่าอุปกรณ์มีลำโพงในตัวหรือเชื่อมต่ออยู่เพื่อเล่นเสียง และแก้ไข การกำหนดค่านโยบายเสียง
ตั้งค่าคุณสมบัติระบบ
persist.sys.hdmi.property_arc_support
เป็นtrue
เพื่อระบุว่ารองรับ ARCเปิดเผยการตั้งค่าเพื่อสลับโหมดแถบเสียงใน System UI
สำหรับการดีบัก ให้ใช้คำสั่ง adb
ต่อไปนี้เพื่อเปิดหรือปิดคุณสมบัติ Soundbar ( 1
สำหรับเปิดและ 0
สำหรับปิด):
adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>
การใช้งาน SysUI
ส่วนนี้จะอธิบายขั้นตอน UI จำลองที่แนะนำสำหรับการเปิดและปิด DSM การตั้งค่า เอาต์พุตเสียง จะอยู่ภายใต้เมนู การแสดงผลและเสียง ดังแสดงในรูปที่ 1:
รูปที่ 1 การตั้งค่าเอาต์พุตเสียงใต้เมนู จอแสดงผลและเสียง
เพื่อให้ DSM ทำงาน ต้องเปิดการตั้งค่า เปิดใช้งาน HDMI-CEC สามารถเปิดใช้งานการตั้งค่า ARC ได้เฉพาะเมื่อเปิดใช้งาน HDMI-CEC เท่านั้น การตั้งค่า ARC จะเป็นสีเทาและปิดใช้งานหากปิดใช้งาน HDMI-CEC ดังแสดงในรูปที่ 2 ในขั้นตอน UI ต่อไปนี้ เมื่อผู้ใช้ปิดการตั้งค่า เปิดใช้งาน HDMI-CEC ในเมนู การแสดงผลและเสียง และเลือก ลำโพงภายในบ้าน ARC การตั้งค่าถูกปิดใช้งาน ผู้ใช้สามารถเปิดใช้งานการตั้งค่า เล่นเสียงโทรทัศน์ ได้โดยเปิดใช้งาน เปิดใช้งาน HDMI-CEC
รูปที่ 2 UI สำหรับตัวเลือก ARC ที่ปิดใช้งาน
เมื่อเปิดใช้งานการตั้งค่า HDMI-CEC ผู้ใช้สามารถใช้การตั้งค่า ARC ใต้ เอาต์พุตเสียง เพื่อเปิดและปิด DSM หากต้องการเปิด DSM ผู้ใช้จะปฏิบัติตามขั้นตอนของ UI ในรูปที่ 3 ในขั้นตอนของ UI ต่อไปนี้ หากต้องการเปิดใช้งานโหมด Soundbar ผู้ใช้เลือก ลำโพงภายในบ้าน จากนั้นเลือกและยืนยันการตั้งค่า ARC หากต้องการปิด DSM ผู้ใช้จะปิดการตั้งค่า 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