2011-04-29 2 views
0

Я сделал кнопку, и когда вы нажимаете на нее, она отдает короткий звук (Макс. Один второй звук). Но после того, как я нажал на кнопку около 20 раз подряд я заставить близко .. Код:Задержка MediaPlayer после последовательных щелчков

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();, но затем мой звук прекращается после того, как были сыграны половину время ...

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

+0

Пожалуйста показать LogCat с ошибкой – Aleadam

ответ

2

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

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

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

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

+0

+1 ваш ответ лучше для этого случая. – MByD

+0

Спасибо большое! Также посмотрите на сайт разработчика Android! – Kevin

Смежные вопросы