伯索开放平台
首页API文档SDK文档伯索官网
首页API文档SDK文档伯索官网
  1. 播放器SDK
  • 产品介绍
    • SDK简介
    • SDK支持的业务场景
    • 产品特色
  • 产品功能
    • 实时课堂功能介绍
    • 微课功能介绍
    • 作业批改功能介绍
    • 上传课件功能介绍
    • SDK后台功能介绍
  • 接入指引
    • SDK对接标准流程说明
    • 关键概念
  • SDK接入文档
    • 历史课堂数据回调接入
    • 签名示例
    • 历史课堂转视频接入方式
    • 历史课堂/微课下载接口
    • query参数说明
    • 文档解析接口
    • SDK预解析服务接入说明
    • 「伯索云学堂」跳转接入指南
    • Web SDK
      • PlasoStyleUpime API说明
      • 云盘接入
      • 接入预解析能力 (Web端)
      • 直播SDK
        • 快速接入
      • 微课SDK
        • 快速接入
      • 批注SDK
        • 快速接入
    • Electron SDK
      • 快速接入
    • Android SDK
      • 直播SDK
        • 快速接入
      • 微课SDK
        • 快速接入
      • 批注SDK
        • 快速接入
    • iOS SDK
      • 直播SDK
        • 快速接入
      • 微课SDK
        • 快速接入
      • 批注SDK
        • 快速接入
    • 播放器SDK
      • Web播放器
  • 最佳实践
  • Open API帮助文档
    • Open API 主要功能
    • Open API集成常用场景
    • 数据字典
    • 接入须知
      • 调用流程
      • 在线调试
      • 通用错误码
    • 用户信息管理
      • 添加用户
      • 修改密码
      • 删除用户
      • 更新用户
      • 用户精确查询
      • 查询多个用户
      • 用户访问Token
      • 验证用户Token有效期
      • 批量添加用户
      • 恢复删除的用户
      • 设置学生属性(是否跟随/是否加联)
      • 学生随机分配课程顾问(V2)
    • 教材包管理
      • 查询机构教材包
      • 查询教材包内教材
      • 向学生分发教材包
    • 实时课堂管理
      • 创建实时课堂
      • 创建实时课堂(班)
      • 更新实时课堂
      • 更新实时课堂(班)
      • 删除实时课堂
      • 查询实时课堂列表
      • 更新实时课堂下听众用户
      • 获取实时课堂监控地址
      • 控制单个学员是否可以回看单次课
      • 获取单个课堂的回看地址
      • 删除单个历史课堂
      • 获取课堂考勤数据
      • 获取历史课堂信息
      • 获取历史课堂观看数据
      • 获取课堂互动信息
      • 获取课堂列表(新)
      • 获取实时课堂旁听链接
      • 获取极速直播推流地址
      • 获取课堂下板书图片
    • 班级管理
      • 创建班级
      • 更新班级
      • 删除班级
      • 查询班级列表
      • 向班级中添加学生
      • 从班级中移除学生
      • 更换学生所在班级
      • 老师列表中查询机构分校学科
      • 根据班级获取获取班级详情和人员信息
    • 学情数据
      • 获取学生课堂明细数据
      • 获取学生巩固明细数据
      • 获取学生测验明细数据
      • 获取学生辅导明细数据
      • 获取学生积分明细数据
    • 商城管理
      • 获取商品详情
      • 获取商品列表
      • 获取分校自定义商品栏目列表
      • 订单查询
      • 订单详情查询
    • 作业管理
      • 查询学生作业列表
      • 查询老师作业列表
    • 测验管理
      • 查询机构测评列表
      • 获取测评统计
      • 查询机构测验列表
      • 获取测验明细
    • 积分管理
      • 机构积分规则
      • 查下学生当前积分数
      • 查下机构每天的积分明细记录
    • 课程顾问
      • 新建课程顾问
      • 编辑课程顾问
      • 查询课程顾问
      • 停用/启用课程顾问
      • 更新课程顾问密码
  • 产品更新记录
    • Open API 更新日志
    • SDK 更新日志
  • 常见问题
    • PPT制作事项
    • 课件常见问题与解决方法
    • 网络相关问题
    • 声音相关问题
    • 网络测速
  • 推荐
    • 浏览器推荐
    • 常见软件推荐
    • 教育硬件推荐
  • 历史课堂视频
    POST
  • 查询历史课堂
    POST
  • 数据模型
    • 示例数据模型
      • Pet
      • Category
      • Tag
      • 返回值
    • Schemas
首页API文档SDK文档伯索官网
首页API文档SDK文档伯索官网
  1. 播放器SDK

Web播放器

💡
最新版本 1.60.117

接入方式#

伯索云播放器Web SDK提供两种接入方式:js-sdk接入和url接入,两种接入方式最后的呈现的内容并无区别,区别在于适用于不同的技术场景,客户的技术开发团队可根据具体需要进行选择。

js-sdk接入#

1.
https://wwwr.plaso.cn/static/sdk/css/plaso_upime_player-${SDK_VERSION}.css
2.
https://wwwr.plaso.cn/static/sdk/js/plaso_upime_player-${SDK_VERSION}.js
3.
如果插入了m3u8类型的音视频窗口或气泡,需要引入https://wwwr.plaso.cn/static/sdk/js/hls.js
4.
window对象中会新增一个PlasoUpimePlayer类
5.
调用new PlasoUpimePlayer(outBorder)创建sdkPlayer
6.
调用sdkPlayer.setSrc(query, option)方法设置播放路径
7.
canplay事件触发之后,调用play/pause等方法控制播放/暂停,对sdkPlayer.currentTime赋值可以快进;
8.
当播放sdk视频的容器大小发生变化时,需要调用sdkPlayer.resize()
9.
用户需要制作播放控制条

demo#

https://github.com/PlasoOpenPlatform/PlasoSdkPcSample/blob/main/player/player.js
https://wwwr.plaso.cn/static/sdk/websdkdemo/example/yxtsdk/player-sdk/index.html
<script src="https://wwwr.plaso.cn/static/sdk/js/plaso_upime_player-1.7.js" />

<link
  rel="stylesheet"
  href="https://wwwr.plaso.cn/static/sdk/css/plaso_upime_player-1.7.css"
/>

<script>
  let canPlay = false;
  let currentTime;
  let duration;
  let playing = false;

  const sdkPlayer = new PlasoUpimePlayer(document.getElementById("playerdiv"));
  sdkPlayer.setSrc(query);

  sdkPlayer.on("canplay", () => {
    canPlay = true;
    duration = sdkPlayer.duration; // canplay事件触发时才能获取到duration
    sdkPlayer.on("timeupdate", () => {
      // 监听timeupdate事件获取currentTime更新进度条长度,也可以自己设置定时器读取sdkPlayer.currentTime
      currentTime = sdkPlayer.currentTime;
      console.log("currentTime =", currentTime);
    });
    sdkPlayer.on("ended", () => {
      console.log("play end");
    });
  });

  // 播放
  function play() {
    if (!canPlay) {
      return;
    }
    if (sdkPlayer.ended) {
      sdkPlayer.currentTime = 0;
    }
    sdkPlayer.play().then(() => {
      playing = true;
    });
  }

  // 暂停
  function pause() {
    sdkPlayer.pause().then(() => {
      playing = false;
    });
  }

  // 快进 (单位s)
  function seekTo(time) {
    sdkPlayer.currentTime = time;
  }
</script>

PlasoUpimePlayer 类#

PlasoUpimePlayer 是播放器类,播放 SDK 视频时需要先 new 一个 sdkPlayer 对象。

函数#

函数名定义说明
constructor(outBorder: HTMLElement) => void构造函数
outBorder: dom 对象,用来装载 SDK 视频内容
setSrc(query: string, option?: Object) => void设置播放路径,视频加载成功时会触发 "canplay" 事件,那时才可以正常播放
query: appId、recordId 等参数签名后生成的字符串(历史课堂保存到自己存储的可以不需要 query,只传空字符串)
option: 设置额外的参数,包括传入 timer、audioObject 等,详见 option 参数说明
play() => Promise播放
当未设置播放路径、未加载完成时返回结果将是 rejected
ended 属性为 true 时调用 play() 的返回结果也是 rejected,需要先设置 currentTime 到可播放的点
pause() => Promise暂停
resize() => void调整大小。装载 SDK 视频内容的容器 div 的大小发生变化时需要调用 resize 方法重新调整视频大小
on(eventName: string, callback: Function) => void增加事件回调
off(eventName: string, callback: Function) => void取消事件回调
callback: 之前调用 on 方法绑定过的、待取消的事件回调函数
destroy() => void销毁播放器

属性#

属性名类型说明
currentTimedoubleSDK 视频当前播放时间,以秒(s)为单位。当对该属性赋值时可以调整当前播放时间
durationdoubleSDK 视频的总时长,以秒(s)为单位
endedboolean当前是否已经播放到结尾
当触发 ended 事件时 ended 属性将变成 true,此时调用 play() 方法将返回 rejected
重新设置 currentTime 后 ended 属性将变成 false

事件#

事件名说明返回值
canplaySDK 视频内容加载完成事件,没有加载完成时无法播放 SDK 视频内容-
timeupdate视频播放时间变化时触发time: 当前播放时间,对应 currentTime
ended当视频播放到结尾时触发-
click当播放器产生没有鼠标移动的点击事件时触发。用户也可以自行在装载 SDK 视频内容的 outBorder 元素上绑定 click 事件,当 SDK 视频中带有可拖动的视频人像,拖动、缩放人像视频大小也会触发 click 事件,用户需要判断自己监听的 click 事件触发时鼠标是否在移动-

option 说明#

属性名类型描述版本
timer{ currentTime: () => number }当用户需要自己播放多媒体,需要提供timer对象供upime同步用
audioObject{ src: string; duration: number }当传入audioObject时,播放器在播放时将同时播放audioObject指定的音频文件,在音频正常播放时sdk视频的播放时间将和音频播放的时间保持同步。
src: 音频的url路径。如果音频文件为m3u8类型,还需要引入https://wwwr.plaso.cn/static/sdk/js/hls.js
duration: 音频文件时长(目前sdk视频的duration依然以sdk服务器录制的内容的duration为准)
getFileName(filename: string, isPublic: boolean) => Promise<string>如果历史课堂保存到自己存储,需要在option中需要传入getFileName方法。该方法用来返回历史课堂目录下每个文件的访问地址。
filename: string类型。文件相对于历史课堂目录的相对地址
isPublic: boolean类型。isPublic=true表示希望得到该文件公开的访问地址,即不需要签名、没有有效期的地址
返回值: promise的结果为文件访问地址
getExtFileName(info: Array) => Promise<string>如果历史课堂包含从资料中心插入的资源,需要传入getExtFileName,详见云盘接入
getPreParseFileName(info: Array, option: { suffix: string }) => Promise<string>如果历史课堂包含从资料中心插入的预解析资源,需要传入getPreParseFileName,详见云盘接入1.60.116

url接入#

根据接口定义生成的地址,可以直接在浏览器中播放直播课产生的历史课堂。
https://wwwr.plaso.cn/static/sdk/styleupime/${SDK_VERSION}/?
名称类型必填描述
appIdstring是应用id, 由伯索分配;
appTypestring是应用类型,目前播放场景下固定值为player
recordIdstring是同一个meetingId有可能会产生多个历史课堂,用此recordId标记;
meetingIdstring否课堂ID,唯一标识该课堂;使用ASSIIC字符,不得包含/空格等;
web 播放器参数
名称类型必填描述
showTypenumber否1/2/40(1-仅头像播放/2-仅白板播放/40-头像+白板播放,可选参数)
avatarHeightnumber否头像+白板播放时的自定义头像高度,可选参数),只有showType传参为40的情况下,该参数才会生效,最小值90,小于90时头像不会再变小,无最大值,当头像高度设置的值大于当前播放器的高度时,头像的高度会跟播放器的高度一致
场景对接说明
播放页面的关闭,需要调用者提供upimeBridge.onClose函数来完成关闭功能。 即点击关闭按钮后调用upimeBridge.onClose。

query 参数说明#

startRecordTime:新增startRecordTime,标记绝对的录制开始时间,便于播放器完成同步其他多媒体的工作

其他#

关于微信播放
白板中如果插入了视频, 且需要在微信中播放.
请到微信开发组申请白名单,否则无法在微信中播放;
修改于 2025-11-13 02:47:29
上一页
快速接入
下一页
最佳实践
Built with