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 (niveau d'API
27) et versions ultérieures, ainsi que sur OpenSL ES. 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. Consultez l'application Soundboard pour obtenir une application exemple utilisant Oboe.
Si vous utilisez AudioTrack pour créer des flux audio de sortie en Java pour les 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 d'Oboe.
- Appelez
setPerformanceMode(oboe::PerformanceMode::LowLatency)etsetSharingMode(oboe::SharingMode::Exclusive)sur le compilateur Oboe. Utilisez la taille de la mémoire tampon native et le taux d'échantillonnage recommandés renvoyés par
android.media.AudioManager.getProperty(java.lang.String).Limitez la durée de vos gestionnaires de rappel, sans utilisation du processeur en rafale 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, ainsi qu'entre les gestionnaires de rappel et le reste de votre application.
android-ndk
Si vous avez des questions sur l'utilisation de l'audio natif Android, rejoignez le groupe de discussion android-ndk.
Signaler des bugs sur Oboe
Si vous rencontrez des problèmes lors de l'utilisation d'Oboe, signalez un bug.
Vidéos
- Getting started with Oboe (Premiers pas avec Oboe)
- Low Latency Audio - Because Your Ears Are Worth It (Android Dev Summit 2018) (Audio à faible latence : parce que vos oreilles le valent bien [Sommet des développeurs Android 2018])
- Winning on Android - How to optimize an Android audio app (Gagner sur Android : comment optimiser une application audio Android) (Défi des développeurs Android 2018)
- High Performance Audio on Android (Google I/O 2013) (Audio haute performance sur Android [Google I/O 2013])
- Building great multimedia experiences on Android (Google I/O 2014) (Créer des expériences multimédias exceptionnelles sur Android [Google I/O 2014])
- Audio latency: buffer sizes (100 Days of Google Dev) (Latence audio : tailles de mémoire tampon [100 jours de Google Dev])