Compatível com ChromeOS - Especificação de fones de ouvido USB v1.2

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)
  • 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
  • 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.
    • É necessário executar a detecção de inserção por meio de uma das seguintes opções:

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.
  • Se o usuário pressionar o botão de desativar microfone no fone de ouvido ou no ChromeOS, o o estado mudo deve mudar.
  • Se o estado mudo mudar, o indicador de estado mudo (por exemplo:LED) no o fone de ouvido deve mudar.

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.

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.