2012-05-31 1 views
2

Я хочу играть звук каждый раз, когда нажимается кнопка.Воспроизведение звука при быстрых кликах android

Проблема в том, что если я нажимаю ее быстро, то иногда звук воспроизводится. Но иногда он не воспроизводится.

Если я нажимаю кнопку 20 раз, (очень быстро), звук должен идеально воспроизводиться 20 раз. Но происходит то, что звук не успевает закончить. Он играет в среднем 8-9 раз.

Я инициализировал свой объект mediaPlayer. И это, похоже, работает.

mp1.start(); 

Я также пробовал использовать следующий код, но это воспроизводит звук только в первый раз. После этого звук никогда не воспроизводится.

if(mp1.isPlaying()) 
    mp1.stop(); 
    mp1.start(); 

ответ

6

Проблема заключается в том, MediaPlayer класс сравнительно тяжелый предмет веса и не может быть пригодны для воспроизведения мелких файлов в меньшем интервале. Поэтому мое предложение для вас - использовать SoundPool.

SoundPool сравнительно менее весомый объект и поможет в вашем случае.

Вот пример на его основе,

http://www.vogella.com/articles/AndroidMedia/article.html#tutorial_soundpool

+1

Отлично! Это отлично работает :) Я тоже использую этот учебник http://blog.nelsondev.net/?p=207 – Genaut

+0

wow. отлично. Спасибо, что указали еще один хороший пример. Я этого не знал. –