几招解决超级播放器Error Code:4

2020-11-27 21:19:02 浏览数 (1)

前言

市面上播放器千千万,比如我们常见的有Video.js、hls.js、点播超级播放器等。其中点播超级播放器是基于 video.js 框架并结合腾讯云点播业务而开发的视频播放器,采用以 HTML5<video>为主,Flash 为辅的播放方式,在浏览器不支持 HTML5<video>的情况下采用 Flash 播放、PC端兼容很好。最近收到客户反馈,在接入使用Web超级播放器时,嵌入到对应页面时出现报错。接下来以腾讯云点播为例,来看下如何解决。

问题复现

Web超级播放器接入报错”Error Code:4”?

图1-1图1-1

是文档描述不清还是集成方式不对呢?我们首先来按文档检查下,视频没有被删除,公司网络情况也非常流畅,那是什么导致播放异常呢?接下来让我们一起破解这道谜题。

原因解析:

播放报错Error Code:4,所有的4都是视频因格式不支持或者服务器或网络的问题无法加载,一般有如下原因:

1、 视频格式不支持

播放器是依赖浏览器自身解码能力解析视频进行播放,如果上传的视频没有执行转码或本身视频文件的编码信息与当前播放环境不兼容,则会导致播放异常,我们可以通过对视频执行转码操作或对比Demo看是否可以正常播放,如果Demo是异常,那断定是该问题。

Demo示例Demo示例

2、模拟环境播放

由于PC端chrome浏览器播放m3u8视频是通过MSE转封装播放的,而IOS具有直接播放m3u8的能力,所以在PC模拟iOS的环境,播放器获取环境是iOS时,会直接播放m3u8,而不是像其他PC播放那样调用MSE来播放m3u8,但模拟环境并不是真实的iOS,并没有直接播放m3u8的能力,所以如果使用模拟ios环境来播放对应视频,这里有可能会导致报错。

chrome 模拟展示chrome 模拟展示

3、Js顺序加载失败

如果是这个场景,那需要保证hls.js在tcplayer.js前引入,tcplayer.js加载并初始化播放器后,需要通过hls.js来播放hls视频,如果hls.js在tcplayer.js之后引入,播放器初始化成功并调用hls.js进行视频播放器的时候,hls.js可能并未加载成功,导致播放失败,原来用户播放失败是这里没有调整好。

错误示例:

hls.js在tcplayer.js后hls.js在tcplayer.js后

正确示例:

hls.js在tcplayer.js前hls.js在tcplayer.js前

ps:有些情况下,通过动态加载js,虽然hls.js在tcplayer.js前,但是动态加载并不能保证加载顺序按照对应的顺序加载,hls.js可能也会偶尔在tcplayer.js后加载,导致偶现报错code4.

4、获取不到资源

超级播放器是根据页面代码中appid和fileid发送请求给点播后台,后台根据对应的appid和fileid返回对应的视频信息,播放器拿到视频信息再去请求视频,如果对应appid开通key防盗链等配置,则需要在播放过程中带入对应字段进行播放信息的获取。

正确示例:

播放带psign示例播放带psign示例

小结:

关于Error Code:4播放异常的原因以上几点是线上复现概率最高的,今天就为大家分享这么多,其他Error Code码,且听下回分解。

0 人点赞