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 :
- Téléchargez et installez le NDK Android .
- Suivez le guide de démarrage pour hautbois.
- Appelez
setPerformanceMode(oboe::PerformanceMode::LowLatency)
etsetSharingMode(oboe::SharingMode::Exclusive)
sur le générateur Oboe. - 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.
- Gardez vos gestionnaires de rappel courts, sans utilisation excessive du processeur ni blocage illimité. Éviter 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 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.