【问题标题】:Can not close android MediaPlayer无法关闭android MediaPlayer
【发布时间】:2014-07-28 20:51:49
【问题描述】:

我尝试使用 android MediaPlayer 服务来播放音乐。一切都很好,唯一的问题是在 MediaPlayer 播放时按下后退按钮会导致强制关闭并获得 at android.media.MediaPlayer.isPlaying(Native Method) 下面是我要播放的代码以及我如何尝试停止和关闭媒体播放器,知道吗?

播放:

private class Stream extends AsyncTask<String, String, String> {
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    @Override
    protected String doInBackground(String... params) {
        try {
            mp.reset();
            mp.setDataSource(url);
            mp.prepare();
            mp.start();
            songProgressBar.setProgress(0);
            songProgressBar.setMax(100);
            updateProgressBar();
        } catch (Exception e) {
        }
        return null;
    }

    @Override
    protected void onPostExecute(String result) {
        mHandler.postDelayed(timeUpdate, 100);
    }
}

关闭:

@Override
protected void onDestroy() {
    super.onDestroy();
    if (mp != null) {
        mp.stop();
        mp.release();
    }
    finish();
}

@Override
public void onBackPressed() {
    super.onBackPressed();
    onDestroy();
}

【问题讨论】:

  • U 不应该重写 onDestroy 方法来停止媒体播放器当 onBackPressed() 方法被调用时,它就像一个服务在播放时被强制关闭,尝试用 mp.pause 然后 mp.stop 停止媒体播放器然后 mp.release 这是正常的过程..

标签: android android-mediaplayer


【解决方案1】:

替换

@Override
public void onBackPressed() {
    super.onBackPressed();
    onDestroy();
}

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

试试看……

【讨论】:

    【解决方案2】:

    尝试实现 onkeydown 事件可能会有所帮助:

    public boolean onKeyDown(int keyCode, KeyEvent event) {
            if (mp != null) {
                mp.stop();
                mp.release();
            }
            finish();
            return super.onKeyDown(keyCode, event);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多