Audiolatenz für App-Entwickler

Für die niedrigstmögliche Audiolatenz empfehlen wir die Verwendung von Oboe.

Oboe

Oboe verwendet natives Audio und basiert auf AAudio für Android 8.1 (API-Level 27) und höher sowie OpenSL ES. Um die niedrigstmögliche Latenz für ein Gerät zu erzielen, legen Sie setPerformanceMode(oboe::PerformanceMode::LowLatency) und setSharingMode(oboe::SharingMode::Exclusive) fest. Weitere Informationen zu Oboe finden Sie im Startleitfaden, README.md und im vollständigen Leitfaden. Die Soundboard-App ist ein Beispiel für eine App, die Oboe verwendet.

Wenn Sie AudioTrack verwenden, um in Java Audio-Ausgabestreams für latenzempfindliche Apps zu erstellen, verwenden Sie den Modus PERFORMANCE_MODE_LOW_LATENCY.

Checkliste für die Implementierung

So verwenden Sie natives Android-Audio:

  1. Laden Sie das Android NDK herunter und installieren Sie es.
  2. Folgen Sie dem Startleitfaden für Oboe.
  3. Rufen Sie im Oboe-Builder setPerformanceMode(oboe::PerformanceMode::LowLatency) und setSharingMode(oboe::SharingMode::Exclusive) auf.
  4. Verwenden Sie die empfohlene native Puffergröße und Abtastrate, die von android.media.AudioManager.getProperty(java.lang.String) zurückgegeben werden.

  5. Halten Sie Ihre Callback-Handler kurz und vermeiden Sie eine burstartige CPU-Auslastung oder unbegrenztes Blockieren. Vermeiden Sie Prioritätsinversion.

  6. Verwenden Sie nicht blockierende Algorithmen für die Kommunikation zwischen den Callback-Handlern für die Eingabe und Ausgabe sowie zwischen den Callback-Handlern und dem Rest Ihrer Anwendung.

android-ndk

Wenn Sie Fragen zur Verwendung von nativem Android-Audio haben, treten Sie der Diskussionsgruppe android-ndk bei.

Fehler bei Oboe melden

Wenn Sie Probleme mit Oboe haben, melden Sie einen Fehler.

Videos