Android 13 introduce il supporto per l'audio spaziale fornendo API che consentono agli sviluppatori di app di scoprire se l'attuale combinazione di implementazione dello smartphone, cuffia collegata e impostazioni utente consente la riproduzione di contenuti audio multicanale in modo immersivo.
Gli OEM possono fornire un effetto audio di spazializzazione con il supporto del tracciamento della testa con il livello di prestazioni e latenza richiesto, utilizzando la nuova architettura della pipeline audio e l'integrazione del framework del sensore. Il protocollo HID specifica come collegare un dispositivo di monitoraggio della testa tramite Bluetooth e renderlo disponibile come dispositivo HID tramite il framework dei sensori Android. Consulta Audio spaziale e tracciamento della testa per ulteriori requisiti e per la convalida.
Le linee guida riportate in questa pagina si applicano a una soluzione di audio spaziale che adotta le nuove API e l'architettura audio spaziale con uno smartphone Android con Android 13 e versioni successive e cuffie compatibili con il sensore di tracciamento della testa.
Linee guida per l'implementazione delle modalità audio spaziale dinamiche e statiche
L'audio spaziale statico non richiede il monitoraggio della testa, pertanto non è necessaria una funzionalità specifica nell'auricolare. Tutte le cuffie con e senza cavo possono supportare l'audio spaziale statico.
Implementazione dell'API
Gli OEM DEVONO implementare la classe Spatializer
introdotta in Android 12. L'implementazione deve superare i test CTSintrodotti per la classe Spatializer
.
Un'implementazione solida dell'API garantisce agli sviluppatori di app, in particolare dei servizi di streaming di contenuti multimediali, di fare affidamento su un comportamento coerente nell'intero ecosistema e di scegliere i contenuti migliori in base alle funzionalità del dispositivo, al contesto di rendering corrente e alle scelte degli utenti.
Interfaccia utente
Dopo aver implementato la classe Spatializer
, verifica che la tua UI abbia il seguente comportamento:
Quando le cuffie compatibili con l'audio spaziale sono accoppiate, nelle impostazioni del dispositivo Bluetooth per queste cuffie viene visualizzata un'opzione di attivazione/disattivazione dell'audio spaziale:
Figura 1. Impostazione audio spaziale.
Le impostazioni sono disponibili quando le cuffie sono scollegate.
Lo stato predefinito per l'audio spaziale dopo l'associazione iniziale delle cuffie è impostato su enabled.
Lo stato selezionato dall'utente, attivato o disattivato, persiste dopo il riavvio dello smartphone o lo scollegamento e l'accoppiamento delle cuffie.
Comportamento funzionale
Formati audio
I seguenti formati audio DEVONO essere visualizzati dall'effetto di spazializzazione quando l'audio spaziale è attivo e il dispositivo di rendering è una cuffia con cavo o Bluetooth:
- AAC, 5.1 canali
- PCM non compresso, canali 5.1
Per una migliore esperienza utente, consigliamo vivamente di supportare i seguenti formati/configurazioni dei canali:
- Dolby Digital Plus
- Canali 5.1.2, 7.1, 7.1.2, 7.1.4
Riproduzione di contenuti stereo
I contenuti stereo non devono essere visualizzati tramite il motore degli effetti di spazializzazione, anche se l'audio spaziale è abilitato. Se un'implementazione consente la spazializzazione dei contenuti stereo, deve presentare un'interfaccia utente personalizzata che consenta all'utente di attivare o disattivare facilmente questa funzionalità. Quando l'audio spaziale è attivo, deve essere possibile passare dalla riproduzione di contenuti multicanale spazializzati a contenuti stereo non spazializzati senza richiedere modifiche alle impostazioni utente o ricollegamento o ricofigurazione dell'auricolare. La transizione tra contenuti audio spaziali e contenuti stereo deve avvenire con interruzioni audio minime.
Transizioni dei casi d'uso e contemporaneità
Gestisci i casi d'uso speciali come segue:
- Le notifiche devono essere mixate con i contenuti audio spaziali nello stesso modo in cui vengono mixate con i contenuti audio non spaziali.
- I suoni di chiamata devono poter essere miscelati con contenuti audio spaziali. Tuttavia, per impostazione predefinita, il meccanismo di messa a fuoco audio mette in pausa i contenuti audio spaziali quando è presente una suoneria.
- Quando rispondi o effettui una telefonata o una videoconferenza, la riproduzione dell'audio spaziale deve essere messa in pausa. La riproduzione dell'audio spaziale deve riprendere con le stesse impostazioni dell'audio spaziale al termine della chiamata. La ricoconfigurazione di un percorso audio per passare dalla modalità audio spaziale alla modalità di conversazione deve avvenire rapidamente e senza problemi in modo da non influire sull'esperienza di chiamata.
Riproduzione tramite speaker
Non è richiesto il supporto per la spazializzazione dell'audio su altoparlanti o per la modalità transaurale.
Linee guida per l'implementazione del rilevamento dei movimenti della testa
Questa sezione è incentrata sull'audio spaziale dinamico, che ha requisiti specifici per le cuffie.
Interfaccia utente
Dopo l'implementazione e l'accoppiamento delle cuffie con audio spaziale, verifica che l'interfaccia utente abbia il seguente comportamento:
Nelle impostazioni del dispositivo Bluetooth, quando l'impostazione Audio spaziale per le cuffie è attivata, in Audio spaziale viene visualizzata l'impostazione Rilevamento posizione:
Figura 2. Impostazione di audio spaziale e tracciamento della testa.
L'impostazione di tracciamento della testa NON è visibile quando l'audio spaziale è disattivato.
Lo stato predefinito per il monitoraggio della testa dopo l'accoppiamento iniziale delle cuffie è impostato su abilitato.
Lo stato selezionato dall'utente, attivato o disattivato, deve essere mantenuto anche dopo il riavvio dello smartphone o lo scollegamento e l'accoppiamento dell'auricolare.
Comportamento funzionale
Report sulle pose della testa
- Le informazioni sulla posizione della testa, in coordinate x, y e z, inviate dall'auricolare al dispositivo Android, devono riflettere i movimenti della testa dell'utente in modo rapido e preciso.
- I report sulla posizione della testa tramite il link Bluetooth devono seguire il protocollo definito tramite HID.
- Le cuffie devono inviare le informazioni relative al rilevamento della testa allo smartphone Android solo quando l'utente attiva l'opzione Rilevamento della testa nell'interfaccia utente delle impostazioni del dispositivo Bluetooth.
Prestazioni
Latenza
La latenza del rilevamento dei movimenti della testa è il tempo che intercorre tra il movimento della testa acquisito dall'unità di misura inerziale (IMU) e il rilevamento da parte dei trasduttori delle cuffie della variazione dell'audio causata da questo movimento. La latenza del monitoraggio della testa non deve superare i 150 ms.
Tasso di segnalazione della posa della testa
Quando il rilevamento della posizione della testa è attivo, l'auricolare deve segnalare la posizione della testa su una base periodica consigliata di circa 20 ms. Per evitare di attivare la logica di rilevamento degli input obsoleti sullo smartphone durante un jitter di trasmissione del Bluetooth, il tempo massimo tra due aggiornamenti non deve superare i 40 ms.
Ottimizzazione dell'alimentazione
Per ottimizzare la potenza, consigliamo di utilizzare l'implementazione del cambio di codec Bluetooth e dei meccanismi di selezione della modalità di latenza forniti dalle interfacce HAL audio e HAL audio Bluetooth.
Le implementazioni AOSP del framework audio e dello stack Bluetooth supportano già gli indicatori per controllare il passaggio da un codec all'altro. Se l'implementazione dell'OEM utilizza l'HAL audio principale per l'audio Bluetooth, nota come modalità di offload del codec, l'OEM deve assicurarsi che l'HAL audio ritrasmetta questi segnali tra l'HAL audio e la pila Bluetooth.
Cambio codec
Quando l'audio spaziale dinamico e il rilevamento dei movimenti della testa sono attivi, utilizza un codec a bassa latenza, come Opus. Durante la riproduzione di contenuti audio non spaziali, utilizza un codec a bassa potenza, come Advanced Audio Coding (AAC).
Segui queste regole durante il passaggio da un codec all'altro:
- Monitora solo l'attività sui seguenti stream di output dell'HAL audio:
- Output dello spazializzatore dedicato
- Stream specifici per i contenuti multimediali, come la riproduzione con buffer elevato o offload compresso
Quando tutti gli stream pertinenti sono inattivi e viene avviato lo stream dello spazializzatore, avvia lo stream Bluetooth con
isLowLatency
impostato sutrue
per specificare un codec a bassa latenza.Quando tutti gli stream pertinenti sono inattivi e viene avviato uno stream multimediale, avvia lo stream Bluetooth con
isLowLatency
impostato sufalse
per specificare un codec a basso consumo.Se è attivo uno stream multimediale e si avvia lo stream dello spazializzatore, riavvia lo stream Bluetooth con
isLowLatency
impostato sutrue
.
Per quanto riguarda gli auricolari, questi devono supportare sia i decodificatori a bassa latenza sia quelli a basso consumo e implementare il protocollo di selezione del codec standard.
Aggiustamento della modalità Latenza
L'aggiustamento della modalità di latenza avviene quando è selezionato il codec a bassa latenza.
A seconda che il rilevamento della testa sia attivo o meno, la regolazione della modalità di latenza utilizza i meccanismi disponibili per ridurre o aumentare la latenza in modo da raggiungere il miglior compromesso tra latenza, potenza e qualità audio. Quando l'audio spaziale è attivo e il rilevamento dei movimenti della testa è attivo, viene scelta la modalità a bassa latenza. Quando l'audio spaziale è attivo e il rilevamento dei movimenti della testa è disattivato, viene selezionata la modalità la latenza minima. La regolazione della latenza consente un risparmio energetico significativo e un aumento della robustezza del link audio Bluetooth quando viene richiesto solo audio spaziale statico. Il meccanismo di regolazione della latenza più comune è la riduzione o l'estensione della dimensione del buffer del jitter nell'auricolare Bluetooth.
Consulta Rilevamento della testa tramite LE audio per informazioni su come regolare la modalità di latenza per LE audio.