android - 媒体播放器正在播放抛出非法状态android

标签 android try-catch state android-mediaplayer illegalstateexception

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

为什么会这样?在这些时候你应该做什么?您将如何确定播放器的状态?

最佳答案

根据 Android 文档:

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

我要说的是,首先确保您已经初始化和/或尚未释放播放器。

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

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

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

关于android - 媒体播放器正在播放抛出非法状态android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12208696/

相关文章:

flutter - 在页面焦点事件上出现抖动?

java - 如何使用Java中的Scanner读取文件?

android - 当应用程序在后台打开时,如何打开 React Native Android 深层链接?

java - 如何在管道传输到/从 javas stdin/stdout 时捕获错误

java - 如何关闭 Java Stream?

java - java中web服务不可用时如何处理异常

Flutter 中的状态更新

android - 强制使用 ActionBarSherlock 的应用程序使用 Theme 而不是 Theme.Holo

android - 如何在android中添加重叠按钮

javascript - 为什么 getDerivedStateFromProps 不允许使用状态更新重新渲染? componentWillReceiveProps 不是问题 - ReactJS