MediaPlayer принудительно закрывается после последовательных нажатий - PullRequest
0 голосов
/ 30 апреля 2011

Я сделал кнопку, и когда вы нажимаете на нее, она издает короткий звук (максимум одна секунда).Но после того, как я нажал кнопку примерно 20 раз подряд, меня принудительно закрыли .. Код:

final Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        // Perform action on clicks
        MediaPlayer mp = MediaPlayer.create(getBaseContext(), R.raw.buzzer);
        mp.start();
        }
});

Я пробовал с mp.stop();, но мой звук останавливается после того, как он былиграет половину времени ...

Еще одна вещь, кто-нибудь знает, как "подготовить" звук, когда я нажимаю?Поскольку при первом нажатии на кнопку звук задерживается на несколько миллисекунд.

1 Ответ

2 голосов
/ 30 апреля 2011

Создайте MediaPlayer переменную-член и инициализируйте ее в onCreate() так же, как вы делаете это в слушателе. Тогда в слушателе просто используйте этот код:

if(mPlayer.isPlaying()) {
    mPlayer.stop();
}
mPlayer.start();

Затем позвоните mPlayer.release() в вашей finish() Активности. Я предполагаю, что, поскольку ни один из ваших экземпляров MediaPlayer не выпущен, ему не хватает памяти для использования.

Официальный документ для MediaPlayer на самом деле невероятно нагляден и полезен: http://developer.android.com/reference/android/media/MediaPlayer.html

...