Compatible ChromeOS - Spécification du combiné haut-parleur/micro v1.3

Version : 1.3
Dernière mise à jour : 06/09/2024

Légende

Verbe produit Action de développement
"OBLIGATOIRE" Exigence obligatoire concernant le produit
"DEVRA" Recommandation facultative
"MAI" Souhaitable

Présentation

Ce document décrit les exigences d'un haut-parleur avec micro USB et Bluetooth compatible avec ChromeOS. Cette spécification ne s'applique pas aux produits Compatibles Chromebook, ni aux conçu et certifié avec un Chromebook.

USB

Sécurité

Dongle sans fil 2,4 GHz

  • L'appareil sans fil 2,4 GHz ne s'associe automatiquement qu'avec le récepteur (dongle) fourni avec la box.
  • Une action de l'utilisateur (sur l'appareil ou via une appli) est requise pour associer le casque avec un autre récepteur ou associer un nouveau casque au récepteur existant.
  • Si une application est requise pour modifier l'association du casque/récepteur, elle doit s'exécuter sur ChromeOS, par exemple via une extension. L'application peut également être une application Web utilisant WebUSB/WebHID.
  • Si l'association est implémentée via une extension, celle-ci ne doit avoir accès qu' aux ports USB. Les scripts de contenu sont explicitement interdits.

Micrologiciel et connecteur

  • Le casque doit être déclaré en tant qu'appareil audio avec une interface audio correcte. (0x01).
    • Il doit y avoir un descripteur correspondant pour l'entrée et la sortie. du terminal.
      • Nous vous recommandons d'indiquer le type de terminal UAC (USB Audio Class)
  • S'il comporte un bouton, il doit être déclaré en tant qu'HID.
  • Le casque doit respecter les exigences concernant le micrologiciel et le connecteur WWCB.

Logiciel

Format

Veuillez consulter la section Format audio.

Les appareils disposent d'un descripteur d'interface audio d'entrée et de sortie.

  • Exemple de descripteur d'interface audio

    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0
      iInterface              0
    

Si les taux d'échantillonnage de l'entrée et de la sortie sont différents, l'appareil doit être prendre en charge la lecture et l'enregistrement à différents taux d'échantillonnage en même temps. Sinon, l'appareil doit refléter la même valeur dans le descripteur d'interface AudioStreaming -> tSamFreq.

  • Exemple de taux d'échantillonnage de sortie audio USB de 48 kHz

    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
    
  • Exemple de taux d'échantillonnage d'entrée audio USB de 44,1 kHz

    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
    

Codes HID

  • Pour chaque événement HID, il ne peut transmettre qu'un seul événement à la fois.
  • Le code d'événement correct et le code d'événement correspondant doivent être reçus lorsque le bouton est enfoncé.
    • Par exemple, augmentez le volume. evtest ne peut observer qu'un seul événement d'augmentation du volume et le code doit être KEY_VOLUME_UP
  • Si une interface est conçue pour fournir les fonctionnalités suivantes, le périphérique USB doit être compatible avec l'émission ou la réception des événements HID correspondants, conformément aux spécifications HID USB.org.
Page consommateur (0x0c)
Nom de la clé ID d'utilisation HID Type d'utilisation
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
Page de téléphonie (0x0b)
Nom de la clé ID d'utilisation HID Type d'utilisation
Commutateur Hook 0x20 OOC
Sonnerie 0x9e OOC
Page LED (0x08)
Nom de la clé ID d'utilisation HID Type d'utilisation
Couper le son 0x09 OOC
Hors crochet 0x17 OOC
Sonnerie 0x18 OOC

Détection de jack

Si un appareil USB n'est pas compatible avec la classe audio USB (UAC), un nœud de sortie s'affiche toujours dans la barre système de ChromeOS. Toutefois, si le périphérique USB prend en charge L'UAC est capable de détecter correctement un connecteur audio 3, 5 mm lorsque le périphérique est inséré.

  • CrOS doit utiliser la détection de présence pour les connecteurs 3,5 mm
    • Vous devez effectuer la détection d'insertion via l'une des méthodes suivantes:

Configuration Bluetooth générale

Consultez la page Compatibilité avec ChromeOS : spécification Bluetooth.

Format audio

Lecture Enregistrement
Taux d'échantillonnage ≥ 16 kHz ≥ 16 kHz
Format S16_LE S16_LE
  • Le numéro de canal et la configuration doivent être corrects.
  • Tous les taux d'échantillonnage déclarés par le casque comme compatibles doivent fonctionner correctement.
    • L'écart entre le débit mesuré et le taux d'échantillonnage doit être inférieur ou égal à 0,1 %.
    • L'erreur type pour la régression linéaire du taux mesuré doit être < 30.
  • Le casque doit prendre en charge la lecture ou la capture à des taux d'échantillonnage différents. affirme à l’appui.

    Par exemple, vous pouvez lire du contenu audio dont la fréquence est inférieure à 44,1 kHz, mais enregistrer une voix inférieure à 48 kHz. simultanément.

    • Sinon, ChromeOS doit ajouter un fichier de configuration spécifique à l’empêcher du côté du système.

Qualité audio

Capturer un itinéraire - Couper le son

  • S'il existe une interface permettant aux utilisateurs de couper le son de l'appareil audio, celle-ci doit
    • Maintenez l'état de désactivation du son de manière à ce qu'il ne soit pas affecté par les éléments suivants :
      • Ouverture et fermeture de l'appareil.
      • Passage à un autre périphérique d'entrée.
  • Si l'utilisateur appuie sur le bouton de mise en sourdine du casque ou de ChromeOS, l'état de mise en sourdine doit changer.
  • Si l'état du mode silencieux change, l'indicateur correspondant (par exemple, LED) sur le le casque doit changer.

Latence audio

Latence

  • Latence de sortie
    • La lecture audio doit commencer ≤ 500 ms après une action de l'utilisateur qui lance la lecture.
      • Peut demander une renonciation si l'OEM de l'appareil peut prouver qu'aucun écho n'est introduit lorsqu'elle ne répond pas à cette exigence.

Synchronisation A/V

  • La lecture audio doit être synchronisée avec la lecture vidéo. La lecture audio peut précéder la vidéo de ≤ 25 ms ou la suivre de ≤ 95 ms.

Historique des révisions

Date Version Remarques
2024-09-06 1.3 Spécification de compatibilité avec ChromeOS dérivée. Publication initiale du site du partenaire.
2022-09-14 1.2 Mise à jour vers la version 1.2.
2022-08-19 1.1 Mise à jour vers la version 1.1.
2022-08-18 1.0 Spécification WWCB associée créée.