Медиаплеер останавливается в Android после 30 кликов
Я видел другие посты по этому вопросу, но я не могу понять проблему.
Поэтому я создаю калькулятор, и у всех чисел один метод onclick, а у всех операторов разные. У меня есть метод playSound(), где код:
public void playSound(){
MediaPlayer mp= MediaPlayer.create(this, R.raw.btn);
setVolumeControlStream(AudioManager.STREAM_MUSIC);
if(mp.isPlaying())
{
mp.stop();
mp.reset();
}
mp.start();
}
Я пытался выпустить на. Может кто-нибудь сообщить мне эффективный способ написать это. Я вызываю этот метод внутри методов onclick. Но после 30 щелчков он останавливается. Я также пытался создать глобальный MediaPlayer, но он все еще останавливается. Я читал, что медиаплеер действительно дорогой, поэтому мы можем использовать саундпул. Но даже саундпул не рекомендуется. Любая помощь?
2 ответа
Реализуйте onComplition() Listener, и в этом слушателе вы можете вызвать метод release
Вы создали несколько экземпляров медиаплеера, но не выпустили экземпляр медиаплеера, поэтому возникла проблема. После того, как вы выпустили вызванную проблему, ваша проблема будет решена.
Инициализируйте MediaPlayer как атрибут класса:
MediaPlayer media = MediaPlayer.create(this,R.raw. btn);
В методе playSound():
public void playSound(){
setVolumeControlStream(AudioManager.STREAM_MUSIC);
mp.reset();
mp.start();
}