欢拓点播JS-SDK

🚀 快速开始:

  • 通过后端获取${access_token} 如何对接?
  • 1、window.access_token = ${access_token} 验证KEY
  • 2、通过script方式 (引入点播SDK包)
  • 3、var _HT = new MT.SDK.main(window.access_token); 实例化 & 创建SDK对象

下载Web-VOD工程

事件 & 内置方法:

监听事件 _HT.on

  • _HT.on(@cmd, @callback)
    • 参数@cmd: 操作命令
    • 参数@callback: 回调函数
      例:
      _HT.on("init", function(retval){
      // room init success;
      });
      

创建摄像头播放器 _HT.camera

  • _HT.camera(@cameraContainer, @cameraId, @callback)
    • 参数@cameraContainer: 摄像头容器
    • 参数@cameraId: 摄像头id
    • 参数@callback: 创建完成回调函数
    • 返回 camera 播放器
      例:
      _HT.camera("cameraContainer", "camerarPlayer", function(camera){
      // cameraPlayer init success;
      });
      

创建视频播放器 _HT.mainPlayer

  • _HT.mainPlayer(@playerContainer, @videoId, @callback)
    • 参数@playerContainer: 视频容器
    • 参数@videoId: 视频id
    • 参数@callback: 创建完成回调函数
    • 返回 player 播放器
例:
_HT.mainPlayer("playerContainer", "videoId", function(player){
    // Player init success;
});

创建课件播放器 _HT.whiteboardPlayer(v3.9+)

  • _HT.whiteboardPlayer(@docContainer, @docplayerId, @callback)
    • 参数@docContainer: 容器ID
    • 参数@docplayerId: 播放器ID
    • 参数@callback: 创建完成回调函数
    • 返回 docPlayer 对象

说明:view层自适应外层容器

说明:docPlayer对象 => 在创建播放器 callback 函数内返回

名称 类型 描述
whiteboardResize() Function docPlayer.whiteboardResize() 播放器按比例resize
例:
// js part
_HT.whiteboardPlayer("docContainer", "docplayerId", function(player){
  // Player init success;
});

<!-- html part -->
<div id="docContainer">
  // 这里会生成一个doc播放器
</div>

重置主播放器尺寸 _HT.playerResize

  • _HT.playerResize(@width, @height)
    • 参数@width: 宽
    • 参数@height: 高
    • 返回 oject{width: w, height: h} 重置播放器高宽
例:
_HT.playerResize(700, 740); // 按4:3比例返回:{width: 700, height: 526}

销毁 _HT.destroy() (v3.0+)

@说明: 销毁点播 (销毁后必须重新初始化)

示例:
_HT.destroy()

配置自定义表情包 _HT.setting('emotions', opts)

  • _HT.setting(@type, @opts)
    • 参数@type: "emotions"
    • 参数@opts: 表情包数据
      • @path:String => 存放目录
      • @maps:JSON-Object => UBB编码文件名 [aha] => aha.png
      • 解析后 var emo = path + maps[key]
例:
var opts = {
    base: 'https://path_to_emotions/',
    maps: {
        '[aha]': 'aha.png',
        '[smile]': 'smile.png'
    }
}
// 调用
_HT.setting("emotions", opts);

    // 默认表情包
    baseUrl => static-1.talk-fun.com/open/cooperation/common/emotions/default/
    [aha]: "001.gif"
    [amaz]: "009.gif"
    [bye]: "010.gif"
    [cool]: "006.gif"
    [flower]: "005.gif"
    [good]: "003.gif"
    [hard]: "002.gif"
    [love]: "004.gif"
    [pitiful]: "008.gif"
    [why]: "007.gif"

模式切换:live:mode:change

说明:直播模式切换 (课件模式,桌面分享,视频插播)

事件反馈逻辑:
1、课件模式 => 视频模式 (响应事件)
2、视频模式 => 课件模式 (响应事件)
3、停止直播 => 开始直播(课件模式)(不会响应事件)
4、停止直播 => 视频模式 (响应事件)
停止直播:建议恢复到课件模式

@参数说明:

模式类型 描述
0 教育模式 CODE
2 桌面分享/视频插播 CODE
字段 描述(object)
mode.currentMode 当前模式
mode.beforeMode 历史(上一次)模式
示例:
MT.on('live:mode:change',function(mode){
    // mode.beforeMode
   // mode.currentMode
});

回放信息 live:info

  • live:info
字段 类型 描述
liveid string 点播id
title string 点播标题
duration string 点播总时间
views string 点播观看次数
例:
_HT.on('live:info',function(live){
    // liveid: "1259651", title: "20150914开班典礼(侯老师)", duration: "6345", views: "0"
});

音量设置 _HT.volume

  • _HT.volume(range)
  • 参数: range
  • 范围: 0-1 之间
例:
_HT.volume(0.5) // 设置音量

倍速度播放方法 _HT.playRate(range)

  • _HT.playRate(range)
  • 参数: range
  • 范围: 0-2 之间
  • 指示音频/视频的当前播放速度。
  • 例值:
    • 1.0 正常速度
    • 0.5 半速(更慢)
    • 2.0 倍速(更快)
    • -1.0 向后,正常速度
    • -0.5 向后,半速
例:
_HT.playRate(0.5) // 设置从0.5倍速度播放

获取线路 _HT.getSource(callback)

  • _HT.getSource(callback)
  • 配置参数: callback
  • 返回说明:
字段 类型 描述
lineCounter Number 返回线路条数
例:
_HT.getSource(function (lineCounter){
    for(var i = 0; i < lineCounter; i++) {
        //todo...
        console.log('线路:' + i)
    }
})

切换线路 _HT.changeSource(lineTarget, callback)

  • _HT.changeSource(lineTarget, callback)
  • 配置参数: lineTarget callback
  • 参数说明:
字段 类型 描述
lineTarget Number 要设置的线路序号
callback function 设置回调
例:
_HT.changeSource(lineTarget, function (){
    // console.log('线路' + lineTarget + '设置成功.')
})

配置播放器默认按钮 _HT.setMediaControl(options)

  • _HT.setMediaControl(options)
  • 配置参数: @Object options
  • 参数说明:
字段 类型 描述
fullscreenButton boolean 是否开启全屏按钮 (默认 true)
volumeButton boolean 是否开启音量选择 (默认 true)
例:
_HT.setMediaControl({
    fullscreenButton: true // 播放器全屏按钮开启
})

播放 _HT.play

  • _HT.play()
例:
_HT.play() // 开始播放

暂停 _HT.pause

  • _HT.pause()
例:
_HT.pause() // 暂停播放

停止 _HT.stop

  • _HT.stop()
例:
_HT.stop() // 停止播放

开始 vod:load:init

  • vod:load:init
例:
_HT.on('vod:load:init',function(){
    // 开始播放
});

结束 vod:stop

  • vod:stop
例:
_HT.on('vod:stop',function(){
    // 点播结束
});

摄像头开启 camera:start

  • camera:start
例:
_HT.on('camera:start',function(){
    // 摄像头开启
});

摄像头关闭 camera:stop

  • camera:stop
例:
_HT.on('camera:stop',function(){
    // 摄像头关闭
});

点播视频初始化完成 live:video:loaded

  • live:video:loaded
例:
_HT.on('live:video:loaded',function(){
    // 点播视频初始化完成
});

章节分段信息 live:chapter:list

  • live:chat:slice
字段 类型 描述
course string 课程名
page string 页码
starttime string 开始时间
thumb string 预览缩略图
title string 章节标题
例:
_HT.on('live:chapter:list',function(chpterlist){
    console.log(chpterlist)
});

聊天分段信息 live:chat:slice

  • live:chat:slice
字段 类型 描述
start string 开始时间点
end string 结束时间点
loc string 分段xml地址
例:
_HT.on('live:chat:slice',function(curlist){
    // 返回当前聊天截取信息
});

聊天分段详细信息 live:message:append

  • live:message:append
    • 聊天分段数据,每段默认取200条
字段 类型 描述
message string 聊天信息
nickname string 昵称
role string 角色
starttime string 起始时间点
timestamp string 当前时间戳
xid string 用户xid
例:
_HT.on('live:message:append',function(curlist){
    // 返回一批聊天数据
});

问答分段详细信息 live:questions:append

  • live:questions:append
    • 问答分段数据,每段默认取200条
字段 类型 描述
content string 聊天信息
nickname string 昵称
role string 角色
starttime string 起始时间点
time string 时间
xid string 用户xid
uid string 用户uid
liveid string 直播id
qid string 问答id
replies string 回复数
replyId string 回复id
sn string 问答序号
例:
_HT.on('live:questions:append',function(curlist){
    // 返回一批问答数据
});

seek _HT.seek

  • _HT.seek(@duration)
    • 参数@duration: seek时间点(单位-秒)
例:
_HT.seek(100); // 时间轴从100秒开始播放

seek开始 live:seek:begin

  • live:seek:begin
    • 返回@duration: seek时间点(单位-秒)
      例:
      _HT.on("live:seek:begin", function(duration){
      // 返回seek时间点
      });
      

seek完成 live:seek:finish

  • live:seek:finish
    • 返回@duration: 当前时间点(单位-秒)
      例:
      _HT.on("live:seek:finish", function(duration){
      // 返回seek时间点
      });
      

返回当前时间点 live:duration

  • live:duration
  • 点播开始,每隔200毫秒自执行该事件
    • 返回@currentTime: 当前时间点(单位 秒)
    • 返回@duration: 总时长(单位: 秒)
    • 返回@currentPercent: 当前播放百分比(单位: 百分比)
      例:
      _HT.on("live:duration", function(currentTime, duration, currentPercent){
      // 返回seek时间点
      });
      

视频错误 live:video:error

  • live:video:error
  • 视频错误
    例:
    _HT.on("live:video:error", function(){
      // 视频错误
    });
    

在线 vod:on:online

  • vod:on:online
  • 正在联网
    例:
    _HT.on("vod:on:online", function(){
      // 在线
    });
    

离线 vod:on:offline

  • vod:on:offline
  • 已断网
    例:
    _HT.on("vod:on:offline", function(){
      // 断线
    });
    

License:

版权所有 @TalkFun 解析权归欢拓所有。

Copyright Talkfun all right reserved,powered by Gitbook修订时间: 2023-04-03 10:35:10

results matching ""

    No results matching ""