Mit ChromeOS kompatibel – USB-Headset-Spezifikation Version 1.2

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.
  • 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               Data
    
  • Beispiel 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_UP sein.
  • 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
    • Die Einfügungserkennung muss über eine der folgenden Methoden erfolgen:

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.
  • Wenn der Nutzer die Stummschaltungstaste am Headset oder in ChromeOS drückt, muss sich der Stummschaltungsstatus ändern.
  • Wenn sich der Stummschaltungsstatus ändert, muss sich die Stummschaltungsstatusanzeige (z. B. LED) am Headset ändern.

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.

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.