Per la latenza audio più bassa possibile, ti consigliamo di utilizzare Oboe .
Oboe
Oboe utilizza l'audio nativo ed è basato su AAudio per Android 8.1+ e OpenSL ES per le versioni precedenti di Android. Per ottenere la latenza più bassa possibile per un dispositivo, imposta setPerformanceMode(oboe::PerformanceMode::LowLatency)
e setSharingMode(oboe::SharingMode::Exclusive)
. Consulta la guida introduttiva , README.md
e la guida completa per ulteriori informazioni su Oboe. Fare riferimento all'app Soundboard per un'app di esempio che utilizza Oboe.
Nota: se utilizzi AudioTrack per creare flussi audio di output in Java per applicazioni sensibili alla latenza, utilizza la modalità PERFORMANCE_MODE_LOW_LATENCY
.
Lista di controllo per l'implementazione
Per utilizzare l'audio nativo di Android:
- Scarica e installa Android NDK .
- Segui la guida introduttiva per Oboe.
- Chiama
setPerformanceMode(oboe::PerformanceMode::LowLatency)
esetSharingMode(oboe::SharingMode::Exclusive)
sul builder Oboe. - Utilizza la dimensione del buffer nativa consigliata e la frequenza di campionamento restituite da android.media.AudioManager.getProperty(java.lang.String) .
Nota: è necessario utilizzare la stessa dimensione del buffer e la stessa frequenza di campionamento anche per l'input.
- Mantieni i gestori di callback brevi, senza un utilizzo eccessivo della CPU o blocchi illimitati. Evitare l'inversione di priorità.
- Considera l'utilizzo di algoritmi non bloccanti per comunicare tra i gestori di callback di input e output e tra i gestori di callback e il resto dell'applicazione.
Altre risorse
source.android.com
Il sito source.android.com è progettato principalmente per gli OEM che costruiscono dispositivi Android e per i fornitori di SoC che forniscono componenti a questi OEM.
Tuttavia, in questo sito sono presenti numerose informazioni utili sulla latenza, quindi potresti voler esaminarle. Vedi gli articoli su Latenza audio.
android-ndk
Se hai domande su come utilizzare l'audio nativo di Android, puoi chiedere al gruppo di discussione android-ndk .
Segnala bug su Oboe
Se riscontri problemi nell'utilizzo di Oboe, puoi segnalare un bug .
Video
- Iniziare con l'Oboe
- Audio a bassa latenza: perché le tue orecchie ne valgono la pena
- Summit sugli sviluppatori Android 2018.
- Vincere su Android - Come ottimizzare un'app audio Android
- Sfida per sviluppatori Android 2018.
- Audio ad alte prestazioni su Android (Google I/O 2013)
- L'intero video riguarda la latenza.
- Creare fantastiche esperienze multimediali su Android (Google I/O 2014)
- I primi 14 minuti riguardano l'audio in generale e la latenza di input in particolare.
- Latenza audio: dimensioni del buffer (100 giorni di Google Dev)
- Descrive la relazione tra latenza audio, dimensioni del buffer e pianificazione delle attività.