如何使MediaPlayer的声音继续播放?未循环



我有一个适用于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;

最新更新