Bluetooth Low Energy Audio (LEA) ช่วยให้ผู้ใช้ได้รับเสียงที่มีความเที่ยงตรงสูงโดยไม่ลดอายุการใช้งานแบตเตอรี่ และช่วยให้ผู้ใช้สลับไปมาระหว่างกรณีการใช้งานต่างๆ ได้อย่างราบรื่น Android 13 (ระดับ API 33) มีการรองรับ LEA ในตัว
ชุดหูฟัง LEA ส่วนใหญ่จะเป็นแบบดูอัลโหมดจนกว่าส่วนแบ่งการตลาดของอุปกรณ์ต้นทาง LEA จะเพิ่มขึ้น ผู้ใช้ควรจับคู่และตั้งค่าการรับส่งทั้ง 2 แบบในชุดหูฟังแบบ 2 โหมดได้
กรณีการใช้งาน
คุณอาจต้องการผสานรวม LEA สำหรับกรณีการใช้งานต่อไปนี้
การแชร์เสียง: ผู้ใช้สามารถแชร์สตรีมเสียงหลายรายการไปยังอุปกรณ์ปลายทางเสียงอย่างน้อย 1 เครื่องได้พร้อมกัน ระบบจะซิงค์เสียงระหว่างอุปกรณ์ต้นทางกับอุปกรณ์ที่เชื่อมต่อ
ออกอากาศเสียง: ผู้ใช้สามารถออกอากาศเสียงไปยังเพื่อนและครอบครัว รวมถึงเชื่อมต่อกับการออกอากาศสาธารณะเพื่อรับข้อมูล ความบันเทิง หรือการช่วยเหลือพิเศษ
รองรับตัวแปลงสัญญาณเสียง LC3: นี่คือตัวแปลงสัญญาณเสียงเริ่มต้นและจะแทนที่ตัวแปลงสัญญาณ SBC ที่ใช้สำหรับ A2DP (สื่อ) และ mSBC ใน HFP (เสียง) LC3 มีประสิทธิภาพมากกว่า กำหนดค่าใหม่ได้ และมีคุณภาพสูงกว่า
การปรับปรุงการสุ่มตัวอย่างเสียง: ชุดหูฟังสามารถรักษาคุณภาพเสียงเอาต์พุตสูงเมื่อใช้ไมโครโฟน บลูทูธคลาสสิกจะลดคุณภาพเสียงเมื่อใช้ไมโครโฟนบลูทูธ เมื่อใช้เสียง BLE การสุ่มตัวอย่างอินพุตและเอาต์พุตจะอยู่ที่ 32 kHz
ไมโครโฟนสเตอริโอ: อุปกรณ์ช่วยฟังสามารถบันทึกเสียงด้วยไมโครโฟนสเตอริโอเพื่อเพิ่มคุณภาพเสียงรอบทิศทาง
การรองรับ Hearing Aid Profile (HAP): HAP ช่วยให้ผู้ใช้เข้าถึงและใช้งานได้มากกว่าโปรโตคอล ASHA ก่อนหน้า ผู้ใช้สามารถใช้เครื่องช่วยฟังสำหรับการโทรและแอปพลิเคชัน VoIP ได้
รองรับโปรโตคอลแอตทริบิวต์ที่ได้รับการปรับปรุง (EATT): EATT ช่วยให้นักพัฒนาแอปส่งคำสั่งหลายรายการพร้อมกันไปยังอุปกรณ์เสียงที่จับคู่ได้
สถานการณ์สำคัญ
กรณีการใช้งานหลักๆ มี 4 หมวดหมู่ ดังนี้
การสนทนา: แอปพลิเคชันแป้นโทรศัพท์และ VoIP ที่กำหนดให้มีการกำหนดเส้นทางการสื่อสารที่มีเวลาในการตอบสนองต่ำจะให้เสียงคุณภาพสูงและใช้แบตเตอรี่น้อยลง
การเล่นเกม: การเล่นไมโครโฟนพร้อมกันและการเล่นที่มีความเที่ยงตรงสูงช่วยให้เกมสตรีมเสียงคุณภาพสูงไปยังอุปกรณ์ฟังได้ แอปเกมจะเข้าถึงอินพุตเสียง BLE ได้เมื่อเกมเตรียมไมโครโฟนบลูทูธให้พร้อมใช้งาน จากนั้นเมื่อผู้เล่นเริ่มการสนทนาสดกับผู้เล่นคนอื่น แอปเกมจะใช้ข้อมูลไมโครโฟนได้โดยไม่ชักช้า
สื่อ: แอปพลิเคชันสื่อได้รับอนุญาตให้ตั้งค่าอุปกรณ์หลักของ Audio Manager ผู้ใช้สามารถลบล้างการตั้งค่านี้ได้โดยเปลี่ยนอุปกรณ์หลักจากการตั้งค่าของระบบ
การช่วยเหลือพิเศษ: ตอนนี้เครื่องช่วยฟังที่รองรับเสียง BLE สามารถใช้ไมโครโฟนได้แล้ว ซึ่งจะช่วยให้ผู้ใช้ใช้เครื่องช่วยฟังในการโทรได้อย่างต่อเนื่อง
API และเมธอดเสียง BLE
ต้องใช้ API และเมธอดต่อไปนี้เพื่อรองรับอุปกรณ์ช่วยฟัง BLE Audio
AudioManager
setCommunicationDevice()เลือกอุปกรณ์เสียงที่ควรใช้สำหรับกรณีการใช้งานการสื่อสาร เช่น การโทรด้วยเสียงหรือวิดีโอคอล แอปพลิเคชันแชทด้วยเสียงหรือวิดีโอแชทสามารถใช้วิธีนี้เพื่อเลือกอุปกรณ์เสียงอื่นนอกเหนือจากอุปกรณ์ที่แพลตฟอร์มเลือกไว้โดยค่าเริ่มต้น API นี้จะแทนที่ API ที่เลิกใช้งานแล้วต่อไปนี้startBluetoothSco()stopBluetoothSco()และsetSpeakerphoneOn()clearCommunicationDevice()จะเรียกใช้หลังจากที่แอปของคุณสิ้นสุดการโทรหรือเซสชัน เพื่อช่วยให้มั่นใจว่าผู้ใช้จะได้รับ ประสบการณ์การใช้งานที่ยอดเยี่ยมเมื่อเปลี่ยนไปมาระหว่างแอปพลิเคชันต่างๆ
BluetoothProfile
BluetoothLeAudioควบคุมบริการบลูทูธผ่านออบเจ็กต์พร็อกซี
Telecom InCallService
InCallService#requestCallEndpointChange()มาแทนที่ APIInCallService.setAudioRoute()และInCallService.requestBluetoothAudio()ที่เลิกใช้งานไปแล้ว เพื่อให้แอปขอการกำหนดเส้นทางเสียงไปยังCallEndpointที่เฉพาะเจาะจงได้ ไคลเอ็นต์ไม่ควร กำหนดCallEndpointของตนเองเมื่อ ขอเปลี่ยนแปลง แต่ปลายทางใหม่ควรเป็นหนึ่งในปลายทางที่ถูกต้องซึ่งInCallService.onAvailableCallEndpointsChanged(java.util.List)ระบุCallEndpoint.TYPE_BLUETOOTHจะส่งสตรีมเสียงผ่านบลูทูธ- API
InCallServiceที่กล่าวถึงข้างต้นออกแบบมาเพื่อให้แอปโทรศัพท์เริ่มต้นในโทรศัพท์ Android หรือ แพลตฟอร์มการโทรอื่นๆ เช่น อุปกรณ์ที่สวมใส่ได้ รถยนต์ หรืออุปกรณ์บลูทูธอื่นๆ ที่อาจต้องการมีอิทธิพลต่อการกำหนดเส้นทางเสียงใช้
Telecom CallControl
- คลาส
CallControlใหม่ได้รับการเปิดตัวใน API ระดับ 34 เพื่อแทนที่ConnectionและConnectionServiceสำหรับแอปพลิเคชัน VoIP เท่านั้น CallControl.requestCallEndpointChange()ยังขอให้มีการเปลี่ยนแปลงCallEndpointด้วย API นี้จะมาแทนที่ APIConnection.requestBluetoothAudio()และConnection.setAudioRoute()ที่เลิกใช้งานไปแล้ว- นอกเหนือจาก API ของแพลตฟอร์มโทรคมนาคมที่อัปเดตแล้ว เราขอแนะนำให้ใช้ไลบรารี Telecom Jetpack เป็นอย่างยิ่งเมื่อสร้างแอปพลิเคชันการโทรด้วยเสียงและ/หรือวิดีโอ ไลบรารีนี้ ช่วยให้กระบวนการผสานรวมง่ายขึ้นมากและปรับปรุงการโทรผ่าน VoIP ในทุกแพลตฟอร์มของ Android
ข้อมูลอุปกรณ์เสียง
AudioDeviceInfo.TYPE_BLE_HEADSETอธิบายประเภทอุปกรณ์เสียงเป็นอุปกรณ์ LEA ใช้เพื่อระบุว่าอุปกรณ์ เครื่องช่วยฟังเป็นอุปกรณ์ LEA หรือไม่
เครื่องบันทึกเสียง
setPreferredDevice()ตั้งค่าอุปกรณ์หลักสำหรับการกำหนดเส้นทางเสียง ผู้ใช้สามารถลบล้างการตั้งค่านี้ได้ ในการตั้งค่าระบบ
อะแดปเตอร์บลูทูธ
isLeAudioSupported(): แสดงค่าคงที่@BluetoothStatusCodes(FEATURE_SUPPORTED,FEATURE_NOT_SUPPORTEDหรือรหัสข้อผิดพลาด) ซึ่งระบุว่าฮาร์ดแวร์ของอุปกรณ์รองรับ LE Audio หรือไม่isLeAudioBroadcastSourceSupported(): แสดงค่าคงที่@BluetoothStatusCodes(FEATURE_SUPPORTED,FEATURE_NOT_SUPPORTEDหรือรหัสข้อผิดพลาด) ซึ่งระบุว่าฮาร์ดแวร์ของอุปกรณ์รองรับแหล่งที่มาของการบรอดแคสต์ LE Audio หรือไม่
คำแนะนำตามกรณีการใช้งาน
ด้านล่างนี้คือหลักเกณฑ์ในการติดตั้งใช้งาน LEA ตามกรณีการใช้งานที่เฉพาะเจาะจง
แอปพลิเคชันการสื่อสารด้วยเสียง
แอปพลิเคชันการสื่อสารด้วยเสียงสามารถเลือกจัดการการกำหนดเส้นทางเสียงและ สถานะอุปกรณ์ได้ด้วยตนเองหรือใช้ Telecom API ซึ่งจะ จัดการตรรกะการกำหนดเส้นทางเสียงและสถานะให้คุณ
จัดการด้วยตนเอง: สำหรับแอปพลิเคชันที่ปัจจุบันใช้
startBluetoothSco()stopBluetoothSco()และsetSpeakerphoneOn()หรือต้องการจัดการสถานะการกำหนดเส้นทางเสียงด้วยตนเอง ให้ทำตาม คู่มือการเรียกใช้ Audio Manager ที่จัดการด้วยตนเองมีการจัดการ: ใช้ไลบรารี Telecom Jetpack หรือ Telecom Platform API เพื่อสร้างแอปพลิเคชัน การโทรด้วยเสียงหรือวิดีโอ
โซลูชันทั้ง 2 นี้ช่วยให้คุณควบคุมการกำหนดเส้นทางเสียงและสลับ ระหว่างอุปกรณ์บลูทูธได้อย่างรวดเร็วและง่ายดาย ดูข้อมูลเพิ่มเติมได้ที่คู่มือการโทรที่มีการจัดการของโทรคมนาคม
แอปพลิเคชันบันทึกเสียง
- เครื่องบันทึกสื่อ: ตอนนี้คุณสามารถบันทึกเสียงเป็นสเตอริโอได้หากอุปกรณ์ช่วยฟังบลูทูธรองรับ LEA เมื่อบันทึกเสียงโดยใช้เครื่องบันทึกสื่อ ดูคำแนะนำในการบันทึกเสียง
คำแนะนำเกี่ยวกับชุดหูฟัง
เมื่อมีการเปิดตัวชุดหูฟัง LEA มากขึ้น เราพบปัญหาในการทดสอบในโลกแห่งความเป็นจริง ซึ่งทำให้ประสบการณ์ของผู้ใช้แย่ลง ข้อกำหนดไม่ได้ครอบคลุมปัญหาทั้งหมด เหล่านี้ ตารางต่อไปนี้แสดงรายการคำแนะนำที่ผู้ผลิตชุดหูฟัง LEA ควรปฏิบัติตามเพื่อปรับปรุงประสบการณ์แบบครบวงจรสำหรับผู้ใช้ Android
| คำอธิบาย | บริบท |
|---|---|
รองรับ Cross Transport Key Derivation (CTKD) สำหรับ
ชุดหูฟังแบบ 2 โหมด
|
ชุดหูฟัง LEA ใหม่ส่วนใหญ่จะเป็นแบบ 2 โหมดจนกว่าส่วนแบ่งการตลาดของอุปกรณ์ต้นทาง LEA จะเพิ่มขึ้น ผู้ใช้ควรจับคู่ชุดหูฟังแบบ 2 ระบบและตั้งค่าการรับส่งทั้ง 2 แบบได้อย่างราบรื่น ซึ่งเป็นสิ่งสำคัญสำหรับ การจับคู่ด่วนของ Google ด้วย |
|
รองรับประกาศที่กำหนดเป้าหมาย (TA) หากต้องการ ให้ชุดหูฟัง LEA เชื่อมต่อกับอุปกรณ์แหล่งที่มาอีกครั้งได้อย่างน่าเชื่อถือ หูฟังเอียร์บัด LE Audio ควรใช้ TA เพื่อขอการเชื่อมต่อขาเข้า จากอุปกรณ์ส่วนกลาง จะเพิ่มลงใน BT SIG ที่กำลังจะมาถึง |
ซึ่งต่างจากโมเดลการเพจของ BR/EDR ที่โทรศัพท์หรือชุดหูฟังสามารถเริ่มการเชื่อมต่อได้ การเชื่อมต่อใน LEA ต้องเริ่มโดยอุปกรณ์ส่วนกลาง ปัจจุบันชุดหูฟังหลายรุ่นไม่ได้ใช้ TA ซึ่งหมายความว่าอุปกรณ์ส่วนกลางอาจเชื่อมต่อ อุปกรณ์ต่อพ่วงอีกครั้งไม่ได้หากไม่ได้เพิ่มอุปกรณ์ต่อพ่วงลงในรายการที่อนุญาต อย่างไรก็ตาม วิธีแก้ปัญหาเฉพาะหน้าสำหรับรายการที่อนุญาตอาจทำให้ชุดหูฟัง เชื่อมต่อกับอุปกรณ์ส่วนกลางอื่นไม่ได้ ดังนั้น ชุดหูฟังของ LEA จึงต้องรองรับ TA อย่างเหมาะสมเพื่อให้ อุปกรณ์ส่วนกลางเชื่อมต่อใหม่ได้อย่างน่าเชื่อถือโดยไม่ต้องใช้ วิธีแก้ปัญหาที่อาจทำให้การเชื่อมต่อแบบหลายจุดใช้งานไม่ได้ |
การค้นพบที่เพิ่มประสิทธิภาพสำหรับหูฟังเอียร์บัดแบบ 2 โหมด
|
การดำเนินการนี้จะป้องกันไม่ให้หูฟังเอียร์บัด LEA แบบ 2 โหมดปรากฏเป็นรายการที่ซ้ำกัน
ในการตั้งค่าบลูทูธ ซึ่งอาจทำให้ผู้ใช้สับสนและส่งผลต่อ
ประสบการณ์การจับคู่ LEA
การเลือกผู้นำแบบไดนามิกมีความสำคัญอย่างยิ่งสำหรับอุปกรณ์แบบ 2 ระบบ ที่จับคู่ทีละรายการ เช่น หากมีหูฟังเอียร์บัดเพียงข้างเดียว เมื่อจับคู่ครั้งแรก หูฟังเอียร์บัดนั้นควรแสดงตัวเองเป็น อุปกรณ์แบบ 2 โหมด เมื่อผู้ใช้จับคู่กับหูฟังข้างที่ 2 ในภายหลัง ผู้ใช้จะต้องจับคู่กับคอมโพเนนต์ LE เท่านั้น และ CSIP จะตรวจสอบว่า ระบบจัดกลุ่มหูฟังทั้ง 2 ข้างไว้ด้วยกันใน Android เราขอแนะนำให้ใช้ที่อยู่ประจำตัวในระหว่างการจับคู่เนื่องจากคอมโพเนนต์ BR/EDR จะแสดงที่อยู่สาธารณะของอุปกรณ์ต่ออุปกรณ์ที่อยู่ใกล้เคียง อยู่แล้ว |
| รองรับ Enhanced Attribute Protocol (EATT) | ลดเวลาในการตอบสนองของการจับคู่และการเชื่อมต่อ |
| รองรับการแคช GATT ที่มีประสิทธิภาพ | ลดเวลาในการตอบสนองของการเชื่อมต่อ โดยเฉพาะสำหรับหูฟัง TWS |
| รองรับการให้คะแนนย่อยด้านการเชื่อมต่อ | ช่วยให้การกำหนดเวลาแพ็กเก็ตมีความยืดหยุ่นมากขึ้นและอาจช่วยประหยัดแบตเตอรี่ ได้ |
| ตรวจสอบว่าในระหว่างการประมวลผลก่อนและหลังการประมวลผลทั้งสำหรับการเล่นและการจับภาพ ไปป์ไลน์การประมวลผลสัญญาณสามารถทำงานที่ 16, 24, 32 และ 48 kHz รวมถึงรองรับความถี่ที่สูงกว่า | ใช้ประโยชน์จากอัตราการสุ่มตัวอย่างที่สูงขึ้นซึ่งรองรับสำหรับเส้นทางการโทร LEA หรือการจับภาพ VoIP และการเล่นสื่อ |
| รองรับการควบคุมพลังงาน LE | การจัดการพลังงานที่ดีขึ้น |
การรองรับประเภทบริบท
| คำอธิบาย | บริบท |
|---|---|
| ใช้บริบททุกประเภทที่ระบุไว้ใน Assigned Numbers 6.12.3 เว้นแต่ชุดหูฟังจะไม่รองรับบริบทประเภทใดประเภทหนึ่งอย่างชัดเจน | เช่น หากไม่รองรับประเภทบริบท "เกม" Android จะส่งเสียงเกม โปรดทราบว่าบริบทประเภท "ไม่ได้ระบุ" ไม่ได้หมายถึง "บริบทประเภทใดก็ได้" และไม่ได้ครอบคลุมบริบทประเภทที่ไม่รองรับ |
เมื่ออุปกรณ์ส่วนกลางโต้ตอบกับ ASCS ของอุปกรณ์ต่อพ่วง อุปกรณ์ต่อพ่วงต้องเชื่อมต่อกับ MCS และ TBS ของอุปกรณ์ส่วนกลาง อุปกรณ์ส่วนกลางอาจไม่ได้ใช้ LE Audio เป็นเส้นทางการสตรีมเสมอไป เนื่องจากอาจเปลี่ยนไปใช้ A2DP หรือ HFP แทน อุปกรณ์ต่อพ่วง สามารถใช้การโต้ตอบ ASCS เป็นตัวบ่งชี้ว่าอุปกรณ์ส่วนกลาง จะใช้ LE Audio สำหรับการสตรีมหรือไม่ ตัวอย่างการโต้ตอบ ASCS ได้แก่ อ่าน เขียน และลงทะเบียนเพื่อรับ การแจ้งเตือน |
คำแนะนำสำหรับเครื่องส่งสัญญาณ Auracast
ส่วนนี้จะให้คำแนะนำในการกำหนดค่าเครื่องส่งสัญญาณ Auracast
การออกอากาศเป็นระยะ
ประกาศด้วยเสียงในพื้นที่สาธารณะ เช่น สถานีขนส่ง มักจะ เป็นช่วงๆ และคั่นด้วยช่วงเวลาที่เงียบยาวนาน การสตรีมเสียงเงียบหรือเสียงพื้นหลังอย่างต่อเนื่องระหว่างการประกาศจะทำให้สิ้นเปลืองพลังงานของเครื่องรับและ ทำให้ผู้ใช้ฟังสตรีมเสียงหลักไม่ได้ เช่น สื่อท้องถิ่น หรือสตรีม Auracast อื่นที่ใช้งานอยู่
Android ขอแนะนำให้เครื่องส่งสัญญาณ Auracast ปฏิบัติตามหลักเกณฑ์ต่อไปนี้ในการจัดการการออกอากาศเป็นระยะๆ เพื่อปรับปรุงประสบการณ์ของผู้ใช้
คำจำกัดความ
- เสียงที่น่าสนใจ: เนื้อหาข้อมูลหลักที่มุ่งเป้าไปที่ผู้ใช้ เช่น ประกาศที่ประตูขึ้นเครื่องหรือประกาศรถไฟ
- เสียงพื้นหลัง: เสียงเงียบ เสียงซ่า หรือเพลงบรรเลงที่ส่งระหว่างช่วงเสียงที่น่าสนใจ
- การออกอากาศเป็นช่วงๆ: การออกอากาศที่สลับระหว่างช่วงเสียงที่น่าสนใจกับช่วงเสียงพื้นหลังหรือไม่มีเสียงเลย
การระบุการออกอากาศเป็นช่วงๆ
หากต้องการกำหนดให้การออกอากาศเป็นการออกอากาศเป็นระยะๆ ผู้ออกอากาศควร รวมโครงสร้าง LTV (ความยาว-ประเภท-ค่า) ของข้อมูลเมตา Audio_Active_State [1] ไว้ใน 2 ตำแหน่งต่อไปนี้
- โครงสร้าง BASE ข้อมูลเมตาระดับ 2 (โฆษณาเป็นระยะ) [2]
- ข้อมูลเมตาประกาศการออกอากาศสู่สาธารณะ (โฆษณาแบบขยาย) [3]
เพื่อช่วยให้ผู้รับระบุการออกอากาศเป็นช่วงๆ และตัดสินใจว่าจะเล่นสตรีมหรือไม่ ผู้แพร่ภาพควรตั้งค่าโครงสร้าง LTV ของข้อมูลเมตา Streaming_Audio_Context [1] อย่างถูกต้องด้วย
การระบุเสียงที่น่าสนใจ
เครื่องส่งจะใช้โครงสร้าง LTV ของข้อมูลเมตา Audio_Active_State เพื่อส่งสัญญาณแบบไดนามิกว่าการออกอากาศเป็นระยะมี เสียงที่น่าสนใจในเวลาใดก็ตามหรือไม่
- ข้อมูลเมตาของโครงสร้าง BASE ระดับ 2: ค่า 0x01 แสดงว่าขณะนี้ BIS ในกลุ่มย่อยมีเสียงที่น่าสนใจ
- ข้อมูลเมตาประกาศการออกอากาศสาธารณะ: ค่า 0x01 แสดงว่า BIS อย่างน้อย 1 รายการภายใน BIG มีเสียงที่น่าสนใจ
ค่า LTV ของข้อมูลเมตา Audio_Active_State ควรตั้งค่าเป็น 0x01 ก่อนส่ง Audio-of-Interest เพียงเล็กน้อย เพื่อให้เครื่องมือสแกนซิงค์ กับแหล่งที่มาของการออกอากาศสาธารณะได้ ในทางกลับกัน ควรตั้งค่าเป็น 0x00 ทันทีหลังจาก การส่งสิ้นสุดลง
ใช้ประโยชน์จากบริบทของเสียงที่สตรีม
การระบุบริบทอย่างชัดเจนจะช่วยให้เฟรมเวิร์ก Android และอุปกรณ์ที่รับ จัดลำดับความสำคัญของสตรีมที่เข้ามาได้ เช่น ระบบประกาศสาธารณะ (PA) อาจตั้งค่าประเภท Streaming_Audio_Context เป็น "คำสั่ง" เพื่อให้ประกาศขัดจังหวะการเล่นสื่อในเครื่องของผู้รับได้อย่างราบรื่นและเล่นต่อได้อย่างไร้รอยต่อหลังจากนั้น
ข้อมูลอ้างอิง
[1] Bluetooth Assigned Numbers,
https://www.bluetooth.com/specifications/assigned-numbers/
[2] Basic Audio Profile,
https://www.bluetooth.com/specifications/specs/basic-audio-profile-1-0-3/
[3] Public Broadcast Profile,
https://www.bluetooth.com/specifications/specs/public-broadcast-profile-1-0-2/