Version: 1.2.1
Zuletzt aktualisiert: 14.06.2024
Legend
| Produktverb | Entwicklungsmaßnahme |
|---|---|
| „MUST“ | Obligatorische Produktanforderung |
| „SHOULD“ | Optionale Empfehlung |
| „MAY“ | Optional |
Übersicht
In diesem Dokument werden die Anforderungen beschrieben, die ein mit ChromeOS kompatibles USB-Headset erfüllen muss. Diese Spezifikation gilt nicht für WWCB-Produkte und auch nicht für Produkte, die zusammen mit einem Chromebook entwickelt und zertifiziert wurden.
USB
Sicherheit
2,4‑GHz-Funk-Dongle
- Das 2,4‑GHz-Funkgerät wird nur automatisch mit dem Empfänger (Dongle) gekoppelt, der im Lieferumfang enthalten ist.
- Zum Koppeln des Headsets mit einem anderen Empfänger oder zum Koppeln eines neuen Headsets mit einem vorhandenen Empfänger ist eine Nutzeraktion (entweder auf dem Gerät oder über eine App) erforderlich.
- Wenn eine App zum Ändern der Kopplung von Headset und Empfänger erforderlich ist, muss sie unter ChromeOS ausgeführt werden, z. B. über eine Erweiterung. Die App kann auch eine Web-App sein, die WebUSB/WebHID verwendet.
- Wenn die Kopplung über eine Erweiterung implementiert wird, darf die Erweiterung nur Zugriff auf USB-Anschlüsse haben. Content-Scripts sind ausdrücklich nicht zulässig.
Firmware und Anschluss
- Das Headset muss als Audiogerät mit einem korrekten Audio-Interface-Deskriptor (0x01) deklariert werden.
- Es muss einen entsprechenden Deskriptor für das Ein- und Ausgabeterminal geben.
- Es wird empfohlen, den UAC-Terminaltyp (USB Audio Class) zu melden.
- Headset (0x0402)
- SpeakerPhone (0x0403–0x0405) .
- Es wird empfohlen, den UAC-Terminaltyp (USB Audio Class) zu melden.
- Es muss einen entsprechenden Deskriptor für das Ein- und Ausgabeterminal geben.
- Wenn es eine Taste hat, muss es als HID deklariert werden.
- Das Headset muss die WWCB-Anforderungen an Firmware und Stecker erfüllen.
Software
Format
Weitere Informationen finden Sie unter Audioformat.
Für Geräte mit Audio Interface Descriptors für Ein- und Ausgabe.
Beispiel für einen Audio-Schnittstellendeskriptor
Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0
Wenn die Abtastraten von Ein- und Ausgabe unterschiedlich sind, muss das Gerät die Wiedergabe und Aufnahme mit unterschiedlichen Abtastraten gleichzeitig unterstützen.
Andernfalls muss das Gerät denselben Wert im AudioStreaming Interface Descriptor -> tSamFreq angeben.
Beispiel für die USB-Audioausgabe mit einer Abtastrate von 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 DataBeispiel für eine USB-Audioeingabe-Abtastrate von 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
HID-Codes
- Für jedes HID-Ereignis kann jeweils nur ein Ereignis übertragen werden.
- Wenn die Taste gedrückt wird, sollten der richtige Ereigniscode und der entsprechende Ereigniscode empfangen werden.
- Erhöhe beispielsweise die Lautstärke.
evtest
kann nur ein Lautstärke-Erhöhungsereignis beobachten und der Code muss
KEY_VOLUME_UPsein.
- Erhöhe beispielsweise die Lautstärke.
evtest
kann nur ein Lautstärke-Erhöhungsereignis beobachten und der Code muss
- Wenn es eine Schnittstelle gibt, die für die folgenden Funktionen entwickelt wurde, muss das USB-Peripheriegerät das Senden oder Empfangen der entsprechenden HID-Ereignisse gemäß der HID-Spezifikation von USB.org unterstützen.
Verbraucherseite (0x0c)
| Schlüsselname | HID-Nutzungs-ID | Nutzungstyp |
|---|---|---|
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 |
Telefonie-Seite (0x0b)
| Schlüsselname | HID-Nutzungs-ID | Nutzungstyp |
|---|---|---|
| Gabelumschalter | 0x20 |
OOC |
| Klingelton | 0x9e |
OOC |
LED-Seite (0x08)
| Schlüsselname | HID-Nutzungs-ID | Nutzungstyp |
|---|---|---|
| Stummschalten | 0x09 |
OOC |
| Abgehoben | 0x17 |
OOC |
| Ring | 0x18 |
OOC |
Erkennung von Kopfhörerbuchsen
Wenn ein USB-Gerät die USB Audio Class (UAC) nicht unterstützt, wird in der ChromeOS-Taskleiste immer ein Ausgabeknoten angezeigt. Wenn das USB-Gerät jedoch UAC unterstützt, kann das System eine 3,5‑mm-Audiobuchse korrekt erkennen, wenn das Gerät eingesetzt wird.
- ChromeOS muss die Anwesenheitserkennung für 3,5‑mm-Klinken verwenden
Audioformat
| Wiedergabe | Aufzeichnung | |
|---|---|---|
| Abtastrate | ≥ 16 kHz | ≥ 16 kHz |
| Format | S16_LE | S16_LE |
- Die Kanalnummer und die Konfiguration müssen korrekt sein.
- Alle Samplingraten, die das Headset als unterstützt deklariert, müssen korrekt funktionieren.
- Die Abweichung zwischen der gemessenen Rate und der Abtastrate darf höchstens 0,1 % betragen.
- Der Standardfehler für die lineare Regression der gemessenen Rate muss < 30 sein.
Das Headset muss die Wiedergabe oder Aufnahme mit verschiedenen Abtastraten unterstützen, die es angibt.
So können Sie beispielsweise Audio mit einer Abtastrate von unter 44,1 kHz wiedergeben, aber gleichzeitig Sprache mit einer Abtastrate von 48 kHz aufnehmen.
- Andernfalls muss ChromeOS eine bestimmte Konfigurationsdatei hinzufügen, um dies auf Systemseite zu verhindern.
Audioqualität
Aufnahmepfad – Stummschalten
- Wenn es eine Benutzeroberfläche gibt, über die Nutzer das Audiogerät stummschalten können, muss sie
- Den Stummschaltungsstatus so beibehalten, dass er nicht durch Folgendes beeinflusst wird:
- Öffnen und Schließen des Geräts
- Sie wechseln zu einem anderen Eingabegerät.
Audiolatenz
Latenz
- Ausgabelatenz
- Die Audiowiedergabe muss innerhalb von ≤500 ms nach einer Nutzeraktion beginnen, die die Wiedergabe initiiert.
- Der Geräte-OEM kann eine Ausnahme beantragen, wenn er nachweisen kann, dass kein Echo entsteht, wenn diese Anforderung nicht erfüllt wird.
- Die Audiowiedergabe muss innerhalb von ≤500 ms nach einer Nutzeraktion beginnen, die die Wiedergabe initiiert.
A/V-Synchronisierung
- Die Audiowiedergabe sollte mit der Videowiedergabe synchronisiert sein. Die Audiowiedergabe kann dem Video um ≤25 ms voraus oder um ≤95 ms hinterher sein.
Überarbeitungsverlauf
| Datum | Version | Hinweise |
|---|---|---|
| 2024-06-14 | 1.2.1 | Spezifikation für „Kompatibel mit ChromeOS“ abgeleitet. Erste Veröffentlichung der Partnerwebsite. |
| 2022-09-01 | 1.2 | Zugehörige WWCB-Spezifikation v1.2 |
| 2022-06-06 | 1.1 | Zugehörige WWCB-Spezifikation v1.1 |
| 2020-09-21 | 1.0 | Die zugehörige WWCB-Spezifikation wurde erstellt. |