Итак, я работаю над небольшой мобильной игрой, и когда я нажимаю на кнопку, она должна воспроизводить звуковой эффект.Я хочу, чтобы он воспроизводил несколько экземпляров за небольшой промежуток времени, поэтому SoundPool не работает в моем случае.Прямо сейчас я использую этот метод
public void playTapSound(){
final MediaPlayer gameSound = MediaPlayer.create(this, R.raw.tapsound);
gameSound.start();
}
Однако я нигде не вызываю gameSound.release, так как не знаю, где его вызвать.Поэтому после 40 использований звуки перестают воспроизводиться, по-видимому, из-за слишком большого количества создаваемых MediaPlayer.
Я пытался поместить
final MediaPlayer gameSound = MediaPlayer.create(this, R.raw.tapsound);
в onCreate (), но когда я это делаю, gameSound становитсяошибка «Не удается разрешить символ« gameSound »».
Если поместить его до или после onCreate (), приложение просто вылетает, так как «this» равно нулю.
При нажатии кнопкиесть еще кое-что, тогда я тоже запускаю
public void tapped(View view) {
if (!buttons[0].isAllCaps()) {
playTapSound();
buttons[0].setBackgroundColor(Color.parseColor("#1fab89"));
buttons[0].setAllCaps(true);
score++;
x++;
points.setText(String.valueOf(score));
}
else {
buttons[0].setBackgroundColor(Color.parseColor("#505bda"));
lose(score);
}
}
Надеюсь, я могу получить некоторую помощь о том, где разместить gameSound.release () или как вызвать gameSound, когда игрок создается на onCreate ().спасибо