Совместимость с ChromeOS — спецификация динамика и микрофона v1.3

Версия: 1.3
Последнее обновление: 06.09.2024

Легенда

Глагол, обозначающий продукт Действия по развитию
"ДОЛЖЕН" Обязательное требование к продукту
"ДОЛЖЕН" Дополнительная рекомендация
"МОЖЕТ" Приятно иметь

Обзор

В этом документе описаны требования, которым должен соответствовать совместимый с ChromeOS USB+Bluetooth динамик-микрофон. Данная спецификация не распространяется на продукты WWCB, а также на продукты, разработанные и сертифицированные совместно с Chromebook.

USB

Безопасность

Беспроводной адаптер 2,4 ГГц

  • Беспроводное устройство, работающее на частоте 2,4 ГГц, автоматически сопрягается только с приемником (адаптером), входящим в комплект поставки.
  • Для сопряжения гарнитуры с другим приемником или для сопряжения новой гарнитуры с существующим приемником требуется действие пользователя (либо на устройстве, либо через приложение).
  • Если для изменения сопряжения гарнитуры и приемника требуется приложение, оно должно работать на ChromeOS, например, через расширение. Приложение также может быть веб-приложением, использующим WebUSB/WebHID.
  • Если сопряжение осуществляется через расширение, то расширение должно иметь доступ только к USB-портам. Использование скриптов содержимого категорически запрещено.

Прошивка и разъем

  • Гарнитура должна быть объявлена ​​как аудиоустройство с корректным дескриптором аудиоинтерфейса (0x01).
    • Для входного и выходного терминалов должен существовать один соответствующий дескриптор.
      • Рекомендуется указывать тип разъема USB Audio Class (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
    

Если частота дискретизации входного и выходного сигналов различается, устройство должно поддерживать воспроизведение и захват с разной частотой дискретизации одновременно. В противном случае устройство должно отображать одно и то же значение в дескрипторе интерфейса AudioStreaming -> tSamFreq .

  • Пример частоты дискретизации аудиовыхода USB 48 кГц

    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
    
  • Пример частоты дискретизации USB-аудиовхода 44,1 кГц.

    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 в соответствии со спецификацией HID USB.org .
Страница потребителя (0x0c)
Имя ключа Идентификатор использования HID Тип использования
KEY_PLAY 0x0b0 OOC
KEY_PAUSE 0x0b1 OOC
KEY_NEXTSONG 0x0b5 ОСК
KEY_PREVIOUSSONG 0x0b6 ОСК
KEY_STOPCD 0x0b7 ОСК
KEY_PLAYPAUSE 0x0cd ОСК
KEY_PREVIOUSSONG 0x0b6 ОСК
KEY_MUTE 0x0e2 OOC
KEY_VOLUMEUP 0x0e9 РТС
KEY_VOLUMEDOWN 0x0ea РТС
Страница телефонии (0x0b)
Имя ключа Идентификатор использования HID Тип использования
Переключатель крючка 0x20 OOC
Рингер 0x9e OOC
Страница светодиода (0x08)
Имя ключа Идентификатор использования HID Тип использования
Немой 0x09 OOC
Снятие с крюка 0x17 OOC
Кольцо 0x18 OOC

Обнаружение Джека

Если USB-устройство не поддерживает USB Audio Class (UAC), в системном трее ChromeOS всегда будет отображаться выходной узел. Однако, если USB-устройство поддерживает UAC, система сможет корректно распознать 3,5-мм аудиоразъем при подключении устройства.

  • В CrOS необходимо использовать функцию определения наличия разъема 3,5 мм.
    • Необходимо выполнить обнаружение вставки одним из следующих способов:

Общие требования к Bluetooth

См. спецификацию Bluetooth, совместимую с ChromeOS .

Аудиоформат

Воспроизведение Запись
Частота дискретизации ≥ 16 кГц ≥ 16 кГц
Формат S16_LE S16_LE
  • Номер канала и его конфигурация должны быть верны.
  • Все частоты дискретизации, заявленные гарнитурой как поддерживаемые, должны работать корректно.
    • Отклонение между измеренной скоростью и частотой дискретизации должно быть ≤ 0,1%.
    • Стандартная ошибка линейной регрессии измеренной скорости должна быть < 30.
  • Гарнитура должна поддерживать воспроизведение или запись с различными частотами дискретизации, которые она, как утверждается, поддерживает.

    Например, воспроизвести аудио с частотой дискретизации ниже 44,1 кГц и одновременно записать голос с частотой дискретизации ниже 48 кГц.

    • В противном случае ChromeOS потребуется добавить специальный конфигурационный файл, чтобы предотвратить это на системном уровне.

Качество звука

Путь захвата - Отключить звук

  • Если существует какой-либо интерфейс для отключения звука пользователем, он должен
    • Поддерживайте состояние отключения звука таким образом, чтобы на него не влияли следующие факторы:
      • Открытие и закрытие устройства.
      • Переключение на другое устройство ввода.
  • Если пользователь нажимает кнопку отключения звука на гарнитуре или в ChromeOS, состояние отключения звука должно измениться.
  • При изменении состояния отключения звука индикатор состояния отключения звука (например, светодиод) на гарнитуре также должен измениться.

Задержка звука

Задержка

  • Задержка вывода
    • Воспроизведение аудио должно начинаться не позднее чем через 500 мс после действия пользователя, инициирующего воспроизведение.
      • Можно запросить освобождение от требований, если производитель устройства сможет доказать, что при несоблюдении этого условия эхо-эффект не возникает.

Синхронизация аудио/видео

  • Воспроизведение звука должно быть синхронизировано с воспроизведением видео. Воспроизведение звука может опережать видео на ≤25 мс или отставать от него на ≤95 мс.

История изменений

Дата Версия Примечания
2024-09-06 1.3 Разработана спецификация, совместимая с ChromeOS. Первоначальная публикация на партнерском сайте.
2022-09-14 1.2 Обновлено до версии 1.2.
2022-08-19 1.1 Обновлено до версии 1.1.
2022-08-18 1.0 Создана соответствующая спецификация WWCB.