无法关闭android MediaPlayer
我尝试了android MediaPlayer服务来播放音乐。一切正常,唯一的问题是在MediaPlayer播放时按下后退按钮会导致android.media.MediaPlayer.isplay上的强制关闭和获取无法关闭android MediaPlayer,android,android-mediaplayer,Android,Android Mediaplayer,我尝试了android MediaPlayer服务来播放音乐。一切正常,唯一的问题是在MediaPlayer播放时按下后退按钮会导致android.media.MediaPlayer.isplay上的强制关闭和获取(本机方法) 下面是我的播放代码,以及我如何尝试停止和关闭媒体播放器,有什么想法吗 播放: private class Stream extends AsyncTask<String, String, String> { @Override protecte
(本机方法)
下面是我的播放代码,以及我如何尝试停止和关闭媒体播放器,有什么想法吗
播放:
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
public void onBackPressed() {
super.onBackPressed();
onDestroy();
}
与
尝试一下…尝试实施onkeydown事件可能会有所帮助:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (mp != null) {
mp.stop();
mp.release();
}
finish();
return super.onKeyDown(keyCode, event);
}
调用onBackPressed()方法时,不应重写onDestroy方法来停止媒体播放器,这就像播放时强制关闭服务一样,尝试使用mp.pause然后mp.stop然后mp.release停止媒体播放器这是正常过程。。
@Override
public void onBackPressed() {
if (mp != null) {
mp.stop();
mp.release();
}
finish();
super.onBackPressed();
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (mp != null) {
mp.stop();
mp.release();
}
finish();
return super.onKeyDown(keyCode, event);
}