我有使用媒体播放器播放声音的应用。当我按下后退按钮时,我用来停止声音的代码是:
@Override
public void onBackPressed() {
super.onBackPressed();
if (mp != null) {
mp.reset();
mp.release();
}
finish();
}
这段代码运行良好,但是如果app突然中断,声音仍在播放,则需要停止,所以我在onPause方法中添加了相同的东西(如果我添加onStop方法也是如此)。
@Override
protected void onPause() {
super.onPause();
if (mp != null) {
mp.reset();
mp.release();
}
}
现在,当我按下时,应用程序崩溃而不是返回(在我添加onPause方法之前有效)onPause工作正常,因为如果我按下主页按钮,声音会停止我在logcat中收到此错误:< / p>
java.lang.RuntimeException: Unable to pause activity
java.lang.IllegalStateException
...
答案 0 :(得分:1)
您无法重置已发布的MediaPlayer。因为在释放后,用于播放声音的资源不可用。你应该改变:
mp.reset();
mp.release();
为:
mp.release();
mp = null;