การรองรับเฟรมเวิร์ก Android 14 ช่วยให้ OEM กำหนดค่ากล่องรับสัญญาณ (STB) และอุปกรณ์ Over The Top (OTT) ที่มีลำโพงในตัวหรือเชื่อมต่อเป็นซาวด์บาร์สำหรับอุปกรณ์ที่เชื่อมต่อได้ โหมดซาวด์บาร์แบบไดนามิก (DSM) ใน Android 14 รองรับแอตทริบิวต์ HDMI Consumer Electronics Control (CEC) สำหรับซาวด์บาร์ เช่น ช่องสัญญาณเสียงกลับ (ARC) และการควบคุมเสียงของระบบ
ฟีเจอร์นี้กำหนดเป้าหมายไปยังอุปกรณ์การเล่น CEC ของ Android TV เท่านั้น
ข้อกำหนด
หากต้องการใช้ฟีเจอร์ซาวด์บาร์ OEM จะต้องปฏิบัติตามข้อกำหนดของอุปกรณ์และ UI ของระบบที่ระบุไว้ในส่วนนี้
ข้อกำหนดของอุปกรณ์
อุปกรณ์ STB หรือ OTT ต้องเป็นไปตามข้อกำหนดต่อไปนี้จึงจะรองรับ DSM ได้
- อุปกรณ์ต้องใช้ Android 14
- เมื่อเปิดใช้ DSM อุปกรณ์ต้องทํางานเหมือนซาวด์บาร์ตามข้อกําหนด HDMI CEC เช่น ARC
- อุปกรณ์ต้องสามารถเล่นเสียงบนลำโพงในตัวหรือที่เชื่อมต่อ
- เมื่ออุปกรณ์ไม่ใช่แหล่งที่มาที่ใช้งานอยู่ สื่อทั้งหมดต้องหยุดชั่วคราวในอุปกรณ์ ซึ่งจะจำกัดการใช้พลังงาน
ข้อกำหนดของ UI ของระบบ
หากต้องการรองรับ DSM OEM จะต้องปฏิบัติตามข้อกำหนดต่อไปนี้ขณะออกแบบ UI ของระบบ
- ป้ายกำกับ UI ต้องมีการอ้างอิงถึง ARC หรือ Audio Return Channel (ARC)
- UI ต้องแจ้งให้ผู้ใช้เชื่อมต่ออุปกรณ์กับพอร์ต ARC ของทีวีเพื่อตั้งค่าการเชื่อมต่อ ARC
- UI ต้องแจ้งให้ผู้ใช้ทราบว่าฟีเจอร์อาจไม่ทำงานตามที่คาดไว้หากมีการเชื่อมต่อซาวด์บาร์หรือรีซีฟเวอร์สัญญาณเสียงและวิดีโอ (AVR) เครื่องอื่นในเครือข่าย HDMI
- UI ต้องแจ้งให้ผู้ใช้ทราบว่าหน้าจออาจกะพริบเมื่อสลับการตั้งค่า
- หากอุปกรณ์ไม่มีลำโพงในตัว ระบบจะต้องปิดใช้ DSM โดยค่าเริ่มต้น
แนวทางปฏิบัติแนะนำคือให้ใช้เมนูการแสดงผลและเสียงเป็นตำแหน่งสำหรับการตั้งค่าผู้ใช้เพื่อเปิดหรือปิดใช้ ARC ดังที่แสดงในการใช้งาน SysUI
การติดตั้งใช้งานเฟรมเวิร์ก
การใช้งานฟังก์ชันการทำงานของซาวด์บาร์ CEC และการกําหนดที่อยู่แบบไดนามิกของที่อยู่เชิงตรรกะ 5 อยู่ในเฟรมเวิร์ก Android เฟรมเวิร์กจะจัดสรรที่อยู่เชิงตรรกะเมื่อเปิดใช้การตั้งค่าซาวด์บาร์เพื่อให้อุปกรณ์กลายเป็นซาวด์บาร์แบบไดนามิก เมื่อปิดใช้การตั้งค่าซาวด์บาร์ เฟรมเวิร์กจะยกเลิกการจัดสรรที่อยู่เชิงตรรกะ
HdmiControlManager
ตั้งค่า CEC_SETTING_NAME_SOUNDBAR_MODE
เป็น SOUNDBAR_MODE_ENABLED
หรือ SOUNDBAR_MODE_DISABLED
ตามข้อมูลที่ผู้ใช้ป้อนใน UI ของระบบ ค่าเริ่มต้นของ 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.
*
* 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
หากต้องการรองรับฟีเจอร์ซาวด์บาร์แบบไดนามิก OEM จะต้องตรวจสอบว่าฮาร์ดแวร์รองรับฟีเจอร์ดังกล่าว OEM ต้องกำหนดค่าอุปกรณ์และติดตั้งใช้งาน UI ของระบบเพื่อให้อินเทอร์เฟซที่จำเป็นสำหรับการป้อนข้อมูลของผู้ใช้
การติดตั้งใช้งานอุปกรณ์
วิธีรองรับฟีเจอร์ซาวด์บาร์ในอุปกรณ์
- เปิดอุปกรณ์การเล่นใน Android 14
- ใช้พอร์ต HDMI ARC ในไดรเวอร์
ปล่อยค่า RRO ของ
config_cecSoundbarModeEnabled_default
และconfig_cecSoundbarModeDisabled_default
ไว้เหมือนเดิมในconfig.xml
เพื่อให้ฟีเจอร์ยังคงปิดอยู่โดยค่าเริ่มต้นตรวจสอบว่าอุปกรณ์มีลำโพงในตัวหรือเชื่อมต่อไว้เพื่อเปิดเสียง และแก้ไขการกำหนดค่านโยบายเสียง
ตั้งค่าพร็อพเพอร์ตี้ระบบ
persist.sys.hdmi.property_arc_support
เป็นtrue
เพื่อระบุว่าระบบรองรับ ARCแสดงการตั้งค่าเพื่อสลับโหมดซาวด์บาร์ในUI ของระบบ
สำหรับการแก้ไขข้อบกพร่อง ให้ใช้คำสั่ง
adb
ต่อไปนี้เพื่อเปิดหรือปิดฟีเจอร์ซาวด์บาร์ (1
สำหรับเปิดและ0
สำหรับปิด)
adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>
การใช้งาน SysUI
ส่วนนี้จะอธิบายขั้นตอนการเปิดและปิด DSM โดยใช้ UI จำลองที่แนะนำ การตั้งค่าเอาต์พุตเสียงอยู่ในเมนูการแสดงผลและเสียง ดังที่แสดงในรูปภาพ 1
รูปที่ 1 การตั้งค่าเอาต์พุตเสียงในเมนูการแสดงผลและเสียง
คุณต้องเปิดการตั้งค่าเปิดใช้ HDMI-CEC เพื่อให้ DSM ทำงานได้ การตั้งค่า ARC จะเปิดใช้ได้ก็ต่อเมื่อเปิดใช้ HDMI-CEC เท่านั้น การตั้งค่า ARC จะใช้งานไม่ได้และปิดอยู่หากปิดใช้ HDMI-CEC ดังที่แสดงในรูปที่ 2 ในขั้นตอนการนำทาง UI ต่อไปนี้ เมื่อผู้ใช้ปิดการตั้งค่าเปิดใช้ HDMI-CEC ในเมนูจอแสดงผลและเสียง แล้วเลือกลำโพงในบ้าน ระบบจะปิดใช้การตั้งค่า ARC ผู้ใช้สามารถเปิดใช้การตั้งค่าเล่นเสียงจากทีวีได้ด้วยการเปิดใช้ HDMI-CEC
รูปที่ 2 UI สําหรับตัวเลือก ARC ที่ปิดใช้
เมื่อเปิดใช้การตั้งค่า HDMI-CEC ผู้ใช้จะใช้การตั้งค่า ARC ในส่วนเอาต์พุตเสียงเพื่อเปิดและปิด DSM ได้ หากต้องการเปิด DSM ผู้ใช้จะต้องทำตามขั้นตอนใน UI ในรูปที่ 3 ในขั้นตอนการนำทาง UI ต่อไปนี้ หากต้องการเปิดใช้โหมดซาวด์บาร์ ผู้ใช้จะต้องเลือกลำโพงในบ้าน แล้วเลือกและยืนยันการตั้งค่า ARC หากต้องการปิด DSM ผู้ใช้จะต้องปิดการตั้งค่า ARC
รูปที่ 3 UI เพื่อเปิดใช้ DSM
การตรวจสอบความถูกต้อง
OEM สามารถทำการทดสอบเสียงเพื่อให้แน่ใจว่าลำโพงของอุปกรณ์การเล่นจะเล่นเสียงที่มาจากทีวีหรือจากอุปกรณ์อื่นๆ ที่เชื่อมต่อกับแผงทีวี
การตรวจสอบด้วยตนเอง
ใช้สถานการณ์ต่อไปนี้เพื่อตรวจสอบลักษณะการทำงานที่คาดไว้ด้วยตนเอง
- การตั้งค่า ARC เปิดใช้งานอยู่
- ทีวีปิดเสียงเอง
- ระบบจะส่งเสียงของทีวีไปยังลำโพงของอุปกรณ์
- การตั้งค่า ARC ปิดใช้อยู่ในกรณีต่อไปนี้
- ทีวีจะหยุดส่งเสียงไปยังอุปกรณ์
- ทีวีเริ่มเล่นเสียง
- เปิดใช้การตั้งค่า ARC และอุปกรณ์เชื่อมต่อกับพอร์ตที่ไม่ใช่ ARC ของทีวี ให้ทำดังนี้
- อุปกรณ์ไม่เล่นเสียงของทีวี
- การตั้งค่า ARC เปิดใช้อยู่และมีการใช้ที่อยู่เชิงตรรกะ 5 โดยอุปกรณ์อื่นก่อนที่จะเชื่อมต่ออุปกรณ์ ดังนี้
- อุปกรณ์ทํางานเหมือนอุปกรณ์เล่นเสียงล้วนๆ ไม่ใช่ซาวด์บาร์
- การตั้งค่า ARC เปิดใช้งานอยู่ อุปกรณ์ใช้ที่อยู่เชิงตรรกะ 5 และระบบเสียงอื่นเชื่อมต่ออยู่ในเครือข่าย ให้ทำดังนี้
- ลักษณะการทำงานของซาวด์บาร์ของอุปกรณ์ไม่มีการเปลี่ยนแปลง
- การตั้งค่า ARC เปิดใช้งานอยู่ อุปกรณ์ที่เชื่อมต่อกับพอร์ตที่ไม่ใช่ ARC ใช้ที่อยู่เชิงตรรกะ 5 และระบบเสียงอื่นเชื่อมต่อกับพอร์ต ARC อยู่ ให้ทำดังนี้
- การเชื่อมต่อ ARC กับทีวีสำหรับระบบเสียงที่ 2 ไม่สำเร็จเนื่องจากใช้ที่อยู่เชิงตรรกะที่ยังไม่ได้ลงทะเบียน
- การตั้งค่า ARC เปิดใช้งานอยู่ และอุปกรณ์เป็นแบบฮอตปลั๊ก
- อุปกรณ์จะทำงานตามปกติเหมือนตอนที่เปิดใช้การตั้งค่า
การตรวจสอบ CTS
CtsHdmiCecHostTestCases
ต้องผ่านเมื่อปิดใช้การตั้งค่าซาวด์บาร์ การทดสอบ HdmiCecSoundbarModeTest.java
ในชุดทดสอบ CtsHdmiCecHostTestCases
จะทดสอบฟังก์ชันการทำงานของ DSM
แม้ว่าจะไม่ใช่ข้อกำหนดในการรับรอง แต่ให้เรียกใช้ CtsHdmiCecHostTestCases
โดยเปิดใช้การตั้งค่าซาวด์บาร์เพื่อตรวจสอบการติดตั้งใช้งาน
ดูการทดสอบ CEC CTS สำหรับอุปกรณ์ Android TV เพื่อเรียกใช้การทดสอบ Android CTS สำหรับ HDMI CEC