Cambio audio

Dato che gli utenti usano sempre più dispositivi di origine audio per eseguire le loro attività quotidiane, c'è una crescente richiesta di una soluzione più semplice per gestire i visori da usare su più dispositivi. La funzionalità Cambio Audio consente una transizione perfetta dei collegamenti delle cuffie tra i dispositivi in base all'attività utente (ad es. iniziare un film) e in base alla priorità eventi (ad es. una chiamata in arrivo).

Principi relativi all'esperienza utente

  1. Il cambio di connessione deve essere veloce e basato sull'azione dell'utente.
  2. Il cambio di connessione deve essere trasparente per gli utenti e consentire loro di controllo/ripristino se il passaggio non è desiderato.
  3. Il passaggio deve rispettare la privacy dell'utente.

Ruoli

Audio Switch Seeker: The Seeker è un dispositivo di origine audio (ad esempio, una telefono o tablet), alla ricerca di cuffie nelle vicinanze da collegare, se possibile.

Fornitore cambio audio. Il fornitore è in genere un paio di cuffie che pubblicizzano la propria presenza e stato della connessione per consentire ai ricercatori di prendere decisioni in merito al passaggio da un dispositivo all'altro.

Panoramica dei requisiti

Per poter effettuare il passaggio intelligente, i Fornitori devono rispettare i seguenti requisiti:

Nome Descrizione Requisiti Obbligatorio?
Scansione pagina Per accettare una nuova richiesta di connessione da un altro ricercatore quando è già presente una connessione.
Per i provider single-point:
  • Quando il provider si disconnette, il dispositivo di origine originale mette automaticamente in pausa la riproduzione audio.
Per i fornitori multipunto:
  • Se è ancora disponibile una connessione, la richiesta di connessione verrà accettata.
  • Se la larghezza di banda della connessione è piena, disconnetti la connessione utilizzata meno di recente (ad esempio nessun evento audio per molto tempo) e accetta la nuova richiesta in arrivo.
Per migliorare le prestazioni è necessaria la modalità di scansione delle pagine a bassa latenza (l'intervallo di scansione non deve essere superiore a 640 ms).
Per trovare un compromesso tra la durata della batteria e le prestazioni di cambio, il provider può disporre nella maggior parte dei casi di una modalità di scansione delle pagine predefinita (modalità a basso consumo, l'intervallo di scansione non deve essere superiore a 1280 ms). Tuttavia, la modalità a bassa latenza deve essere utilizzata nelle seguenti situazioni:
  • Primi 30 secondi di accensione
  • Primi 30 secondi senza connessione o paging
  • Primi 30 secondi di inattività del dispositivo
Obbligatorio
Cronologia connessioni Per tornare alla connessione precedente e, se applicabile, riprendere la riproduzione.
Il ripristino verrà attivato dalle comunicazioni tramite le API Message Stream.
L'evento audio in pausa deve essere incluso nel record per riprendere la riproduzione, se applicabile.
Gestisci la cronologia delle connessioni e implementa le API Message Stream. Obbligatorio
Stato della connessione Per consentire ai ricercatori di valutare il cambio di connessione.Lo stato della connessione include:
  • Stato connessione
  • Tipo audio della connessione attiva
  • Dati dell'account della connessione attiva
  • Dispositivi connessi
Includi lo stato della connessione in BLE Pubblicità e Message Stream. Obbligatorio
Modifica delle funzionalità di runtime Il Cambio Audio può essere abilitato eseguendo l'upgrade del firmware sul provider, quindi le funzionalità devono essere sincronizzate tra il dispositivo di ricerca e il fornitore in fase di runtime. Implementare le API Message Stream per accedere alle funzionalità di runtime. Obbligatorio
Regole di passaggio configurabili Consenti al ricercatore di configurare la priorità tra lo streaming audio attivo esistente e le nuove richieste di streaming audio tramite le impostazioni delle preferenze dell'utente.
Ad esempio, il dispositivo di selezione dell'audio può fornire impostazioni dell'interfaccia utente per consentire agli utenti di attivare/disattivare il passaggio automatico tra streaming di contenuti multimediali e chiamate.
La funzionalità di ricerca per il cambio audio verrà impostata e riceverà la regola di passaggio tramite Message Stream.
Solo provider multipunto.
Implementa le API Message Stream per rendere configurabili le regole di passaggio tra i dispositivi connessi.
Facoltativo
Cambio di dispositivo attivo Consenti a Cambio Audio di simulare il passaggio da un dispositivo all'altro.
In corrispondenza di Cambio Audio, gli utenti possono avere una UI che consente di passare facilmente da un dispositivo connesso all'altro.
Solo provider multipunto.
Implementa le API Message Stream per Audio switch Seeker per determinare la sorgente audio attiva tra i dispositivi connessi.
Obbligatorio
Notifica passaggio multipunto Lascia che la funzionalità di ricerca del cambio audio mostri la notifica relativa al passaggio. Solo fornitori multipunto.
Implementa le API Message Stream per notificare chi cerca il cambio audio connesso quando è in corso un cambio multipunto.
Obbligatorio

Payload pubblicitario

Il Fornitore dovrà includere il suo stato di connessione corrente nella pubblicità, basato sui dati dell'account con accoppiamento rapido descritti in Pubblicità: quando non rilevabile.

Tieni presente che la versione della tabella 4.2 è 0x1.

Campo Stato connessione

Ottetto Tipo di dati Descrizione Valore Obbligatorio?
0 uint8 Lunghezza e tipo di campo
0bLLLLTTTT
  • L = lunghezza dello stato della connessione in byte
  • T = tipo
0bLLLL0101
  • lunghezza: varia
  • tipo = 0b0101
Obbligatorio
1 uint8 Stato connessione
0bHAFRSSSS
  • H = rilevamento sulla testa
  • A = disponibilità della connessione
  • F = modalità focus
  • R = ricollegato automaticamente
  • S = stato connessione
0bHAFRSSSS
Obbligatorio
2 uint8 Dati personalizzati
Attualmente, contiene solo il tipo di contenuti utilizzato per descrivere l'utilizzo dello streaming audio corrente. Il Ricercatore la invierà al Provider.
Il valore viene inviato dal ricercatore dello streaming attualmente attivo al provider tramite il flusso di messaggi. 0 se il flusso di dati attualmente attivo non proviene dal dispositivo di ricerca. Obbligatorio
3 - var Bitmap dei dispositivi connessi
Una bitmap che mostra quali dispositivi sono attualmente connessi al provider. Tutti i dispositivi collegati sono disposti in ordine, un bit per un dispositivo collegato. La lunghezza dipenderà da quanti dispositivi collegati al provider sono presenti.
Il bit mappato è impostato su 1 se il dispositivo è attualmente connesso al provider, altrimenti su 0.
Consulta la sezione Bitmap dispositivo connesso per informazioni dettagliate.
Facoltativo

Tabella 4.1: Dati non elaborati del campo Stato della connessione

Flag di connessione
  • 0bH = su rilevamento della testa

    • 1, ora in testa
    • 0, altrimenti non sulla testa o nessun sensore OHD
  • 0bA = disponibilità della connessione

    • 1, è disponibile una connessione
    • 0, altrimenti
  • 0bF = modalità focus

    • 1, ora in modalità con stato attivo, il cambio di connessione non è consentito per i contenuti multimediali Ad esempio, non è possibile passare da A2DP ad A2DP
    • 0, altrimenti
  • 0bR = riconnessione automatica

    • 1. Se la connessione corrente viene ricollegata automaticamente dal provider, il che significa non è connesso dagli utenti (per il multipunto, se una delle di connessione è stato riconnesso automaticamente, deve essere impostato su 1)
    • 0, altrimenti
Stato connessione
  • 0x0: nessuna connessione
  • 0x1: paging
  • 0x2: connessione attiva, ma nessun trasferimento di dati
  • 0x3: trasferimento di dati non audio (solo quando è possibile cambiarlo, in caso contrario si usa 0xF)
  • 0x4: streaming A2DP, AVRCP non applicabile
  • 0x5: streaming A2DP e riproduzione AVRCP
  • 0 x 6: streaming HFP (telefono/chiamata vocale), inclusa suoneria in banda e non in banda
  • 0x7: LE audio - streaming multimediale senza controllo
  • 0x8: LE audio - streaming multimediale con controllo
  • 0x9: LE audio - streaming delle chiamate
  • 0xA: LE audio - trasmissione
  • 0xF: disattiva temporaneamente l'interruttore di connessione (ad es. aggiornamento firmware)
Tipo di contesto LE audio e stato della connessione

Consiglia che il provider audio LE debba gestire tutti i tipi di contesto specificati in Numeri assegnati 6.12.3 (a meno che il provider non supporti esplicitamente un determinato tipo di contesto) e il tipo di contesto allo stato di connessione come descritto di seguito.

  • Conversazione: 0 x 9
  • Media: 0x8
  • Gioco: 0x7
  • Istruzioni: 0 x 7
  • Assistenti vocali: 0x9
  • In diretta: 0 x 9
  • Effetti sonori: 0 x 2
  • Notifiche: 0 x 2
  • Suoneria: 0 x 9
  • Avvisi: 0 x 7
  • Allarme d'emergenza: 0x9

Per il tipo di contesto LE audio misto, come la riproduzione di contenuti multimediali durante il Fornitore utilizzerà lo stato di connessione con la massima priorità, ovvero 0 x 9 (chiamata) per lo scenario precedente anziché 0 x 8 (contenuti multimediali).

Bitmap dispositivo connesso

Per evitare cambi di connessione indesiderati, il ricercatore potrebbe dover sapere dispositivi a cui sono attualmente connesse le cuffie. Ad esempio, quando le cuffie è connesso allo smartphone, l'utente non vuole essere interrotto dalla il cambio di connessione quando uno dei membri del gruppo Famiglia avvia YouTube il tablet.

Tieni presente che questa bitmap è anonima, il ricercatore non è in grado di sapere quali altre i dispositivi siano collegati al Fornitore. Ad esempio, prendiamo in considerazione 5 dispositivi collegati:

  • 0: laptop (0bx0000000)
  • 1: telefonoA (0b0x000000)
  • 2: telefonoB (0b00x00000)
  • 3: tablet (0b000x0000)
  • 4: TV (0b0000x000)

Se i dispositivi attualmente collegati sono un laptop e un tablet, il valore bitmap sarà 0b10010000. La modifica dell'ordine è accettabile se è inevitabile ad es. quando gli utenti ripristinano i dati di fabbrica delle cuffie o quando il numero di dispositivi collegati raggiunge il limite massimo.

Pubblicità casuale risolvibile

Per evitare il tracciamento e rispettare la privacy dell'utente, il Fornitore deve ruotare e cripta il campo con la chiave dell'account utilizzando AES-CTR:

 encrypted_connection_status_field = connection_status_raw_data ^ AES(Key, IV)

dove

  1. La chiave viene ricavata dalla chiave dell'account in uso, che è definita nella sezione successiva.

    • La chiave viene generata dalla funzione HKDF, IETF RFC 5869, utilizzando l'algoritmo SHA-256 funzione hash.

        Key = HKDF(account_key, NULL, UTF8("SASS-RRD-KEY"),16)
      
    • Il provider utilizzerà la chiave dell'account originale, ovvero il primo byte della chiave è 0x04, non incluso nel pattern di utilizzo.

  2. IV (vettore iniziale) è il sale a 2 byte dei dati chiave dell'account con zero spaziatura interna, ad esempio IV è concat(salt, zeri a 14 byte).

  3. I dati non elaborati relativi allo stato della connessione sono definiti nella tabella 4.1, se cambia lo stato della connessione, sale e RPA devono essere rigenerati lo stesso periodo di tempo per la pubblicità.

In questo modo il campo dello stato della connessione criptata ruota contemporaneamente I dati delle chiavi dell'account ruotano.

La pubblicità BLE sarà strutturata come segue:

Ottetto Tipo di dati Descrizione Valore Obbligatorio?
0 uint8 Versione e flag 0x10 Obbligatorio
1-T Dati chiave dell'account varia Obbligatorio
t+1 - s Dati batteria varia Facoltativo
s+1 - var Dati casuali risolvibili varia Obbligatorio se l'elenco delle chiavi dell'account non è vuoto,
altrimenti è escluso.

Tabella 4.2: pubblicità BLE con dati risolvibili casuali

I dati casuali risolvibili contengono:

Ottetto Tipo di dati Descrizione Valore Obbligatorio?
0 uint8 Lunghezza e tipo di campo
0bLLLLTTTT
  • L = lunghezza dei dati criptati
  • T = tipo
0bLLLL0110
  • lunghezza: varia
  • tipo = 0b0110
Obbligatorio
1 - var Dati criptati varia Obbligatorio

Tabella 4.2.1: Dati casuali risolvibili

Ad esempio, se i dati risolvibili casuali contengono una connessione criptata campo di stato, il risultato decriptato sarà di stato della connessione.

Per evitare manomissioni, i dati chiave dell'account sopra riportati devono essere leggermente modificati. quando i dati risolvibili casualmente sono inclusi nella pubblicità. Generalmente, quando creando il filtro della chiave dell'account, viene generato un valore V combinando il filtro con un sale. Al contrario, quando anche i dati risolvibili pubblicizzato, il valore V dovrebbe essere costruito come:

 V = concat(account_key, salt, random_resolvable_data)

Se vengono pubblicizzati sia i dati sulla batteria sia i dati risolvibili casuali, V deve essere costruito come:

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

Chiave account in uso

Il cambio di connessione è basato sull'account, quindi il provider dovrebbe includere i dati dell'account della connessione corrente nella pubblicità BLE. Se il dispositivo attualmente collegato è un Dispositivo di ricerca Cambio Audio, il provider dovrebbe essere in grado per ottenere la chiave dell'account associata al dispositivo di ricerca e utilizzarla per crittografare il campo dello stato della connessione. Se la sorgente audio collegata non è un audio switch Seeker, il provider deve usare la chiave dell'account utilizzata più di recente.

Prima di calcolare il filtro della chiave dell'account, il provider deve modificare il primo byte delle chiavi dell'account per includere uno dei seguenti pattern in uso:

  1. 0b00000100
    Questa chiave dell'account non è in uso.
    Si tratta di quella predefinita (vedi Chiave account).
  2. 0b00000101
    Questa chiave dell'account è quella utilizzata più di recente.
    Il campo dello stato della connessione è criptato da questa chiave dell'account. Non esiste chiave dell'account per lo stato di connessione corrente, è possibile che dispositivi connessi o il dispositivo connesso non è un Dispositivo di ricerca Cambio Audio.
  3. 0b00000110
    Questa chiave dell'account è la chiave dell'account in uso.
    Il campo dello stato della connessione è criptato da questa chiave dell'account e il valore dispositivo connesso è associato a questa chiave account.

Schema per il payload Cambio audio

La figura seguente mostra lo schema per il payload Cambio audio.

Messaggi

Una volta connessi, il ricercatore e il fornitore possono utilizzare lo stream di messaggi per sincronizzare l'audio switch, attivare un cambio di connessione, impostare e ricevere la preferenza, la notifica dello stato della connessione e così via. Creiamo un gruppo di messaggi i codici messaggio specifici per Cambio Audio, come indicato di seguito.

Nome del gruppo di messaggi Valore
Cambio Audio 0x07

Nelle sezioni seguenti sono inclusi ulteriori dettagli per ogni codice messaggio.

Nome codice messaggio Valore Solo multipunto Mittente Intervistato Cripta MAC ACK
Ottieni la funzionalità Cambio Audio 0x10 N Entrambi Entrambi, tramite il codice 0x11 N N N
Funzionalità di notifica di Cambio Audio 0x11 N Entrambi Entrambi N S Y
Imposta stato multipunto 0x12 Y Cercatore Provider N S Y
Impostare la preferenza di passaggio 0x20 Y Cercatore Provider N S Y
Ottieni la preferenza di passaggio 0x21 Y Cercatore Provider, tramite codice 0x22 N N N
Notifica preferenza di cambio 0x22 Y Provider Cercatore N N N
Cambia sorgente audio attiva(al dispositivo connesso) 0x30 Y Cercatore Provider N S Y
Torna indietro 0x31 N Cercatore Provider N S Y
Notifica evento di switch multipunto 0x32 Y Provider Cercatore N N N
Conoscere lo stato della connessione 0x33 Y Cercatore Provider, tramite codice 0x34 N N N
Notifica stato della connessione 0x34 Y Provider Cercatore Y N N
Notifica connessione avviata per Cambio Audio 0x40 N Cercatore Provider N S Y
Indica la chiave dell'account in uso 0x41 N Cercatore Provider N S Y
Inviare dati personalizzati 0x42 N Cercatore Provider N S Y
Imposta il target della connessione per il ritiro 0x43 Y Cercatore Provider N S Y

Tabella 4.3: Messaggi relativi al cambio audio

MAC dei messaggi relativi al cambio audio

Per fornire l'autenticazione, tutti i messaggi Cambio Audio con per i dati inviati dal ricercatore al provider è necessario un codice di autenticazione del messaggio. Quando un messaggio con MAC viene ricevuto, deve essere confermato in modo che il ricercatore sa se il provider ha reagito o meno al messaggio.

Se l’autenticazione del messaggio ha esito positivo, il provider invierà il messaggio ACK per messaggio:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Accettazione 0xFF
1 uint8 ACK 0x01
2 - 3 uint16 Dati aggiuntivi varia
4 uint8 Cambio Audio 0x07
5 uint8 Codice messaggio relativo al cambio audio varia
6 - sec Dati aggiuntivi varia

Se non riesce, il Provider invierà il codice NAK per il messaggio:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Accettazione 0xFF
1 uint8 NAK 0x02
2 - 3 uint16 Dati aggiuntivi 0x0003
4 uint8 Motivo errore varia
5 uint8 Cambio Audio 0x07
6 uint8 Codice messaggio relativo al cambio audio varia

Tieni presente che, se il provider è il mittente, l'indirizzo MAC non è richiesto.

Ottieni la funzionalità Cambio Audio

Sia il provider Cambio Audio che il dispositivo di ricerca possono verificare se l'accoppiamento rapido connesso Il ricercatore/provider supporta o meno Cambio Audio utilizzando il messaggio seguente:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio Audio 0x07
1 uint8 Ottieni la funzionalità Cambio Audio 0x10
2 - 3 uint16 Dati aggiuntivi 0

Tabella 4.3.1.0: Acquisizione della funzionalità Cambio Audio

Funzionalità di notifica per Cambio Audio

Dopo aver ricevuto il messaggio Ricevi la funzionalità Cambio Audio , la funzionalità di ricerca/provider di opzione Audio risponderà con uno dei seguenti elementi: :

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio Audio 0x07
1 uint8 Funzionalità di notifica per Cambio Audio 0x11
2 - 3 uint16 Dati aggiuntivi 20 se viene inviato dal cercatore
4 se viene inviato dal provider
4 - 5 uint16 Codice versione per Cambio Audio Un valore diverso da zero indica che supporta Cambio Audio. Il codice della versione corrente (con il miglioramento della sicurezza) è 0x0102.
0x0000 o nessuna risposta entro 1 secondo significa che Cambio Audio non è supportato su questo dispositivo
Istruzione primaria e secondaria bandiere Flag per la funzionalità Cambio Audio del provider
Se questo viene inviato dal Seeker, questi due byte devono essere ignorati.
varia
Consulta Flag per funzionalità di cambio audio
8 - 15 Nonce messaggio
Obbligatorio solo se inviato dal ricercatore
varia
16 - 23 Codice di autenticazione del messaggio
Obbligatorio solo quando l'email viene inviata dal ricercatore
varia

Tabella 4.3.1.1: Funzionalità di notifica del cambio audio

Flag per funzionalità Cambio Audio
  1. Bit 0 (ottetto 6, MSB): stato commutazione audio

    • 1, se lo stato Cambio Audio è attivo
    • 0, altrimenti
  2. Bit 1: configurabilità multipunto

    • 1, se il dispositivo supporta la connettività multipunto e può essere attivato/disattivato non attivo
    • 0, altrimenti (non supporta la multipunto o la multipunto è sempre attiva)
  3. Bit 2: stato corrente multipunto

    • 1, se la connettività multipunto è attivata
    • 0, altrimenti
  4. Bit 3: rilevamento in linea

    • 1, se il dispositivo supporta il rilevamento "on-head" (anche se questo è disattivato ora)
    • 0, altrimenti
  5. Bit 4: stato attuale di rilevamento in testa

    • 1, se il rilevamento "on-head" è attivo
    • 0, altrimenti (non supporta il rilevamento on-head o il rilevamento on-head è disattivata)
  6. Tutti gli altri bit sono riservati; il valore predefinito è 0.

Imposta stato multipunto

Per gli utenti che hanno selezionato il cambio audio, potremmo fornire agli utenti l'impostazione per l'attivazione e la disattivazione. una funzionalità multipunto. Il ricercatore imposterà lo stato multipunto Provider che utilizza il messaggio seguente:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio Audio 0x07
1 uint8 Imposta stato multipunto 0x12
2 - 3 uint16 Dati aggiuntivi 17
4 uint8 Stato multipunto 0: disattiva il multipunto
1: attiva il multipunto
5 - 12 Nonce messaggio varia
13 - 20 Codice di autenticazione del messaggio varia

Tabella 4.3.1.2: Impostazione dello stato multipunto

Imposta preferenza di passaggio

Chi cerca il cambio audio può modificare la preferenza di commutazione tra multipunto e impostazione al provider utilizzando il messaggio seguente:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio Audio 0x07
1 uint8 Imposta preferenza di passaggio 0x20
2 - 3 uint16 Dati aggiuntivi 18
4 bandiere Preferenza di passaggio varia
Consulta il flag di preferenza passaggio multipunto
5 Impostazioni di cambio avanzate
Questo byte è riservato, il valore predefinito è 0
varia
Istruzione primaria e secondaria Nonce messaggio varia
14 - 21 Codice di autenticazione del messaggio varia

Tabella 4.3.2.0: Impostare la preferenza di passaggio

Flag preferenza passaggio multipunto
  • Bit 0 (MSB): A2DP vs A2DP (valore predefinito 0)
  • Bit 1: HFP e HFP (predefinito 0)
  • Bit 2: A2DP vs HFP (valore predefinito 0)
  • Bit 3: HFP e A2DP (predefinito 1)
  • Bit 4 - 7: riservato
  • Sopra rappresenta come "nuova richiesta di profilo" rispetto a "profilo attivo attuale"
    • 0 per mancato passaggio
    • 1 per il passaggio

Visualizza preferenza di passaggio

Chi cerca il cambio audio può interrogare la preferenza di commutazione del multipunto dal Provider che utilizza il messaggio seguente:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio Audio 0x07
1 uint8 Ottieni passaggio da una configurazione all'altra 0x21
2 - 3 uint16 Dati aggiuntivi 0

Tabella 4.3.2.1: Come ottenere le preferenze di passaggio

Notifica preferenza di cambio

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio Audio 0x07
1 uint8 Notifica preferenza di cambio 0x22
2 - 3 uint16 Dati aggiuntivi 2
4 bandiere Flag di preferenza per il passaggio varia
Consulta il flag di preferenza passaggio multipunto
5 Impostazioni di selezione avanzate
Questo byte è riservato, il valore predefinito deve essere 0
varia

Tabella 4.3.2.2: Notifica delle preferenze di cambio

Cambia sorgente audio attiva (al dispositivo connesso)

Chi cerca il cambio audio può richiedere al provider multipunto di cambiare lo stato attivo sorgente audio tra i dispositivi connessi utilizzando il seguente messaggio:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio Audio 0x07
1 uint8 Cambia sorgente audio attiva (al dispositivo connesso) 0x30
2 - 3 uint16 Dati aggiuntivi 17
4 bandiere Cambio dei flag di eventi della sorgente audio attiva varia
Consulta l'articolo relativo alla cambio di una sorgente audio attiva.
5 - 12 Nonce messaggio varia
13 - 20 Codice di autenticazione del messaggio varia

Tabella 4.3.3.0: Cambiare la sorgente audio attiva (al dispositivo connesso)

Cambio dell'evento di sorgente audio attiva in corso...
  • Bit 0 (MSB): 1 commuta su questo dispositivo, 0 passa al secondo dispositivo connesso
  • Bit 1: 1 riprendi la riproduzione sullo switch verso il dispositivo dopo il cambio, 0 altrimenti. Se si riprende la riproduzione, il Fornitore invia una notifica PLAY al Cercatore. tramite il profilo AVRCP. Se lo stato precedente (prima del passaggio alla vecchia versione) non era PLAY, il provider dovrebbe ignorare questo flag.
  • Bit 2: 1 rifiuto SCO sul dispositivo disinserito, 0 altrimenti
  • Bit 3: 1 disconnessione Bluetooth sul dispositivo interruttore di distanza, 0 altrimenti.
  • Bit 4 - 7: riservato.

Chi cerca il cambio audio potrebbe non conoscere sempre correttamente il proprio stato, quindi è possibile affinché il Fornitore riceva uno "switch to this device" quando il ricercatore è già il dispositivo attivo. In questo caso, per mostrare la UI corretta su Seeker, la finestra Il provider può inviare un NAK con il motivo dell'errore, 0x4 - Azione dispositivo ridondante.

Per un Fornitore audio LE con più di un membro definito, il Fornitore deve disconnettere tutti i membri da Seeker, altrimenti lo stack Bluetooth Il ricercatore si riconnette al provider.

Tornare indietro (a dispositivo disconnesso)

Se il cambio di connessione è indesiderato, gli utenti possono ripristinare il passaggio e in alcuni casi, ha senso ripristinare la connessione audio per ridurre al minimo e un'interruzione del servizio. Il ricercatore utilizzerà il messaggio riportato di seguito per attivare il passaggio alla versione precedente:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio Audio 0x07
1 uint8 Tornare indietro (a dispositivo disconnesso) 0x31
2 - 3 uint16 Dati aggiuntivi 17
4 uint8 Torna indietro evento varies
0x01: torna indietro
0x02: torna indietro e riprendi la riproduzione
5 - 12 Nonce messaggio varia
13 - 20 Codice di autenticazione del messaggio varia

Tabella 4.3.3.1: Tornare indietro (a dispositivo disconnesso)

Nel caso dei provider multipunto, per effettuare un cambio di connessione, un provider può ignorare connessione con un dispositivo di origine audio e mettere in pausa la sessione audio sull'altro sorgente audio. Ad esempio, supponiamo che le cuffie multipunto siano connesse tablet e un terzo dispositivo Cambio Audio supportato. L'utente sta guardando il video su sul tablet quando c'è una chiamata in arrivo sullo smartphone. Lo smartphone attiverà un interruttore di connessione sulle cuffie, che deve interrompere la connessione per potersi connettere al telefono, mettendo in pausa anche i contenuti multimediali sessione sul tablet per ricevere la suoneria dallo smartphone. Se l'utente rifiuta al momento della chiamata, lo smartphone potrebbe chiedere alle cuffie di "tornare indietro e riprendere la riproduzione". Dopo aver ricevuto questa richiesta, le cuffie devono riconnettersi al terzo dispositivo e riprendi la riproduzione del video in pausa sul tablet.

Notifica evento multi-point-switch

Per informare gli utenti che si sta verificando un evento di switch multipunto, seleziona Cambio Audio La ricerca potrebbe mostrare una notifica agli utenti. Il provider dovrebbe notificare connesso Utenti che hanno cercato il cambio audio in merito all'evento di passaggio.

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio Audio 0x07
1 uint8 Notifica evento di switch multipunto
Il provider deve inviarlo a ogni switch, incluso il dispositivo di ricerca Cambio Audio a dispositivo di ricerca Cambio Audio, Dispositivo di ricerca cambio Cambio Audio e Dispositivo di ricerca Cambio di Audio e Dispositivo di ricerca Cambio di Audio.
0x32
2 - 3 uint16 Dati aggiuntivi varia
4 uint8 Motivo del passaggio
Questo valore deve essere determinato in base allo stato della connessione. Per i casi d'uso di LE audio, può essere utile esaminare la mappatura tra il tipo di contesto LE audio e lo stato della connessione. Ad esempio, lo stato della connessione corrispondente agli assistenti vocali è 0x9(LE audio - streaming delle chiamate). Di conseguenza, il motivo del passaggio per un passaggio avviato dagli assistenti vocali deve essere 0 x 02.
varia
0x00: Non specificato
0x01: Contenuti multimediali (ad es. streaming A2DP, streaming di contenuti multimediali LEA)
0x02: Chiamata (ad es. streaming HFP, streaming di chiamate LEA)
5 uint8 Dispositivo di destinazione varies
0x01: questo dispositivo
0x02: un altro dispositivo connesso
6 - n utf8 Nome del dispositivo di destinazione
se il dispositivo di destinazione è Cambio Audio, utilizzando il nome inviato dal ricercatore oppure il nome del BT, se non applicabile, utilizzando gli ultimi 2 byte del suo indirizzo
varia

Tabella 4.3.3.2: Notifica di un evento multipoint-switch

Recuperare lo stato della connessione

Il ricercatore può ottenere lo stato di connessione corrente dal provider:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio Audio 0x07
1 uint8 Recuperare lo stato della connessione 0x33
2 - 3 uint16 Dati aggiuntivi 0

Tabella 4.3.3.3: Recupero dello stato di connessione

Alla ricezione di questo messaggio, il Fornitore risponderà con il codice messaggio 0 x 34, notifica lo stato della connessione.

Invia notifica stato connessione

Come definito nel payload pubblicitario BLE, per provider multipunto, se lo stato della connessione cambia, tranne la modifica pacchetto pubblicitario, il provider deve anche avvisare i ricercatori connessi che usano la stessa chiave account in merito alla modifica. Se il provider è connesso con un Ricerca Cambio Audio e un Cercatore Cambio Audio, se l'opzione switch Seeker è attivo, il provider deve anche informare l'emittente switch Seeker sullo stato della connessione (utilizzando la chiave dell'account del dispositivo di ricerca).

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio Audio 0x07
1 uint8 Invia notifica stato connessione 0x34
2 - 3 uint16 Dati aggiuntivi varia
4 uint8 flag dispositivo attivo varia
0x00: questo dispositivo di ricerca è passivo e il dispositivo attivo utilizza la stessa chiave account
0x01: questo ricercatore è il dispositivo attivo
0x02: questo dispositivo di ricerca è passivo, mentre il dispositivo attivo non è un dispositivo di ricerca Cambio Audio.
5 - n Stato della connessione criptata varia
n+1 - n+8 Nonce messaggio varia

Tabella 4.3.3.4: Notifica dello stato di connessione

Messaggio di stato della connessione criptata

 encrypted_connection_status = connection_status_raw_data ^ AES(Key, IV)

dove:

Notifica connessione avviata per Cambio Audio

I fornitori di Cambio Audio potrebbero dover sapere se il cambio di connessione è attivato tramite Cambio Audio per avere reazioni diverse, ad esempio disattiva le earcon per audio cambiare eventi. Il cercatore invia un messaggio per comunicare al provider che era una connessione avviata da Cambio Audio.

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio Audio 0x07
1 uint8 Notifica connessione avviata per Cambio Audio 0x40
2 - 3 uint16 Dati aggiuntivi 17
4 uint8 Indicazione di connessione avviata per cambio audio varia
0: questa connessione non è stata attivata da Cambio Audio.
1: si trattava di una connessione avviata da Cambio Audio.
5 - 12 Nonce messaggio varia
13 - 20 Codice di autenticazione del messaggio varia

Tabella 4.3.4.0: Connessione di commutazione di audio notifica avviata

Indica la chiave dell'account in uso

Se più chiavi account nel dispositivo di ricerca (ad es. multiutente) sono associate a il provider, il ricercatore utilizzerà il messaggio riportato di seguito per indicare quale account sia in uso.

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio Audio 0x07
1 uint8 Indica la chiave dell'account in uso 0x41
2 - 3 uint16 Dati aggiuntivi 22
4 - 9 utf8 Stringa in uso UTF8 ("in uso")
10 - 17 Nonce messaggio varia
18 - 25 Codice di autenticazione del messaggio varia

Tabella 4.3.4.1: Indicare la chiave dell'account in uso

Dopo aver ricevuto questo messaggio, il provider può sapere quale chiave dell'account è in uso verificando il codice di autenticazione del messaggio.

Invia dati personalizzati

Il dispositivo di ricerca Cambio Audio attivo può incapsulare le informazioni (ad esempio, (utilizzo) dello stream audio in un byte di dati personalizzato e invialo al provider utilizzando il messaggio riportato di seguito:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio Audio 0x07
1 uint8 Invia dati personalizzati 0x42
2 - 3 uint16 Dati aggiuntivi 17
4 uint8 Dati personalizzati varia
5 - 12 Nonce messaggio varia
13 - 20 Codice di autenticazione del messaggio varia

Tabella 4.3.4.2: Inviare dati personalizzati

Alla ricezione dei dati personalizzati, il fornitore aggiornerà il pacchetto pubblicitario per includere i dati personalizzati. Per un provider multipunto, deve anche inviare una notifica lo stato della connessione passa a un altro ricercatore connesso che utilizza la stessa chiave di account.

Imposta destinazione connessione per il rilascio

Sulle cuffie multipunto, se la connessione preferita da interrompere non è usato meno di recente, chi cerca il cambio audio può indicare al provider quale dispositivo che vuoi abbandonare utilizzando il messaggio seguente:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio Audio 0x07
1 uint8 Imposta destinazione connessione per il rilascio 0x43
2 - 3 uint16 Dati aggiuntivi 17
4 uint8 Destinazione del dispositivo connesso da eliminare varia
1: questo dispositivo
5 - 12 Nonce messaggio varia
13 - 20 Codice di autenticazione del messaggio varia

Tabella 4.3.4.3: Impostare la destinazione per l'interruzione della connessione

Implementazione dei riferimenti

Consulta Libreria SDK incorporata nelle vicinanze per l'implementazione di riferimento