Latence audio pour les développeurs d'applications

Pour la 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 appareil, 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 le hautbois. 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 .

Check-list de mise en œuvre

Pour utiliser l'audio natif d'Android :

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

    Remarque : La même taille de mémoire 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 excessive du processeur ni blocage illimité. Éviter l'inversion de priorité.
  6. Envisagez d'utiliser des algorithmes non bloquants pour communiquer entre les gestionnaires de rappel d'entrée et de sortie, et 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 fabriquant 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 pouvez donc les consulter. Voir les articles sur Latence audio.

android-ndk

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

Signaler des bugs sur Hautbois

Si vous rencontrez des problèmes lors de l'utilisation d'Oboe, vous pouvez signaler un bogue .

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, les tailles de mémoire tampon et la planification des tâches.