Versão: 1.2.1
Última atualização: 14/06/2024
Legenda
Verbo do produto | Ação de desenvolvimento |
---|---|
"OBRIGATÓRIO" | Requisito obrigatório do produto |
"DEVE" | Recomendação opcional |
"MAIO" | Opcional |
Visão geral
Este documento descreve os requisitos de um fone de ouvido USB compatível com o ChromeOS encontra. Esta especificação não se destina a produtos WWCB nem a produtos criados e certificada junto a 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 que acompanha.
- É 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 for necessário que um app altere o pareamento entre fone de ouvido/receptor, será necessário executá-lo ChromeOS, por exemplo, com 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)
- Fone de ouvido (0x0402)
- SpeakerPhone (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 ele tiver algum botão, ele vai precisar 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.
Para o dispositivo, tenha o descritor da 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 deverá refletir o mesmo valor no AudioStreaming
Descritor da interface -> 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, ele só pode transmitir um evento uma vez por vez.
- O código de evento correto e o código de evento correspondente devem ser recebidos quando
o botão for pressionado.
- Por exemplo, aumentar o volume.
evtest (em inglês)
só podem observar um evento de aumento de volume, e o código precisa ser
KEY_VOLUME_UP
- Por exemplo, aumentar o volume.
evtest (em inglês)
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 |
---|---|---|
Chave 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 |
Sem conexão | 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 nó de saída na bandeja do sistema ChromeOS. No entanto, se o dispositivo USB for compatível UAC, o sistema poderá detectar corretamente uma entrada para fone de ouvido de 3,5 mm quando o dispositivo é inserido.
- O Chrome OS precisa usar a detecção de presença em conectores de 3,5 mm.
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 headset deve ser compatível com a reprodução ou captura com taxas de amostragem diferentes declara para suporte.
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 — sem som
- Se houver alguma interface para os usuários silenciarem o dispositivo de áudio, ela deve
- Manter o estado mudo 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 ≤ 500 ms após uma ação do usuário que
inicia 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 ≤ 500 ms após uma ação do usuário que
inicia 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-06-14 | 1.2.1 | Especificação compatível com ChromeOS derivada. Publicação inicial do site do parceiro. |
2022-09-01 | 1.2 | Especificação WWCB relacionada v1.2 |
2022-06-06 | 1.1 | Especificação WWCB relacionada v1.1 |
2020-09-21 | 1,0 | A especificação do WWCB relacionada foi criada. |