1

我正在使用 MediaPlayer 在我的应用程序中播放音乐。当我需要暂停和恢复时,我使用 mPlayer.isPlaying() 检查状态,但这有时会引发非法状态异常。

为什么会这样?在这些时候你应该怎么做?你将如何确定玩家的状态?

4

1 回答 1

5

根据 Android 文档:

“如果内部播放器引擎尚未初始化或已释放,则出现 IllegalStateException。”

我想说首先确保你已经初始化和/或没有释放播放器。

MediaPlayer 可能很奇怪;即使逻辑已经有意义,也值得尝试使用不同的语句;如果您发布代码,我可以在这方面为您提供更多帮助。

现在,您可以只使用 try-catch 语句并在 catch 中添加一些内容以确保 MediaPlayer 正常工作。

Edit1:只是在黑暗中猜测,如果您为 MediaPLayer 使用静态全局变量,那可能就是问题所在。我会仔细检查它是如何被初始化和释放的,尤其是在类之间切换时。

于 2012-08-31T04:10:33.737 回答