連続でタップされたときに効果音の連続再生を防ぐ

効果音

アプリに効果音をつけたときに、連続でタップされると困る場合があると思います。

音楽を再生させている間は、タップされたくない場合の対処法の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が終わった後に元に戻す処理を忘れないでください。

効果音sleep,thread

Posted by ラン