Je crée un jeu pour Android qui doit jouer un petit bip chaque fois qu'un utilisateur touche un certain objet.android media player delay
Pour ce faire, j'ai ce code simple pour créer le lecteur multimédia. bip est un petit fichier .ogg
de ~ 1,5 sec.
MediaPlayer mp = MediaPlayer.create(getContext(), R.raw.beep);
mp.setVolume(0.5f, 0.5f);
et l'utiliser comme ceci
mp.start();
Le problème que j'ai est que mon jeu utilise la toile Android, et le fil qui tire sur la toile appelle également mp.start()
. J'ai découvert que jouer du son prenait pas mal de temps, et il est très varié dans le temps. Parfois 1ms, parfois 15ms. Cela semble causer un léger ralentissement de mon jeu, car la toile androïde est plutôt lente.
J'ai regardé les journaux et je ne semble pas avoir le garbage collection provoquant le retard. Je me demande si quelqu'un peut me donner un conseil pour réduire ce délai
EDIT - Je viens de découvrir que MediaPlayer
est conçu pour les fichiers son plus longs, et SoundPool
est mieux pour les fichiers audio plus courts. Cependant, je charge le fichier dans le mediaPlayer
seulement une fois, donc je ne vois pas comment cela devrait faire la différence. Je vais le tester si