按手机中的后退按钮时如何停止声音/音频

时间:2017-12-08 15:20:21

标签: java android

当我按下手机中的后退按钮时,如何停止播放音频。当我去另一个活动时,音频仍在播放,除非我关闭应用程序。这是我的代码:

    FloatingActionButton fab7 = (FloatingActionButton) this.findViewById(R.id.fab7);
    final MediaPlayer mp = MediaPlayer.create( this, R.raw.cebu);
    fab7.setOnClickListener(new View.OnClickListener() {



        public void onClick(View view) {;

            if(mp.isPlaying()){
                mp.pause();
            } else {
                mp.start();
            }

        }
    });

4 个答案:

答案 0 :(得分:1)

1。)在mp.release()

之外声明MediaPlayer mp;

2。)onCreate并在override onStop

中应用相同的点击监听器逻辑
  

为什么onStop不是onStop

因为你想在外面的应用程序以及进入另一项活动时暂停播放器

onBackPress

答案 1 :(得分:0)

按“后退”按钮时,覆盖Activity#onBackPress()方法停止播放器:

<div style="margin:auto;width:60%;padding:10px;">
    <img src="@Server.MapPath("~/assets/img/image.png")" />
</div>

如果你想在活动结束时停止你的播放器,并且不关心为什么(可能是Back back,另一个Activity已经启动,app崩溃了......),你可以覆盖Activity#onStop()因此,只要您的活动消失,确保您的音乐会立即停止!

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

顺便说一下,请注意您应该使用@Override public void onStop() { if (mp != null) { mp.stop(); mp.release(); mp = null; } super.onStop(); } 而不是mp.stop()然后使用mp.pause()来避免内存/资源泄漏!

答案 2 :(得分:0)

使用此功能检测并暂停Mediaplayer

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
    Log.d(this.getClass().getName(), "Back button pressed Song paused");
    mp.pause();


}
return super.onKeyDown(keyCode, event);
}

答案 3 :(得分:0)

写mediaplayer.stop(); 当你离开后开始活动