我们可以使用如下方式监听superplayer在播放中可能出现的错误:

import SuperPlayer, { END_STATE, H5_PLAY_EVENT } from '@tencent/super-player';

const player = new SuperPlayer({ container: '#app' });
player.on(H5_PLAY_EVENT.PLAY_SESSION_END, ({ data }) => {
  const { code, message, endState } = data;
  if (endState === END_STATE.ERROR) {
    console.log(`播放出错,错误码为${code},错误消息为${message}`);
  }
});

具体的错误码列表和描述信息参考下面列表:


# 通用错误

错误码 描述
70011000 未知错误
70011100 H5 视频取回过程被用户终止
70011101 H5 当视频下载时发生错误
70011102 H5 当视频解码时发生错误
70011103 H5 不支持该音频/视频
70011104 视频请求超时(默认30s)
70011111 播放中缓冲区长时间无变化(默认30s)
70011112 传入空url播放
70011113 找不到播放内核
70011114 环境不支持当前播放内核

# demux2fmp4内核错误

错误码 描述
70020000 未知错误
70020001 mp4的range请求有返回,但是xhr状态码错误
70020002 mp4的range请求网络错误
70020003 mse模块出错(例如初始化MediaSource的codec不正确,sourcebuffer中append数据出错等)
70020004 demux/remux过程中出错

# hls内核错误

错误码 描述
70030000 未知错误
70030001 EME模块错误
70030002 缓冲区数据停止导致卡住
70030003 解析m3u8文件没有可用codec
70030004 分片解密出错
70030005 分片解析出错
70030006 hls.js抛出其他异常
70030007 master-m3u8加载超时
70030008 master-m3u8加载出错
70030009 level-m3u8加载超时
70030010 level-m3u8加载出错
70030011 分片文件加载超时
70030012 分片文件加载出错

# flv内核错误

错误码 描述
70050000 未知错误
70050001 Any other unspecified error
70050002 Related to any other issues with the network; contains a message
70050003 Related to an invalid HTTP status code, such as 403, 404, etc.
70050004 Related to timeout request issues
70050005 Related to unexpected network EOF which cannot be recovered
70050006 Related to MediaSource's error such as decode issue
70050007 Related to any invalid parameters in the media stream
70050008 The input MediaDataSource format is not supported by flv.js
70050009 The media stream contains video/audio codec which is not supported

# wasm内核错误

错误码 描述
70060000 未知错误
70060001 加载wasm主文件失败(mainjs)
70060002 加载wasm主文件失败 (workerjs)
70060003 环境不支持
70060004 加载wasm主文件失败(wasm)
70060005 请求视频时网络无法连接
70060006 请求视频时返回错误状态码
70060007 runtime错误信息(c++层)

# H5Player错误

错误码 描述
70040000 未知错误
70040001 没有getinfo插件
70040002 广告播放结束出错的默认错误
70040003 广告信息请求出错的默认错误

# 请求后台服务错误

错误码 描述
70014001 CGI失败(404、500等)
70014002 CGI跨域失败
70014003 CGI超时错误
70014004 CGI有返回但是无法解析
70014005 getinfo插件内部错误(代码异常等)

# 点播服务返回错误

错误码 描述
70013030 CGI内部错误
70013040 未知错误
70013041 服务解包失败
70013042 服务打包失败
70013050 CGI初始化失败
70013060 filename与vid format不对应
70013061 vid不合法
70013062 文件状态不合法
70013064 访问付费服务出错
70013067 文件格式出错
70013069 没有可播格式
70013074 分片号超出范围
70013076 动态码率格式错误
70013080 IP版权限制
70013083 未付费
70013084.1 IPcgi访问视频type限制(通常是第三方鉴权 未传鉴权ID,或者播放的视频类型不在许可范围内)
70013085 Ckey校验失败
70013087 vids数量过多
70013090 广告type不合法
70013091 1080P未付费
70013092 视频禁止下载
70013094 多IP付费打击(付费)
70013100 站外限制播放
- (注意: 600以后错误非getinfo原始返回拼接,而是播放器对getinfo返回进行解析后自定义错误码)
70013600 vip视频未付费且没有试看时长(st=8,preview=0,!!注意只有preview=0时才可以抛错,preview > 0时地址可播)

注意

由于腾讯视频后台错误码可能由主错误码细分错误码加小数点拼接而成,例如70013083.2。因此如果需要根据错误码做业务逻辑判断,需要注意小数点后面的细分错误码。例如如下判断可判断是付费错误:

import SuperPlayer, { ErrorCode, H5_PLAY_EVENT } from '@tencent/super-player';

const player = new SuperPlayer({ container: '#app' });
player.on(H5_PLAY_EVENT.PLAY_SESSION_END, ({ data }) => {
  if (data.code.startsWith(ErrorCode.GETINFO_SERVER_CODE_PREFIX)) {
    console.log('点播后台返回错误');
  }

  if (data.code.startsWith('70013083')) {
    // data.code可能为70013083.1,因此我们用startWith判断分隔点前的字符串
    console.log('播放需要付费');
  }
});

# 直播服务返回错误

错误码 描述
70023001 查不到频道id
70023002 非重点区域限制观看
70023003 带宽达到一定比例,限制非重点区域观看
70023004 带宽整体已满,限制观看
70023005 所在地区无播放版权
70023006 频道信号中断
70023007 节目未开始
70023008 节目已结束
70023009 当前频道达到人数上限
70023012 节目当前时段无版权
70023014 携带参数格式出错
70023015 请求的视频流类型未知(stream字段)
70023016 缺乏用户名与vkey(内部直播用)
70023017 无效referer
70023018 用户不在白名单
70023019 未知app来源
70023020 来源页面不在白名单内(flash用)
70023021 无效命令字(cmd)
70023022 教育直播专用-验权失败
70023023 请求付费鉴权模块失败(网络超时或解析出错)
70023024 sng权限验证超时
70023025 无用户登录信息(登录态cookie缺少必填字段)
70023026 vip验证超时
70023027 ptlogin验证超时
70023028 请求登录验证模块失败(网络超时或解析出错)
70023030 当前节目未付费
70023031 qq登录验证失败
70023032 CKEY验证失败
70023042 乌托邦权限验证失败
70023044 乌托邦验证超时
70023045 试看次数达到上限
70023046 试看计数鉴权失败
70023047 试看计数失败(网络错误)
70023048 微信登录验证失败
70023050 微信内部票据验证超时(网络错误)
70023051 当前没有正在直播的节目
70023056 处理用户消息超时
70023057 请求排队服务超时
70023060 非法回看请求
70023061 tencent employee权限验证失败
70023062 tencent employee权限验证超时
70023091 需要好莱坞特权才能观看
70023097 不支持加密播放
上次更新: 3/28/2022, 10:20:42 AM