การควบคุมอุปกรณ์ช่วยฟัง

การควบคุมอุปกรณ์ช่วยฟังในฟีเจอร์จับคู่ด่วนมีจุดมุ่งหมายเพื่อมอบการควบคุมการเข้าถึงที่ดีขึ้นสำหรับฟีเจอร์สำคัญของอุปกรณ์ช่วยฟังใน 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