【发布时间】:2013-12-07 21:43:10
【问题描述】:
我正在编写一个带有按钮的音乐应用程序。我想在按下按钮时发出音乐声,但在释放按钮时停止。此外,我想在循环时间之间不分离的情况下以恒定循环播放音乐。 现在,当我按下按钮时,音乐开始播放,但当我松开按钮时,它仍在播放,直到文件结束。
这是代码:
@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;
}
【问题讨论】:
-
尝试在代码的 Action_UP 块中添加
do2n.stop()看看是否有帮助 -
@kabuto178 不起作用,
MediaPlayer是在方法中创建的。它需要在方法之外创建,以便ACTION事件可以启动和停止同一个MediaPlayer实例,正如@gunar 所讨论的那样。 -
是的,我现在注意到 Dan,没想到他真的在那里声明了媒体播放器。
标签: java android android-mediaplayer