Audiowechsel

Da die Nutzer immer häufiger mehrere Audioquellen für ihre Arbeit verwenden, bei alltäglichen Aufgaben wird immer öfter nach einer einfacheren Lösung für die Verwaltung des Headsets gesucht. geräteübergreifend nutzen. Beim Audio-Wechsel werden die Headset-Verbindungen nahtlos umgestellt zwischen Geräten basierend auf Nutzeraktivitäten (z.B. dem Start eines Films) und priorisierten Ereignisse (z. B. eingehende Anrufe)

UX-Prinzipien

  1. Der Verbindungswechsel sollte schnell sein und sich an der Aktion des Nutzers orientieren.
  2. Der Verbindungswechsel sollte für Nutzer transparent sein, wenn der Wechsel unerwünscht ist.
  3. Beim Wechsel sollte der Datenschutz für Nutzer gewahrt bleiben.

Rollen

Audiowechsel-Seeker: Der Seeker ist ein Audioquellengerät, z. B. ein Smartphone oder Tablet) und suchen Sie nach einem Headset in der Nähe, mit dem Sie sich gegebenenfalls verbinden können.

Audiowechselanbieter: Der Anbieter ist normalerweise ein Headset, das für seine Anwesenheits- und Verbindungsstatus, sodass Nutzer Entscheidungen zum Wechsel treffen können.

Übersicht der Anforderungen

Für einen intelligenten Wechsel müssen Dienstleister die folgenden Anforderungen erfüllen:

Name Beschreibung Voraussetzungen Obligatorisch?
Seitenscan So akzeptieren Sie eine neue Verbindungsanfrage von einem anderen Seeker, wenn bereits eine Verbindung besteht.
Für Single-Point-Anbieter:
  • Das ursprüngliche Quellgerät pausiert die Audiowiedergabe automatisch, wenn die Verbindung zum Anbieter getrennt wird.
Für Multipoint-Anbieter:
  • Wenn noch eine Verbindung verfügbar ist, wird die Verbindungsanfrage akzeptiert.
  • Wenn die Verbindungsbandbreite voll ist, trennen Sie die am wenigsten verwendete Verbindung, z.B. wenn lange kein Audioereignis auftritt, und akzeptieren Sie die neue eingehende Anfrage.
Zur Leistungsverbesserung ist ein Seitenscanmodus mit niedriger Latenz (das Scanintervall sollte nicht größer als 640 ms sein) erforderlich.
Um einen Kompromiss zwischen Akkulaufzeit und Wechselleistung zu finden, kann der Anbieter in den meisten Fällen einen Standardmodus für Seitenscans festlegen. Der Energiesparmodus darf nicht größer als 1.280 ms sein. Der Modus für geringe Latenzzeit muss jedoch in folgenden Situationen verwendet werden:
  • Die ersten 30 Sekunden nach dem Einschalten
  • Erste 30 Sekunden ohne Verbindung oder Paging
  • Die ersten 30 Sekunden des Geräts sind inaktiv
Obligatorisch
Verbindungsverlauf Wenn du zur vorherigen Verbindung zurückwechseln und die Wiedergabe gegebenenfalls fortsetzen möchtest.
Das Zurückkehren wird durch Kommunikation über Message Stream APIs ausgelöst.
Das Ereignis zum Pausieren des Audios sollte im Datensatz enthalten sein, damit die Wiedergabe fortgesetzt werden kann.
Pflegen Sie den Verbindungsverlauf und implementieren Sie Message Stream APIs. Obligatorisch
Verbindungsstatus Für Seeler, die die Verbindung zu einem anderen Anbieter beurteilen.Der Verbindungsstatus umfasst Folgendes:
  • Verbindungsstatus
  • Audiotyp der aktiven Verbindung
  • Kontoinformationen der aktiven Verbindung
  • Verbundene Geräte
Geben Sie den Verbindungsstatus in BLE-Advertising und Message Stream an. Obligatorisch
Änderung der Laufzeitfunktionen Der Audio-Wechsel kann durch ein Upgrade der Firmware beim Provider aktiviert werden. Daher müssen die Funktionen zur Laufzeit zwischen Seeker und Provider synchronisiert werden. Implementieren Sie Message Stream APIs, um auf Laufzeitfunktionen zuzugreifen. Obligatorisch
Konfigurierbare Wechselregeln Der Seeker kann die Priorität zwischen bestehenden aktiven Audiostreams und neuen Audiostreaminganfragen über die Einstellungen der Nutzereinstellungen konfigurieren.
Der Audiowechsel-Seeker kann beispielsweise UI-Einstellungen bereitstellen, über die Nutzer den automatischen Wechsel zwischen Medienstreaming und Anrufen aktivieren oder deaktivieren können.
Der „Audio-Wechsel“-Seeker richtet die Wechselregel per Nachrichtenstream ein und ruft sie auf.
Nur Multipoint-Anbieter.
Implementiere Message Stream APIs, um den Wechsel zwischen verbundenen Geräten zu konfigurieren.
Optional
Wechsel zwischen aktiven Geräten Der Seeker soll den Audiowechsel zwischen verbundenen Geräten simulieren.
Auf der Seeker-Seite gibt es möglicherweise eine Benutzeroberfläche, über die Nutzer ganz einfach zwischen verbundenen Geräten wechseln können.
Nur Multipoint-Anbieter.
Implementiere Message Stream APIs für Audio Switch Seeker, um die aktive Audioquelle zwischen den verbundenen Geräten zu ermitteln.
Obligatorisch
Benachrichtigung zum Mehrpunktwechsel Der Sucher kann die Benachrichtigung zum Wechsel anzeigen. Nur Multipoint-Anbieter.
Implementiere Message Stream APIs, um verbundene Audio-Switches zu benachrichtigen, wenn ein Multipoint-Wechsel stattfindet.
Obligatorisch

Werbenutzlast

Der Anbieter muss seinen aktuellen Verbindungsstatus in der Anzeige angeben, basierend auf den Kontodaten für die Funktion „Schnelles Pairing“, Werbung: Wenn nicht sichtbar:

Die Version von Tabelle 4.2 ist 0x1.

Feld „Verbindungsstatus“

Oktett Datentyp Beschreibung Wert Obligatorisch?
0 uint8 Feldlänge und Typ
0bLLLLTTTT
  • L = Länge des Verbindungsstatus in Byte
  • T = Typ
0bLLLL0101
  • Länge: variiert
  • type = 0b0101
Obligatorisch
1 uint8 Verbindungsstatus
0bHAFRSSSS
  • H = On-Head-Erkennung
  • A = Verbindungsverfügbarkeit
  • F = Fokusmodus
  • R = automatisch neu verbunden
  • S = Verbindungsstatus
0bHAFRSSSS
Obligatorisch
2 uint8 Benutzerdefinierte Daten
Derzeit enthält es nur Inhaltstypen, die dazu dienen, die Nutzung des aktuellen Audiostreamings zu beschreiben. Der Seeker sendet sie an den Anbieter.
Der Wert wird vom Seeker des aktuell aktiven Streamings per Nachrichtenstream an den Anbieter gesendet. 0, wenn das aktuell aktive Streaming nicht vom Seeker stammt. Obligatorisch
3 – var Bitmap der verbundenen Geräte
Eine Bitmap, die zeigt, welche Geräte derzeit mit dem Anbieter verbunden sind. Alle verbundenen Geräte werden der Reihe nach angeordnet, wobei ein Bit für ein verbundenes Gerät verwendet wird. Die Länge hängt von der Anzahl der verbundenen Geräte des Anbieters ab.
Das zugeordnete Bit wird auf 1 gesetzt, wenn das Gerät derzeit mit dem Anbieter verbunden ist, andernfalls auf 0.
Weitere Informationen findest du unter Bitmap für verbundene Geräte.
Optional

Tabelle 4.1:Rohdaten im Feld „Verbindungsstatus“

Verbindungs-Flags
  • 0bH = On-Head-Erkennung

    • 1, jetzt auf dem Kopf
    • 0, andernfalls nicht auf dem Kopf oder es gibt keinen OHD-Sensor
  • 0bA = Verbindungsverfügbarkeit

    • 1, es ist eine Verbindung verfügbar
    • 0, andernfalls
  • 0bF = Fokusmodus

    • 1. Im fokussierten Modus ist der Verbindungswechsel für Medien jetzt nicht zulässig d.h. kein Wechsel von A2DP zu A2DP
    • 0, andernfalls
  • 0bR = automatisch neu verbunden

    • 1, wenn die aktuelle Verbindung vom Provider automatisch wiederhergestellt wird, d. h. nicht durch Nutzer verbunden (bei Multipoint-Konnektivität, wenn eine der automatisch wiederhergestellt wird, sollte diese Einstellung auf 1) gesetzt werden.
    • 0, andernfalls
Verbindungsstatus
  • 0 x 0: keine Verbindung
  • 0 x 1: Paging
  • 0 x 2: verbunden, aber keine Datenübertragung
  • 0x3: Nicht-Audio-Datenübertragung (nur wenn umschaltbar; falls nicht, mit 0xF)
  • 0x4: A2DP-Streaming, AVRCP nicht zutreffend
  • 0 x 5: A2DP-Streaming und AVRCP-Wiedergabe
  • 0x6: HFP-Streaming (Telefon-/VoIP-Anruf), einschließlich Inband- und Nicht-Inband-Klingelton
  • 0x7: LE Audio – Medienstreaming ohne Steuerung
  • 0x8: LE Audio – Medienstreaming mit Steuerung
  • 0:9: LE Audio – Anrufstreaming
  • 0xA: LE Audio – Übertragung
  • 0xF: Verbindungswechsel vorübergehend deaktivieren (z.B. Firmware-Update)
LE Audio-Kontexttyp und Verbindungsstatus

Empfiehl dem LE Audio Provider, alle angegebenen Kontexttypen zu verarbeiten. in Assigned Numbers 6.12.3 (es sei denn, der Anbieter unterstützt einen bestimmten Kontexttyp ausdrücklich nicht) und die Karte den Kontexttyp auf den Verbindungsstatus wie unten dargestellt.

  • Dialogorientiert: 0 x 9
  • Medien: 0 x 8
  • Spiel: 0 x 7
  • Anleitung: 0 x 7
  • Sprachassistenten: 0x9
  • Live: 0x9
  • Soundeffekte: 0x2
  • Benachrichtigungen: 0 x 2
  • Klingelton: 0x9
  • Benachrichtigungen: 0 x 7
  • Notfallalarm: 0x9

Für den Kontexttyp „Gemischtes LE Audio“, z. B. das Abspielen von Medien während verwendet der Anbieter den Verbindungsstatus mit der höchsten Priorität, d.h. 0 x 9 (Aufruf) für das obige Szenario anstelle von 0 x 8 (Medien).

Bitmap der verbundenen Geräte

Um einen unerwünschten Verbindungswechsel zu vermeiden, muss der Seeker möglicherweise wissen, Gerät(en), mit dem/denen das Headset momentan verbunden ist. Wenn das Headset zum Beispiel mit dem Telefon verbunden ist, möchte der Nutzer nicht durch die die Verbindung wechselt, wenn eines der Familienmitglieder YouTube Tablet.

Beachten Sie, dass diese Bitmap anonym ist. Der Seeker kann nicht wissen, Geräte mit dem Anbieter verbunden sind. Beispiel: 5 gebundene Geräte:

  • 0: Laptop (0bx0000000)
  • 1: phoneA (0b0x000000)
  • 2: phoneB (0b00x00000)
  • 3: Tablet (0b000x0000)
  • 4: Fernsehen (0b0000x000)

Wenn es sich bei den derzeit verbundenen Geräten um einen Laptop und ein Tablet handelt, Bitmap ist 0b10010000. Die Bestelländerung ist akzeptabel, wenn dies unvermeidbar ist, z.B. wenn Nutzer das Headset auf die Werkseinstellungen zurücksetzen oder wenn die Anzahl der verbundenen Geräte die Obergrenze erreicht.

Zufällig auflösbare Anzeige

Um Tracking zu vermeiden und die Privatsphäre der Nutzer zu respektieren, sollte der Dienstleister rotieren und Verschlüsseln Sie das Feld mithilfe des Kontoschlüssels mit AES-CTR:

 encrypted_connection_status_field = connection_status_raw_data ^ AES(Key, IV)

Bitte wo?

  1. Der Schlüssel wird vom Kontoschlüssel in Verwendung abgeleitet, der wird im nächsten Abschnitt definiert.

    • Der Schlüssel wird von der HKDF-Funktion, IETF RFC 5869, unter Verwendung des SHA-256-Algorithmus generiert Hash-Funktion verwendet werden.

        Key = HKDF(account_key, NULL, UTF8("SASS-RRD-KEY"),16)
      
    • Der Anbieter muss hier den ursprünglichen Kontoschlüssel verwenden, d.h. das erste Byte des Schlüssels ist 0x04 und nicht im Verwendungsmuster enthalten.

  2. IV (erster Vektor) ist das 2-Byte-Salz der Kontoschlüsseldaten mit Null. Padding, d.h. IV steht für concat(Salt, 14-Byte-NULL-Werte).

  3. Die Rohdaten für den Verbindungsstatus sind in Tabelle 4.1 definiert, wenn der ändert sich der Verbindungsstatus, sollten Salt und RPA neu generiert werden. innerhalb desselben Werbezeitraums.

Dadurch wird das Feld für den Status der verschlüsselten Verbindung gleichzeitig mit der Kontoschlüsseldaten werden rotiert.

Die BLE-Anzeige ist so aufgebaut:

Oktett Datentyp Beschreibung Wert Obligatorisch?
0 uint8 Version und Flags 0x10 Obligatorisch
1–t Kontoschlüsseldaten variiert Obligatorisch
t+1s Akkudaten variiert Optional
s+1var Zufällig auflösbare Daten variiert Obligatorisch, wenn die Liste der Kontoschlüssel nicht leer ist,
andernfalls ausgeschlossen.

Tabelle 4.2:BLE-Advertising mit zufällig auflösbaren Daten

Zufällige auflösbare Daten enthalten:

Oktett Datentyp Beschreibung Wert Obligatorisch?
0 uint8 Feldlänge und Typ
0bLLLLTTTT
  • L = Länge der verschlüsselten Daten
  • T = Typ
0bLLLL0110
  • Länge: variiert
  • type = 0b0110
Obligatorisch
1 – var Verschlüsselte Daten variiert Obligatorisch

Tabelle 4.2.1:Zufällig auflösbare Daten

Wenn beispielsweise die zufällig auflösbaren Daten eine verschlüsselte Verbindung enthalten, Statusfeld enthält, ist das entschlüsselte Ergebnis die Feld für den Verbindungsstatus.

Um Manipulationen zu verhindern, sollten die Kontoschlüsseldaten oben leicht geändert werden wenn die Random Resolvable Data in der Anzeige enthalten ist. In der Regel geschieht Folgendes: der Kontoschlüsselfilter erstellt, wird ein Wert V erzeugt, indem das Konto mit einem Salt versehen. Wenn zufällige auflösbare Daten ebenfalls sollte der Wert V wie folgt konstruiert sein:

 V = concat(account_key, salt, random_resolvable_data)

Wenn sowohl Akkudaten als auch zufällig auflösbare Daten beworben werden, sollte V so aufgebaut sein:

 V = concat(account_key, salt, battery_data, random_resolvable_data)

Verwendeter Kontoschlüssel

Der Verbindungswechsel erfolgt kontobasiert, daher sollte der Anbieter die Kontoinformationen der aktuellen Verbindung im BLE-Advertising. Wenn die das aktuell verbundene Gerät einen Audio-Switcher ist, sollte der Anbieter um den mit diesem Seeker verknüpften Kontoschlüssel abzurufen und diesen Kontoschlüssel zu verwenden, und verschlüsseln Sie das Feld mit dem Verbindungsstatus. Wenn es sich bei der verbundenen Audioquelle nicht um Audio handelt Switch Seeker muss der Anbieter den zuletzt verwendeten Kontoschlüssel verwenden.

Vor der Berechnung des Filters für den Kontoschlüssel sollte der Anbieter die erste Byte der Kontoschlüssel so, dass eines der folgenden Verwendungsmuster enthalten ist:

  1. 0b00000100
    Dieser Kontoschlüssel wird nicht verwendet.
    Dies ist die Standardeinstellung (siehe Kontoschlüssel).
  2. 0b00000101
    Dieser Kontoschlüssel ist der zuletzt verwendete Kontoschlüssel.
    Das Feld für den Verbindungsstatus wird mit diesem Kontoschlüssel verschlüsselt. Es gibt keine Kontoschlüsselinformationen des aktuellen Verbindungsstatus anzeigt, verbundene Geräte oder das verbundene Gerät kein Audio-Wechsel-Seeker ist.
  3. 0b00000110
    Dieser Kontoschlüssel ist der verwendete Kontoschlüssel.
    Das Feld für den Verbindungsstatus wird mit diesem Kontoschlüssel verschlüsselt und der aktuelle verbundenes Gerät ist mit diesem Kontoschlüssel verknüpft.

Schema für Audio-Wechsel-Nutzlast

Die folgende Abbildung zeigt das Schema für die Nutzlast des Audio-Wechsels.

Nachrichten

Wenn eine Verbindung besteht, können der Sucher und Anbieter den Nachrichtenstream verwenden, um Audio zu synchronisieren. Wechselfunktion, einen Verbindungswechsel auslösen, den Wechsel einstellen Benachrichtigungen über den Verbindungsstatus usw. Wir erstellen eine Nachrichtengruppe spezielle Nachrichtencodes für den Audio-Wechsel, wie unten beschrieben.

Name der Nachrichtengruppe Wert
Die „Audio-Wechsel“-Funktion 0x07

In den folgenden Abschnitten finden Sie weitere Informationen zu den einzelnen Nachrichtencodes.

Name des Nachrichtencodes Wert Nur Multipoint Absender Teilnehmer Verschlüsseln MAC BESTÄTIGEN
Audio-Wechsel möglich 0x10 N Beides Beide, über den Code 0x11 N Nein N
Funktion zum Audio-Wechsel benachrichtigen 0x11 N Beides Beides N Ja Ja
Multipoint-Zustand festlegen 0x12 Ja Suchender Anbieter N Ja Ja
Einstellungen für den Wechsel festlegen 0x20 Ja Suchender Anbieter N Ja Ja
Einstellungen für den Wechsel abrufen 0x21 Ja Suchender Anbieter, über den Code 0x22 N Nein N
Benachrichtigung über Wechseleinstellung 0x22 Ja Anbieter Suchender N Nein N
Aktive Audioquelle zum verbundenen Gerät wechseln 0x30 Ja Suchender Anbieter N Ja Ja
Zurückwechseln 0x31 N Suchender Anbieter N Ja Ja
Ereigniswechsel bei mehreren Punkten benachrichtigen 0x32 Ja Anbieter Suchender N Nein N
Verbindungsstatus abrufen 0x33 Ja Suchender Anbieter, über den Code 0x34 N Nein N
Verbindungsstatus benachrichtigen 0x34 Ja Anbieter Suchender Ja Nein N
Bei Audiowechsel-Verbindung benachrichtigen 0x40 N Suchender Anbieter N Ja Ja
Nutzungskontoschlüssel angeben 0x41 N Suchender Anbieter N Ja Ja
Benutzerdefinierte Daten senden 0x42 N Suchender Anbieter N Ja Ja
Verbindungsziel zum Trennen festlegen 0x43 Ja Suchender Anbieter N Ja Ja

Tabelle 4.3:Nachrichten zum Audiowechsel

MAC-Adresse von Audio-Wechsel-Nachrichten

Um die Nachrichtenauthentifizierung zu ermöglichen, enthalten alle Audio-Wechsel-Nachrichten zusätzliche Für Daten, die vom Seeker an den Anbieter gesendet werden, ist ein Nachrichtenauthentifizierungscode erforderlich. Wann? eine Nachricht mit MAC eingeht, sollte diese bestätigt werden, damit der Seeker weiß, ob der Provider auf die Nachricht reagiert hat oder nicht.

Wenn die Nachrichtenauthentifizierung erfolgreich ist, sendet der Anbieter eine Bestätigung für die Nachricht:

Oktett Datentyp Beschreibung Wert
0 uint8 Bestätigung 0xFF
1 uint8 BESTÄTIGEN 0x01
2–3 uint16 Zusätzliche Datenlänge variiert
4 uint8 Die „Audio-Wechsel“-Funktion 0x07
5 uint8 Code der Nachricht zum Audiowechsel variiert
6–Sek. Zusätzliche Daten variiert

Wenn sie fehlschlägt, hat der Dienstleister die NAK für die Nachricht zu senden:

Oktett Datentyp Beschreibung Wert
0 uint8 Bestätigung 0xFF
1 uint8 Nackt 0x02
2–3 uint16 Zusätzliche Datenlänge 0x0003
4 uint8 Fehlerursache variiert
5 uint8 Die „Audio-Wechsel“-Funktion 0x07
6 uint8 Code der Nachricht zum Audiowechsel variiert

Wenn der Anbieter der Absender ist, ist keine MAC-Adresse erforderlich.

Funktion „Audio-Wechsel“ nutzen

Sowohl der Audio-Wechselanbieter als auch der Seeker können prüfen, ob das verbundene schnelle Pairing Der Sucher/Anbieter unterstützt den Audio-Wechsel oder nicht. Verwenden Sie dazu die folgende Nachricht:

Oktett Datentyp Beschreibung Wert
0 uint8 Die „Audio-Wechsel“-Funktion 0x07
1 uint8 Funktion „Audio-Wechsel“ nutzen 0x10
2–3 uint16 Zusätzliche Datenlänge 0

Tabelle 4.3.1.0:Funktion zum Audio-Wechsel abrufen

Funktion zum Audio-Wechsel benachrichtigen

Bei Erhalt der Nachricht Funktion „Audio-Wechsel“ Code eingeben, antwortet der Seeker/Anbieter für den Audiowechsel mit einer der folgenden Anfragen: Flags:

Oktett Datentyp Beschreibung Wert
0 uint8 Die „Audio-Wechsel“-Funktion 0x07
1 uint8 Funktion zum Audio-Wechsel benachrichtigen 0x11
2–3 uint16 Zusätzliche Datenlänge 20, wenn dies vom Seeker gesendet wird,
4, wenn dies vom Anbieter gesendet wird
4–5 uint16 Versionscode für Audiowechsel Ein Wert ungleich null bedeutet, dass der Audio-Wechsel unterstützt wird. Die aktuelle Version (mit dem Code für die Sicherheitserweiterung) ist 0x0102.
0x0000 oder keine Antwort innerhalb von 1 Sekunde bedeutet, dass der Audio-Wechsel auf diesem Gerät nicht unterstützt wird
6–7 flags Audio-Switch-Funktions-Flags des Anbieters
Wenn dies vom Seeker gesendet wird, sollten diese beiden Byte ignoriert werden.
variiert
Siehe Flags zur Audio-Wechselfunktion
8–15 Nachrichten-Nonce
Nur erforderlich, wenn sie vom Seeker gesendet wird
variiert
16–23 Authentifizierungscode der Nachricht
Nur erforderlich, wenn die Nachricht vom Seeker gesendet wird
variiert

Tabelle 4.3.1.1:Benachrichtigung über die Fähigkeit des Audio-Wechsels

Funktions-Flags zum Audio-Wechsel
  1. Bit 0 (Oktett 6, MSB): Audio-Wechselstatus

    • 1, wenn der Audio-Wechselstatus aktiviert ist
    • 0, andernfalls
  2. Bit 1: Mehrpunktkonfigurierbarkeit

    • 1, wenn das Gerät Multipoint unterstützt und zwischen Ein- und Aus
    • 0, andernfalls (Multipoint wird nicht unterstützt oder Multipoint ist immer aktiviert)
  3. Bit 2: Multipoint-Aktueller Status

    • 1, wenn die Multipoint-Konnektivität aktiviert ist
    • 0, andernfalls
  4. Bit 3: On-Head-Erkennung

    • 1, wenn dieses Gerät die On-Head-Erkennung unterstützt (auch bei jetzt deaktiviert)
    • 0, andernfalls
  5. Bit 4: Aktueller Status der On-Head-Erkennung

    • 1, wenn die On-Head-Erkennung aktiviert ist
    • 0, andernfalls (unterstützt keine On-Head-Erkennung oder ist deaktiviert)
  6. Alle anderen Bits sind reserviert, der Standardwert ist 0.

Multipoint-Status festlegen

Wenn Nutzer die Option „Audio-Wechsel“ verwenden, bieten wir Nutzern unter Umständen die Möglichkeit, dies zu aktivieren oder zu deaktivieren. Multipoint-Funktionen nutzen. Der Seeker legt den Multipoint-Status auf den Wert Anbieter, der die folgende Nachricht verwendet:

Oktett Datentyp Beschreibung Wert
0 uint8 Die „Audio-Wechsel“-Funktion 0x07
1 uint8 Multipoint-Status festlegen 0x12
2–3 uint16 Zusätzliche Datenlänge 17
4 uint8 Multipoint-Status 0: Multipoint ausschalten
1: Multipoint einschalten
5–12 Nachrichten-Nonce variiert
13–20 Authentifizierungscode der Nachricht variiert

Tabelle 4.3.1.2:Multipoint-Status festlegen

Wechseleinstellung festlegen

Nutzer, die die Funktion „Audio-Wechsel“ nutzen möchten, können die Einstellung „Multipoint“ ändern und festlegen mit der folgenden Nachricht an den Anbieter senden:

Oktett Datentyp Beschreibung Wert
0 uint8 Die „Audio-Wechsel“-Funktion 0x07
1 uint8 Wechseleinstellung festlegen 0x20
2–3 uint16 Zusätzliche Datenlänge 18
4 flags Wechseleinstellung variiert
Siehe Einstellungs-Flag für Mehrpunktwechsel
5 Erweiterte Schalteinstellungen
Dieses Byte ist reserviert, der Standardwert ist 0
variiert
6–13 Nachrichten-Nonce variiert
14–21 Authentifizierungscode der Nachricht variiert

Tabelle 4.3.2.0:Einstellungen für den Wechsel festlegen

Einstellungs-Flag für Mehrpunktwechsel
  • Bit 0 (MSB): A2DP vs. A2DP (Standard 0)
  • Bit 1: HFP vs. HFP (Standardeinstellung 0)
  • Bit 2: A2DP vs. HFP (Standardeinstellung 0)
  • Bit 3: HFP und A2DP (Standard 1)
  • Bit 4 – 7: reserviert
  • Oben steht „neue Profilanforderung“. im Vergleich zum aktuellen aktiven Profil <ph type="x-smartling-placeholder">
      </ph>
    • 0, wenn nicht gewechselt wird
    • 1 für den Wechsel

Einstellungen für Wechsel abrufen

Nutzer, die einen Audiowechsel bevorzugen, können die Wechseleinstellung des Mehrpunktmodus über die Anbieter, der die folgende Nachricht verwendet:

Oktett Datentyp Beschreibung Wert
0 uint8 Die „Audio-Wechsel“-Funktion 0x07
1 uint8 Wechselkonfiguration abrufen 0x21
2–3 uint16 Zusätzliche Datenlänge 0

Tabelle 4.3.2.1:Einstellungen für den Wechsel abrufen

Benachrichtigung über Wechseleinstellung

Oktett Datentyp Beschreibung Wert
0 uint8 Die „Audio-Wechsel“-Funktion 0x07
1 uint8 Benachrichtigung über Wechseleinstellung 0x22
2–3 uint16 Zusätzliche Datenlänge 2
4 flags Flags wechseln variiert
Siehe Einstellungs-Flag für Mehrpunktwechsel
5 Erweiterte Schalteinstellungen
Dieses Byte ist reserviert, der Standardwert sollte 0 sein
variiert

Tabelle 4.3.2.2:Benachrichtigung über Wechseleinstellung

Aktive Audioquelle wechseln (auf verbundenes Gerät)

Nutzer, die einen Audiowechsel bevorzugen, können beim Multipoint-Anbieter eine Umstellung der aktiven Audioquelle zwischen verbundenen Geräten, indem du die folgende Nachricht verwendest:

Oktett Datentyp Beschreibung Wert
0 uint8 Die „Audio-Wechsel“-Funktion 0x07
1 uint8 Aktive Audioquelle wechseln (auf verbundenes Gerät) 0x30
2–3 uint16 Zusätzliche Datenlänge 17
4 flags Ereignis-Flags für aktive Audioquelle wechseln variiert
Siehe Ereignis zum Umschalten der aktiven Audioquelle
5–12 Nachrichten-Nonce variiert
13–20 Authentifizierungscode der Nachricht variiert

Tabelle 4.3.3.0:Aktive Audioquelle wechseln (an verbundenes Gerät)

Ereignis zum Wechseln der aktiven Audioquelle
  • Bit 0 (MSB): 1 Schalter zu diesem Gerät, 0 Schalter zu zweitem angeschlossenem Gerät
  • Bit 1: 1 setzt die Wiedergabe auf dem Wechsel zum Gerät nach dem Wechsel fort, sonst 0. Wenn das Spiel fortgesetzt wird, sendet der Anbieter eine PLAY-Benachrichtigung an den Seeker. über das AVRCP-Profil. Wenn der vorherige Status (vor dem Abschalten) nicht PLAY ist, sollte der Provider dieses Flag ignorieren.
  • Bit 2: 1 SCO bei ausgeschaltetem Gerät abgelehnt, andernfalls 0
  • Bit 3: 1 trennt die Bluetooth-Verbindung auf dem Gerät, andernfalls 0.
  • Bit 4 – 7: reserviert.

Nutzer, die die Funktion „Audio-Wechsel“ nutzen möchten, wissen ihren Status möglicherweise nicht immer richtig. damit der Anbieter einen „Wechsel zu diesem Gerät“ erhält wenn der Seeker bereits das aktive Gerät ist. Damit auf dem Seeker die richtige Benutzeroberfläche angezeigt wird, Der Anbieter kann ein NAK mit dem Fehlergrund „0x4 – Redundante Geräteaktion“ senden.

Für einen LE Audio-Anbieter mit mehr als einem festgelegten Mitglied sollte der Provider folgende Schritte ausführen: trennst du alle Mitglieder vom Seeker. Andernfalls wird der Bluetooth-Stack des Der Sucher würde sich wieder mit dem Anbieter verbinden.

Zurück wechseln (Gerät getrennt),

Wenn der Verbindungswechsel ungewollt ist, können Nutzer ihn rückgängig machen. ist es sinnvoll, die Audioverbindung wiederherzustellen, um Störungen. Der Seeker verwendet die folgende Nachricht, um einen Wechsel auszulösen:

Oktett Datentyp Beschreibung Wert
0 uint8 Die „Audio-Wechsel“-Funktion 0x07
1 uint8 Zurück wechseln (Gerät getrennt), 0x31
2–3 uint16 Zusätzliche Datenlänge 17
4 uint8 Termin zurückwechseln variiert
0x01: Zurückwechseln
0x02: Zurückwechseln und Wiedergabe fortsetzen
5–12 Nachrichten-Nonce variiert
13–20 Authentifizierungscode der Nachricht variiert

Tabelle 4.3.3.1:Zurückwechseln (bei getrenntem Gerät)

Bei Multipoint-Anbietern kann ein Provider für einen Verbindungswechsel die Verbindung mit einem Audioquelle herstellen und die Audiositzung auf dem anderen Gerät anhalten Audioquelle. Beispiel: Das Multipoint-Headset ist mit einem Tablet und ein drittes unterstütztes Audio-Wechselgerät. Der Nutzer sieht sich ein Video an auf auf dem Tablet, wenn ein Anruf auf dem Smartphone eingeht. Das Smartphone löst aus einen Verbindungsschalter am Headset, wodurch die Verbindung um eine Verbindung zum Smartphone herzustellen. Gleichzeitig wird die Medienwiedergabe Sitzung auf dem Tablet, um den Klingelton vom Telefon abzurufen. Wenn der Nutzer ablehnt Sie während des Anrufs an das Headset zurückwechseln und die Wiedergabe fortsetzen. Nach Erhalt dieser Anfrage muss sich das Headset wieder mit dem dritten Gerät verbinden. setze die Wiedergabe des pausierten Videos auf dem Tablet fort.

Ereignis zum Wechsel mehrerer Punkte benachrichtigen

Um Nutzer auf einen Multipoint-Wechsel aufmerksam zu machen, Der Sucher zeigt Nutzern möglicherweise eine Benachrichtigung an. Der Provider sollte die Audio-Wechsel-Interessierte bezüglich des Wechsels.

Oktett Datentyp Beschreibung Wert
0 uint8 Die „Audio-Wechsel“-Funktion 0x07
1 uint8 Ereignis zum Mehrpunktwechsel benachrichtigen
Der Anbieter sollte es bei jedem Wechsel senden, einschließlich „Sehbehinderer“ zu „Audio-Wechsel-Seeker“ auf Nicht-Audio-Wechsel-Seeker, Nicht-Audio-Wechsel-Seeker zu Audio-Wechsel-Seeker und Audio-Wechsel-Seeker to Audio-Interessierte
0x32
2–3 uint16 Zusätzliche Datenlänge variiert
4 uint8 Grund für den Wechsel
Dieser Wert sollte auf Grundlage des Verbindungsstatus bestimmt werden. Für LE Audio-Anwendungsfälle kann es hilfreich sein, sich die Zuordnung zwischen LE Audio-Kontexttyp und Verbindungsstatus anzusehen. Der Verbindungsstatus für Sprachassistenten ist beispielsweise 0x9(LE Audio – Anrufstreaming). Der Grund für den Wechsel eines von Sprachassistenten initiierten Wechsels sollte also 0x02 lauten.
variiert
0x00: Nicht spezifiziert
0x01: Medien (z.B. A2DP-Streaming, LEA-Media-Streaming)
0x02: Anruf (z.B. HFP-Streaming, LEA-Anrufstreaming)
5 uint8 Zielgerät variiert
0 x 01: dieses Gerät
0 x 02: anderes verbundenes Gerät
6–n utf8 Name des Zielgeräts
, wenn das Zielgerät „Audio Switch Seeker“ ist. Dazu wird der Name verwendet, an den der Seeker gesendet hat. Andernfalls wird der Name des Bluetooth-Geräts verwendet, falls nicht zutreffend, mit den letzten 2 Byte seiner Adresse.
variiert

Tabelle 4.3.3.2:Benachrichtigung über Multipoint-Wechsel-Ereignis

Verbindungsstatus abrufen

Der Seeker kann den aktuellen Verbindungsstatus vom Anbieter abrufen:

Oktett Datentyp Beschreibung Wert
0 uint8 Die „Audio-Wechsel“-Funktion 0x07
1 uint8 Verbindungsstatus abrufen 0x33
2–3 uint16 Zusätzliche Datenlänge 0

Tabelle 4.3.3.3:Verbindungsstatus abrufen

Nach Erhalt dieser Nachricht hat der Anbieter den Nachrichtencode 0x34, benachrichtigt den Verbindungsstatus.

Verbindungsstatus benachrichtigen

Wie in der BLE-Werbenutzlast definiert, Multipoint-Anbieter, wenn sich der Verbindungsstatus ändert, mit Ausnahme von sollte der Provider auch die verbundenen Seekers benachrichtigen, den gleichen Kontoschlüssel für die Änderung verwenden. Wenn der Anbieter verbunden ist mit einem Sucher mit Audio-Wechsel und einem Sucher ohne Audio-Wechsel, wenn der Switch Seeker aktiv ist, sollte der Provider auch das verbundene Audiosystem Wechseln Sie mit dem Kontoschlüssel des Seekers zum Verbindungsstatus.

Oktett Datentyp Beschreibung Wert
0 uint8 Die „Audio-Wechsel“-Funktion 0x07
1 uint8 Verbindungsstatus benachrichtigen 0x34
2–3 uint16 Zusätzliche Datenlänge variiert
4 uint8 Aktives Geräte-Flag variiert
0x00: Dieser Seeker ist passiv und das aktive Gerät verwendet denselben Kontoschlüssel
0x01: Dieser Seeker ist das aktive Gerät
0x02: Dieser Seeker ist passiv und das aktive Gerät ist kein Audio-Switch-Seeker.
5–n Status der verschlüsselten Verbindung variiert
n+1–n+8 Nachrichten-Nonce variiert

Tabelle 4.3.3.4:Benachrichtigung des Verbindungsstatus

Statusnachricht für verschlüsselte Verbindung

 encrypted_connection_status = connection_status_raw_data ^ AES(Key, IV)

Dabei gilt:

Bei Audiowechsel-Verbindung benachrichtigen

Anbieter von Audio-Wechsel müssen möglicherweise wissen, ob der Verbindungswechsel ausgelöst wird über die Funktion „Audio-Wechsel“, um verschiedene Reaktionen zu erhalten, z.B. Earcons für Audio deaktivieren wechseln. Der Seeker sendet eine Nachricht, um den Anbieter darüber zu informieren, Verbindung war eine Verbindung, die vom Audio-Wechsel initiiert wurde.

Oktett Datentyp Beschreibung Wert
0 uint8 Die „Audio-Wechsel“-Funktion 0x07
1 uint8 Bei Audiowechsel-Verbindung benachrichtigen 0x40
2–3 uint16 Zusätzliche Datenlänge 17
4 uint8 Angabe, dass die Verbindung bei Audiowechsel initiiert wurde variiert
0: Diese Verbindung wurde nicht durch den Audio-Wechsel ausgelöst
1: Dies war eine vom Audio-Wechsel initiierte Verbindung
5–12 Nachrichten-Nonce variiert
13–20 Authentifizierungscode der Nachricht variiert

Tabelle 4.3.4.0:Bei Audiowechsel-Verbindung benachrichtigen

Verwendeten Kontoschlüssel angeben

Wenn mehrere Kontoschlüssel auf dem Seeker (z.B. mehrere Nutzer) verknüpft sind mit Anbieter hat, gibt der Seeker mit der folgenden Nachricht an, welches Konto Schlüssel wird verwendet.

Oktett Datentyp Beschreibung Wert
0 uint8 Die „Audio-Wechsel“-Funktion 0x07
1 uint8 Verwendeten Kontoschlüssel angeben 0x41
2–3 uint16 Zusätzliche Datenlänge 22
4–9 utf8 String in Verwendung UTF8 („in-use“)
10–17 Nachrichten-Nonce variiert
18–25 Authentifizierungscode der Nachricht variiert

Tabelle 4.3.4.1:Verwendeten Kontoschlüssel angeben

Nach Erhalt dieser Nachricht kann der Dienstleister sehen, welcher Kontoschlüssel gerade verwendet wird indem Sie den Authentifizierungscode der Nachricht überprüfen.

Benutzerdefinierte Daten senden

Der aktive Audio-Switch Seeker kann die Informationen (z.B. Audio) Nutzung) des Audiostreams in einem benutzerdefinierten Datenbyte und senden Sie ihn mithilfe von die folgende Nachricht:

Oktett Datentyp Beschreibung Wert
0 uint8 Die „Audio-Wechsel“-Funktion 0x07
1 uint8 Benutzerdefinierte Daten senden 0x42
2–3 uint16 Zusätzliche Datenlänge 17
4 uint8 Benutzerdefinierte Daten variiert
5–12 Nachrichten-Nonce variiert
13–20 Authentifizierungscode der Nachricht variiert

Tabelle 4.3.4.2:Benutzerdefinierte Daten senden

Nach Erhalt der benutzerdefinierten Daten aktualisiert der Anbieter das Werbepaket. um die benutzerdefinierten Daten einzubeziehen. Bei einem Multipoint-Anbieter sollte außerdem der Änderung des Verbindungsstatus zu einem anderen verbundenen Seeker, der denselben Kontoschlüssel verwendet.

Verbindungsziel löschen

Wenn die bevorzugte Verbindung bei Multipoint-Headsets nicht die am längsten nicht verwendet wurde, können Audio-Wechsel-Nutzer dem Provider mitteilen, mit der folgenden Meldung entfernen:

Oktett Datentyp Beschreibung Wert
0 uint8 Die „Audio-Wechsel“-Funktion 0x07
1 uint8 Verbindungsziel löschen 0x43
2–3 uint16 Zusätzliche Datenlänge 17
4 uint8 Ziel des verbundenen Geräts, das gelöscht werden soll variiert
1: dieses Gerät
5–12 Nachrichten-Nonce variiert
13–20 Authentifizierungscode der Nachricht variiert

Tabelle 4.3.4.3:Legen Sie das Ziel für das Verbindungsabbruch fest

Referenzimplementierung

Die Referenzimplementierung finden Sie in der Nearby Embedded SDK Library.