Android 当按下后退按钮时,如何停止播放音频?

Android 当按下后退按钮时,如何停止播放音频?,android,Android,大家好,这是我的代码: final ImageView imageView = (ImageView) findViewById(R.id.Image7); imageView.setImageResource(mFullSizeIds[position]); imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {

大家好,这是我的代码:

   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();

}

  });
现在,当用户点击图像时,此代码可以很好地播放音频,但是当我想退出此活动并转到其他活动时,音频曲目仍在播放,即使我按home键,音频仍在播放。我怎样才能防止这种情况发生?
当用户再次点击图像或按下后退/主页按钮时,是否有方法停止播放曲目

在活动中创建一个onStop,并使mp成为类变量,尽管我总是为此类内容创建/更喜欢media player助手类。然后在顶部调用mp.stop()/暂停

private MediaPlayer mp = null;

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

    if (mp != null) {
        mp.stop();
    }
}
然后,您只需在mp之前删除MediaPlayer即可创建它:

mp = MediaPlayer.create(Audio.this,mAudio[position]);

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

private MediaPlayer mp = null;

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

    if (mp != null) {
        mp.stop();
    }
}
然后,您只需在mp之前删除MediaPlayer即可创建它:

mp = MediaPlayer.create(Audio.this,mAudio[position]);


覆盖
onBackPressed
方法,并停止
MediaPlayer
对象,即
mp

覆盖
onBackPressed
方法,并停止
MediaPlayer
对象,即
mp

在你的
onPause
中使用
mp.stop()
mp.release()
。在你的
onPause
中使用
mp.stop()
mp.release()
。你能解释一下如何在我的活动中创建一个“onStop”以及如何使mp成为一个类变量吗?更新的答案,基本上,你是从方法之外创建MediaPlayer mp的,这意味着你可以从活动中的任何方法访问它。嗨,谢谢你,它可以工作!!但是,当我选择下一张图像时,上一张图像的音频轨迹不会像以前那样停止,它只是在上一张图像上播放。现在知道是什么原因吗?检查(mp!=null&&mp.isPlaying())mp.stop();如果你在重复使用同一个对象,那就没有运气了。我的“Integer”中的所有音频曲目都会列出,当用户在多媒体资料中选择下一幅图像时,它会播放该图像的曲目。当用户在多媒体资料中选择下一幅图像时,是否有办法停止播放曲目?我很感谢你在这方面的帮助。你能解释一下如何在我的活动中创建“onStop”以及如何使mp成为类变量吗?更新的答案,基本上你是从方法之外创建MediaPlayer mp的。这意味着它可以从你活动中的任何方法访问。嗨,谢谢你的帮助!!但是,当我选择下一张图像时,上一张图像的音频轨迹不会像以前那样停止,它只是在上一张图像上播放。现在知道是什么原因吗?检查(mp!=null&&mp.isPlaying())mp.stop();如果你在重复使用同一个对象,那就没有运气了。我的“Integer”中的所有音频曲目都会列出,当用户在多媒体资料中选择下一幅图像时,它会播放该图像的曲目。当用户在多媒体资料中选择下一幅图像时,是否有办法停止播放曲目?我感谢你在这方面的帮助。