跳转至

Web 集成方法

1. 前言

在你阅读此文档时,我们假定您已具备基础的 JavaScript开发经验,并能够理解相关基础概念.

立即使用

1. npm的方式

1
npm install room-ui-sdk
1
import TKRoom from "room-ui-sdk";

2.CDN的方式

1
<script src="https://h5-static.talk-cloud.net/static/public/UISDK/v1.0.4/bundle.umd.js"></script>

api

本部分中从初始化->进入教室->课中处理逻辑->回调数据的顺序从上往下进行对所有接口进行说明. 所有方法都是基于TKRoomUISDK开始。room可存在多实例。

实例化room对象new TKRoom(options) 

1
2
3
4
const option = {
  warpDom: document.getElementById('domId') // 容器dom节点
}
const tkRoom = new TKRoom(option)

加入房间TKRoom.prototype.joinRoom(option)

通过配置参数加入房间, 其中角色说明详细请参考 《角色说明文档》 该方法仅代表加载教室资源成功,房间连接成功需要监听RoomConnection事件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
const joinRoomOptions = {
  serial: '344334434', // string 教室号 必传
  thirdRoomId: '', // 第三方教室号 优先使用,如果没有本参数则使用serial
  userInfo: { // object 用户信息 必传
    userId: '8888', // string 用户id 非必传
    nickname: 'xxx', // string 用户昵称 必传
    role: 0, // number 用户角色 必传
    password: 'xxx', // string 用户加密密码 非必传
  },
  norecord: boolean, // 回放中是否不录自己的音视频*
  classBegenLavea: boolean, // 下课后是销毁还是到结束页面 纯纯sdk控制*
}

tkRoom.joinRoom(joinRoomOptions).then(res => {
  // 成功
  console.log(res) // {status: 0}
}).catch(err => {
  // 根据状态码非0
  console.log(err) // {status: 1, msg: '错误描述信息'}
})

通过配置webapi创建的进入教室链接,链接生成方式请参考 [进入房间接口说明]

1
2
3
4
5
6
7
8
const entryRoomUrl = ''
tkRoom.joinRoom(joinRoomOptions).then(res => {
  // 成功
  console.log(res) // {status: 0}
}).catch(err => {
  // 根据状态码非0
  console.log(err) // {status: 1, msg: '错误描述信息'}
})

加入回放教室 TKRoom.prototype.joinPlaybackRoom

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
tkRoom.joinPlaybackRoom({
   /** 企业ID */
    companyId: number;
    /** 教室号 */
    serial?: string;
    /** 第三方教室号 */
    thirdRoomId?: string;
    /** 录制件title */
    recordTitle: string;
    /** 国际化 */
    lang?: "zh-cn" | "zh-tw" | "en-us";
}).then(res => {

})

离开房间TKRoom.prototype.leaveRoom()

1
2
3
4
5
tkRoom.leaveRoom().then(() => {
  console.log('离开房间成功')
}).catch(err=> {
  console.log('离开房间失败', err) // {status: 1, msg: ''}
})

单独设备检测模块 TKRoom.prototype.joinDeviceCheck()

事件监听 TKRoom.prototype.on(eventName, fn) 具体事件,请参考《教室事件说明文档.md》

1
2
3
4
5
6
7
const eventName = "RoomParticipantEvicted" // 所有事件说明参考事件说明

const fn = (...args) => {
  console.error(args)
}

tkRoom.on(eventName, fn)

取消事件监听 TKRoom.prototype.off(eventName, function)

1
2
3
4
5
6
7
8
const fn = (...args) => {
  console.error(args)
}

tkRoom.on(eventName, fn)

// 取消监听
tkRoom.off(eventName, fn)

© 2016-2023 北京拓课网络科技有限公司 版权所有  京ICP备17018423号-1 京公网安备11010502043461号