Latence audio pour les développeurs d'applications

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 :

  1. Téléchargez et installez le NDK Android.
  2. Suivez le guide de démarrage d'Oboe.
  3. Appelez setPerformanceMode(oboe::PerformanceMode::LowLatency) et setSharingMode(oboe::SharingMode::Exclusive) sur le compilateur Oboe.
  4. 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).

  5. Limitez la durée de vos gestionnaires de rappel, sans utilisation du processeur en rafale ni blocage illimité. Évitez 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, 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