如何让MediaPlayer声音继续?不循环

时间:2014-09-14 09:56:56

标签: java android media-player

我有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;
        }
}

1 个答案:

答案 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;