1

大家好,这是我的代码:

   final ImageView imageView = (ImageView) findViewById(R.id.Image7);
   imageView.setImageResource(mFullSizeIds[position]);
   imageView.setOnClickListener(new View.OnClickListener() {

@Override
         public void onClick(View v) {
    MediaPlayer mp = MediaPlayer.create(Audio.this,mAudio[position]);  
    mp.start();

}

  });

现在,当用户点击图像时,此代码可以正常播放音频,但是当我想退出此活动并转到其他活动时,音轨仍在播放,即使我按下主页键,音频仍在播放. 我怎样才能防止这种情况发生?当用户再次点击图像或按下返回/主页按钮时,有没有办法停止播放曲目?

4

3 回答 3

3

添加

   @Override
    public void onBackPressed ()
    {
      if (mp != null)
        mp.stop();
      super.onBackPressed();
    }

@Override
public void onPause ()
{
  if (mp != null)
  {
    mp.pause();
    mp.stop();
  }
  super.onPause();
}
于 2013-07-30T18:06:34.400 回答
1

在活动中创建一个 onStop 并使 mp 成为一个类变量,尽管我总是为这类东西创建/更喜欢媒体播放器帮助类。然后在 onStop 上调用 mp.stop()/pause。

private MediaPlayer mp = null;

@Override
public void onStop() {
    super.onStop();

    if (mp != null) {
        mp.stop();
    }
}

然后您只需在 mp 之前删除 MediaPlayer 即可创建它:

mp = MediaPlayer.create(Audio.this,mAudio[position]);
于 2013-07-30T18:05:09.500 回答
1

覆盖该onBackPressed方法,并停止您的MediaPlayer对象,即mp.

于 2015-11-24T12:02:09.383 回答