Bluetooth Low Energy Audio (LEA) garantisce agli utenti di ricevere audio ad alta fedeltà senza sacrificare la durata della batteria e consente loro di passare facilmente 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à dual-mode finché la quota di mercato dei dispositivi sorgente LEA non aumenterà. Gli utenti dovrebbero 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 audio: gli utenti possono condividere contemporaneamente più stream audio con uno o più dispositivi di riproduzione audio. L'audio viene sincronizzato tra il dispositivo sorgente e i dispositivi connessi.
Trasmissione audio: gli utenti possono trasmettere audio ad amici e familiari, nonché 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'alta qualità dell'audio di output quando si utilizzano i microfoni. Il Bluetooth classico 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 audio con microfoni stereo per miglioramenti dell'audio spaziale.
Supporto del profilo HAP (Hearing Aid Profile): HAP offre agli utenti maggiore accessibilità e utilizzo rispetto ai precedenti protocolli ASHA. Gli utenti possono utilizzare i propri apparecchi acustici per le chiamate e le applicazioni VoIP.
Supporto del protocollo Enhanced Attribute (EATT): EATT consente agli sviluppatori di inviare più comandi contemporaneamente agli hearable accoppiati.
Scenari chiave
Esistono quattro categorie principali di casi d'uso:
Conversazionale: le applicazioni di composizione e VoIP che richiedono il routing delle comunicazioni a bassa latenza offrono audio di alta qualità e un minore utilizzo della batteria.
Gaming: la riproduzione simultanea del microfono e ad alta fedeltà consente ai giochi di trasmettere audio di alta qualità agli hearable. Un'app di gioco può accedere all'input audio BLE quando un gioco attiva il microfono Bluetooth come pronto all'uso. In questo modo, quando un giocatore avvia una conversazione live con un altro giocatore, l'app di gioco può utilizzare i dati del microfono senza ritardi.
Media: le applicazioni multimediali possono impostare il dispositivo preferito di Audio Manager. L'utente può ignorare questa impostazione modificando il dispositivo preferito dalle impostazioni del sistema.
Accessibilità: gli apparecchi acustici che supportano BLE Audio ora possono utilizzare il microfono, consentendo agli utenti di utilizzarli continuamente per una chiamata.
API e metodi audio BLE
Per supportare gli hearable audio BLE sono necessarie le seguenti API e i seguenti metodi:
AudioManager
setCommunicationDevice()seleziona il dispositivo audio da utilizzare per i casi d'uso della 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 al termine di una chiamata o di una sessione dell'app per garantire all'utente un'esperienza ottimale quando passa da un'applicazione all'altra.
BluetoothProfile
BluetoothLeAudiocontrolla il servizio Bluetooth tramite l'oggetto proxy.
Telecom InCallService
InCallService#requestCallEndpointChange()sostituisce le APIInCallService.setAudioRoute()eInCallService.requestBluetoothAudio()deprecate per consentire alle app di richiedere il routing audio a unCallEndpointspecifico. I clienti 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 il flusso audio tramite Bluetooth.- Queste API
InCallServicesono progettate per essere utilizzate dall'app Telefono predefinita su uno smartphone Android o da altre interfacce di chiamata come indossabili, automobili o altri dispositivi Bluetooth che potrebbero voler influenzare il routing dell'audio.
Telecom CallControl
- La nuova classe
CallControlviene introdotta nel livello API 34 per sostituireConnectioneConnectionServicesolo per le applicazioni VoIP. CallControl.requestCallEndpointChange()richiede anche una modificaCallEndpoint. Questa API sostituisce le APIConnection.requestBluetoothAudio()eConnection.setAudioRoute()deprecate.- Oltre alle API della piattaforma di telecomunicazioni aggiornate, la libreria Jetpack Telecom è altamente consigliata per la creazione di applicazioni di chiamate vocali e/o video. 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 dispositivo LEA. Utilizzato per identificare se il dispositivo uditivo è 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 l'origine 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 gestisce la logica di routing audio e di stato.
Autogestito: per le applicazioni che attualmente utilizzano
startBluetoothSco(),stopBluetoothSco(), esetSpeakerphoneOn()o che vogliono gestire autonomamente lo stato di routing audio, segui la guida alle chiamate autogestite di Audio Manager.Gestito: utilizza la libreria Telecom Jetpack o le API della piattaforma Telecom per creare un'applicazione di chiamate audio o video.
Queste due soluzioni ti consentono di controllare in modo rapido e semplice il routing audio e di passare da un dispositivo Bluetooth all'altro. Per saperne di più, consulta la guida alle chiamate gestite dall'operatore.
Applicazioni di registrazione audio
- Registratore multimediale: quando registri audio utilizzando il Registratore multimediale, ora puoi registrare in stereo se l'apparecchio acustico Bluetooth supporta LEA. Consulta la guida alla registrazione audio.
Consigli per le cuffie
Con il rilascio di un numero sempre maggiore di visori LEA, abbiamo riscontrato problemi nei test reali che peggiorano l'esperienza utente. La specifica non copre tutti questi problemi. La seguente tabella 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 derivazione della chiave di trasporto incrociato (CTKD) per
cuffie dual-mode:
|
La maggior parte dei nuovi headset 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 se vuoi che le cuffie LEA si riconnettano in modo affidabile ai dispositivi di origine. Gli auricolari LE Audio devono utilizzare i TA per richiedere una connessione in entrata dai dispositivi centrali. Verrà aggiunto al prossimo BT SIG. |
A differenza del modello di paging di BR/EDR, in cui una connessione può essere avviata dal telefono o dalle cuffie, una connessione in LEA deve essere avviata dal dispositivo centrale. Attualmente, molte cuffie non utilizzano 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 per la lista consentita potrebbe impedire alle cuffie di connettersi a un altro dispositivo centrale. Pertanto, è importante che le cuffie LEA supportino correttamente gli assistenti vocali in modo che il dispositivo centrale possa riconnettersi in modo affidabile senza soluzioni alternative che potrebbero interrompere le connessioni multipunto. |
Visibilità 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.
La selezione 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 dispositivo dual-mode. Quando un utente esegue l'accoppiamento con il secondo auricolare in un secondo momento, deve solo eseguire l'accoppiamento con il componente LE e CSIP si assicurerà che siano 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. |
| Supporto del protocollo per gli attributi avanzati (EATT). | Riduce la latenza di accoppiamento e connessione. |
| Supporto di una solida memorizzazione nella cache GATT. | Riduce la latenza della connessione, soprattutto per gli auricolari TWS. |
| Supporto della valutazione secondaria della connessione. | Consente una pianificazione dei pacchetti più flessibile e un potenziale risparmio di batteria. |
| Assicurati che durante la pre-elaborazione e la post-elaborazione per la riproduzione e l'acquisizione, la pipeline di elaborazione del segnale possa operare 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 di chiamate LEA o VoIP e la riproduzione di contenuti multimediali. |
| Supporto LE Power Control | Migliore gestione dell'alimentazione |
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 ripiegare sull'utilizzo di A2DP o HFP. Il dispositivo periferico può utilizzare l'interazione ASCS come indicazione del fatto che il dispositivo centrale utilizzerà LE Audio per lo streaming. Alcuni esempi di interazioni ASCS sono lettura, scrittura e registrazione per la notifica. |
Suggerimenti 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 pubblici, sono spesso intermittenti e separati da lunghi periodi di silenzio. Lo streaming continuo di silenzio o audio di sottofondo tra gli annunci spreca l'energia del ricevitore e impedisce agli utenti di ascoltare il flusso audio principale, ad esempio 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, ad esempio l'annuncio di un gate o di un treno.
- Audio di sottofondo:silenzio di sottofondo, staticità o musica ambient 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.
Identificare le 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:
- The BASE structure Level 2 Metadata (Periodic Advertisements) [2]
- The Public Broadcast Announcement Metadata (Extended Advertisements) [3]
Per aiutare il destinatario 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, l'emittente utilizza le strutture LTV dei metadati Audio_Active_State.
- Metadati di livello 2 della struttura BASE:un valore di 0x01 indica che i BIS in un sottogruppo contengono attualmente 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 di trasmettere l'audio di interesse, consentendo 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 dello streaming audio
Fornire un contesto esplicito aiuta il framework Android e i dispositivi di ricezione a dare la priorità ai flussi in entrata. Ad esempio, un sistema di indirizzo pubblico (PA) può impostare il tipo Streaming_Audio_Context su Istruzionale per consentire agli annunci di interrompere in modo pulito la riproduzione dei contenuti multimediali locali di un ricevitore e riprenderla senza problemi in seguito.
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/