Version : 1.2.1
Dernière mise à jour : 2024-06-21
Légende
| Verbe du produit | Action de développement |
|---|---|
| "MUST" | Exigence produit obligatoire |
| "SHOULD" | Recommandation facultative |
| "MAY" | Souhaitable |
Présentation
Ce document décrit les exigences auxquelles un micro USB compatible avec ChromeOS doit répondre. Cette spécification ne concerne pas les produits WWCB, ni les produits conçus et certifiés avec un Chromebook.
USB
Sécurité
Dongle sans fil 2,4 GHz
- L'appareil sans fil 2,4 GHz ne s'associe automatiquement qu'au récepteur (dongle) fourni dans la boîte.
- Une action de l'utilisateur (sur l'appareil ou via une application) est requise pour associer le casque à un autre récepteur ou pour associer un nouveau casque à un récepteur existant.
- Si une application est nécessaire 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 uniquement avoir accès aux ports USB. Les scripts de contenu sont explicitement interdits.
Micrologiciel et connecteur
- Le casque doit être déclaré comme un appareil audio avec un descripteur d'interface audio (0x01) correct.
- Un descripteur correspondant doit exister pour les terminaux d'entrée et de sortie.
- Il est recommandé de signaler le type de terminal USB Audio Class (UAC).
- Casque (0x0402)
- SpeakerPhone (0x0403-0x0405) .
- Il est recommandé de signaler le type de terminal USB Audio Class (UAC).
- Un descripteur correspondant doit exister pour les terminaux d'entrée et de sortie.
- Si elle comporte un bouton, elle doit être déclarée comme un HID.
- Le casque doit répondre aux exigences WWCB concernant le micrologiciel et le connecteur.
Logiciel
Format
Veuillez consulter Format audio.
Pour que l'appareil dispose à la fois 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 capable de prendre en charge la lecture et la capture à des taux d'échantillonnage différents 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 à 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 DataExemple 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 l'utilisateur appuie sur le bouton.
- 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.
- Par exemple, augmentez le volume.
evtest ne peut observer qu'un seul événement d'augmentation du volume et le code doit être
- S'il existe une interface 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 de USB.org.
Page de 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 |
|---|---|---|
| Bouton du combiné | 0x20 |
OOC |
| Sonnerie | 0x9e |
OOC |
Page LED (0x08)
| Nom de la clé | ID d'utilisation HID | Type d'utilisation |
|---|---|---|
| Couper le son | 0x09 |
OOC |
| Décroché | 0x17 |
OOC |
| Faire sonner | 0x18 |
OOC |
Détection de la prise
Si un périphérique USB n'est pas compatible avec la classe audio USB (UAC), il affichera toujours un nœud de sortie dans la barre d'état système de ChromeOS. Toutefois, si le périphérique USB est compatible avec UAC, le système pourra détecter correctement une prise audio de 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
Format audio
| Lecture | Enregistrement | |
|---|---|---|
| Taux d'échantillonnage | ≥ 16 kHz | ≥ 16 kHz |
| Format | S16_LE | S16_LE |
- Le numéro et la configuration de la chaîne doivent être corrects.
- Tous les taux d'échantillonnage déclarés comme compatibles par le casque doivent fonctionner correctement.
- L'écart entre le taux 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 inférieure à 30.
Le casque doit être compatible avec la lecture ou la capture à différentes fréquences d'échantillonnage qu'il affirme prendre en charge.
Par exemple, vous pouvez lire de l'audio à une fréquence inférieure à 44,1 kHz tout en capturant simultanément la voix à une fréquence inférieure à 48 kHz.
- Sinon, ChromeOS doit ajouter un fichier de configuration spécifique pour l'empêcher côté système.
Qualité audio
Chemin de capture : désactiver le son
- Si une interface permet aux utilisateurs de couper le son de l'appareil audio, elle doit
- Conservez l'état de mise en sourdine d'une manière qui n'est pas affectée par :
- Ouvrir et fermer l'appareil
- Vous passez à un autre périphérique d'entrée.
Latence audio
Latence
- Latence de sortie
- La lecture audio doit commencer dans un délai de 500 ms maximum après une action de l'utilisateur qui lance la lecture.
- Le fabricant de l'appareil peut demander une dérogation s'il peut prouver qu'aucun écho n'est introduit lorsqu'il ne respecte pas cette exigence.
- La lecture audio doit commencer dans un délai de 500 ms maximum après une action de l'utilisateur qui lance la lecture.
Synchronisation audio/vidéo
- La lecture audio doit être synchronisée avec la lecture vidéo. La lecture audio peut être en avance sur la vidéo de 25 ms maximum ou en retard de 95 ms maximum.
Historique des révisions
| Date | Version | Remarques |
|---|---|---|
| 2024-06-21 | 1.2.1 | Spécifications compatibles avec ChromeOS obtenues. Publication initiale du site partenaire. |
| 2022-09-01 | 1.2 | Spécification WWCB associée v1.2 |
| 2022-02-05 | 1.1 | Spécification WWCB associée v1.1 |
| 2021-01-12 | 1.0 | Spécification WWCB associée créée. |