伯索开放平台
首页API文档SDK文档伯索官网
首页API文档SDK文档伯索官网
  1. 播放器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播放器
首页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