与 ChromeOS 兼容 - 扬声器麦克风规范 v1.3

版本:1.3
最后更新时间:2024 年 9 月 6 日

图例

产品动词 开发操作
“MUST” 强制性产品要求
“SHOULD” 可选建议
“可以” 建议条件

概览

本文档介绍了与 ChromeOS 兼容的 USB + 蓝牙的要求 麦克风与麦克风的交接点。此规范不适用于 WWCB 产品,或 与 Chromebook 配合使用。

USB

安全

2.4 GHz 无线加密狗

  • 2.4 GHz 无线设备仅会与包装盒中随附的接收器(加密狗)自动配对。
  • 必须由用户执行操作(在设备上或通过应用),才能将耳机与其他接收器配对,或将新耳机与现有接收器配对。
  • 如果应用需要更改耳机/接收器配对,则应用必须在 ChromeOS(例如通过扩展程序)。该应用还可以是使用 WebUSB/WebHID 的 Web 应用。
  • 如果通过扩展实现配对,该扩展只能 USB 端口。明确禁止使用内容脚本。

固件和连接器

  • 必须将头戴式耳机声明为具有正确音频接口 (0x01) 描述符的音频设备。
    • 输入和输出终端都必须有一个对应的描述符。
      • 建议报告 USB 音频类 (UAC) 终端类型
        • 耳机 (0x0402)
        • SpeakerPhone (0x0403-0x0405) ,了解所有最新动态。
  • 如果它包含任何按钮,则必须将其声明为 HID。
  • 耳机必须符合 WWCB 固件和连接器要求

软件

格式

请参阅音频格式

对于同时具有输入和输出音频接口描述符的设备。

  • 音频接口描述符示例

    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0
      iInterface              0
    

如果输入和输出采样率不同,设备必须 能够同时支持以不同的采样率同时播放和捕获音频内容。 否则,设备必须在 AudioStreaming 中反映相同的值 接口描述符 ->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               Data
    
  • 44.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
  • 如果存在任何设计用于提供以下功能的接口,则 USB 外围设备必须支持发出或接收相应的 HID 事件(根据 USB.org 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

Jack 检测

如果 USB 设备不支持 USB 音频类 (UAC),则始终会显示 ChromeOS 系统任务栏中的输出节点。但是,如果 USB 设备支持 UAC,在 3.5 毫米音频插孔 设备。

  • CrOS 必须对 3.5 毫米耳机插孔使用在家/外出检测功能
    • 必须通过以下任一方式执行插入检测:

一般蓝牙要求

请参阅与 ChromeOS 兼容 - 蓝牙规范

音频格式

回放 录制
采样率 ≥ 16 kHz ≥ 16 kHz
格式 S16_LE S16_LE
  • 频道号和配置必须正确无误。
  • 耳机声明支持的所有采样率都必须正常工作。
    • 测量速率与采样速率之间的偏差不得超过 0.1%。
    • 测量速率的线性回归的标准误差必须小于 30.
  • 耳机必须支持在不同采样率下播放或捕获 来支持它

    例如,以 44.1 kHz 的采样率播放音频,同时以 48 kHz 的采样率录制语音。

    • 否则,ChromeOS 便需要将特定的配置文件添加到 阻止它在系统端运行

音频质量

捕获路径 - 静音

  • 如果有任何界面可供用户将音频设备静音,则必须
    • 以不受以下因素影响的方式保持静音状态:
      • 打开和关闭设备。
      • 切换到其他输入设备。
  • 如果用户按下头戴式耳机或 ChromeOS 上的静音按钮,静音状态必须发生变化。
  • 如果静音状态发生变化, 必须更换耳机。

音频延迟

延迟时间

  • 输出延迟
    • 在用户执行某项操作后,音频播放必须在 500 毫秒以内开始 开始播放。
      • 如果设备 OEM 可证明没有回声,则可以申请豁免 会在不符合此要求时引入。

A/V 同步

  • 音频播放应与视频播放同步。音频播放可能比视频提前 ≤25 毫秒或滞后 ≤95 毫秒。

修订历史记录

日期 版本 备注
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 规范。