1. 视频播放器组件API文档
1.1. sdk使用
1.1.1. PC web端播放
(1)页面引入以下sdk文件:
<script src="https://edu-cms.nosdn.127.net/topics/js/eduPlayer-2024-05-24.all.min_57f5a6f3bfcc8dd234ed568427301696.js"></script>
(2)使用create方法创建播放器实例:
const playerIns = window.EduPlayer.create({
parent: document.body // 播放器参数
appId:xxx, //产品appId,详见参数说明
nonce: xxx, //随机数,详见参数说明
signature: xxx, //签名,将(appSecret+nonce+timestamp)三个参数拼接的字符串,进行SHA1哈希计算
timestamp: xxx, //时间戳随机数,
uid:xxx, // 第三方用户id,详见参数说明
videoData:{
videoId: xxx, // 从后端获取,详见参数说明
signature: xxx // 从后端获取,视频播放凭证,详见参数说明
}
});
在线演示demo:
web版本 https://www.icourse163.org/topics/sdk-video-test-web/
1.1.2. mobile web端播放
(1)页面引入一下sdk文件:
<script src="https://edu-cms.nosdn.127.net/topics/js/eduPlayer-2024-05-24.all.min_57f5a6f3bfcc8dd234ed568427301696.js"></script>
<link href="https://edu-cms.nosdn.127.net/topics/css/res_base_wap_bf7fa73141ee9a696b08098cbe903925.css" rel="stylesheet" />
<script src="https://edu-cms.nosdn.127.net/topics/js/wap_flexible_8254ebe28c3ef10de10b5befac286b8c.js"></script>
<script src="https://edu-cms.nosdn.127.net/topics/js/hammer.2.0.7.min_084aa824c6e6f64cf28551d070abe00c.js"></script>
(2)使用create方法创建播放器实例:
const playerIns = window.EduPlayer.create({
parent: document.body // 播放器参数
appId:xxx, //产品appId,详见参数说明
nonce: xxx, //随机数,详见参数说明
signature: xxx, //签名,将(appSecret+nonce+timestamp)三个参数拼接的字符串,进行SHA1哈希计算
timestamp: xxx, //时间戳随机数,详见参数说明
uid:xxx, // 第三方用户id,详见参数说明
videoData:{
videoId: xxx, // 从后端获取,详见参数说明
signature: xxx // 从后端获取,视频播放凭证,详见参数说明
}
});
在线演示demo:
web版本 https://www.icourse163.org/topics/sdk-video-test-web/
播放器参数列表
使用create方法创建播放器实例:
const playerIns = window.EduPlayer.create({
parent: document.body // 播放器参数
appId:xxx, //产品appId,详见参数说明
nonce: xxx, //随机数,详见参数说明
signature: xxx, //签名,将(appSecret+nonce+timestamp)三个参数拼接的字符串,进行SHA1哈希计算
timestamp: xxx, //时间戳随机数,详见参数说明
uid:xxx, // 第三方用户id,详见参数说明
videoData:{
videoId: xxx, // 从后端获取,详见参数说明
signature: xxx // 从后端获取,视频播放凭证,详见参数说明
}
});
全部参数:
名称 | 类型 | 描述 | 默认值 | 是否必填 |
---|---|---|---|---|
parent | Node | 容器节点 | - | 是 |
appId | String | 应用id | - | 是 |
nonce | Long | 随机数 | - | 是 |
timestamp | Long | 时间戳随机数 | - | 是 |
signature | String | 签名 | - | 是 |
uid | String | 用户id | - | 否 |
autoStart | Boolean | 自动开始播放 | false | 否 |
forbiddenSeek | Boolean | 禁止拖动进度条 | false | 否 |
preload | Boolean | 开启预加载 | true | 否 |
volume | Number | 音量 | 0.8 | 否 |
mute | Boolean | 静音 | false | 否 |
notAllowFullScreen | Boolean | 禁止全屏 | false | 否 |
waterMark | Boolean | 开启水印 | false | 否 |
waterMarkContent | String | 水印内容 | - | 否 |
videoData | Object | 视频数据 | - | 是 |
videoData.videoId | Number | 视频id | - | 是 |
videoData.signature | String | 视频播放凭证 | - | 是 |
videoData.start | Number | 开始播放时间点 | 0 | 否 |
1.2. 播放器实例方法
1.2.1. 方法列表
方法名 | 方法说明 |
---|---|
stop | 终止当前视频的播放 |
pause | 暂停视频播放 |
resume | 恢复,播放视频 |
seek | 指定位置开始播放 |
getPosition | 获取当前视频播放的时间 |
getState | 获取播放器的状态 |
getStateInfo | 获取播放器的状态的详细信息 |
getLog | 获取全部日志 |
getVideoNode | 获取video标签 |
exitFullScreen | 退出播放器全屏状态 |
destroy | 销毁播放器 |
1.2.2. stop
停止播放,停止加载视频
参数:无
返回值:void
代码示例:
playerIns.stop();
1.2.3. pause
暂停视频播放
参数:无
返回值:void
代码示例:
playerIns.pause();
1.2.4. resume
恢复,播放视频
参数:无
返回值:void
代码示例:
playerIns.pause();
1.2.5. seek
跳转到指定位置开始播放
参数:
名称 | 类型 | 描述 | 默认值 | 是否必填 |
---|---|---|---|---|
seekSecs | Number | 跳转到的时间点 | - | 是 |
返回值:void
代码示例:
playerIns.seek(seekSecs);
1.2.6. getPosition
获取当前播放的时间点,时间单位是秒
参数:
名称 | 类型 | 描述 | 默认值 | 是否必填 |
---|---|---|---|---|
callback | Function | 回调方法 | - | 是 |
返回值:void
代码示例:
playerIns.getPosition(function(pos){
alert(pos); // pos是一个数字,单位是秒
}));
1.2.7. getState
获取视频状态
参数:
名称 | 类型 | 描述 | 默认值 | 是否必填 |
---|---|---|---|---|
callback | Function | 回调方法 | - | 是 |
返回值:void
代码示例:
playerIns.getState(function(state){
alert(state);
}));
状态常量说明
状态常量 | 常量说明 |
---|---|
IDLE | 空转状态(执行stop方法后会变成此状态) |
PLAYING | 播放状态 |
BUFFERING | 缓冲状态 |
PAUSED | 暂停状态 |
COMPLETE | 播放完成状态 |
1.2.8. getStateInfo
获取播放器的状态详细信息
参数:
名称 | 类型 | 描述 | 默认值 | 是否必填 |
---|---|---|---|---|
callback | Function | 回调方法 | - | 是 |
返回值:void
代码示例:
playerIns.getStateInfo(function(state){
alert(stateInfo);
}));
stateInfo详细字段
名称 | 类型 | 描述 |
---|---|---|
stateInfo | Object | 当前播放器详细信息 |
stateInfo.status | Number | 当前播放器状态 |
stateInfo.quality | Object | 当前清晰度信息 |
stateInfo.quality.name | String | 当前清晰度名称 |
stateInfo.quality.quality | Number | 当前清晰度值 |
stateInfo.caption | Array.Object | 当前字幕信息 |
stateInfo.caption.name | String | 当前字幕名称 |
stateInfo.caption.index | Number | 当前字幕序号 |
stateInfo.caption.url | String | 当前字幕地址 |
stateInfo.caption.lang | String | 当前字幕语言,cn或者en |
stateInfo.caption.isSelect | Boolean | 字幕是否被选中 |
stateInfo.isp | String | 当前CDN标示 |
1.2.9. getLog
获取当前播放器全部日志
参数:无
返回值:void
代码示例:
playerIns.getLog();
1.2.10. getVideoNode
获取播放器原生video标签
参数:无
返回值:void
代码示例:
playerIns.getVideoNode();
1.2.11. exitFullScreen
退出全屏
参数:无
返回值:void
代码示例:
playerIns.exitFullScreen();
1.2.12. destroy
销毁播放器实例,删除相关dom节点
参数:无
返回值:void
代码示例:
playerIns.destroy();
1.3. 播放器实例事件
1.3.1. 使用
使用$on
方法绑定播放器实例的事件处理方法,使用方法如下:
playerIns.$on('onPlay', function(){
alert('playing');
});
如果只运行一次事件处理方法使用$once
,使用方法如下:
playerIns.$once('onPlay', function(){
alert('playing');
});
使用$off
移除事件处理方法,使用方法如下:
playerIns.$off('onPlay');
1.3.2. 事件列表
事件名 | 事件说明 |
---|---|
onStartLoad | 视频开始加载事件 |
onPlayEnd | 播放完毕事件 |
onChangeVolume | 音量改变事件 |
onMute | 静音事件 |
onPlay | 播放事件 |
onTimeupdate | 视频播放时间更新事件 |
onBuffering | 缓冲事件 |
onPause | 暂停事件 |
onSeek | 拖动事件 |
onFullscreenChange | 全屏事件 |
onError | 出错事件 |
onMeta | 视频元数据加载完成事件 |
1.3.3. onStartLoad
视频开始加载
参数:
名称 | 类型 | 描述 |
---|---|---|
data | Object | - |
data.type | String | 视频类型 |
data.url | String | 视频地址 |
data.quality | Number | 视频清晰度,标清:1,超清:2,超高清:3 |
data.signature | String | 视频凭证 |
1.3.4. onPlayEnd
视频播放完毕事件
参数:无
1.3.5. onChangeVolume
音量改变事件
参数:
名称 | 类型 | 描述 |
---|---|---|
data | Object | - |
data.volume | Number | 音量值,0到1之间取值 |
1.3.6. onMute
静音事件
参数:
名称 | 类型 | 描述 |
---|---|---|
data | Object | - |
data.mute | Boolean | true静音,false非静音 |
1.3.7. onPlay
播放事件,在每次开始播放时候触发
参数:无
1.3.8. onTimeupdate
视频播放时间更新事件
参数:
名称 | 类型 | 描述 |
---|---|---|
data | Object | - |
data.currentTime | Number | 视频播放位置 |
data.duration | Number | 视频总长,单位是秒 |
1.3.9. onBuffering
缓冲事件
参数:无
1.3.10. onPause
暂停事件
参数:无
1.3.11. onSeek
拖动事件
参数:
名称 | 类型 | 描述 |
---|---|---|
data | Object | - |
data.newData | Number | 拖动后的时间点 |
data.oldData | Number | 拖动前的时间点 |
1.3.12. onFullscreenChange
全屏事件
参数: |名称|类型|描述| | :-- | :-- | :-- | |data|Boolean| true全屏,false非全屏 |
1.3.13. onError
播放器出错事件
参数: |名称|类型|描述| | :-- | :-- | :-- | |data|String| 错误信息
1.4. 常见错误提示
- 页面已过期,请刷新页面[code:-1]
说明:获取视频数据的接口返回异常,可能原因是signature过期
- 视频获取失败[code:-2]
- 视频获取失败[code:-4]
- 视频获取失败[code:-5]
- 视频获取失败[code:-6]
说明:2~5都是获取视频接口返回的数据不存在或者不正确,可能原因是videoId不存在或不正确,signature过期或不正确
接口返回的数据应该符合一下结构:
{
code:0,
message:"ok",
result:{
videos:[{
videoUrl: xxx
}]}
}
- 不支持该视频播放[6]
说明:视频的格式不支持播放
- 抱歉视频无法播放[7]
说明:可能是网络或者视频地址不存在
- 抱歉视频无法播放[8]
说明:可能是网络问题
9.不支持该视频播放[9]
说明:m3u8解密出错
- 抱歉视频无法播放[10]
说明:hlsjs报错,较少出现
- 抱歉视频无法播放[11]
说明:flvjs报错,较少出现