求助MediaPlayer的错误

 我来答
路是月的痕f8
2017-10-31 · TA获得超过1216个赞
知道大有可为答主
回答量:1352
采纳率:0%
帮助的人:1048万
展开全部
在调用mediaplayer.getDuration()这个方法的时候,报这样的错:
attempt to callgetDuration without a valid mediaplayer
error (-38, 0)
查了好长时间,引起这个异常的原因有几个:
一是如果mediaPlayer对象为null,那么在执行这个方法的时候会报异常
二是在mediaPlayer对象为不可用状态的时候也会报这个错
为此,我查了一下书,顺便学习了一下MediaPlayer的生命周期,书中是这样解释的:
1) 当一个MediaPlayer对象被新建或调用reset()方法之后,它处于空闲状态,在调用release方法之后,才会处于结束状态。
2) 一个新建的MediaPlayer对象在调用getCurrenProgress()、getDuration、
getVideoHeight()、getVideoWith()、setAudioStreamType(int)、
setLooping(boolean)、setVolume(float,float)、pause()、start()、stop()、
seekTo()、prepare()、prepareAsync()方法时,不会触发OnErrorListenerError()事件,但是
MediaPlayer对象如果调用了reset()方法后,再使用这些方法则会触发OnErrorListenerError()事件。
所以,当你调用了reset()方法后,又调用getDuration()时,就会报异常
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式