Latenza audio per gli sviluppatori di app

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:

  1. Scarica e installa Android NDK .
  2. Segui la guida introduttiva per Oboe.
  3. Chiama setPerformanceMode(oboe::PerformanceMode::LowLatency) e setSharingMode(oboe::SharingMode::Exclusive) sul builder Oboe.
  4. 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.

  5. Mantieni i gestori di callback brevi, senza un utilizzo eccessivo della CPU o blocchi illimitati. Evitare l'inversione di priorità.
  6. 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à.