Audiowechsel

Da Nutzer für ihre täglichen Aufgaben zunehmend mehrere Audioquellen verwenden, steigt die Nachfrage nach einer einfacheren Lösung, um die Headsetnutzung geräteübergreifend zu verwalten. Mit der Funktion „Audio-Wechsel“ werden Headset-Verbindungen basierend auf Nutzeraktivität (z.B. Start eines Films) und priorisierten Ereignissen (z.B. eingehender Anruf) nahtlos zwischen Geräten gewechselt.

UX-Prinzipien

  1. Die Verbindungen sollten schnell und auf Grundlage der Nutzeraktion gewechselt werden.
  2. Der Verbindungswechsel sollte für Nutzer transparent sein, sodass Nutzer ihn steuern und zurücknehmen können, falls er nicht erwünscht ist.
  3. Beim Wechsel sollte die Privatsphäre der Nutzer respektiert werden.

Rollen

Auf der Suche nach einem Audio-Wechsel: Der Seeker ist ein Audioquellengerät (z. B. ein Smartphone oder Tablet), das nach einem Headset in der Nähe sucht, um es gegebenenfalls zu verbinden.

Anbieter für Audiowechsel: Der Anbieter ist normalerweise ein Headset, mit dem Nutzer auf der Suche nach einem Wechsel über dessen Präsenz und Verbindungsstatus informiert werden.

Überblick über die 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 Seefahrer, 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 über einen längeren Zeitraum kein Audioereignis aufgetreten ist) und akzeptieren Sie die neue eingehende Anfrage.
Der Seitenscanmodus mit niedriger Latenz (das Scanintervall sollte nicht größer als 640 ms sein) ist erforderlich, um die Leistung zu verbessern.
Um einen Kompromiss zwischen Akkulaufzeit und der Leistung beim Wechsel zu finden, kann der Anbieter in den meisten Fällen einen Standardscanmodus für Seiten einrichten (bei Energiesparmodus sollte das Scanintervall nicht größer als 1280 ms sein). In folgenden Situationen muss der Modus mit niedriger Latenz jedoch verwendet werden:
  • Die ersten 30 Sekunden nach dem Einschalten
  • Die ersten 30 Sekunden ohne Verbindung oder Paging
  • Erste 30 Sekunden Inaktivität des Geräts
Erforderlich
Verbindungsverlauf Wenn du zur vorherigen Verbindung zurückwechseln und ggf. die Wiedergabe fortsetzen möchtest.
Der Wechsel wird durch die Kommunikation über Message Stream APIs ausgelöst.
Das pausierte Audioereignis sollte im Datensatz enthalten sein, damit die Wiedergabe gegebenenfalls fortgesetzt wird.
Verwalten Sie den Verbindungsverlauf und implementieren Sie Message Stream APIs. Erforderlich
Verbindungsstatus Nutzer können den Verbindungswechsel beurteilen.Der Verbindungsstatus umfasst:
  • Verbindungsstatus
  • Audiotyp der aktiven Verbindung
  • Kontoinformationen der aktiven Verbindung
  • Verbundene(r) Gerät(e)
Fügen Sie den Verbindungsstatus in BLE-Werbung und Message Stream ein. Erforderlich
Änderung der Laufzeitfunktionen Der Audio-Wechsel kann durch ein Upgrade der Firmware des Anbieters aktiviert werden, sodass die Funktionen zwischen Seeker und Anbieter zur Laufzeit synchronisiert werden müssen. Implementieren Sie Message Stream APIs, um auf Laufzeitfunktionen zuzugreifen. Erforderlich
Konfigurierbare Wechselregeln Der Seefahrer kann über die Nutzereinstellungen die Priorität zwischen bestehenden aktiven Audiostreaming- und neuen Audiostreaminganfragen konfigurieren.
Der „Audio-Wechsel“-Suchdienst kann beispielsweise UI-Einstellungen bereitstellen, mit denen Nutzer den automatischen Wechsel zwischen Medienstreaming und Anrufen aktivieren/deaktivieren können.
Der Nutzer, der den Audio-Wechsel sucht, legt die Regel zum Wechsel über Message Stream fest und erhält sie.
Nur für Multipoint-Anbieter.
Implementiere Message Stream APIs, um die Regeln für den Wechsel zwischen verbundenen Geräten konfigurierbar zu machen.
Optional
Aktiver Gerätewechsel Die Audio-Wechsel-Suche kann den Audio-Wechsel zwischen verbundenen Geräten simulieren.
Auf der Seite „Audio-Wechsel-Suchanfrage“ gibt es möglicherweise eine Benutzeroberfläche, mit der Nutzer ganz einfach zwischen verbundenen Geräten wechseln können.
Nur Multipoint-Anbieter.
Implementiere Message Stream APIs für die Suche nach Audio-Wechsel, um die aktive Audioquelle zwischen verbundenen Geräten zu ermitteln.
Erforderlich
Benachrichtigung beim Mehrpunktwechsel Der Sucher für den Audio-Wechsel kann die Benachrichtigung zum Wechseln anzeigen. Nur für Multipoint-Anbieter.
Implementiere Message Stream APIs, um Nutzer, die verbundene Audio-Wechsel-Netzwerke suchen, zu benachrichtigen, wenn ein Multipunkt-Wechsel stattfindet.
Erforderlich

Werbenutzlast

Der Anbieter muss seinen aktuellen Verbindungsstatus in die Werbung aufnehmen, der auf den unter Werbung: Wenn nicht auffindbar beschriebenen Kontodaten durch schnelles Pairing aufbaut.

Beachten Sie, dass die Version von Tabelle 4.2 0x1 ist.

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
  • Typ = 0b0101
Erforderlich
1 uint8 Verbindungsstatus
0bHAFRSSSS
  • H = bei der Kopferkennung
  • A = Verbindungsverfügbarkeit
  • F = Fokusmodus
  • R = automatisch wieder verbunden
  • S = Verbindungsstatus
0bHAFRSS
Erforderlich
2 uint8 Benutzerdefinierte Daten
Derzeit enthalten sie nur den Inhaltstyp, der dazu dient, die Nutzung des aktuellen Audiostreamings zu beschreiben. Der Suchende sendet es an den Dienstleister.
Der Wert wird vom Suchenden des aktuell aktiven Streamings über den Nachrichtenstream an den Anbieter gesendet. 0, wenn das aktuell aktive Streaming nicht von Seeker stammt. Erforderlich
3 – var Bitmap der verbundenen Geräte
Eine Bitmap, die zeigt, welche Geräte derzeit mit dem Anbieter verbunden sind. Alle gebundenen Geräte werden der Reihe nach angeordnet, ein Bit für ein verbundenes Gerät. Die Länge hängt davon ab, wie viele gebundene Geräte vom Anbieter vorhanden sind.
Das zugeordnete Bit ist auf 1 gesetzt, wenn das Gerät derzeit mit dem Anbieter verbunden ist, andernfalls auf 0.
Weitere Informationen finden Sie unter Bitmap für verbundene Geräte.
Optional

Tabelle 4.1:Rohdaten aus dem Feld für den Verbindungsstatus

Verbindungs-Flags
  • 0bH = bei Kopferkennung

    • 1, jetzt auf dem Kopf
    • 0, andernfalls nicht am Kopf oder kein 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 die Mediennutzung nicht zulässig, d. h. kein A2DP-zu-A2DP-Wechsel
    • 0, andernfalls
  • 0bR = automatisch wieder verbunden

    • 1, wenn die aktuelle Verbindung vom Provider automatisch wiederhergestellt wird, d. h. nicht von Nutzern verbunden ist (bei Multipoint-Verbindungen sollte eine der vorhandenen Verbindungen automatisch wieder hergestellt werden, sollte sie auf 1 gesetzt werden)
    • 0, andernfalls
Verbindungsstatus
  • 0x0: keine Verbindung
  • 0 x 1: Paging
  • 0x2: verbunden, aber keine Datenübertragung
  • 0x3: Nicht-Audio-Datenübertragung (nur wenn umschaltbar, wenn nicht, mit 0xF)
  • 0x4: A2DP-Streaming, AVRCP nicht anwendbar
  • 0 x 5: A2DP-Streaming und AVRCP-Wiedergabe
  • 0x6: HFP-Streaming (Telefon-/Voip-Anruf), einschließlich Inband- und Nicht-Band-Klingelton
  • 0 x 7: LE Audio – Medienstreaming ohne Steuerung
  • 0x8: LE Audio – Mediastreaming mit Steuerung
  • 0x9: LE Audio – Anrufstreaming
  • 0xA: LE Audio – Übertragung
  • 0xF: Verbindungswechsel vorübergehend deaktivieren (z.B. Firmware-Update)
Bitmap des verbundenen Geräts

Um einen unerwünschten Verbindungswechsel zu vermeiden, muss der Nutzer möglicherweise wissen, mit welchen Geräten das Headset derzeit verbunden ist. Wenn beispielsweise das Headset mit dem Smartphone verbunden ist, möchte der Nutzer nicht durch den Verbindungswechsel unterbrochen werden, wenn eines seiner Familienmitglieder YouTube auf dem Tablet startet.

Beachten Sie, dass diese Bitmap anonym ist. Der Suchende kann nicht wissen, welche anderen Geräte mit dem Anbieter verbunden sind. Nehmen wir zum Beispiel fünf verbundene Geräte:

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

Wenn die derzeit verbundenen Geräte ein Laptop und ein Tablet sind, lautet der Wert der Bitmap 0b10010000. Die Bestelländerung ist akzeptabel, wenn sie 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ällige auflösbare Anzeige

Um eine Nachverfolgung zu vermeiden und die Privatsphäre der Nutzer zu respektieren, sollte der Anbieter das Feld mit dem Kontoschlüssel mit AES-CTR rotieren und verschlüsseln:

 encrypted_connection_status_field = connection_status_raw_data ^ AES(Key, IV)

wobei

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

    • Der Schlüssel wird von der HKDF-Funktion IETF RFC 5869 mit der SHA-256-Hash-Funktion generiert.

        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 der 2-Byte-Salt der Kontoschlüsseldaten ohne Auffüllung, d.h. IV ist concat(Salt, 14-Byte-Nullen).

  3. Die Rohdaten für den Verbindungsstatus sind in Tabelle 4.1 definiert. Wenn sich der Verbindungsstatus ändert, sollten der Salt und RPA im selben Werbezeitraum neu generiert werden.

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

Die BLE-Anzeige wird folgendermaßen strukturiert:

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

Tabelle 4.2:BLE-Werbung 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
  • Typ = 0b0110
Erforderlich
1 – var Verschlüsselte Daten variiert Erforderlich

Tabelle 4.2.1:Zufällige auflösbare Daten

Wenn beispielsweise die zufälligen auflösbaren Daten ein Feld für den verschlüsselten Verbindungsstatus enthalten, ist das entschlüsselte Ergebnis das Feld „Verbindungsstatus“.

Um Manipulationen zu verhindern, sollten die obigen Kontoschlüsseldaten leicht geändert werden, wenn die zufällige auflösbaren Daten im Advertising enthalten sind. Normalerweise wird beim Erstellen des Kontoschlüsselfilters ein Wert V erzeugt, indem der Kontoschlüsselfilter mit einem Salt kombiniert wird. Wenn stattdessen auch zufällige auflösbare Daten beworben werden, sollte der Wert V so erstellt werden:

 V = concat(account_key, salt, random_resolvable_data)

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

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

Kontoschlüssel in Verwendung

Der Verbindungswechsel erfolgt kontobasiert, daher sollte der Anbieter die Kontoinformationen der aktuellen Verbindung in das BLE-Advertising aufnehmen. Wenn das aktuell verbundene Gerät ein Audio-Switch sucht, sollte der Anbieter den mit diesem Sucher verknüpften Kontoschlüssel abrufen und diesen Kontoschlüssel zum Verschlüsseln des Verbindungsstatusfelds verwenden können. Wenn die verbundene Audioquelle nicht nach einem Audio-Wechsel sucht, sollte der Anbieter den zuletzt verwendeten Kontoschlüssel verwenden.

Vor der Berechnung des Kontoschlüsselfilters sollte der Anbieter das erste Byte der Kontoschlüssel so ändern, dass eines der folgenden Nutzungsmuster vorhanden 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 sind keine Kontoschlüsselinformationen für den aktuellen Verbindungsstatus vorhanden. Dies kann bedeuten, dass keine Geräte verbunden sind oder das verbundene Gerät nicht auf der Suche nach Audio-Wechsel 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 das aktuell verbundene Gerät ist mit diesem Kontoschlüssel verknüpft.

Schema für Audio-Switch-Nutzlast

Die folgende Abbildung zeigt das Schema für die Nutzlast „Audio-Wechsel“.

Nachrichten

Wenn die Verbindung hergestellt ist, können der Sucher und der Anbieter den Nachrichtenstream verwenden, um die Funktion zum Audiowechsel zu synchronisieren, einen Verbindungswechsel auszulösen, die Schaltpräferenz festzulegen und abzurufen, den Verbindungsstatus zu benachrichtigen usw. Unten sehen Sie, wie Sie eine Nachrichtengruppe und spezielle Nachrichtencodes für den Audio-Wechsel erstellen.

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
Funktion „Audio-Wechsel“ nutzen 0x10 N Beides Beides, über Code 0x11 N N N
Funktion „Audio-Wechsel“ benachrichtigen 0x11 N Beides Beides N Ja Ja
Multipoint-Status festlegen 0x12 Ja Suchender Anbieter N Ja Ja
Einstellung für den Wechsel festlegen 0x20 Ja Suchender Anbieter N Ja Ja
Einstellung für den Wechsel verwenden 0x21 Ja Suchender Anbieter über Code 0x22 N N N
Benachrichtigung über Wechseleinstellung 0x22 Ja Anbieter Suchender N N N
Aktive Audioquelle wechseln(zu verbundenes Gerät) 0x30 Ja Suchender Anbieter N Ja Ja
Zurück (zum nicht verbundenen Gerät) wechseln 0x31 N Suchender Anbieter N Ja Ja
Ereignis mit Mehrpunktwechsel benachrichtigen 0x32 Ja Anbieter Suchender N N N
Verbindungsstatus abrufen 0x33 Ja Suchender Anbieter, über Code 0x34 N N N
Verbindungsstatus benachrichtigen 0x34 Ja Anbieter Suchender Ja N N
Verbindung über Audiowechsel benachrichtigen 0x40 N Suchender Anbieter N Ja Ja
Kontoschlüssel verwenden 0x41 N Suchender Anbieter N Ja Ja
Benutzerdefinierte Daten senden 0x42 N Suchender Anbieter N Ja Ja
Ziel für Verbindungsabbruch festlegen 0x43 Ja Suchender Anbieter N Ja Ja

Tabelle 4.3:Nachrichten zum Audiowechsel

MAC-Adresse von „Nachrichten zum Audio-Wechsel“

Für die Nachrichtenauthentifizierung ist für alle Audio-Switch-Nachrichten mit zusätzlichen Daten, die vom Seeker an den Anbieter gesendet werden, ein Nachrichtenauthentifizierungscode erforderlich. Wenn eine Nachricht mit dem MAC empfangen wird, sollte diese bestätigt werden, damit der Suchende weiß, ob der Anbieter auf die Nachricht reagiert hat.

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

Oktett Datentyp Beschreibung Wert
0 Uint8 Bestätigung 0xFF
1 Uint8 Bestätigen 0x01
2–3 Uint16 Länge der zusätzlichen Daten variiert
4 Uint8 Die „Audio-Wechsel“-Funktion 0x07
5 Uint8 Nachrichtencode für Audiowechsel variiert
6 – Sek. Zusätzliche Daten variiert

Wenn dies fehlschlägt, muss der Anbieter den NAK für die Nachricht senden:

Oktett Datentyp Beschreibung Wert
0 Uint8 Bestätigung 0xFF
1 Uint8 NAK 0x02
2–3 Uint16 Länge der zusätzlichen Daten 0x0003
4 Uint8 Grund für den Fehler variiert
5 Uint8 Die „Audio-Wechsel“-Funktion 0x07
6 Uint8 Nachrichtencode für Audiowechsel variiert

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

Funktion zum Audio-Wechsel nutzen

Sowohl der Anbieter für Audiowechsel als auch der Seeker können mit der folgenden Nachricht prüfen, ob der verbundene Suchende/Anbieter des verbundenen schnellen Pairings den Audiowechsel unterstützt oder nicht:

Oktett Datentyp Beschreibung Wert
0 Uint8 Die „Audio-Wechsel“-Funktion 0x07
1 Uint8 Funktion zum Audio-Wechsel nutzen 0x10
2–3 Uint16 Länge der zusätzlichen Daten 0

Tabelle 4.3.1.0:Funktion zum Audio-Wechsel abrufen

Funktion zum Audio-Wechsel benachrichtigen

Beim Empfang des get-Funktionen des Audio-Wechsel-Nachrichtencodes antwortet der Sucher/Anbieter des Audio-Wechsels mit einem der folgenden Flags:

Oktett Datentyp Beschreibung Wert
0 Uint8 Die „Audio-Wechsel“-Funktion 0x07
1 Uint8 Funktion zum Audio-Wechsel benachrichtigen 0x11
2–3 Uint16 Länge der zusätzlichen Daten 20, wenn dies vom Seefahrer gesendet wird
4, wenn dies vom Anbieter gesendet wurde
4–5 Uint16 Versionscode für Audiowechsel Ein Wert ungleich null bedeutet, dass der Audio-Wechsel unterstützt wird. Die aktuelle Version (mit der Sicherheitsverbesserung) ist 0x0102.
Wenn „0 x 0000“ oder keine Antwort in 1 Sekunde angezeigt wird, wird „Audio-Wechsel“ auf diesem Gerät nicht unterstützt
6–7 flags Funktions-Flags für Audiowechsel des Anbieters
Wenn dies vom Seeker gesendet wird, sollten diese beiden Byte ignoriert werden.
variiert
Siehe Flags für die Funktion „Audio-Wechsel“
8–15 Nachrichten-Nonce
Nur erforderlich, wenn die Nachricht vom Suchenden gesendet wird
variiert
16–23 Authentifizierungscode für Nachricht
Nur erforderlich, wenn die Nachricht vom Suchenden gesendet wird
variiert

Tabelle 4.3.1.1:Benachrichtigungsfunktion für den Audio-Wechsel

Flags für die Funktion „Audio-Wechsel“
  1. Bit 0 (Oktett 6, MSB): Status des Audio-Wechsels

    • 1, wenn der Audio-Wechsel-Status aktiviert ist
    • 0, andernfalls
  2. Bit 1: Multipoint-Konfigurierbarkeit

    • 1, wenn das Gerät Multipoint-Konnektivität unterstützt und zwischen „Ein“ und „Aus“ gewechselt werden kann
    • 0, andernfalls (Multipoint wird nicht unterstützt oder Multipoint ist immer aktiv)
  3. Bit 2: Aktueller Status mehrerer Punkte

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

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

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

Multipoint-Status festlegen

Nutzer, die Audio-Wechsel suchen, bieten möglicherweise eine Einstellung zum Aktivieren/Deaktivieren der Multipoint-Funktion. Der Seeker legt den Mehrpunktstatus mit der folgenden Nachricht auf den Anbieter fest:

Oktett Datentyp Beschreibung Wert
0 Uint8 Die „Audio-Wechsel“-Funktion 0x07
1 Uint8 Multipoint-Status festlegen 0x12
2–3 Uint16 Länge der zusätzlichen Daten 17
4 Uint8 Multipoint-Status 0: Multipunkt ausschalten
1: Multipunkt einschalten
5–12 Nachrichten-Nonce variiert
13–20 Authentifizierungscode für Nachrichten variiert

Tabelle 4.3.1.2:Mehrpunktstatus festlegen

Wechseleinstellung festlegen

Nutzer, die den Audio-Wechsel suchen, können die Schaltereinstellung für die Multipoint-Konnektivität ändern und sie mit der folgenden Nachricht auf den Anbieter festlegen:

Oktett Datentyp Beschreibung Wert
0 Uint8 Die „Audio-Wechsel“-Funktion 0x07
1 Uint8 Wechseleinstellung festlegen 0x20
2–3 Uint16 Länge der zusätzlichen Daten 18
4 flags Einstellung wird geändert variiert
Siehe Flag für die Einstellung für den Multipunkt-Wechsel.
5 Erweiterte Wechseleinstellungen
Dieses Byte ist reserviert. Der Standardwert ist 0.
variiert
6–13 Nachrichten-Nonce variiert
14–21 Authentifizierungscode für Nachrichten variiert

Tabelle 4.3.2.0:Wechseleinstellung festlegen

Markierung für Einstellung für den Mehrpunktwechsel
  • Bit 0 (MSB): A2DP vs. A2DP (Standard 0)
  • Bit 1: HFP vs. HFP (Standard 0)
  • Bit 2: A2DP vs. HFP (Standard 0)
  • Bit 3: HFP vs. A2DP (Standard 1)
  • Bit 4–7: reserviert
  • Oben steht für „Anfrage für ein neues Profil“ im Vergleich zu „aktuelles aktives Profil“.
    • 0, wenn der Nutzer nicht gewechselt hat
    • 1 zum Wechseln

Wechseleinstellung abrufen

Nutzer, die Audio-Wechsel suchen, können die Wechseleinstellung von Multipoint vom Anbieter mit der folgenden Nachricht abfragen:

Oktett Datentyp Beschreibung Wert
0 Uint8 Die „Audio-Wechsel“-Funktion 0x07
1 Uint8 Wechselkonfiguration abrufen 0x21
2–3 Uint16 Länge der zusätzlichen Daten 0

Tabelle 4.3.2.1:Wechseleinstellung abrufen

Wechseleinstellung benachrichtigen

Oktett Datentyp Beschreibung Wert
0 Uint8 Die „Audio-Wechsel“-Funktion 0x07
1 Uint8 Wechseleinstellung benachrichtigen 0x22
2–3 Uint16 Länge der zusätzlichen Daten 2
4 flags Einstellungen für die Einstellung ändern variiert
Siehe Flag für die Einstellung für den Multipunkt-Wechsel.
5 Erweiterte Wechseleinstellungen
Dieses Byte ist reserviert. Der Standardwert sollte 0 sein.
variiert

Tabelle 4.3.2.2:Wechseleinstellung benachrichtigen

Aktive Audioquelle wechseln (zu angeschlossenem Gerät)

Nutzer, die Audiowechsel suchen, können den Multipoint-Anbieter mit der folgenden Nachricht anfordern, die aktive Audioquelle zwischen verbundenen Geräten zu wechseln:

Oktett Datentyp Beschreibung Wert
0 Uint8 Die „Audio-Wechsel“-Funktion 0x07
1 Uint8 Aktive Audioquelle wechseln (zu angeschlossenem Gerät) 0x30
2–3 Uint16 Länge der zusätzlichen Daten 17
4 flags Ereignis-Flags zu aktiven Audioquellen ändern variiert
Siehe Ereignis zum Wechseln der aktiven Audioquelle
5–12 Nachrichten-Nonce variiert
13–20 Authentifizierungscode für Nachrichten variiert

Tabelle 4.3.3.0:Aktive Audioquelle wechseln (zu angeschlossenem Gerät)

Ereignis: Aktive Audioquelle wechseln
  • Bit 0 (MSB): 1 Wechsel zu diesem Gerät, 0 Wechsel auf zweites verbundenes Gerät
  • Bit 1: 1 Setze die Wiedergabe nach dem Wechsel auf Gerät fort, andernfalls 0. Fortsetzen bedeutet, dass der Anbieter eine PLAY-Benachrichtigung über ein AVRCP-Profil an den Suchenden sendet. Wenn der vorherige Status (vor dem Beenden) nicht PLAY war, sollte der Anbieter dieses Flag ignorieren.
  • Bit 2: 1 SCO auf einem abgeschalteten Gerät ablehnen, andernfalls 0
  • Bit 3: 1 trenne die Bluetooth-Verbindung auf einem anderen Gerät, andernfalls 0.
  • Bit 4–7: reserviert.

Nutzer, die Audio-Wechsel suchen, kennen ihren Status möglicherweise nicht immer richtig. Daher kann der Anbieter die Nachricht „Zu diesem Gerät wechseln“ erhalten, wenn der Suchende bereits das aktive Gerät ist. In diesem Fall kann der Anbieter einen NAK mit dem Fehlergrund „0x4 – Redundant device action“ senden, um die korrekte UI auf Seeker anzuzeigen.

Zurückwechseln (zu nicht verbundenem Gerät)

Wenn der Verbindungswechsel ungewollt ist, können Nutzer ihn rückgängig machen. In bestimmten Fällen ist es sinnvoll, die Audioverbindung wiederherzustellen, um Unterbrechungen zu minimieren. Der Suchende verwendet die folgende Nachricht, um den Zurückwechsel auszulösen:

Oktett Datentyp Beschreibung Wert
0 Uint8 Die „Audio-Wechsel“-Funktion 0x07
1 Uint8 Zurückwechseln (zu nicht verbundenem Gerät) 0x31
2–3 Uint16 Länge der zusätzlichen Daten 17
4 Uint8 Ereignis zurückwechseln Variiert
0x01: Wechsel zurück
0x02: Zurück und Wiedergabe fortsetzen
5–12 Nachrichten-Nonce variiert
13–20 Authentifizierungscode für Nachrichten variiert

Tabelle 4.3.3.1:Zurück (zu nicht verbundenem Gerät)

Bei Multipoint-Anbietern kann ein Anbieter zum Wechseln der Verbindung die Verbindung mit einem Audioquellengerät trennen und die Audiositzung auf der anderen Audioquelle pausieren. Angenommen, das Mehrpunkt-Headset ist mit einem Tablet und einem dritten unterstützten Audio-Switch-Gerät verbunden. Der Nutzer sieht sich das Video auf dem Tablet an, während ein Anruf auf dem Smartphone eingeht. Das Smartphone löst einen Verbindungsschalter am Headset aus. Dieser muss die Verbindung des dritten Geräts trennen, um eine Verbindung mit dem Smartphone herzustellen. Gleichzeitig wird die Mediensitzung auf dem Tablet pausiert, um den Klingelton vom Smartphone zu erhalten. Wenn der Nutzer den Anruf ablehnt, fordert das Smartphone das Headset möglicherweise auf, „zurückzuwechseln und die Wiedergabe fortzusetzen“. Nach Erhalt dieser Anfrage muss das Headset erneut eine Verbindung zum dritten Gerät herstellen und die Wiedergabe des pausierten Videos auf dem Tablet fortsetzen.

Ereignis bei Mehrpunktwechsel benachrichtigen

Um Nutzer auf einen Multipunkt-Wechsel hinzuweisen, kann der Audio-Wechsel-Suchdienst Nutzern eine Benachrichtigung anzeigen. Der Anbieter sollte verbundene Audio-Wechsel-Zuschauer über das Wechselereignis benachrichtigen.

Oktett Datentyp Beschreibung Wert
0 Uint8 Die „Audio-Wechsel“-Funktion 0x07
1 Uint8 Ereignis vom Typ „Mehrpunktwechsel“ benachrichtigen
Der Dienstleister sollte die Nachricht bei jedem Wechsel senden, einschließlich des Suchens von Audiowechsel zum Suchenden ohne Audiowechsel, vom Suchenden ohne Audiowechsel zum Suchenden ohne Audiowechsel und vom Suchenden zum Audio-Wechsel-Seeker zum Audio-Wechsel-Suchenden
0x32
2–3 Uint16 Länge der zusätzlichen Daten variiert
4 Uint8 Grund für den Wechsel variiert
0x00: nicht spezifiziert
0x01: A2DP-Streaming
0x02: HFP
5 Uint8 Zielgerät variiert
0x01: dieses Gerät
0x02: anderes verbundenes Gerät
6–n utf8 Name des Zielgeräts
, wenn das Zielgerät Audio-Wechsel ist, mit dem Namen, an den der Suchende gesendet hat, andernfalls unter Verwendung des BT-Namens (falls nicht zutreffend) unter Verwendung der letzten 2 Byte seiner Adresse
variiert

Tabelle 4.3.3.2:Mehrpunktwechsel-Ereignis benachrichtigen

Verbindungsstatus abrufen

Der Suchende 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 Länge der zusätzlichen Daten 0

Tabelle 4.3.3.3:Verbindungsstatus abrufen

Nach Erhalt dieser Nachricht muss der Anbieter mit dem Nachrichtencode 0x34 antworten, den Verbindungsstatus benachrichtigen.

Verbindungsstatus benachrichtigen

Wie in der BLE-Werbenutzlast definiert: Wenn sich bei Multipoint-Anbietern der Verbindungsstatus ändert (mit Ausnahme des Änderns des Werbepakets), sollte der Anbieter auch die verbundenen Seeker, die denselben Kontoschlüssel verwenden, über die Änderung benachrichtigen. Wenn der Anbieter mit einem Suchenden, der keinen Audio-Wechsel sucht, verbunden ist und der Suchende ohne Audio-Wechsel aktiv ist, sollte der Anbieter auch den Sucher, der keinen Audio-Wechsel sucht, über den Verbindungsstatus informieren (mithilfe des Kontoschlüssels des Suchenden).

Oktett Datentyp Beschreibung Wert
0 Uint8 Die „Audio-Wechsel“-Funktion 0x07
1 Uint8 Verbindungsstatus benachrichtigen 0x34
2–3 Uint16 Länge der zusätzlichen Daten variiert
4 Uint8 Kennzeichnung eines aktiven Geräts Variiert
0x00: Dieser Sucher ist passiv und das aktive Gerät verwendet denselben Kontoschlüssel
0x01: Dieser Sucher ist das aktive Gerät
0x02: Dieser Sucher ist passiv und das aktive Gerät sucht nicht nach einem Audio-Switch.
5–n Status der verschlüsselten Verbindung variiert
n+1–n+8 Nachrichten-Nonce variiert

Tabelle 4.3.3.4: Verbindungsstatus benachrichtigen

Nachricht zum verschlüsselten Verbindungsstatus

 encrypted_connection_status = connection_status_raw_data ^ AES(Key, IV)

wobei

Verbindung durch Audio-Wechsel benachrichtigen

Anbieter für Audio-Wechsel müssen möglicherweise wissen, ob der Verbindungswechsel durch den Audio-Wechsel ausgelöst wird, um unterschiedliche Reaktionen zu haben. Beispielsweise müssen Earcons für Audio-Wechsel-Ereignisse deaktiviert sein. Der Suchende sendet eine Nachricht, um den Anbieter darüber zu informieren, dass diese Verbindung eine über einen Audio-Wechsel initiierte Verbindung war.

Oktett Datentyp Beschreibung Wert
0 Uint8 Die „Audio-Wechsel“-Funktion 0x07
1 Uint8 Verbindung durch Audio-Wechsel benachrichtigen 0x40
2–3 Uint16 Länge der zusätzlichen Daten 17
4 Uint8 Anzeige der Verbindung über Audiowechsel Variiert
0: Diese Verbindung wurde nicht durch den Audio-Wechsel hergestellt
1: Es war eine Verbindung, die über den Audio-Wechsel initiiert wurde
5–12 Nachrichten-Nonce variiert
13–20 Authentifizierungscode für Nachrichten variiert

Tabelle 4.3.4.0:Verbindung über Benachrichtigung über Audiowechsel initiiert

Kontoschlüssel verwenden

Wenn mehrere Kontoschlüssel auf dem Suchenden (z.B. mehrere Nutzer) mit dem Anbieter verknüpft sind, verwendet der Suchende die folgende Nachricht, um anzugeben, welcher Kontoschlüssel verwendet wird.

Oktett Datentyp Beschreibung Wert
0 Uint8 Die „Audio-Wechsel“-Funktion 0x07
1 Uint8 Kontoschlüssel verwenden 0x41
2–3 Uint16 Länge der zusätzlichen Daten 22
4–9 utf8 String in Verwendung UTF8 („in-use“)
10–17 Nachrichten-Nonce variiert
18–25 Authentifizierungscode für Nachrichten variiert

Tabelle 4.3.4.1:Kontoschlüssel verwenden

Nach dem Empfang dieser Nachricht kann der Anbieter feststellen, welcher Kontoschlüssel verwendet wird, indem er den Nachrichtenauthentifizierungscode überprüft.

Benutzerdefinierte Daten senden

Der aktive Audio-Switch-Seeker kann die Informationen (z.B. die Audionutzung) des Audiostreams in einem benutzerdefinierten Datenbyte kapseln und sie mithilfe der folgenden Nachricht an den Provider senden:

Oktett Datentyp Beschreibung Wert
0 Uint8 Die „Audio-Wechsel“-Funktion 0x07
1 Uint8 Benutzerdefinierte Daten senden 0x42
2–3 Uint16 Länge der zusätzlichen Daten 17
4 Uint8 Benutzerdefinierte Daten variiert
5–12 Nachrichten-Nonce variiert
13–20 Authentifizierungscode für Nachrichten variiert

Tabelle 4.3.4.2:Benutzerdefinierte Daten senden

Nach dem Empfang der benutzerdefinierten Daten aktualisiert der Anbieter das Werbepaket, um die benutzerdefinierten Daten einzuschließen. Bei einem Mehrpunktanbieter sollte die Änderung des Verbindungsstatus auch einem anderen verbundenen Seefahrer mit demselben Kontoschlüssel mitgeteilt werden.

Ziel für Verbindungsabbruch festlegen

Wenn bei einem Mehrpunkt-Headset die zu trennende bevorzugte Verbindung nicht die zuletzt verwendete ist, können Nutzer, die Audio-Wechsel suchen, dem Anbieter mit der folgenden Nachricht mitteilen, welches Gerät entfernt werden soll:

Oktett Datentyp Beschreibung Wert
0 Uint8 Die „Audio-Wechsel“-Funktion 0x07
1 Uint8 Ziel für Verbindungsabbruch festlegen 0x43
2–3 Uint16 Länge der zusätzlichen Daten 17
4 Uint8 Ziel verbundenes Gerät, das verworfen werden soll variiert
1: dieses Gerät
5–12 Nachrichten-Nonce variiert
13–20 Authentifizierungscode für Nachrichten variiert

Tabelle 4.3.4.3:Drop-Verbindungsziel festlegen

Referenzimplementierung

Informationen zur Referenzimplementierung finden Sie unter Nearby Embed SDK Library.