Android 如何通过onTouch播放声音,并在出现故障时停止播放
当我触摸图像时,媒体播放器会启动,但当从图像中删除fingure时,媒体播放不会停止。请帮帮我 iv.setOnTouchListener(本); mp1=MediaPlayer.create(getApplicationContext(),R.raw.air) 这将在您触摸ImageView时检查媒体播放器是否正在播放,如果正在播放,将停止播放,如果未播放,将启动播放。这样您就不需要使用开关箱了Android 如何通过onTouch播放声音,并在出现故障时停止播放,android,ontouchlistener,Android,Ontouchlistener,当我触摸图像时,媒体播放器会启动,但当从图像中删除fingure时,媒体播放不会停止。请帮帮我 iv.setOnTouchListener(本); mp1=MediaPlayer.create(getApplicationContext(),R.raw.air) 这将在您触摸ImageView时检查媒体播放器是否正在播放,如果正在播放,将停止播放,如果未播放,将启动播放。这样您就不需要使用开关箱了 在此之前,请务必设置媒体播放器。您应该只能够调用mp1.stop(),这不起作用吗?试试mp1.s
在此之前,请务必设置媒体播放器。您应该只能够调用mp1.stop(),这不起作用吗?试试mp1.stop();mp1.释放();mp1=null;当我举起手指的时候,它不会停止。但有时它会停止。双击时出现错误。尝试使用.isplaying方法检查它是否正在播放,是否正在停止。我在支票上加一个答案。
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
mp1 = MediaPlayer.create(getApplicationContext(), R.raw.airhorn_1);
mp1.start();
mp1.setLooping(true);
mp1.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp1) {
// TODO Auto-generated method stub
mp1.release();
}
});
Log.i("Action", "Down");
break;
case MotionEvent.ACTION_MOVE:
Log.i("Action", "Move");
Log.i("On Long", "On Long");
break;
case MotionEvent.ACTION_CANCEL:
mp1.pause();
Log.i("Action", "Cancel");
break;
case MotionEvent.ACTION_UP:
mp1.pause();
//mp1.stop();
Log.i("Action", "up");
break;
default:
break;
}
return true;
}
public void onTouch(View v) {
if (mp.isPlaying()) {
mp.stop();
} else {
mp.start();
}