版本:1.3
上次更新时间:2024-09-06
Legend
| 产品动词 | 开发操作 |
|---|---|
| "MUST" | 强制性产品要求 |
| “SHOULD” | 可选建议 |
| “MAY” | 建议条件 |
概览
本文档介绍了 ChromeOS 兼容的 USB+蓝牙音箱麦克风必须满足的要求。此规范不适用于 WWCB 产品,也不适用于与 Chromebook 一起设计和认证的产品。
USB
安全
2.4 GHz 无线接收器
- 2.4 GHz 无线设备仅与包装盒随附的接收器(加密狗)自动配对。
- 用户需要执行操作(在设备上或通过应用)才能将耳机与另一个接收器配对,或将新耳机与现有接收器配对。
- 如果应用需要更改耳机/接收器配对,则该应用必须在 ChromeOS 上运行,例如通过扩展程序运行。该应用也可以是使用 WebUSB/WebHID 的 Web 应用。
- 如果配对是通过扩展程序实现的,则该扩展程序必须仅有权访问 USB 端口。明确禁止使用内容脚本。
固件和连接器
- 耳机必须声明为具有正确音频接口 (0x01) 描述符的音频设备。
- 输入和输出终端必须有一个对应的描述符。
- 建议报告 USB 音频类 (UAC) 终端类型
- 耳机 (0x0402)
- SpeakerPhone (0x0403-0x0405) .
- 建议报告 USB 音频类 (UAC) 终端类型
- 输入和输出终端必须有一个对应的描述符。
- 如果它有任何按钮,则必须声明为 HID。
- 耳机必须符合 WWCB 固件和连接器要求。
软件
格式
请参阅音频格式。
对于同时具有输入和输出音频接口描述符的设备。
音频接口描述符示例
Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0
如果输入和输出的采样率不同,设备必须能够同时支持以不同采样率进行播放和捕获。否则,设备必须在音频流接口描述符 -> tSamFreq 中反映相同的值。
48k USB 音频输出采样率示例
AudioStreaming Interface Descriptor: bLength 11 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 2 bBitResolution 16 bSamFreqType 1 Discrete tSamFreq[ 0] 48000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT(Output) bmAttributes 9 Transfer Type Isochronous Synch Type Adaptive Usage Type Data44.1k USB 音频输入采样率示例
AudioStreaming Interface Descriptor: bLength 11 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 2 bBitResolution 16 bSamFreqType 1 Discrete tSamFreq[ 0] 44100 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x81 EP 1 In(Input) bmAttributes 9 Transfer Type Isochronous Synch Type Adaptive Usage Type Data
HID 代码
- 对于每个 HID 事件,每次只能传输一个事件。
- 按下按钮时,应收到正确的事件代码和相应的事件代码。
- 例如,增加音量。
evtest 只能观察到一个音量调高按钮事件,并且代码必须为
KEY_VOLUME_UP。
- 例如,增加音量。
evtest 只能观察到一个音量调高按钮事件,并且代码必须为
- 如果存在任何旨在提供以下功能的接口,则 USB 外围设备必须支持根据 USB.org HID 规范发出或接收相应的 HID 事件。
消费方页面 (0x0c)
| 键名 | HID 用途 ID | 使用类型 |
|---|---|---|
KEY_PLAY |
0x0b0 |
OOC |
KEY_PAUSE |
0x0b1 |
OOC |
KEY_NEXTSONG |
0x0b5 |
OSC |
KEY_PREVIOUSSONG |
0x0b6 |
OSC |
KEY_STOPCD |
0x0b7 |
OSC |
KEY_PLAYPAUSE |
0x0cd |
OSC |
KEY_PREVIOUSSONG |
0x0b6 |
OSC |
KEY_MUTE |
0x0e2 |
OOC |
KEY_VOLUMEUP |
0x0e9 |
RTC |
KEY_VOLUMEDOWN |
0x0ea |
RTC |
电话页面 (0x0b)
| 键名 | HID 用途 ID | 使用类型 |
|---|---|---|
| 挂机开关 | 0x20 |
OOC |
| 振铃器 | 0x9e |
OOC |
LED 页面 (0x08)
| 键名 | HID 用途 ID | 使用类型 |
|---|---|---|
| 静音 | 0x09 |
OOC |
| 摘机 | 0x17 |
OOC |
| 铃声 | 0x18 |
OOC |
耳机插孔检测
如果 USB 设备不支持 USB 音频类 (UAC),则始终会在 ChromeOS 系统任务栏中显示输出节点。不过,如果 USB 设备支持 UAC,系统将能够在插入设备时正确检测到 3.5 毫米音频插孔。
一般蓝牙要求
请参阅 ChromeOS 兼容性 - 蓝牙规范。
音频格式
| 播放 | 录制 | |
|---|---|---|
| 采样率 | ≥ 16 kHz | ≥ 16 kHz |
| 格式 | S16_LE | S16_LE |
- 频道号和配置必须正确无误。
- 耳机声明支持的所有采样率都必须正常工作。
- 实测速率与采样率之间的偏差必须 ≤ 0.1%。
- 实测率的线性回归的标准误差必须小于 30。
头戴式耳机必须支持在它声称支持的不同采样率下播放或捕获音频。
例如,播放采样率低于 44.1 kHz 的音频,同时以 48 kHz 的采样率捕获语音。
- 否则,需要 ChromeOS 添加特定的配置文件,以在系统端阻止此行为。
音频品质
拍摄路径 - 静音
- 如果存在任何供用户将音频设备静音的界面,则该界面必须
- 以不受以下因素影响的方式保持静音状态:
- 打开和关闭设备。
- 切换到其他输入设备。
音频延迟
延迟时间
- 输出延迟时间
- 在用户发起播放的操作后,音频播放必须在 500 毫秒内开始。
- 如果设备原始设备制造商(OEM)可以证明在未满足此要求时不会引入回声,则可以申请豁免。
- 在用户发起播放的操作后,音频播放必须在 500 毫秒内开始。
A/V 同步
- 音频播放应与视频播放同步。音频播放可比视频提前 ≤25 ms 或滞后 ≤95 ms。
修订历史记录
| 日期 | 版本 | 备注 |
|---|---|---|
| 2024-09-06 | 1.3 | 派生出 ChromeOS 兼容规范。初始合作伙伴网站发布。 |
| 2022-09-14 | 1.2 | 更新至 v1.2。 |
| 2022-08-19 | 1.1 | 已更新至 v1.1。 |
| 2022-08-18 | 1.0 | 创建了相关的 WWCB 规范。 |