Versão: 1.3
Última atualização: 06/09/2024
Legenda
Verbo do produto | Ação de desenvolvimento |
---|---|
"MUST" | Requisitos obrigatórios do produto |
"DEVE" | Recomendação opcional |
"MAIO" | Opcional |
Visão geral
Este documento descreve os requisitos de um dispositivo USB + Bluetooth compatível com ChromeOS alto-falante e microfone atendem. Esta especificação não se destina a produtos WWCB nem a projetado e certificado com um Chromebook.
USB
Segurança
Dongle sem fio de 2,4 GHz
- O dispositivo sem fio de 2,4 GHz só é pareado automaticamente com o receptor (dongle) que vem com a caixa.
- É necessária uma ação do usuário (no dispositivo ou por meio de um app) para parear o fone de ouvido com outro receptor ou parear o novo fone de ouvido com o receptor existente.
- Se um app for necessário para alterar o pareamento de fone de ouvido/receptor, ele precisará ser executado no ChromeOS, por exemplo, por uma extensão. O aplicativo também pode ser um aplicativo da web usando WebUSB/WebHID.
- Se o pareamento for implementado por meio de uma extensão, a extensão poderá apenas tenham acesso a portas USB. Scripts de conteúdo são explicitamente proibidos.
Firmware e conector
- O fone de ouvido precisa ser declarado como um dispositivo de áudio com uma interface de áudio correta
(0x01).
- É preciso que haja um descritor correspondente para entrada e saída
terminal.
- É recomendável informar o tipo de terminal da classe de áudio USB (UAC, na sigla em inglês)
- Headset (0x0402)
- Alto-falante (0x0403-0x0405) .
- É recomendável informar o tipo de terminal da classe de áudio USB (UAC, na sigla em inglês)
- É preciso que haja um descritor correspondente para entrada e saída
terminal.
- Se tiver algum botão, ele precisa ser declarado como um HID.
- O fone de ouvido deve atender às normas do firmware e conector do WWCB .
Software
Formato
Consulte Formato de áudio.
O dispositivo tem descritor de interface de áudio de entrada e saída.
Exemplo de descritor de interface de áudio
Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0
Se as taxas de amostragem de entrada e saída forem diferentes, o dispositivo deverá ser
são compatíveis com reprodução e captura em diferentes taxas de amostragem ao mesmo tempo.
Caso contrário, o dispositivo precisa refletir o mesmo valor no Descriptor de interface
de streaming de áudio -> tSamFreq
.
Exemplo de taxa de amostragem da saída de áudio USB de 48 K
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
Exemplo de taxa de amostragem da entrada de áudio USB de 44,1 K
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
Códigos HID
- Para cada evento HID, só é possível transmitir um evento por vez.
- O código de evento correto e o código de evento correspondente precisam ser recebidos quando
o botão é pressionado.
- Por exemplo, aumentar o volume.
evtest
só podem observar um evento de aumento de volume, e o código precisa ser
KEY_VOLUME_UP
- Por exemplo, aumentar o volume.
evtest
só podem observar um evento de aumento de volume, e o código precisa ser
- Se houver alguma interface projetada para fornecer as seguintes funcionalidades, os O periférico USB precisa ser compatível com a emissão ou o recebimento do HID correspondente eventos de acordo com o HID do USB.org especificação.
Página do consumidor (0x0c)
Nome da chave | ID de uso de HID | Tipo de uso |
---|---|---|
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 |
Página de telefonia (0x0b)
Nome da chave | ID de uso de HID | Tipo de uso |
---|---|---|
Interruptor de gancho | 0x20 |
OOC |
Campainha | 0x9e |
OOC |
Página de LED (0x08)
Nome da chave | ID de uso de HID | Tipo de uso |
---|---|---|
Desativar som | 0x09 |
OOC |
Desconectado | 0x17 |
OOC |
Tocar | 0x18 |
OOC |
Detecção de Jack
Se um dispositivo USB não for compatível com a classe de áudio USB (UAC), ele sempre mostrará um de saída na bandeja do sistema ChromeOS. No entanto, se o dispositivo USB oferecer suporte ao UAC, o sistema poderá detectar corretamente uma entrada de áudio de 3,5 mm quando o dispositivo for inserido.
- O CrOS precisa usar a detecção de presença para entradas de 3,5 mm
Requisitos gerais do Bluetooth
Consulte Compatibilidade com o ChromeOS: especificação Bluetooth.
Formato de áudio
Reprodução | Gravação | |
---|---|---|
Taxa de amostragem | ≥ 16 kHz | ≥ 16 kHz |
Formato | S16_LE | S16_LE |
- O número e a configuração do canal precisam estar corretos.
- Todas as taxas de amostragem que o fone de ouvido declara com suporte precisam funcionar corretamente.
- O desvio entre a taxa medida e a taxa de amostragem precisa ser ≤ 0,1%.
- O erro padrão para a regressão linear da taxa medida precisa ser < 30.
O fone de ouvido precisa oferecer suporte à reprodução ou captura com diferentes taxas de amostragem.
Por exemplo, reproduzir áudio abaixo de 44,1 kHz, mas capturar voz abaixo de 48 kHz. ao mesmo tempo.
- Caso contrário, o ChromeOS precisará adicionar um arquivo de configuração específico ao impedir isso no sistema.
Qualidade do áudio
Caminho de captura: Ignorar
- Se houver alguma interface para os usuários silenciarem o dispositivo de áudio, ela deve
- Mantenha o estado de silêncio de uma forma que não seja afetada por:
- Abrindo e fechando o dispositivo.
- Alternando para outro dispositivo de entrada.
Latência de áudio
Latência
- Latência de saída
- A reprodução de áudio precisa começar em ≤500 ms após uma ação do usuário que
inicie a reprodução.
- Pode solicitar uma renúncia se o OEM do dispositivo puder provar que não há eco quando falha nesse requisito.
- A reprodução de áudio precisa começar em ≤500 ms após uma ação do usuário que
inicie a reprodução.
Sincronização A/V
- A reprodução do áudio deve ser sincronizada com a reprodução do vídeo. Reprodução de áudio pode conduzir o vídeo em ≤25 ms ou reduzir o vídeo em ≤95 ms.
Histórico de revisões
Data | Versão | Observações |
---|---|---|
2024-09-06 | 1.3 | Especificação compatível com o ChromeOS derivada. Publicação inicial do site do parceiro. |
2022-09-14 | 1.2 | Atualizado para a v1.2. |
2022-08-19 | 1.1 | Atualização para a v1.1. |
2022-08-18 | 1,0 | A especificação do WWCB relacionada foi criada. |