การควบคุมอุปกรณ์ช่วยฟัง
การควบคุมอุปกรณ์ช่วยฟังในฟีเจอร์จับคู่ด่วนมีจุดมุ่งหมายเพื่อมอบการควบคุมการเข้าถึงที่ดีขึ้นสำหรับฟีเจอร์สำคัญของอุปกรณ์ช่วยฟังใน Android เราได้เพิ่มกลุ่มข้อความใหม่ Hearable controls ภายในสตรีมข้อความเพื่อให้บรรลุเป้าหมายนี้
ชื่อกลุ่มข้อความ | ค่า |
---|---|
การควบคุมอุปกรณ์ช่วยฟัง | 0x08 |
การควบคุมเสียงรบกวนแบบแอ็กทีฟ
การควบคุมเสียงรบกวนแบบแอ็กทีฟกำลังกลายเป็นฟีเจอร์ที่โดดเด่นสำหรับหูฟังพรีเมียม ในฝั่งอุปกรณ์ที่ค้นหา การจับคู่ด่วนจะมี UI และตรรกะในการตั้งค่า รับ และบันทึกสถานะ และระบบจะจัดเก็บสถานะไว้ในฝั่งผู้ให้บริการ ผู้ให้บริการต้องส่ง Session Nonce เมื่อเชื่อมต่อสตรีมเหตุการณ์ เราจึงกำหนดรหัสข้อความต่อไปนี้เพื่อให้บรรลุเป้าหมายนี้
ชื่อรหัสของข้อความ | ค่า | ผู้ส่ง | ผู้ตอบ | MAC | ACK |
---|---|---|---|---|---|
รับสถานะ ANC | 0x11 | Seeker | ผู้ให้บริการ | N | N |
ตั้งค่าสถานะ ANC | 0x12 | Seeker | ผู้ให้บริการ | Y | Y |
แจ้งสถานะ ANC | 0x13 | ผู้ให้บริการ | Seeker | N | N |
เมื่อ Seeker เชื่อมต่อกับ Provider หรือเมื่อ Provider ได้รับข้อความ "Get ANC state" Provider จะแจ้งสถานะ ANC เพื่อให้ Seeker ทราบความสามารถของ ANC และสถานะที่จัดเก็บไว้ ข้อความมีดังนี้
ไบต์ | ประเภทข้อมูล | คำอธิบาย | ค่า |
---|---|---|---|
0 | uint8 | การควบคุมอุปกรณ์ช่วยฟัง | 0x08 |
1 | uint8 | แจ้งสถานะ ANC | 0x13 |
2 - 3 | uint16 | ความยาวข้อมูลเพิ่มเติม | 0x04 |
4 - 7 | ข้อมูลควบคุม ANC | แตกต่างกันไป |
ข้อมูลควบคุม ANC
ไบต์ | ประเภทข้อมูล | คำอธิบาย | ค่า |
---|---|---|---|
0 | uint8 | รหัสรุ่น | แตกต่างกัน, 0x02 สำหรับเวอร์ชันนี้ |
1 | ธง | สวิตช์ UI แต่ละโหมดจะเปิดใช้ (1) หรือปิดใช้ (0) ตามค่าของบิตแฟล็ก ดังนี้ บิต 0 (MSB): โปร่งใส บิต 1: ปรับเปลี่ยนได้ (หรือ 0 หากไม่รองรับ) บิต 2: ปิด บิต 3: สงวนไว้ (ตั้งค่าบิตเป็น 0) บิต 4: ANC |
แตกต่างกันไป |
2 | ธง | ปุ่มเปิด/ปิดที่ตั้งค่าได้ คุณยังตั้งค่าบิตสลับ UI ด้านบนทั้งหมดหรือบางส่วนได้ที่นี่เพื่อระบุว่าบิตใดที่เปิดใช้อยู่ในปัจจุบัน |
แตกต่างกันไป |
3 | ธง | สถานะปัจจุบัน ตั้งค่าได้เพียง 1 บิตและค่าของไบต์นี้ต้องไม่ใช่ 0 |
แตกต่างกันไป |
แถบเลื่อนจะแสดง UI สลับตามข้อมูลการควบคุม ANC
ตัวอย่างที่ 1: ผู้ให้บริการรองรับ ANC 3 ทาง: โปร่งใส - ปิด - ANC และหูฟัง อยู่บนศีรษะ ตอนนี้ตั้งค่าโหมดทั้งหมดได้แล้ว และสถานะปัจจุบันคือปิด
ไบต์ | ประเภทข้อมูล | คำอธิบาย | ค่า |
---|---|---|---|
0 | uint8 | รหัสรุ่น | 0x01 |
1 | ธง | สวิตช์ UI | 0b10101000 |
2 | ธง | สวิตช์ที่ตั้งค่าได้ | 0b10101000 |
3 | ธง | สถานะปัจจุบัน | 0b00100000 |
ตัวอย่างที่ 2: ผู้ให้บริการรองรับ ANC 3 ทาง: โปร่งใส - ปิด - ANC มีหูฟัง ข้างเดียวที่อยู่บนศีรษะหรือไม่มีหูฟังอยู่บนศีรษะ จึงตั้งค่าโหมดไม่ได้ และ สถานะปัจจุบันคือปิด
ไบต์ | ประเภทข้อมูล | คำอธิบาย | ค่า |
---|---|---|---|
0 | uint8 | รหัสรุ่น | 0x01 |
1 | ธง | การเปิด/ปิด UI | 0b10101000 |
2 | ธง | ปุ่มเปิด/ปิดที่ตั้งค่าได้ | 0b00000000 |
3 | ธง | สถานะปัจจุบัน | 0b00100000 |
หากผู้ใช้สลับปุ่มเปิด/ปิด Seeker จะตั้งค่าสถานะปัจจุบันเป็น Provider ดังนี้
ไบต์ | ประเภทข้อมูล | คำอธิบาย | ค่า |
---|---|---|---|
0 | uint8 | การควบคุมอุปกรณ์ช่วยฟัง | 0x08 |
1 | uint8 | ตั้งค่าสถานะ ANC | 0x12 |
2 - 3 | uint16 | ความยาวข้อมูลเพิ่มเติม | แตกต่างกัน, 0x04 หรือ 0x14 |
4 | uint8 | รหัสเวอร์ชัน Seeker | แตกต่างกัน, 0x01 หรือ 0x02 |
5 | ธง | โหมดที่ตั้งค่า ANC ได้ (สลับ UI) | แตกต่างกันไป |
6 | ธง | โหมดที่เปิดใช้ ANC (สลับได้) | แตกต่างกันไป |
7 | ธง | ดัชนีโหมด ANC ใหม่ (สถานะใหม่) | แตกต่างกันไป |
8 - 23 | จองแล้ว | แตกต่างกันไป |
ไบต์ที่ 4-7 คือข้อมูลควบคุม ANC ที่ส่งจาก ฝั่ง Seeker หากตั้งค่าความยาวเพิ่มเติมเป็น 0x14 ไบต์ที่สงวนไว้ 8-23 จะปรากฏขึ้น และเมื่อได้รับไบต์เหล่านี้ ผู้ให้บริการควรละเว้นไบต์ดังกล่าว หากตั้งค่าความยาวเพิ่มเติมเป็น 0x04 จะไม่มีไบต์ที่สงวนไว้
เมื่อผู้ให้บริการได้รับข้อความ "ตั้งค่าสถานะ ANC" ผู้ให้บริการควรรับทราบ และแจ้งสถานะ ANC ให้แก่ผู้ขอทั้งหมดที่เชื่อมต่ออยู่ หากผู้ใช้เปลี่ยนการตั้งค่าผ่านท่าทางของชุดหูฟังหรือแอปพลิเคชันคู่ ผู้ให้บริการควรส่งการแจ้งเตือนไปยังผู้ค้นหาที่เชื่อมต่อทั้งหมดด้วย
ตัวอย่างที่ 3: ผู้ให้บริการรองรับ ANC 4 ทาง ได้แก่ โปร่งใส - ปรับอัตโนมัติ - ปิด - ANC หูฟังเอียร์บัดอยู่บนศีรษะ ตอนนี้ตั้งค่าโหมดทั้งหมดได้แล้ว และสถานะปัจจุบันคือปรับอัตโนมัติ
ไบต์ | ประเภทข้อมูล | คำอธิบาย | ค่า |
---|---|---|---|
0 | uint8 | รหัสรุ่น | 0x01 |
1 | ธง | การเปิด/ปิด UI | 0b11101000 |
2 | ธง | ปุ่มเปิด/ปิดที่ตั้งค่าได้ | 0b11101000 |
3 | ธง | สถานะปัจจุบัน | 0b01000000 |