Skip to content

ErrorInfo

wshichang edited this page Jan 19, 2017 · 12 revisions

Android播放器常见错误说明

在android播放器使用过程中经常会出现一些错误,当出现错误后会回调public boolean onError(IMediaPlayer mp, int what, int extra)方法,其中what的值为播放的错误号 (错误号含义详见here),extra的值为扩展信息号(为0或HTTP返回值)
经常有用户反馈不是很了解出现错误的含义以出现这些错误的原因,所以这里将常见的错误触发条件及原因进行总结以及说明,具体如下所示:

操作 错误号 原因
播放rtmp直播流,播放过程中主播停止推流 -1004 推流端停止推流造成播放端长时间无法读取数据,触发设置的超时时间读数据超时播放报错退出
播放rtmp直播流,播放过程中拉流端断网 -1004 播放端断网引起播放端返回读数据失败错误,与用户层设置超时处理无关,快速退出不会再等待超时
播放rtmp直播流,播放过程中推流端断网 -1004 推流端断网造成播放端无法读取数据,触发设置的超时时间读数据超时
播放rtmp直播流,拉流端中间切换网络 -1004 播放端网络发生变化引起播放端返回读数据失败错误,与用户层设置超时处理无关
播放http+flv直播流,但推流端并未推流 -1004 触发设置的超时时间超时退出,同时访问数据是不存在的,其错误形式是(-1004,404)
连接无效wifi,播放hls直播流 -1004 网络无效触发设置的超时时间,超时退出
播播http+flv点播流,播放过程中断网 -1004 播放端断网引起播放端返回读数据失败错误,与用户层设置超时处理无关
播放hls直播流,弱网环境 -1004 网络环境差出现长时间读不到数据情况,触发设置的超时时间超时退出(-1004,200)
连接无效wifi,播放rtmp直播流 -10002 dns解析失败,多次尝试后报错退出
连接无效wifi,播放hls直播流(超时时间设置足够长) -10002 dns解析失败
连接无效wifi,播放hls直播流 -10004 与服务器建连失败一段时间后报错退出
播放失效http+flv直播流,弱网环境 -10004 与服务器建连失败一段时间后报错退出
播放rtmp直播流,弱网环境 -10004 网络较差建连时间过长,触发设置的超时时间,超时退出
播放推流端没有推流进行推流的rtmp地址(域名是合法的) -10004 推流端没有推送数据,但在播放端看来是长时间读取不到数据触发设置的超时时间,超时退出
播放http+flv直播流,播放过程中拉流端主动断网 -10004 播放端断网引起播放端返回读数据失败错误,与用户层设置超时处理无关
播放带有加密的hls直播流 1 没有权限
播放hls直播流,弱网环境 1 网络较差触发设置超时时间,超时退出
播放http+mp4点播流,弱网环境 1 网络较差触发设置超时时间,超时退出
播放无效的http地址,超时设置足够长 -10008 请求的数据不存在(-10008,404)
播放hls直播流,播放端播放过程中断网 0 没有报错,触发onCompletion
播放http+flv直播流,播放过程中推流端停止推流 0 没有报错,触发onCompletion
播放http+flv直播流,播放过程中推流端主动断网 0 没有报错,触发onCompletion
播放hls直播,流弱网环境 0 网络较差长时间读不到数据触发设置的超时时间但没有报错,触发onCompletion
播放http+mp4点播流,弱网环境 -10011 网络较差建连时间过长触发超时时间,超时退出
播放http+mp4点播流,中途断网 -10011 播放端断网,造成播放端返回数据读取错误,快速退出不会再等待超时
播放http+mp4点播流,弱网环境 -10011 网络较差播放过程中触发设置超时时间,报错退出

由上可知:
-1004: 对于rtmp流出主要会出现在播放过程中,一般是表示断网、读数据出错或超时。当这种情况发生后在确保网络连接通畅以及主播有推流的情况下可进行重连恢复播放;
-10002: 发生在开播前, 出现这种情况请确认网络连接是否通畅;
-10004: 错误出现此错误一般发生在开播前,请确认网络是否通畅,播放的地址是否还有效。在都满足的情况下可适当进行重播或重连以便恢复播放; 1: 对于hls流以及http+mp4流如果出现错误1,在确认流有效的情况下可进行重连恢复播放;
-10008: 请跟服务端确认所请求的数据是否存在;
0: 没有收到错误,认为是一次正常播放结束;
-100011: 对于http+mp4格式的流可进行重连恢复播放;

注意: 1.以上数据由测试所得(测试版本融合版2.2.1),记录的是一般网络情况下的现象; 2.重连或重播只是一种恢复播放的补救手段,但是如果所处的环境不是很理想重新恢复的播放仍有可能会再次报错。

Clone this wiki locally