如何在触摸图像时停止播放音频

时间:2013-07-25 17:08:31

标签: android android-mediaplayer

我有一个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;
          }
});

但现在声音甚至没有发挥。真的很困惑,因为逻辑告诉我这应该有效。我在这做错了什么?请帮忙......

不太清楚块代码的含义是什么?

3 个答案:

答案 0 :(得分:1)

您是否在媒体上调用了prepareprepareAsync这个功能?

然后,当停止媒体时,我认为你必须reset

答案 1 :(得分:0)

而不是

mp.stop();

使用

mp.pause();

希望这可以解决问题。否则,需要做的是你需要在使用它时释放媒体播放器资源(如果你打算在每次播放时从头开始播放它。在这种情况下,请使用

mp.release();
祝你好运!

答案 2 :(得分:0)

尝试以下方法:

if (mp != null){
        mp.reset();
        mp.release();
    }