停止在Backpress上播放音频

时间:2018-07-02 11:56:29

标签: java android

当我单击播放按钮时,我有一个活动,它会播放mp3声音。当我单击返回时,音频仍在后台播放,并且还可以与其他烦人的音频一起运行。我试图实现此处使用的其他方法,但无济于事。

代码:

public class InstructionsManualActivity extends AppCompatActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_instructions_manual);
    Button one = (Button) this.findViewById(R.id.instructionsManual_but);
    final MediaPlayer mp = MediaPlayer.create(this, R.raw.instructions_manual);
    one.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            mp.start();
        }
    });
}

}

我已经尝试过此代码,但是按回车应用程序崩溃

@Override
public void onBackPressed() {
    super.onBackPressed();
    if (mp.isPlaying()) {
        mp.stop(); // or mp.pause();
        mp.release();

3 个答案:

答案 0 :(得分:2)

    Try this it's working for me   

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

答案 1 :(得分:2)

首先在全局范围内声明MediaPlayer对象

  MediaPlayer mp = null;  //Declaring globally so can access anywhere in activity.

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_instructions_manual);
        Button one = (Button) this.findViewById(R.id.instructionsManual_but);
        mp = MediaPlayer.create(this, R.raw.instructions_manual);
        one.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                mp.start();
            }
        });
    }
  

在任何活动onBackPressed()中按下后退按钮时   将被称为,在那里您可以停止播放媒体播放器。

 @Override
    public void onBackPressed() {
        super.onBackPressed();
       //Here you can stop your MediaPlayer
        if (mp != null && mp.isPlaying()) {
            mp.stop();
            mp.release();
        }
    }

答案 2 :(得分:0)

您的代码很好,只需在停止前检查空玩家

    super.onBackPressed();
if (mp!=null && mp.isPlaying()) {
    mp.stop(); // or mp.pause();
    mp.release();