WEB版本
💡
web版本1.43.419
web端
基本要求
浏览器要求Chrome内核
接入和试用
伯索云直播SDK提供两种接入方式: iFrame嵌入式接入和单独页式接入,两种接入方式最后的呈现并无区别,区别在于适用于不同的技术场景,客户的技术开发团队可根据具体需要进行选择。
iFrame嵌入式接入
接入步骤:
1、引入plaso_style_upime.js, 下载地址: https://wwwr.plaso.cn/static/sdk/js/plaso_style_upime-1.43.419.js
2、创建sdkClient
var sdkClient = PlasoStyleUpime.createLiveClient(dom, options, interfaces);
参数说明:
dom: dom类型,用来装载实时课堂页面的dom节点。
options: 对象类型
标题 | 参数类型 | 是否必须 | 默认值 | 参数说明 |
---|---|---|---|---|
query | string | 非必须 | 加入实时课堂需要签名后的query。query中的onClose参数只支持等于close, 建议使用interfaces中的getQuery实现 | |
classMembers | array | 非必须 | 初始化课堂参与人{loginName,name,upimeRole,// "speaker","assistant","listener","superlistener"之一 unique_id, //非必要 displayAvatarUrl, // 非必要。头像图片的url} | |
hideOtherClient | bool | 非必须,classMembers设置后生效 | false | 成员列表中只显示classMembers列表中包含的成员 |
supportFaceAI | bool | 非必须 | false | 是否支持智能人脸监控 |
sendMsgByTeacher | bool | 非必须 | true | 控制老师能否在聊天中发送消息 |
sendMsgByAssistant | bool | 非必须 | true | 控制助教能否在聊天中发送消息 |
enableVideoMark | bool | 非必须 | false | 可以开启视频标注功能 |
enableDelay | bool | 非必须 | false | 允许拖堂 |
enableDTQ | bool | 非必须 | false | 允许接入本地答题器 |
allowLocalPPT | bool | 非必须 | true | 允许在实时课堂中插入本地ppt |
confKey | string | 非必须 | default | 用来记录用户选项的默认key,便于客户端使用多用户 |
endRemindTime | int | 非必须 | - | 双减提醒, 用来提供双减提示的时间点,为当天的时间戳, 单位秒; 不传没有提醒; |
inviteClient | function | 非必须 | 默认值 | 暂时不对外提供此能力,当传入方法时,成员列表窗口会显示邀请按钮,点击后调用这个方法,由接入方自己实现分享课堂连接的界面与逻辑 |
customLogDirectoryPath | string | 非必须 | "" | 用户自定义日志的路径(electron版本使用) |
enableNewClassExam=1 | string | 非必须 | "" | 新版本随堂测开关,传1 表示打开 |
d_enableObjectEraser=1 | number | 非必须 | 0 | 新板书配置,二进制位存储default:0;默认关闭对象擦7:手写(对象擦); |
interfaces: 对象类型,用来传入回调函数。
函数名 | 参数类型 | 返回值 | 函数说明 |
---|---|---|---|
onExit | - | - | 当在sdk内部点击退出时触发该函数,sdk用户需要主动调用sdkclient函数关闭客户端,this.sdkClient.destory() |
showResourceCenter | - | - | 显示自定义资料中心,用户需要在该函数中自动执行sdkClient的方法插入文件 |
getExtFileName | info:Array | Promise | 如果自定义资料中心调用了sdkClient.insertObject方法需要提供这个接口,用Promise返回一个可访问的可下载文件路径(公网地址), 参数info就是UpimeObject.info |
getExtFileInfo | info:Array<Array, String> | Promise | 如果自定义资料中心调用了sdkClient.insertObject方法需要提供这个接口,用Promise返回一个可访问的可下载文件路径(公网地址) ykd接口使用 |
getExtFileInfo | info:Array<Array, String> | Promise | 函数说明 |
getQuery | - | Promise | 进入课堂的签名字符串 |
- 使用sdkClient
方法名 | 说明 |
---|---|
insertObject | 详见 附录-插入外部文件。 |
单独页面接入
通过本接口可以生成用户加入课堂的链接地址。对接时可以选择跳转、弹出新页面等方式打开,鉴权通过后进入课堂页面。
请求地址:
https://wwwr.plaso.cn/static/sdk/js/plaso_style_upime-1.43.418.js?{直播query参数}
构造直播query参数, 详见 生成直播query
注一:生成直播Query
1.第一步,选择所需的业务参数字段和合适的值
名称 | 类型 | 是否必填 | 描述 |
---|---|---|---|
appType | string | 是 | 应用类型,必填,目前为固定值:liveclassSDK |
userType | string | 是 | 用户类型,目前有三个值可选: speaker,assistant,listener; speaker是演讲者,有控制其他listener是否可写可说话的权限; assistant是助教,也有控制权限。 |
meetingType | string | 是 | 课堂类型,可选传入值:public,private。 当选择private类型时,每一个进入课堂者,必须提供loginName,这是唯一标识该用户的id,相同的loginName登录,后进入者会使前一个强制登出 |
mediaType | string | 是 | 媒体类型:audio, video,前者表示不带人像视频,后者表示带人像视频 |
meetingId | string | 是 | 课堂ID,唯一标识该课堂;使用ASSIIC字符,不得包含/,,空格等;长度在40字节以内的字符串。 |
loginName | string | 是 | 唯一标识该用户的id,不能为空,相同的loginName登录,后面一个会使前面一个登出; |
d_dimension | string | 是 | 1280x720 定义界面尺寸为16:9 界面 |
userName | string | 否 | 登录的用户名,在列表中显示用,如果没有系统会弹出对话框要求输入 |
topic | string | 否 | 用于显示该课堂的名称 |
endTime | string | 否 | 课堂结束时间,格式为 Unix Epoch 时间戳,单位秒 |
recordTime | string | 否 | 开始录制时间;如果不填,则立刻开始录制;格式为 Unix Epoch 时间戳,单位秒 |
pptPath | string | 否 | 填写此参数会把PPT文件在服务端解析后直接打开并插入到课堂白板中 |
h5Path | string | 否 | 插入H5课件的URL地址 |
dynamicPPT | string | 否 | 默认用图片形式打开PPT,1表示用动态播放形式打开PPT。 |
onClose | string | 否 | 其值可以为 close,back;close表示系统会自动调用window.close, 此时要求网页的打开是调用window.open打开,否则不生效;back表示系统会自动调用window.history.back;iFrame接入时只支持close。 |
options | string | 否 | 通用参数,目前用于各种类型的通知options={"warn":[{"time":"Unix Epoch秒数","word":"提醒内容"}]} |
cloudDisk | string | 否 | 默认为'false',为'true'时可以打开第三方文件(目前只支持ppt文件),需要提供第三方数据给sdk。 |
d_switch | string | 否 | 类型:number 描述:该字段使用二进制标志位,0号位为1表示解除禁言,学生可以在聊天区交流;1号位为1,表示学生开启成员列表功能,学生可以在工具栏中打开成员列表。最终传入10进制的值,比如二进制11最终传入3。不传默认是全部开启的状态。 |
- 第二步,签名加密
将所选字段的key和value用=连接,然后再将每一个key=value对使用&相连,最后再加上签名字段,具体请参考 签名加密。 这是一个拼接好的query示例:
query='recordId=5fb1&signature=7FFFD7EDE4A89BFA0F27F4FB2597C8D7FE1D3C1F&validBegin=1604980351&validTime=3600&appType=player&appId=sdk4u'
注二:开发回调接口获取课堂信息
课堂结束后,伯索平台将通过设置回调地址反馈课堂数据。如果没有配置回调地址,则不返回数据。 具体请参考 回调接口开发。
注三:查询直播信息
直播结束后,伯索侧会统一生成该直播课的历史课堂(可以回看的文件)。
通过本接口可以查询指定的课堂产生的历史课堂数据,包括:直播总人次,总时间和费用信息。
注意:如果上课过程中出现多次所有用户全部离开,就会产生多条课堂的数据;
注四:cloudDisk使用说明
cloudDisk 集成场景说明:
是采用网页调用PostMessage 方式接入, 实现场景:纯web 方式。
集成效果:调用外部资料中心,采用此方式接入; 实现打开资料中心后,调用网盘数据,网盘的界面由SDK绘制呈现。
highlight gray
window.addEventListener("message", function(e) {
if(!e.data) return;
var data = e.data;
if(data.name === "getDataListFromCloudDisk"){
Promise.resolve(getDataList()).then(list => {
window.opener.postMessage({
name: "setDataListFromCloudDisk",
value: list
}, "*");
})
}
})
//getDataList同步返回或异步返回结果
function getDataList() {
...
...
...
return list;
}
//
//
//list数据格式为
[
{
myid, //[string]必须
name, //[string]必须(后缀只能为ppt、pptx)
path, //[string]必须,文件url
type, //[int]必须 目前只支持1
createTime, //[int] 时间戳
duration, //[int] 单位秒
size, //[int]单位:B
},
]
请求地址
https://www.plaso.cn/liveclass/getrecordinfo
请求参数
标题 | 类型 | 必填 | 描述 |
---|---|---|---|
appId | 字符 | 是 | 应用id, 由伯索分配; |
meetingId | 字符 | 是 | 课堂ID,唯一标识该课堂;使用ASSIIC字符,不得包含/,,空格等; |
recordId | 字符 | 否 | 同一个meetingId有可能会产生多个历史课堂,用此recordId标记; |
返回结果
返回值为是一个数组,其中包含了一个或多个record对象。
名称 | 类型 | 描述 |
---|---|---|
meetingId | 字符 | 课堂ID |
recordId | 字符 | 历史课堂ID |
duration | 数字 | 历史课堂时长 |
userCount | 数字 | 历史课堂参与听众数 |
userCS | 数字 | 历史课堂参与听众累计时长 |
