Версия: 1.3
Последнее обновление: 06.09.2024
Легенда
| Глагол, обозначающий продукт | Действия по развитию |
|---|---|
| "ДОЛЖЕН" | Обязательное требование к продукту |
| "ДОЛЖЕН" | Дополнительная рекомендация |
| "МОЖЕТ" | Приятно иметь |
Обзор
В этом документе описаны требования, которым должен соответствовать совместимый с ChromeOS USB+Bluetooth динамик-микрофон. Данная спецификация не распространяется на продукты WWCB, а также на продукты, разработанные и сертифицированные совместно с Chromebook.
USB
Безопасность
Беспроводной адаптер 2,4 ГГц
- Беспроводное устройство, работающее на частоте 2,4 ГГц, автоматически сопрягается только с приемником (адаптером), входящим в комплект поставки.
- Для сопряжения гарнитуры с другим приемником или для сопряжения новой гарнитуры с существующим приемником требуется действие пользователя (либо на устройстве, либо через приложение).
- Если для изменения сопряжения гарнитуры и приемника требуется приложение, оно должно работать на ChromeOS, например, через расширение. Приложение также может быть веб-приложением, использующим WebUSB/WebHID.
- Если сопряжение осуществляется через расширение, то расширение должно иметь доступ только к USB-портам. Использование скриптов содержимого категорически запрещено.
Прошивка и разъем
- Гарнитура должна быть объявлена как аудиоустройство с корректным дескриптором аудиоинтерфейса (0x01).
- Для входного и выходного терминалов должен существовать один соответствующий дескриптор.
- Рекомендуется указывать тип разъема USB Audio Class (UAC).
- Гарнитура (0x0402)
- SpeakerPhone (0x0403-0x0405) .
- Рекомендуется указывать тип разъема 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.
- Например, увеличить громкость. evtest может отслеживать только одно событие увеличения громкости, и код должен быть
- Если какой-либо интерфейс предназначен для обеспечения следующих функций, периферийное устройство 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 мс после действия пользователя, инициирующего воспроизведение.
- Можно запросить освобождение от требований, если производитель устройства сможет доказать, что при несоблюдении этого условия эхо-эффект не возникает.
- Воспроизведение аудио должно начинаться не позднее чем через 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. |