Zgodność z ChromeOS – Speakermic Specification v1.3

Wersja: 1.3
Ostatnia aktualizacja: 6 września 2024 r.

Legend

Czasownik produktu Działanie rozwojowe
"MUST" Obowiązkowe wymagania dotyczące produktu
"SHOULD" Opcjonalna rekomendacja
"MAY" Przydatne

Przegląd

Ten dokument opisuje wymagania, które spełnia głośnik z mikrofonem USB+Bluetooth zgodny z ChromeOS. Ta specyfikacja nie dotyczy produktów WWCB ani produktów zaprojektowanych i certyfikowanych razem z Chromebookiem.

USB

Bezpieczeństwo

Bezprzewodowy klucz sprzętowy 2,4 GHz

  • Urządzenie bezprzewodowe 2,4 GHz automatycznie paruje się tylko z odbiornikiem (donglem) dołączonym do opakowania.
  • Aby sparować zestaw słuchawkowy z innym odbiornikiem lub nowy zestaw słuchawkowy z dotychczasowym odbiornikiem, użytkownik musi wykonać działanie (na urządzeniu lub w aplikacji).
  • Jeśli aplikacja ma zmieniać parowanie słuchawek lub odbiornika, musi działać w ChromeOS, np. za pomocą rozszerzenia. Aplikacja może być też aplikacją internetową korzystającą z WebUSB/WebHID.
  • Jeśli parowanie jest realizowane za pomocą rozszerzenia, musi ono mieć wyłącznie dostęp do portów USB. Skrypty treści są wyraźnie niedozwolone.

Oprogramowanie układowe i złącze

  • Zestaw słuchawkowy musi być zadeklarowany jako urządzenie audio z prawidłowym deskryptorem interfejsu audio (0x01).
    • Zarówno wejściowy, jak i wyjściowy terminal musi mieć odpowiedni deskryptor.
      • Zalecamy zgłaszanie typu terminala USB Audio Class (UAC).
  • Jeśli ma przycisk, musi być zadeklarowany jako urządzenie HID.
  • Zestaw słuchawkowy musi spełniać wymagania dotyczące oprogramowania sprzętowego i złącza WWCB.

Oprogramowanie

Format

Więcej informacji znajdziesz w sekcji Format audio.

W przypadku urządzenia, które ma deskryptor interfejsu audio zarówno wejścia, jak i wyjścia.

  • Przykład deskryptora interfejsu audio

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

Jeśli częstotliwości próbkowania wejścia i wyjścia są różne, urządzenie musi obsługiwać odtwarzanie i nagrywanie z różnymi częstotliwościami próbkowania w tym samym czasie. W przeciwnym razie urządzenie musi odzwierciedlać tę samą wartość w polu AudioStreaming Interface Descriptor -> tSamFreq.

  • Przykład częstotliwości próbkowania wyjścia 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               Data
    
  • Przykład częstotliwości próbkowania wejścia audio USB 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
    

Kody HID

  • W przypadku każdego zdarzenia HID może ono przesyłać tylko jedno zdarzenie naraz.
  • Po naciśnięciu przycisku powinien zostać odebrany prawidłowy kod zdarzenia i odpowiadający mu kod zdarzenia.
    • Na przykład zwiększ głośność. evtest może obserwować tylko 1 zdarzenie zwiększenia głośności, a kod musi być następujący:KEY_VOLUME_UP
  • Jeśli istnieje interfejs zaprojektowany do udostępniania tych funkcji, urządzenie peryferyjne USB musi obsługiwać wysyłanie lub odbieranie odpowiednich zdarzeń HID zgodnie ze specyfikacją HID USB.org.
Strona konsumencka (0x0c)
Nazwa klucza Identyfikator wykorzystania HID Typ wykorzystania
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
Strona połączeń telefonicznych (0x0b)
Nazwa klucza Identyfikator wykorzystania HID Typ wykorzystania
Przełącznik widełkowy 0x20 OOC
Dzwonek 0x9e OOC
Strona LED (0x08)
Nazwa klucza Identyfikator wykorzystania HID Typ wykorzystania
Wycisz 0x09 OOC
Poza słuchawką 0x17 OOC
Dzwonek 0x18 OOC

Wykrywanie gniazda słuchawek

Jeśli urządzenie USB nie obsługuje klasy audio USB (UAC), zawsze będzie wyświetlać węzeł wyjściowy w obszarze powiadomień ChromeOS. Jeśli jednak urządzenie USB obsługuje UAC, system będzie w stanie prawidłowo wykryć gniazdo audio 3, 5 mm po włożeniu urządzenia.

  • CrOS musi używać wykrywania obecności w przypadku gniazd 3,5 mm
    • Wstawianie musi być wykrywane za pomocą jednej z tych metod:

Ogólne wymagania dotyczące Bluetootha

Zapoznaj się z dokumentem ChromeOS Compatible - Bluetooth Specification (Zgodność z ChromeOS – specyfikacja Bluetooth).

Format dźwięku

Odtwarzanie Nagrywanie
Częstotliwość próbkowania ≥ 16 kHz ≥ 16 kHz
Format S16_LE S16_LE
  • Numer kanału i konfiguracja muszą być prawidłowe.
  • Wszystkie deklarowane przez słuchawki obsługiwane częstotliwości próbkowania muszą działać prawidłowo.
    • Odchylenie między zmierzoną a częstotliwością próbkowania musi być mniejsze lub równe 0,1% .
    • Błąd standardowy regresji liniowej zmierzonego współczynnika musi być <30.
  • Zestaw słuchawkowy musi obsługiwać odtwarzanie lub nagrywanie przy różnych częstotliwościach próbkowania, które deklaruje.

    Możesz na przykład odtwarzać dźwięk poniżej 44, 1 kHz i jednocześnie nagrywać głos poniżej 48 kHz.

    • W przeciwnym razie ChromeOS musi dodać specjalny plik konfiguracyjny, aby zapobiec temu po stronie systemu.

Jakość dźwięku

Ścieżka przechwytywania – wyciszenie

  • Jeśli istnieje interfejs umożliwiający wyciszenie urządzenia audio, musi on:
    • Zachowaj stan wyciszenia w sposób, na który nie mają wpływu:
      • otwieranie i zamykanie urządzenia;
      • przełączenie na inne urządzenie wejściowe;
  • Jeśli użytkownik naciśnie przycisk wyciszania na słuchawkach lub urządzeniu z ChromeOS, stan wyciszenia musi się zmienić.
  • Jeśli stan wyciszenia się zmieni, wskaźnik stanu wyciszenia (np. dioda LED) na słuchawkach musi się zmienić.

Opóźnienie dźwięku

Czas oczekiwania

  • Opóźnienie wyjściowe
    • Odtwarzanie dźwięku musi się rozpocząć w ciągu 500 ms od działania użytkownika, które inicjuje odtwarzanie.
      • Może poprosić o zwolnienie z tego wymogu, jeśli producent OEM urządzenia udowodni, że w przypadku niespełnienia tego wymogu nie występuje echo.

Synchronizacja A/V

  • Odtwarzanie dźwięku powinno być zsynchronizowane z odtwarzaniem filmu. Odtwarzanie dźwięku może wyprzedzać obraz wideo o ≤25 ms lub być opóźnione o ≤95 ms.

Historia zmian

Data Wersja Uwagi
2024-09-06 1.3 Specyfikacja zgodna z ChromeOS. Pierwsza publikacja witryny partnera.
2022-09-14 1,2 Zaktualizowano do wersji 1.2.
2022-08-19 1.1 Zaktualizowano do wersji 1.1.
2022-08-18 1,0 Utworzono powiązaną specyfikację WWCB.