我有一个imageView,当用户点击图像音频开始播放时,这里的效果很好我的代码是:
final ImageView imageView = (ImageView) findViewById(R.id.Image7);
imageView.setImageResource(mFullSizeIds[position]);
imageView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
MediaPlayer mp = MediaPlayer.create(Audio.this,mAudio[position]);
mp.start();
return false;
}
});
现在,当我希望用户再次触摸图像时,音频应该停止。所以我已将其添加到我的代码中:
if (mp != null && mp.isPlaying())
mp.stop();
return false;
}
});
但现在声音甚至没有发挥。真的很困惑,因为逻辑告诉我这应该有效。我在这做错了什么?请帮忙......
不太清楚块代码的含义是什么?
答案 0 :(得分:1)
您是否在媒体上调用了prepare
或prepareAsync
这个功能?
然后,当停止媒体时,我认为你必须reset
。
答案 1 :(得分:0)
而不是
mp.stop();
使用
mp.pause();
希望这可以解决问题。否则,需要做的是你需要在使用它时释放媒体播放器资源(如果你打算在每次播放时从头开始播放它。在这种情况下,请使用
mp.release();
祝你好运!
答案 2 :(得分:0)
尝试以下方法:
if (mp != null){
mp.reset();
mp.release();
}