无论是否正在播放,如何在按下后停止媒体播放器?

How to stop media player on back pressed regardless of whether it's playing or not?

@Override
public void onBackPressed(){
    super.onBackPressed();
    mp.release();
    overridePendingTransition(R.anim.anim, R.anim.anim2);
}

MediaPlayer 在播放声音时释放,但是当不播放声音时它不能释放任何东西并导致空指针。如果我不释放它,它就会继续播放。这是一个陷阱 22。我怎样才能基本上停止 MediaPlayer 而不会出现任何错误?

以这种方式释放媒体播放器

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

试试这个

检查媒体播放器是否正在播放

if(mp !=null && mp.isPlaying())
     mp.release();

您可以创建一个 flag.Whenever 媒体正在播放,使该标志为真。

int playingFlag = 0;

//当媒体正在播放时,将此播放标志设置为1,使其值为1

playingFlag = 1;

//当媒体停止时,将此标志设置为0

playingFlag = 0;

//在你的onBackPressed方法中,检查这个flag.If它是1,停止播放器,如果它是0,什么都不做。

@Override
public void onBackPressed(){
    super.onBackPressed();
    if( playingFlag == 1 ) {
       //Do something you want
       mp.release();
       overridePendingTransition(R.anim.anim, R.anim.anim2);
    } else {
        //Do nothing
    }

}