Latence audio pour les développeurs d'applications

Pour une latence audio la plus faible possible, nous vous recommandons d'utiliser Oboe .

Hautbois

Oboe utilise l'audio natif et est construit sur AAudio pour Android 8.1+ et OpenSL ES pour les anciennes versions d'Android. Pour obtenir la latence la plus faible possible pour un périphérique, définissez setPerformanceMode(oboe::PerformanceMode::LowLatency) et setSharingMode(oboe::SharingMode::Exclusive) . Consultez le guide de démarrage , README.md et le guide complet pour plus d'informations sur Oboe. Reportez-vous à l' application Soundboard pour un exemple d'application utilisant Oboe.

Remarque : Si vous utilisez AudioTrack pour créer des flux audio de sortie en Java pour des applications sensibles à la latence, utilisez le mode PERFORMANCE_MODE_LOW_LATENCY .

Liste de contrôle de mise en œuvre

Pour utiliser l'audio natif Android :

  1. Téléchargez et installez le NDK Android .
  2. Suivez le guide de démarrage pour Oboe.
  3. Appelez setPerformanceMode(oboe::PerformanceMode::LowLatency) et setSharingMode(oboe::SharingMode::Exclusive) sur le générateur Oboe.
  4. Utilisez la taille de tampon natif et la fréquence d'échantillonnage recommandées renvoyées par android.media.AudioManager.getProperty(java.lang.String) .

    Remarque : la même taille de tampon et la même fréquence d'échantillonnage doivent également être utilisées pour l'entrée.

  5. Gardez vos gestionnaires de rappel courts, sans utilisation intensive du processeur ni blocage illimité. Évitez l’inversion des priorités.
  6. Envisagez d'utiliser des algorithmes non bloquants pour communiquer entre les gestionnaires de rappel d'entrée et de sortie, ainsi qu'entre les gestionnaires de rappel et le reste de votre application.

Autres ressources

source.android.com

Le site source.android.com est principalement conçu pour les OEM construisant des appareils Android et les fournisseurs de SoC qui fournissent des composants à ces OEM.

Cependant, il existe une multitude d'informations utiles sur la latence sur ce site, vous souhaiterez donc peut-être les consulter. Voir les articles sur Latence audio.

Android-ndk

Si vous avez des questions sur l'utilisation de l'audio natif Android, vous pouvez les poser au groupe de discussion android-ndk .

Signaler des bugs sur Hautbois

Si vous rencontrez des problèmes avec Oboe, vous pouvez signaler un bug .

Vidéos

Débuter avec le hautbois
Audio à faible latence – parce que vos oreilles en valent la peine
Sommet des développeurs Android 2018.
Gagner sur Android – Comment optimiser une application audio Android
Défi des développeurs Android 2018.
Audio haute performance sur Android (Google I/O 2013)
Toute la vidéo parle de latence.
Créer de superbes expériences multimédias sur Android (Google I/O 2014)
Les 14 premières minutes concernent l'audio en général et la latence d'entrée en particulier.
Latence audio : tailles de tampon (100 jours de développement Google)
Décrit la relation entre la latence audio, la taille des tampons et la planification des tâches.