0

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

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

不太清楚你所说的块代码是什么意思?

4

3 回答 3

1

您是否致电该功能prepareprepareAsync在您的媒体上?

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

于 2013-07-25T17:12:58.977 回答
0

尝试以下操作:

if (mp != null){
        mp.reset();
        mp.release();
    }
于 2013-07-25T17:15:27.847 回答
0

代替

mp.stop();

利用

mp.pause();

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

mp.release();

祝你好运!

于 2013-07-25T17:14:06.073 回答