历史课堂接入方式
根据接口定义生成的地址,可以直接在浏览器中播放直播课产生的历史课堂。
https://wwwr.plaso.cn/static/sdk/styleupime/1.33.213/?
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
appId | 字符 | 是 | 应用id, 由伯索分配; |
appType | 字符 | 是 | 应用类型,目前播放场景下固定值为player |
recordId | 字符 | 是 | 同一个meetingId有可能会产生多个历史课堂,用此recordId标记; |
meetingId | 字符 | 否 | 课堂ID,唯一标识该课堂;使用ASSIIC字符,不得包含/空格等; |
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
showType | number | 否 | 1/2/40(1-仅头像播放/2-仅白板播放/40-头像+白板播放,可选参数) |
avatarHeight | number | 否 | 头像+白板播放时的自定义头像高度,可选参数),只有showType传参为40的情况下,该参数才会生效,最小值90,小于90时头像不会再变小,无最大值,当头像高度设置的值大于当前播放器的高度时,头像的高度会跟播放器的高度一致 |
📌
接入步骤:
1.https://wwwr.plaso.cn/static/sdk/css/plaso_upime_player-1.8.501.css
2.https://wwwr.plaso.cn/static/sdk/js/plaso_upime_player-1.8.501.js
3.如果插入了m3u8类型的音视频窗口或气泡,需要引入 https://wwwr.plaso.cn/static/sdk/js/hls.js
4.window对象中会新增一个PlasoUpimePlayer类
5.调用new PlasoUpimePlayer(outBorder)创建sdkPlayer
6.准备好签名过的query,调有sdkPlayer.setSrc(query, option)方法设置播放路径(历史课堂保存到自己存储的可以不需要query,只传空字符串,在option中需要传getFileName方法;如果内容中包含从资料中心插入的ppt、音视频等,需要额外传入getExtFileName)
7.canplay事件触发之后,调用play,pause等方法控制播放、暂停,对sdkPlayer.currentTime赋值可以快进;
8.当播放sdk视频的容器大小发生变化时,需要调用sdkPlayer.resize()
9.用户需要制作播放控制条
普通播放器示例:
<script src="https://wwwr.plaso.cn/static/sdk/js/plaso_upime_player-1.7.js"></script>
<link rel="stylesheet" href="https://wwwr.plaso.cn/static/sdk/css/plaso_upime_player-1.7.css">
<script>
var loaded = false, currentTime, duration, playing = false;
var sdkPlayer= new PlasoUpimePlayer(document.getElementById("playerdiv"));
sdkPlayer.setSrc(query);
sdkPlayer.on("canplay", function() {
loaded = true;
// canplay事件触发时才能获取到duration
duration = sdkPlayer.duration;
// 监听timeupdate事件获取currentTime更新进度条长度,也可以自己设置定时器读取sdkPlayer.currentTime
sdkPlayer.on("timeupdate", function() {
currentTime = sdkPlayer.currentTime;
console.log("currentTime =", currentTime);
//TODO: 更新进度条长度
})
sdkPlayer.on("ended", function() {
console.log("play end");
});
});
// 播放
function play() {
if(!loaded) return;
if(sdkPlayer.ended) sdkPlayer.currentTime = 0;
sdkPlayer.play().then(function() {
playing = true;
});
}
// 暂停
function pause() {
sdkPlayer.pause().then(function() {
playing = false;
})
}
// 快进,以s为单位
function seekTo(time) { sdkPlayer.currentTime = time }
</script>
PlasoUpimePlayer
PlasoUpimePlayer是播放器类,播放sdk视频时需要先new一个sdkPlayer对象 functions
constructor(outBorder)
构造函数。参数:
outBorder: dom对象。用来装载sdk视频内容
setSrc(query, option) 设置播放路径,视频加载成功时会触发"canplay"事件,那时才可以正常播放。参数:
query: string类型。appId、recordId等参数签名后生成的字符串(历史课堂保存到自己存储的可以不需要query,只传空字符串)
option:对象(可选)。设置额外的参数,包括传入timer、audioObject等,详见option参数说明
play()*
播放;返回promise
当未设置播放路径、未加载完成时返回结果将是rejected。
ended属性为true时调用play()的返回结果也是rejected,需要先设置currentTime到可播放的点
pause()*
暂停;返回promise
resize()*
调整大小。装载sdk视频内容的容器div的大小发生变化时需要调用resize方法重新调整视频大小
on(eventName, callback)*
增加事件回调。参数:
eventName: string类型,事件名
callback:事件回调函数
off(eventName, callback)*
取消事件回调。参数:
eventName: string类型,事件名
callback:之前调用on方法绑定过的、待取消的事件回调函数
destroy()*
销毁播放器
variables
currentTime
sdk视频当前播放时间,double类型,以秒(s)为单位。当对该属性赋值时可以调整当前播放时间
duration
sdk视频的总时长,double类型,以秒(s)为单位
ended
当前是否已经播放到结尾,boolean类型
当触发ended事件时ended属性将变成true,此时调用play()方法将返回rejected
重新设置currentTime后ended属性将变成false
事件*
canplay* sdk视频内容加载完成事件,没有加载完成时无法播放sdk视频内容
timeupdate* 视频播放时间变化时触发。返回值:
time: 当前播放时间,对于currentTime
ended* 当视频播放到结尾时触发
click* 当播放器产生没有鼠标移动的点击事件时触发。用户也可以自行在装载sdk视频内容的outBorder元素上绑定click事件,当sdk视频中带有可拖动的视频人像,拖动、缩放人像视频大小也会触发click事件,用户需要判断自己监听的click事件触发时鼠标是否在移动
新增startRecordTime,标记绝对的录制开始时间, 便于播放器完成同步其他多媒体的工作;
timer
当用户需要自己播放多媒体,需要提供timer对象供upime同步用, 并提供如下函数;
currentTime
audioObject
当传入audioObject时,播放器在播放时将同时播放audioObject指定的音频文件,在音频正常播放时sdk视频的播放时间将和音频播放的时间保持同步。属性:
src: 音频的url路径。如果音频文件为m3u8类型,还需要引入https://wwwr.plaso.cn/static/sdk/js/hls.js
duration: 音频文件时长(目前sdk视频的duration依然以sdk服务器录制的内容的duration为准)
getFileName
如果历史课堂保存到自己存储,需要在option中需要传入getFileName方法。该方法用来返回历史课堂目录下每个文件的访问地址。参数:
filename: string类型。文件相对于历史课堂目录的相对地址
isPublic: boolean类型。isPublic=true表示希望得到该文件公开的访问地址,即不需要签名、没有有效期的地址 返回promise,promise的结果为文件访问地址
getExtFileName
如果内容中包含从资料中心插入的ppt、音视频等,需要额外传入getExtFileName。该方法用来根据外部文件info获取外部文件的访问地址。参数:
info: Array类型。info为从资料中心插入ppt、音视频文件时提供的info 返回promise,promise的结构为文件访问地址
var option = {
audioObject: {
src: 'https://file-plaso.oss-cn-hangzhou.aliyuncs.com/dev-plaso%2Fteaching%2F182%2F1553651059818-15.mp3',
duration:272
}
}
sdkPlayer.setSrc(query, option);
白板中如果插入了视频, 且需要在微信中播放.
请到微信开发组申请白名单,否则无法在微信中播放;

修改于 2025-03-20 06:41:58