2017-04-15 18 views
0

我有应用程序,使用媒体播放器的声音。我用它来停止声音,当我按后退按钮的代码是:铃声应用程序不逻辑崩溃,当我添加onpause方法背部buton

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

这个代码工作不错,但如果应用程序突然被打断,声音还在玩它需要停下来,所以我加了同样的事情在onPause方法(如果我添加onStop方法,同样的情况)。

@Override 
protected void onPause() { 
    super.onPause(); 
    if (mp != null) { 
     mp.reset(); 
     mp.release(); 
    } 
} 

现在,当我按回,应用程序崩溃,而不是要回(即工作之前我添加的onPause方法)的onPause工作好,如果我按Home键我得到在logcat的这个错误的声音停止:

了java.lang.RuntimeException:无法暂停活动 java.lang.IllegalStateException

...

回答

1

您无法重置发布的MediaPlayer。因为在释放资源之后,用于播放声音的资源不可用。你应该改变:

mp.reset(); 
mp.release(); 

到:

mp.release(); 
mp = null; 
+0

谢谢,这解决了我的问题 – somidurlan

相关问题