Für die niedrigste Audiolatenz empfehlen wir Oboe.
Oboe
Oboe verwendet natives Audio und basiert auf AAudio für Android 8.1 und höher sowie OpenSL ES für ältere Android-Versionen. Um die niedrigste 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 im Einstiegsleitfaden, in README.md
und im vollständigen Leitfaden. Eine Beispielanwendung mit Oboe finden Sie in der Soundboard App.
Hinweis:Wenn du AudioTrack zum Erstellen von Ausgabe-Audiostreams in Java für latenzempfindliche Anwendungen verwendest, verwende den Modus PERFORMANCE_MODE_LOW_LATENCY
.
Checkliste für die Implementierung
So verwendest du die native Audiofunktion von Android:
- Laden Sie das Android NDK herunter und installieren Sie es.
- Folgen Sie dem Startleitfaden für Oboe.
-
Rufen Sie
setPerformanceMode(oboe::PerformanceMode::LowLatency)
undsetSharingMode(oboe::SharingMode::Exclusive)
im Oboe-Builder auf. -
Verwenden Sie die empfohlene native Puffergröße und die empfohlene Abtastrate, die von android.media.AudioManager.getProperty(java.lang.String) zurückgegeben werden.
Hinweis:Für die Eingabe sollten dieselbe Puffergröße und dieselbe Abtastrate verwendet werden.
- Halten Sie Ihre Callback-Handler kurz, ohne CPU-Auslastungsspitzen oder unbegrenztes Blockieren. Vermeiden Sie Prioritätsinversionen.
- Verwenden Sie nicht blockierende Algorithmen, um zwischen Eingabe- und Ausgabe-Callback-Handlern sowie zwischen den Callback-Handlern und dem Rest Ihrer Anwendung zu kommunizieren.
Weitere Informationen
source.android.com
Die Website source.android.com richtet sich in erster Linie an OEMs, die Android-Geräte entwickeln, und an SoC-Anbieter, die diesen OEMs Komponenten liefern.
Auf dieser Website finden Sie jedoch eine Fülle nützlicher Informationen zur Latenz. Weitere Informationen finden Sie unter Audiolatenz.
android-ndk
Wenn Sie Fragen zur Verwendung von nativem Android-Audio haben, können Sie sie in der Diskussionsgruppe android-ndk stellen.
Fehler in Oboe melden
Wenn Sie Probleme mit Oboe haben, können Sie einen Fehler melden.
Videos
- Einführung in Oboe
- Audio mit niedriger Latenz – weil deine Ohren es wert sind
- Android Dev Summit 2018.
- Erfolgreich auf Android-Geräten – Audio-Apps für Android optimieren
- Android Developer Challenge 2018.
- Hochleistungsaudio auf Android-Geräten (Google I/O 2013)
- Im gesamten Video geht es um Latenz.
- Hervorragende Multimedia-Funktionen auf Android-Geräten entwickeln (Google I/O 2014)
- Die ersten 14 Minuten drehen sich um Audio im Allgemeinen und um die Eingabelatenz im Besonderen.
- Audiolatenz: Puffergrößen (100 Tage Google Dev)
- Beschreibt den Zusammenhang zwischen Audiolatenz, Puffergrößen und Aufgabenplanung.