Pour obtenir la latence audio la plus faible possible, nous vous recommandons d'utiliser Oboe.
Oboe
Oboe utilise l'audio natif et est basé sur AAudio pour Android 8.1 et versions ultérieures, et sur OpenSL ES pour les versions antérieures d'Android. Pour obtenir la latence la plus faible possible pour un appareil, définissez setPerformanceMode(oboe::PerformanceMode::LowLatency)
et setSharingMode(oboe::SharingMode::Exclusive)
.
Pour en savoir plus sur Oboe, consultez le guide de démarrage, README.md
et le guide complet. Pour obtenir un exemple d'application utilisant Oboe, consultez l'application Soundboard.
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
.
Checklist d'implémentation
Pour utiliser l'audio natif Android:
- Téléchargez et installez le NDK Android.
- Suivez le guide de démarrage pour Oboe.
-
Appelez
setPerformanceMode(oboe::PerformanceMode::LowLatency)
etsetSharingMode(oboe::SharingMode::Exclusive)
sur le compilateur Oboe. -
Utilisez la taille de mémoire tampon et le taux d'échantillonnage natifs recommandés renvoyés par android.media.AudioManager.getProperty(java.lang.String).
Remarque:La même taille de tampon et le même taux d'échantillonnage doivent également être utilisés pour l'entrée.
- Réduisez la longueur de vos gestionnaires de rappels, sans utilisation ponctuelle du processeur ni blocage illimité. Évitez l'inversion de priorité.
- 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 qui fabriquent des appareils Android et les fournisseurs de SoC qui fournissent des composants à ces OEM.
Toutefois, ce site contient de nombreuses informations utiles sur la latence. Nous vous invitons donc à le consulter. Consultez les articles sur la latence audio.
android-ndk
Si vous avez des questions sur l'utilisation de l'audio natif Android, vous pouvez les poser sur le groupe de discussion android-ndk.
Signaler des bugs sur Oboe
Si vous rencontrez des problèmes avec Oboe, vous pouvez signaler un bug.
Vidéos
- Premiers pas avec Oboe
- Audio à faible latence : parce que vos oreilles le méritent
- Sommet des développeurs Android 2018.
- Réussir sur Android : optimiser une application audio Android
- Défi des développeurs Android 2018.
- Audio hautes performances sur Android (Google I/O 2013)
- Toute la vidéo concerne la latence.
- Créer des expériences multimédias de qualité 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 tampon et la planification des tâches.