我有一个从MediaPlayer.onPrepared()
回调调用onPreparedListener.onPrepared()
的应用。在测试中,它工作正常,但我会定期收到崩溃报告,表明它引发了IllegalStateException
。 MediaPlayer docs表示如果内部播放器引擎尚未初始化,则应抛出异常“。但是,似乎接收回调表明初始化已完成。我从不手动调用回调。有什么想法吗?
答案 0 :(得分:0)
状态顺序一定存在问题。 Android媒体播放器按州运行。如果Media Player未从正确状态移动。然后它抛出IlligalStateException。一旦完成MediaPlayer的状态序列。
答案 1 :(得分:0)
这仍未经过测试,但我相信我有一个解决方案。我在后台线程上调用prepare()
,而不是在UI线程上调用prepareAsync()
。我认为这导致onPrepared()
在异常时被调用。我将在此发表评论,以确认这解决了问题。