Java 按下按钮时发出声音
我试着在按下按钮时发出一个声音 当我按下按钮时,我怎么能这样做?事件“MotionEvent.ACTION\u DOWN”不会停止运行声音?我做这件事的方式只有一次。我试着把return语句改为false,但不起作用 setLoop MediaPlayer选项对我没有帮助,因为我想继续播放新声音,尽管当前声音尚未播放完毕 这是我的密码:Java 按下按钮时发出声音,java,android,ontouchlistener,onclicklistener,soundpool,Java,Android,Ontouchlistener,Onclicklistener,Soundpool,我试着在按下按钮时发出一个声音 当我按下按钮时,我怎么能这样做?事件“MotionEvent.ACTION\u DOWN”不会停止运行声音?我做这件事的方式只有一次。我试着把return语句改为false,但不起作用 setLoop MediaPlayer选项对我没有帮助,因为我想继续播放新声音,尽管当前声音尚未播放完毕 这是我的密码: public boolean onClick(View v, MotionEvent event) { if(event.getAction() ==
public boolean onClick(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN){
//here should not stop running the soundPool
soundPool.play(R.raw.sound1, 1, 1, 1, 0, 1);
}
if(event.getAction() == MotionEvent.ACTION_UP){
// stop running the soundpool
}
return true;
}
替换
返回false代码>带返回true代码>。获取操作的唯一方法是返回true
,通知Android系统您将处理整个onClick
事件。将第五个参数替换为-1:
soundPool.play(R.raw.sound1, 1, 1, 1, -1, 1);
由于第五个参数loop
取0(=无循环)或-1(=永远循环)它产生相同的声音循环,我想将声音作为一个新的独立声音池运行多次,而不允许它停止其他声音池的执行。给你一个想法,我想播放一个机关枪的声音,多次播放子弹的声音。是的,这只是一个子弹声音的单一原始声音,但我不想循环,我想在动作结束时重复这个声音池的执行。我想这样做是因为我想在前一个声音结束之前开始一个新的声音,而不是失去子弹的回声。问题是这个动作只响应一次,我希望总是有一个积极的听众。谢谢如果我解释得不对,请原谅。我不确定,但您可以尝试实现一个OnTouchListener
而不是onClick Listener,并以与onClick相同的方式重写onTouch
方法。