按下并释放按钮时播放和停止音乐

时间:2013-12-05 22:28:09

标签: java android android-mediaplayer

我正在使用按钮对音乐应用进行编码。我想在按下按钮时发出声音,但在发布时停止发声。此外,我想以恒定的循环播放音乐,而不会在循环时间之间分离。 现在当我按下按钮音乐开始播放但是当我释放按钮时它仍然播放,直到文件的结尾。

这是代码:

    @Override
        public boolean onTouch(View v, MotionEvent event) {
            MediaPlayer do2n = MediaPlayer.create(this, R.raw.do_leg);
            if(event.getAction() == MotionEvent.ACTION_DOWN) {
                if(v.getId()==R.id.dor){
                   do2n.start();
                }
            } else if (event.getAction() == MotionEvent.ACTION_UP) {
                if(v.getId()==R.id.dor){
                    if (do2n != null)
                        do2n.release();
                }
            }
        return true;
}

1 个答案:

答案 0 :(得分:3)

嗯,实际上你已经创建了2个MediaPlayer实例,因为onTouch被调用了两次:一次用于按键,一次用于按键。所以你第一次创建播放器然后你就失去了参考。第二次调用onTouch,对于ACTION_UP,您创建了一个新的MediaPlayer对象,但该对象与使用ACTION_DOWN创建的对象不同,因此调用{ {1}}对这个新创建的对象没有任何影响。

因此,您可以将播放器实例化为类变量。如下所示:

stop
相关问题