Я думаю, это связано с тем, что вы выпустили его во время игры.Создайте глобальный MediaPlayer для каждого звука и используйте его снова и снова, отпустите, когда действие закрыто (возможно, даже когда оно приостановлено, и перезагрузите его, если звуковые файлы большие).Кроме того, поскольку у вас будет много кнопок, у вас может быть один onclicklistener на всех кнопках, которые вы создаете в onCreate ():
private class MyMagicalOnClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.button1:
//play sound 1
break;
case R.id.button2:
//play sound 2
break;
}
}
}
, просто прокомментируйте и скажите мне, если вы не знаете, как реализовать это:)
edit: Для каждого запроса здесь есть аккуратная реализация, которая должна творить чудеса с вашим приложением.Я сделал это так, что вместо этого в упражнении реализован onclicklistener, я думаю, что он немного более чистый.
public class Bluarg extends Activity implements OnClickListener{
MediaPlayer mp1;
MediaPlayer mp2;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mp1 = MediaPlayer.create(this, R.raw.sound1);
mp2 = MediaPlayer.create(this, R.raw.sound2);
final Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(this);
final Button button2 = (Button) findViewById(R.id.button2);
button1.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.button1:
mp1.start();
break;
case R.id.button2:
mp2.start();
break;
}
}
@Override
protected void onDestroy() {
mp1.release();
mp2.release();
super.onDestroy();
}
}