say_from_wen
2017-09-01 11:49
采纳率: 100%
浏览 3.1k

mediaplayer在播放过程中触发了onerror方法调用getDurtion方法 返回值是负数

mediaplayer在播放过程中自动触发了onerror方法,调用getDurtion方法 发生错误 返回值是负数

E/MediaPlayer: Attempt to call getDuration in wrong state: mPlayer=0x75c09cc0c0, mCurrentState=0
E/MediaPlayer: error (-38, 0)
E/error: -230755392 getDurtion的值
E/error: 1698650 当前播放时长

网上查说是这些原因
1.在初始化MediaPlayer时,通过create方法设置数据源。则不能写MediaPlayer.prepare()方法,这时,会报错。

2.如果是使用MediaPlayer构造函数初始化MediaPlayer,然后通过setDataSource方法设置数据源时,就需要在start()之前,使用MediaPlayer.prepare()方法,对数据源进行一次编译。能够避免出现(-38,0)这种错误。

我感觉我的不是 望做过这方便的大神解答
更多
0
分享到:

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 东风玖哥 2017-09-02 09:47
    已采纳

    你把调用MediaPlayer的代码贴上

    已采纳该答案
    打赏 评论
  • say_from_wen 2017-09-04 02:12

    谢谢您的回答 我在网上查了点也 代码很多 我也不知道贴什么 情况这样的,我视频正常播放 说明已经准备完成了 其实我的意思是这个onerror方法的调用有什么情况,看源码onerror方法调用后 onCompletion 但是我这个方法中有对应的逻辑 会出错 现在闹不懂为什么视频正常播放下为什么会调用这个onerror方法。

    打赏 评论
  • 进步你我他 2017-11-25 07:34

    你好,问题解决了吗,我也遇到了此问题,麻烦分享一下。我的qq是1105435316

    打赏 评论

相关推荐 更多相似问题