我有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;
}
}
答案 0 :(得分:1)
你需要检查是否有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;