連続でタップされたときに効果音の連続再生を防ぐ
アプリに効果音をつけたときに、連続でタップされると困る場合があると思います。
音楽を再生させている間は、タップされたくない場合の対処法の1つを紹介します。
前回にSoundPoolでの効果音再生を紹介したので、SoundPoolを対象にした方法です。
private void soundPlay(){ mySoundPool.play(mySoundId, (float) ringVol, (float) ringVol, 0, 0, 1.0F); cantPlay(); } //連続再生させない private void cantPlay(){ try { //clickableをfalseにする処理など Thread.sleep(2000); } catch (InterruptedException e) { // TODO 自動生成された catch ブロック } }
threadで少しだけ動きを止める強引な方法です。
Viewのclickableをfalseにしておけば、ボタンなどのクリックを防ぐこともできます。
clickableをfalseにした場合は、sleepが終わった後に元に戻す処理を忘れないでください。