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 (livello API 27) e versioni successive e OpenSL ES. Per ottenere la latenza più bassa possibile per un dispositivo, imposta setPerformanceMode(oboe::PerformanceMode::LowLatency) e setSharingMode(oboe::SharingMode::Exclusive). Per ulteriori informazioni su Oboe, consulta la guida introduttiva, README.md e la guida completa. Per un'app di esempio che utilizza Oboe, consulta l'app Soundboard.

Se utilizzi AudioTrack per creare stream audio di output in Java per le app sensibili alla latenza, utilizza la modalità PERFORMANCE_MODE_LOW_LATENCY.

Elenco 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 nativo e la frequenza di campionamento consigliate restituite da android.media.AudioManager.getProperty(java.lang.String).

  5. Mantieni brevi i gestori di callback, senza un utilizzo della CPU a raffica o blocchi illimitati. Evita l'inversione di priorità.

  6. Valuta la possibilità di utilizzare 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.

android-ndk

Se hai domande su come utilizzare l'audio nativo di Android, partecipa al gruppo di discussione android-ndk.

Segnalare bug su Oboe

Se riscontri problemi con l'utilizzo di Oboe, segnala un bug.

Video