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:
- Laden Sie das Android NDK herunter und installieren Sie es.
- Befolgen Sie die Anleitung „Erste Schritte“ 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 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.
- Halten Sie Ihre Callback-Handler kurz, ohne übermäßige CPU-Auslastung oder unbegrenztes Blockieren. Vermeiden Sie eine Prioritätsumkehr.
- 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.