WEB版本
:::highlight purple 💡
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 表示打开 |
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。不传默认是全部开启的状态。 |
2. 第二步,签名加密
将所选字段的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 | 数字 | 历史课堂参与听众累计时长 |
修改于 3 个月前