Audiolatenz für App-Entwickler

Für eine möglichst geringe Audiolatenz empfehlen wir die Verwendung von Oboe .

Oboe

Oboe verwendet natives Audio und basiert auf AAudio für Android 8.1+ und OpenSL ES für ältere Android-Versionen. Um die geringstmögliche Latenz für ein Gerät zu erreichen, legen Sie setPerformanceMode(oboe::PerformanceMode::LowLatency) und setSharingMode(oboe::SharingMode::Exclusive) fest. Weitere Informationen zu Oboe finden Sie in der Anleitung „Erste Schritte“ , README.md und in der vollständigen Anleitung . Eine Beispiel-App mit Oboe finden Sie in der Soundboard-App .

Hinweis: Wenn Sie AudioTrack zum Erstellen von Ausgabe-Audiostreams in Java für latenzempfindliche Anwendungen verwenden, verwenden Sie den Modus PERFORMANCE_MODE_LOW_LATENCY .

Checkliste für die Umsetzung

So verwenden Sie natives Android-Audio:

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

    Hinweis: Auch für die Eingabe sollten die gleiche Puffergröße und Abtastrate verwendet werden.

  5. Halten Sie Ihre Callback-Handler kurz, ohne übermäßige CPU-Auslastung oder unbegrenztes Blockieren. Vermeiden Sie eine Prioritätsumkehr.
  6. Erwägen Sie die Verwendung nicht blockierender Algorithmen für die Kommunikation zwischen Eingabe- und Ausgabe-Callback-Handlern sowie zwischen den Callback-Handlern und dem Rest Ihrer Anwendung.

Andere Ressourcen

source.android.com

Die Website source.android.com richtet sich in erster Linie an OEMs, die Android-Geräte herstellen, sowie an SoC-Anbieter, die Komponenten an diese OEMs liefern.

Allerdings gibt es auf dieser Website eine Fülle nützlicher Informationen zur Latenz, die Sie sich vielleicht ansehen sollten. Siehe die Artikel unter Audiolatenz.

android-ndk

Wenn Sie Fragen zur Verwendung von nativem Android-Audio haben, können Sie diese in der Diskussionsgruppe android-ndk stellen.

Melden Sie Fehler auf Oboe

Wenn Sie Probleme mit Oboe haben, können Sie einen Fehler melden .

Videos

Erste Schritte mit der Oboe
Audio mit geringer Latenz – weil Ihre Ohren es wert sind
Android Dev Summit 2018.
Gewinnen auf Android – So optimieren Sie eine Android-Audio-App
Android Developer Challenge 2018.
Hochleistungsaudio auf Android (Google I/O 2013)
Im ganzen Video geht es um Latenz.
Erstellen Sie großartige Multimedia-Erlebnisse auf Android (Google I/O 2014)
In den ersten 14 Minuten geht es um Audio im Allgemeinen und die Eingabelatenz im Besonderen.
Audiolatenz: Puffergrößen (100 Tage Google Dev)
Beschreibt die Beziehung zwischen Audiolatenz, Puffergrößen und Aufgabenplanung.