从onPrepared()调用MediaPlayer.seek()的IllegalStateException

时间:2016-03-12 12:59:20

标签: java android android-mediaplayer

我有一个从MediaPlayer.onPrepared()回调调用onPreparedListener.onPrepared()的应用。在测试中,它工作正常,但我会定期收到崩溃报告,表明它引发了IllegalStateExceptionMediaPlayer docs表示如果内部播放器引擎尚未初始化,则应抛出异常“。但是,似乎接收回调表明初始化已完成。我从不手动调用回调。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

状态顺序一定存在问题。 Android媒体播放器按州运行。如果Media Player未从正确状态移动。然后它抛出IlligalStateException。一旦完成MediaPlayer的状态序列。

答案 1 :(得分:0)

这仍未经过测试,但我相信我有一个解决方案。我在后台线程上调用prepare(),而不是在UI线程上调用prepareAsync()。我认为这导致onPrepared()在异常时被调用。我将在此发表评论,以确认这解决了问题。