我有一个适用于onTouchEvent()
的MediaPlayer。所以每次我触摸屏幕时,它都会播放两秒钟的声音。问题是,即使我继续触摸屏幕,我仍然要等到程序完成前两秒的声音,然后下次播放。
但我希望它就像每次我触摸屏幕时,无论第一次敲击的声音是否在播放,它都必须播放新的声音。
这是我的代码:
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
MediaPlayer sound= MediaPlayer.create(getContext(), R.raw.boo);
sound.start();
pointX.add(event.getX());
pointY.add(event.getY());
postInvalidate();
break;
}
}
您需要检查是否有mediaPlayer的实例,如果是,您需要停止它并再次播放
MediaPlayer sound;
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
if (sound != null) {
sound.stop();
sound.release();
sound = null;
}
sound = MediaPlayer.create(getContext(), R.raw.boo);
sound.start();
pointX.add(event.getX());
pointY.add(event.getY());
postInvalidate();
break;