按下时播放声音,按下时停止?
Play sound when press down and stop it when press up?
我有一个持续时间为 7 秒的声音。我想在按下时播放它,然后在按下时停止(例如 1 秒)。我的代码如下所示,但我有问题???快速按下数次时,声音播放 7 秒,不要停止。我想制作一架简单的钢琴。
有什么问题?你有什么想法吗?
c.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: // Button Pressed
SID1_c = soundPool.play(sound_c, 1, 1, 1, 0, 0);
c.setBackgroundResource(R.drawable.key4);
return true;
case MotionEvent.ACTION_UP:// Button released
handler =new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
soundPool.stop(SID1_c);
}
},90);
return false;
}
return false;
}
});
在按下 button
期间,如果有 soundPool
,您需要先停止。
在case MotionEvent.ACTION_DOWN:
中写入soundPool.stop(SID1_c);
,然后再开始soundPool
。
我有一个持续时间为 7 秒的声音。我想在按下时播放它,然后在按下时停止(例如 1 秒)。我的代码如下所示,但我有问题???快速按下数次时,声音播放 7 秒,不要停止。我想制作一架简单的钢琴。 有什么问题?你有什么想法吗?
c.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: // Button Pressed
SID1_c = soundPool.play(sound_c, 1, 1, 1, 0, 0);
c.setBackgroundResource(R.drawable.key4);
return true;
case MotionEvent.ACTION_UP:// Button released
handler =new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
soundPool.stop(SID1_c);
}
},90);
return false;
}
return false;
}
});
在按下 button
期间,如果有 soundPool
,您需要先停止。
在case MotionEvent.ACTION_DOWN:
中写入soundPool.stop(SID1_c);
,然后再开始soundPool
。