我有4个持续时间的声音。我想通过不停地按下来连续播放这个声音,就像按下时的钢琴键,它会播放声音而不会循环或停止。
{ ...state, ...state, ...{other props} }

答案 0 :(得分:0)
button.setOnTouchListener(new View.OnTouchListener(){
onTouch(View v, MotionEvent event){
switch(getActionMasked()){
case ACTION_BUTTON_PRESS:
handler.removeCallbacksAndMessages(null);
soundPool.stop(SID1_c);
SID1_c = soundPool.play(sound_c, 1, 1, 1, 0, 0);
c.setBackgroundResource(R.drawable.key4);
return true;
case ACTION_BUTTON_RELEASE:
handler.postDelayed(new Runnable() {
@Override
public void run() {
soundPool.stop(SID1_c);
}
},90);
return false;
}
return false;
}
});
您的代码问题:
如果你按两次按钮
当你开始发布延迟以停止第一个按钮的声音时,这个停止将按下第二个按下而不是之前停止的第一个按下
为了纠正这个问题,你应该在播放声音时退出处理程序
完成新的印刷后,您可以使用handler.removeCallbacksAndMessages(null);