我正在使用按钮对音乐应用进行编码。我想在按下按钮时发出声音,但在发布时停止发声。此外,我想以恒定的循环播放音乐,而不会在循环时间之间分离。 现在当我按下按钮音乐开始播放但是当我释放按钮时它仍然播放,直到文件的结尾。
这是代码:
@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;
}
答案 0 :(得分:3)
嗯,实际上你已经创建了2个MediaPlayer实例,因为onTouch
被调用了两次:一次用于按键,一次用于按键。所以你第一次创建播放器然后你就失去了参考。第二次调用onTouch
,对于ACTION_UP
,您创建了一个新的MediaPlayer
对象,但该对象与使用ACTION_DOWN
创建的对象不同,因此调用{ {1}}对这个新创建的对象没有任何影响。
因此,您可以将播放器实例化为类变量。如下所示:
stop