【发布时间】: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