J'ai créé une application qui utilise MediaPlayer pour jouer un son aléatoire (court) quand on clique sur un bouton. Les sons sont lus correctement sur les appareils Android < 2.2. C'est le code responsable de la lecture des sons.Mediaplayer joue des sons étranges sur Android 2.2
r = new Random();
sounds = new ArrayList<MediaPlayer>();
sounds.add(MediaPlayer.create(this, R.raw.sound1));
sounds.add(MediaPlayer.create(this, R.raw.sound2));
sounds.add(MediaPlayer.create(this, R.raw.sound3));
sounds.add(MediaPlayer.create(this, R.raw.sound4));
sounds.add(MediaPlayer.create(this, R.raw.sound5));
theButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
playSound();
}
});
private void playSound() {
Thread thread = new Thread() {
public void run() {
MediaPlayer soundPlayer = sounds.get(r.nextInt(sounds.size()));
while (soundPlayer.isPlaying())
{
soundPlayer = sounds.get(r.nextInt(sounds.size()));
}
soundPlayer.seekTo(0);
soundPlayer.start();
}
};
thread.start();
}
Les sons sont tous des fichiers .wav. J'ai essayé de les convertir en .mp3, mais ensuite ils ne joueraient pas du tout. Est-ce que je fais quelque chose d'extrêmement faux, ou est le MediaPlayer dans 2.2 buggy? Quelqu'un d'autre a eu ce problème et connaît une solution? Gardez à l'esprit que les sons sont joués normalement sur tous les autres appareils avec une version Android 2.2 ci-dessous.
J'ai le même problème ici. Y at-il un moyen sans le besoin de rééchantillonner les fichiers wav? – StefanMK