Я создал приложение, которое использует MediaPlayer для воспроизведения случайного (короткого) звука при нажатии кнопки.Звук воспроизводится правильно на устройствах Android <2.2.Это код, отвечающий за воспроизведение звуков. </p>
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();
}
Звуки - это все файлы .wav.Я попытался преобразовать их в .mp3, но тогда они не играли бы вообще.Я делаю что-то крайне неправильно, или MediaPlayer в 2.2 глючит?Кто-нибудь еще имел эту проблему и знает, как исправить?Имейте в виду, что звуки воспроизводятся нормально на всех других устройствах с версией Android ниже 2.2.