การรองรับเฟรมเวิร์ก Android 14 ช่วยให้ OEM สามารถกำหนดค่า กล่องรับสัญญาณ (STB) และอุปกรณ์แพร่ภาพและเสียงผ่านโครงข่ายอินเทอร์เน็ต (OTT) ที่มีลำโพงในตัวหรือลำโพงที่เชื่อมต่อ ให้เป็นซาวด์บาร์สำหรับอุปกรณ์ที่เชื่อมต่อได้ โหมดซาวด์บาร์แบบไดนามิก (DSM) ใน Android 14 รองรับแอตทริบิวต์การควบคุมอุปกรณ์อิเล็กทรอนิกส์สำหรับผู้บริโภค (CEC) ของ HDMI สำหรับซาวด์บาร์ เช่น ช่องสัญญาณเสียงคืน (ARC) และการควบคุมเสียงของระบบ
ฟีเจอร์นี้มีไว้สำหรับอุปกรณ์การเล่น CEC ของ Android TV เท่านั้น
ข้อกำหนด
หากต้องการใช้ฟีเจอร์ซาวด์บาร์ OEM ต้องมีคุณสมบัติตรงตามข้อกำหนดของอุปกรณ์และ UI ของระบบ ที่ระบุไว้ในส่วนนี้
ข้อกำหนดของอุปกรณ์
STB หรืออุปกรณ์ OTT ต้องมีคุณสมบัติตรงตามข้อกำหนดต่อไปนี้จึงจะรองรับ DSM ได้
- อุปกรณ์ต้องใช้ Android 14
- เมื่อเปิดใช้ DSM อุปกรณ์ต้องทำงานเหมือนซาวด์บาร์ตาม ข้อกำหนด HDMI CEC เช่น ARC
- อุปกรณ์ต้องเล่นเสียงบนลำโพงในตัวหรือลำโพงที่เชื่อมต่อได้
- เมื่ออุปกรณ์ไม่ใช่แหล่งที่มาที่ใช้งานอยู่ คุณต้องหยุดสื่อทั้งหมดชั่วคราวใน อุปกรณ์เพื่อจำกัดการใช้พลังงาน
ข้อกำหนดของ UI ของระบบ
หากต้องการรองรับ DSM ผู้ผลิตอุปกรณ์ดั้งเดิมต้องมีคุณสมบัติตรงตามข้อกำหนดต่อไปนี้ขณะออกแบบ UI ของระบบ
- ป้ายกำกับ UI ต้องมีการอ้างอิงถึง ARC หรือ Audio Return Channel (ARC)
- UI ต้องแจ้งให้ผู้ใช้เชื่อมต่ออุปกรณ์กับพอร์ต ARC ของทีวีเพื่อ สร้างการเชื่อมต่อ ARC
- UI ต้องแจ้งให้ผู้ใช้ทราบว่าฟีเจอร์นี้อาจไม่ทำงานตามที่คาดไว้หากมีการเชื่อมต่อซาวด์บาร์หรือเครื่องรับสัญญาณเสียงและวิดีโอ (AVR) อื่นในเครือข่าย HDMI
- UI ต้องแจ้งให้ผู้ใช้ทราบว่าหน้าจออาจกะพริบเมื่อสลับการตั้งค่า
- หากอุปกรณ์ไม่มีลำโพงในตัว คุณต้องปิดใช้ DSM โดยค่าเริ่มต้น
แนวทางปฏิบัติแนะนำของเราคือการใช้เมนูจอแสดงผลและเสียงเป็น ตำแหน่งสำหรับการตั้งค่าผู้ใช้เพื่อเปิดหรือปิดใช้ ARC ดังที่แสดงใน การติดตั้งใช้งาน SysUI
การใช้งานเฟรมเวิร์ก
การใช้งานฟังก์ชันการทำงานของซาวด์บาร์ CEC และการจัดสรรแบบไดนามิก ของที่อยู่ตรรกะ 5 อยู่ในเฟรมเวิร์ก Android เฟรมเวิร์กจะจัดสรร ที่อยู่ตรรกะเมื่อเปิดใช้การตั้งค่าซาวด์บาร์ เพื่อให้อุปกรณ์ กลายเป็นซาวด์บาร์แบบไดนามิก เมื่อปิดใช้การตั้งค่าซาวด์บาร์ เฟรมเวิร์กจะยกเลิกการจัดสรรที่อยู่แบบตรรกะ
โดยอิงตามข้อมูลที่ผู้ใช้ป้อนใน 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 ได้รับการรองรับหรือไม่
- ทริกเกอร์การจัดสรรที่อยู่เชิงตรรกะเพื่อเพิ่มหรือนำอุปกรณ์เสียงในพื้นที่ออก
- ตรวจสอบว่าระบบจะรักษาสถานะของการตั้งค่าไว้ หากมีการเสียบอุปกรณ์ขณะที่เครื่องเปิดอยู่
ดูตัวอย่างการประกาศต่อไปนี้เพื่อตั้งค่าและรับสถานะของ โหมดซาวด์บาร์
/**
* 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แสดงการตั้งค่าเพื่อสลับโหมดซาวด์บาร์ใน System UI
สำหรับการแก้ไขข้อบกพร่อง ให้ใช้
adb
คำสั่งต่อไปนี้เพื่อเปิดหรือปิดฟีเจอร์ซาวด์บาร์ (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 ต่อไปนี้ หากต้องการเปิดใช้โหมดซาวด์บาร์ ผู้ใช้จะต้อง เลือกลำโพงในบ้าน แล้วเลือกและยืนยันการตั้งค่า ARC หากต้องการปิด DSM ผู้ใช้จะต้องปิดการตั้งค่า ARC
รูปที่ 3 UI เพื่อเปิดใช้ DSM
การตรวจสอบความถูกต้อง
OEM สามารถทำการทดสอบเสียงเพื่อให้แน่ใจว่าลำโพงของอุปกรณ์เล่น จะเล่นเสียงที่มาจากทีวีหรือจากอุปกรณ์อื่นๆ ที่เชื่อมต่อกับแผงทีวี
การตรวจสอบด้วยตนเอง
ใช้สถานการณ์ต่อไปนี้เพื่อตรวจสอบลักษณะการทำงานที่คาดไว้ด้วยตนเอง
- มีการเปิดใช้การตั้งค่า ARC ดังนี้
- ทีวีปิดเสียงเอง
- ระบบจะกำหนดเส้นทางเสียงทีวีไปยังลำโพงของอุปกรณ์
- การตั้งค่า ARC ถูกปิดใช้
- ทีวีจะหยุดกำหนดเส้นทางเสียงไปยังอุปกรณ์
- ทีวีจะเริ่มเล่นเสียง
- เปิดใช้การตั้งค่า ARC และเชื่อมต่ออุปกรณ์กับพอร์ตที่ไม่ใช่ ARC
ของทีวี
- อุปกรณ์ไม่เล่นเสียงของทีวี
- การตั้งค่า ARC เปิดอยู่และอุปกรณ์อื่นใช้ที่อยู่เชิงตรรกะ 5 อยู่ก่อนที่อุปกรณ์จะเชื่อมต่อ
- อุปกรณ์จะทำงานเหมือนอุปกรณ์เล่นอย่างเดียว ไม่ใช่ซาวด์บาร์
- เปิดใช้การตั้งค่า ARC, อุปกรณ์ใช้ที่อยู่แบบตรรกะ 5 และ
เชื่อมต่อระบบเสียงอื่นในเครือข่าย
- พฤติกรรมของซาวด์บาร์ของอุปกรณ์จะไม่มีการเปลี่ยนแปลง
- เปิดใช้การตั้งค่า ARC, อุปกรณ์ใช้ที่อยู่แบบตรรกะ 5
เชื่อมต่อกับพอร์ตที่ไม่ใช่ ARC และระบบเสียงอื่นเชื่อมต่อกับพอร์ต
ARC ดังนี้
- ระบบไม่ได้สร้างการเชื่อมต่อ ARC กับทีวีสำหรับระบบเสียงที่ 2 เนื่องจากใช้ที่อยู่แบบตรรกะที่ไม่ได้ลงทะเบียน
- มีการเปิดใช้การตั้งค่า ARC และเสียบอุปกรณ์ขณะที่เครื่องเปิดอยู่
- อุปกรณ์จะทำงานตามปกติเหมือนกับตอนที่เปิดใช้การตั้งค่า
การตรวจสอบ CTS
CtsHdmiCecHostTestCases
ต้องส่งเมื่อปิดใช้การตั้งค่าซาวด์บาร์ HdmiCecSoundbarModeTest.java
การทดสอบในชุดทดสอบ CtsHdmiCecHostTestCases
จะทดสอบฟังก์ชันการทำงานของ DSM
แม้ว่าจะไม่ใช่ข้อกำหนดในการรับรอง แต่ให้เรียกใช้ CtsHdmiCecHostTestCases
โดยเปิดใช้การตั้งค่าซาวด์บาร์เพื่อตรวจสอบการติดตั้งใช้งาน
ดูการทดสอบ CTS ของ CEC สำหรับอุปกรณ์ Android TV เพื่อเรียกใช้การทดสอบ CTS ของ Android สำหรับ HDMI CEC