Bluetooth Low Energy Audio (LEA) garantisce che gli utenti possano ricevere audio ad alta fedeltà senza sacrificare la durata della batteria e consente loro di passare senza problemi da un caso d'uso all'altro. Android 13 (livello API 33) include il supporto integrato per LEA.
La maggior parte delle cuffie LEA sarà in modalità duale finché la quota di mercato dei dispositivi sorgente LEA non aumenterà. Gli utenti devono essere in grado di accoppiare e configurare entrambi i trasporti sulle cuffie dual mode.
Casi d'uso
Potresti voler integrare LEA per i seguenti casi d'uso:
Condivisione dell'audio: gli utenti possono condividere contemporaneamente più stream audio con uno o più dispositivi di ricezione audio. L'audio viene sincronizzato tra il dispositivo di origine e i dispositivi connessi.
Trasmissione audio: gli utenti possono trasmettere l'audio ad amici e familiari, oltre a connettersi a trasmissioni pubbliche per informazioni, intrattenimento o accessibilità.
Supporto del codec audio LC3: questo è il codec audio predefinito e sostituisce il codec SBC utilizzato per A2DP (media) e mSBC in HFP (voce). LC3 è più efficiente, riconfigurabile e di qualità superiore.
Miglioramenti del campionamento audio: le cuffie possono mantenere un'elevata qualità dell'audio in uscita quando si utilizzano i microfoni. Bluetooth Classic riduce la qualità audio quando si utilizzano microfoni Bluetooth. Con BLE Audio, il campionamento di input e output può raggiungere i 32 kHz.
Microfono stereo: gli hearable possono registrare l'audio con microfoni stereo per miglioramenti dell'audio spaziale.
Supporto del profilo HAP (Hearing Aid Profile): HAP offre agli utenti una maggiore accessibilità e un utilizzo migliore rispetto ai protocolli ASHA precedenti. Gli utenti possono utilizzare i propri apparecchi acustici per le telefonate e le applicazioni VoIP.
Supporto del protocollo EATT (Enhanced Attribute Protocol): EATT ti consente di inviare più comandi contemporaneamente ai dispositivi hearable accoppiati.
Scenari chiave
Esistono quattro categorie principali di casi d'uso:
Conversazionale: le applicazioni di composizione e VoIP che richiedono un routing di comunicazione a bassa latenza offrono un audio di alta qualità e un minore utilizzo della batteria.
Gaming: il microfono simultaneo e la riproduzione ad alta fedeltà consentono ai giochi di riprodurre in streaming audio di alta qualità sugli hearable. Un'app di gioco può accedere all'input audio BLE quando un gioco attiva il microfono Bluetooth come pronto per l'uso. In questo modo, quando un giocatore avvia una conversazione dal vivo con un altro giocatore, l'app di gioco può utilizzare i dati del microfono senza ritardi.
Contenuti multimediali: le applicazioni multimediali possono impostare il dispositivo preferito del gestore audio. L'utente può eseguire l'override di questa impostazione modificando il dispositivo preferito nelle impostazioni del sistema.
Accessibilità: gli apparecchi acustici che supportano BLE Audio possono utilizzare il microfono, consentendo agli utenti di utilizzarli continuamente per una chiamata.
API e metodi BLE Audio
Le seguenti API e i seguenti metodi sono necessari per supportare i dispositivi audio BLE Audio:
AudioManager
setCommunicationDevice()seleziona il dispositivo audio da utilizzare per i casi d'uso di comunicazione, ad esempio chiamate vocali o videochiamate. Questo metodo può essere utilizzato dalle applicazioni di chat vocale o videochiamata per selezionare un dispositivo audio diverso da quello selezionato per impostazione predefinita dalla piattaforma. Questa API sostituisce le seguenti API ritirate:startBluetoothSco(),stopBluetoothSco()esetSpeakerphoneOn().clearCommunicationDevice()viene chiamato dopo che l'app ha terminato una chiamata o una sessione per garantire all'utente un'esperienza ottimale quando passa da un'applicazione all'altra.
BluetoothProfile
BluetoothLeAudiocontrolla il servizio Bluetooth utilizzando un oggetto proxy.
Telecom InCallService
InCallService.requestCallEndpointChange()sostituisce le APIInCallService.setAudioRoute()eInCallService.requestBluetoothAudio()deprecate e consente alle app di richiedere il routing audio a unCallEndpointspecifico. I client non devono definire il proprioCallEndpointquando richiedono una modifica. Il nuovo endpoint deve essere uno degli endpoint validi forniti daInCallService.onAvailableCallEndpointsChanged(java.util.List).CallEndpoint.TYPE_BLUETOOTHindirizza lo stream audio tramite Bluetooth.- Queste API
InCallServicesono progettate per essere utilizzate dall'app Telefono predefinita su uno smartphone o da altre piattaforme di chiamata come indossabili, automobili o altri dispositivi Bluetooth che potrebbero voler influenzare il routing dell'audio.
Telecom CallControl
- La classe
CallControlè stata introdotta in Android 14 (livello API 34) e sostituisceConnectioneConnectionServicesolo per le applicazioni VoIP. CallControl.requestCallEndpointChange()richiede anche una modifica diCallEndpoint. Questa API sostituisce le APIConnection.requestBluetoothAudio()eConnection.setAudioRoute()deprecate.- Oltre alle API della piattaforma Telecom aggiornate, la libreria Telecom Jetpack è vivamente consigliata per la creazione di applicazioni per chiamate vocali o videochiamate. Questa libreria può semplificare notevolmente il processo di integrazione e migliorare le chiamate VoIP su tutte le piattaforme Android.
Informazioni sul dispositivo audio
AudioDeviceInfo.TYPE_BLE_HEADSETdescrive il tipo di dispositivo audio come un dispositivo LEA. Utilizzato per identificare se il dispositivo hearable è un dispositivo LEA.
Registratore audio
setPreferredDevice()imposta il dispositivo preferito da utilizzare per il routing audio. L'utente può eseguire l'override di questa impostazione nelle impostazioni di sistema.
Adattatore Bluetooth
isLeAudioSupported(): restituisce una costante@BluetoothStatusCodes(FEATURE_SUPPORTED,FEATURE_NOT_SUPPORTEDo un codice di errore) che indica se l'hardware del dispositivo supporta LE Audio.isLeAudioBroadcastSourceSupported(): restituisce una costante@BluetoothStatusCodes(FEATURE_SUPPORTED,FEATURE_NOT_SUPPORTEDo un codice di errore) che indica se l'hardware del dispositivo supporta la sorgente di trasmissione LE Audio.
Guide basate sul caso d'uso
Di seguito sono riportate le linee guida per l'implementazione di LEA in base a casi d'uso specifici.
Applicazioni di comunicazione vocale
Le applicazioni di comunicazione vocale possono scegliere di gestire il routing audio e lo stato del dispositivo gestendo autonomamente il proprio stato o utilizzando l'API Telecom, che esegue il routing audio e la logica di stato per te.
Gestione autonoma: per le applicazioni che utilizzano
startBluetoothSco(),stopBluetoothSco()esetSpeakerphoneOn()o che vogliono gestire autonomamente lo stato di routing dell'audio, segui la guida alle chiamate con gestione autonoma di Audio Manager.Gestito: utilizza la libreria Jetpack Telecom o le API della piattaforma Telecom per creare un'applicazione per chiamate audio o video.
Queste due soluzioni ti consentono di controllare il routing audio e di passare da un dispositivo Bluetooth all'altro. Per saperne di più, consulta la guida alle chiamate gestite da Telecom.
Applicazioni di registrazione audio
- Media Recorder: quando registri l'audio utilizzando Media Recorder, puoi registrare in stereo se il dispositivo audio Bluetooth supporta LEA. Per saperne di più, consulta la guida alla registrazione audio.
Consigli per il visore
Con l'uscita di un numero sempre maggiore di cuffie LEA, abbiamo riscontrato problemi nei test reali che compromettono l'esperienza utente. La specifica non copre tutti questi problemi. La tabella seguente fornisce un elenco di consigli che i produttori di cuffie LEA devono seguire per migliorare l'esperienza end-to-end per gli utenti Android.
| Descrizione | Contesto |
|---|---|
Supporto della Cross Transport Key Derivation (CTKD) per le cuffie dual-mode:
|
La maggior parte delle nuove cuffie LEA sarà dual-mode finché la quota di mercato dei dispositivi sorgente LEA non aumenterà. È importante che gli utenti possano accoppiare le cuffie dual-mode senza problemi e configurare entrambi i trasporti. Questo è importante anche per l'accoppiamento rapido di Google. |
|
Supporta gli annunci mirati (TA) se vuoi che le tue cuffie LEA si riconnettano in modo affidabile ai dispositivi di origine. Gli auricolari LE Audio devono utilizzare gli annunci di trasporto per richiedere una connessione in entrata dai dispositivi centrali. Verrà aggiunto alla prossima versione di BT SIG. |
A differenza del modello di paging di BR/EDR, in cui una connessione può essere avviata sia dallo smartphone che dalle cuffie, una connessione in LEA deve essere avviata dal dispositivo centrale. Molte cuffie non utilizzano i TA, il che significa che il dispositivo centrale potrebbe non essere in grado di riconnettersi alla periferica senza aggiungerla a una lista consentita. Tuttavia, una soluzione alternativa con lista consentita potrebbe impedire alle cuffie di connettersi a un dispositivo centrale diverso. Pertanto, è importante che le cuffie LEA supportino correttamente i TA in modo che il dispositivo centrale possa riconnettersi in modo affidabile senza soluzioni alternative che potrebbero interrompere le connessioni multipunto. |
Rilevabilità ottimizzata per gli auricolari dual mode
|
In questo modo, gli auricolari LEA dual-mode non vengono visualizzati come voci duplicate nelle impostazioni Bluetooth, il che potrebbe confondere gli utenti e compromettere l'esperienza di accoppiamento LEA.
L'elezione dinamica del leader è particolarmente importante per i dispositivi dual-mode che vengono accoppiati in modo incrementale. Ad esempio, se durante l'accoppiamento iniziale è disponibile un solo auricolare, questo deve presentarsi come un dispositivo dual-mode. Quando un utente accoppia il secondo auricolare in un secondo momento, deve solo accoppiarlo con il componente LE e CSIP si assicurerà che vengano raggruppati su Android. L'indirizzo di identità è consigliato durante l'accoppiamento perché il componente BR/EDR espone già l'indirizzo pubblico del dispositivo ai dispositivi nelle vicinanze. |
| Supportare l'Enhanced Attribute Protocol (EATT). | Riduce la latenza di accoppiamento e connessione. |
| Supportare la memorizzazione nella cache GATT robusta. | Riduce la latenza di connessione, in particolare per gli auricolari TWS. |
| Supporto della classificazione secondaria della connessione. | Consente una pianificazione dei pacchetti più flessibile e un potenziale risparmio della batteria. |
| Assicurati che durante la pre-elaborazione e la post-elaborazione sia per la riproduzione che per l'acquisizione, la pipeline di elaborazione del segnale possa funzionare a 16, 24, 32 e 48 kHz, oltre a supportare frequenze più elevate. | Sfrutta le frequenze di campionamento più elevate supportate per i percorsi di acquisizione delle chiamate LEA o VoIP e la riproduzione di contenuti multimediali. |
| Supporto di LE Power Control | Gestione dell'alimentazione migliorata |
Supporto del tipo di contesto
| Descrizione | Contesto |
|---|---|
| Utilizza tutti i tipi di contesto specificati in Assigned Numbers 6.12.3, a meno che le cuffie non supportino esplicitamente un determinato tipo di contesto. | Ad esempio, se il tipo di contesto "Gioco" non è supportato, Android invierà i suoni del gioco. In particolare, tieni presente che il tipo di contesto "Non specificato" non significa "qualsiasi tipo di contesto" e non copre i tipi di contesto non supportati. |
Quando il dispositivo centrale interagisce con l'ASCS del dispositivo periferico, la periferica deve connettersi all'MCS e al TBS del dispositivo centrale. Il dispositivo centrale potrebbe non utilizzare sempre LE Audio come percorso di streaming, perché potrebbe tornare a utilizzare A2DP o HFP. Il dispositivo periferico può utilizzare l'interazione ASCS come indicazione per stabilire se il dispositivo centrale utilizzerà LE audio per lo streaming. Alcuni esempi di interazioni ASCS sono la lettura, la scrittura e la registrazione per la notifica. |
Consigli per i trasmettitori Auracast
Questa sezione fornisce consigli per la configurazione dei trasmettitori Auracast.
Trasmissioni intermittenti
Gli annunci audio negli spazi pubblici, come i terminal dei trasporti, sono spesso intermittenti e separati da lunghi periodi di silenzio. La trasmissione continua di silenzio o audio di sottofondo tra gli annunci consuma la batteria del ricevitore e impedisce agli utenti di ascoltare lo stream audio principale, come i contenuti multimediali locali o un altro stream Auracast attivo.
Per migliorare l'esperienza utente, Android consiglia ai trasmettitori Auracast di rispettare le seguenti linee guida per la gestione delle trasmissioni intermittenti.
Definizioni
- Audio di interesse: i contenuti informativi principali destinati all'utente, come un annuncio di un gate o di un treno.
- Audio di sottofondo: silenzio, rumore statico o musica d'ambiente di sottofondo trasmessi tra i periodi di audio di interesse.
- Trasmissione intermittente: una trasmissione che alterna periodi di audio di interesse e periodi di audio di sottofondo o nessun audio.
Identificazione delle trasmissioni intermittenti
Per designare una trasmissione come trasmissione intermittente, l'emittente deve includere la struttura LTV (Length-Type-Value) dei metadati Audio_Active_State [1] in due posizioni:
- La struttura BASE dei metadati di livello 2 (annunci periodici) [2]
- The Public Broadcast Announcement Metadata (Extended Advertisements) [3]
Per aiutare il ricevitore a identificare la trasmissione intermittente e decidere se riprodurre lo stream, l'emittente deve anche impostare con precisione la struttura LTV dei metadati Streaming_Audio_Context [1].
Identificazione dell'audio di interesse
Per segnalare dinamicamente se una trasmissione intermittente contiene audio di interesse in un determinato momento, il trasmettitore utilizza le strutture LTV dei metadati Audio_Active_State.
- Metadati di livello 2 della struttura BASE: un valore pari a 0x01 indica che i BIS in un sottogruppo contengono audio di interesse.
- Metadati dell'annuncio di trasmissione pubblica: un valore pari a 0x01 indica che almeno uno dei BIS all'interno di un BIG contiene audio di interesse.
I valori LTV dei metadati Audio_Active_State devono essere impostati su 0x01 poco prima della trasmissione dell'audio di interesse, per consentire a un dispositivo di scansione di sincronizzarsi con una sorgente di trasmissione pubblica. Al contrario, deve essere impostato su 0x00 poco dopo la fine della trasmissione.
Sfruttare il contesto dell'audio in streaming
Fornire un contesto esplicito aiuta il framework Android e i dispositivi di ricezione a dare la priorità agli stream in entrata. Ad esempio, un sistema di diffusione sonora (PA) può impostare il tipo Streaming_Audio_Context su Instructional per consentire agli annunci di interrompere in modo pulito la riproduzione di contenuti multimediali locali di un ricevitore e riprenderla senza problemi in un secondo momento.
Riferimenti
[1] Bluetooth Assigned Numbers,
https://www.bluetooth.com/specifications/assigned-numbers/
[2] Basic Audio Profile,
https://www.bluetooth.com/specifications/specs/basic-audio-profile-1-0-3/
[3] Public Broadcast Profile,
https://www.bluetooth.com/specifications/specs/public-broadcast-profile-1-0-2/