多人互动白板
通过阅读本章节,您将快速了解多人互动白板的相关功能,并且能通过本章节中介绍的流程和接口快速搭建多人互动白板会话。
多人互动白板,顾名思义,参与互动白板的有多人,SDK 提供多人互动白板从创建白板会话、加入会话、会话互动到解散会话整个过程的能力,包括创建多人白板会话、发送白板数据、结束白板等基础能力接口与异常流程控制与回调。 多人互动白板不配套提供语音通道,如果需要,可以与多人音视频通话功能结合使用,方便灵活满足各类音视频与白板相结合的多人场景。
与点对点实时互动白板的流程不同,多人互动白板暂不支持
呼叫、推送和挂断等服务,只提供基本的创建、加入和离开白板会话接口。
多人互动白板也不配套提供语音通话通道,如果需要,可以与多人会议功能组合使用。多人互动白板的主要流程如下:
多人白板接入流程
sequenceDiagram
发起者-> 发起者: 1. 创建房间: whiteboard.createChannel
发起者-> 发起者: 2. 加入房间: whiteboard.joinChannel
发起者-> 参与者A: 发送IM点对点自定义通知: nim.sendTipMsg
发起者-> 参与者B: 发送IM点对点自定义通知: nim.sendTipMsg
发起者-> 参与者C: 发送IM点对点自定义通知: nim.sendTipMsg
参与者A-> 参与者A: 1. 收到IM自定义通知
参与者A-> 参与者A: 2. 加入房间: whiteboard.joinChannel
参与者B-> 参与者B: 1. 收到IM自定义通知
参与者B-> 参与者B: 2. 加入房间: whiteboard.joinChannel
参与者C-> 参与者C: 1. 收到IM自定义通知
参与者C-> 参与者C: 2. 加入房间: whiteboard.joinChannel
创建多人互动白板
- API 介绍
创建一个多人互动白板会话,以会话名标识。创建成功后,本人和其他人才可以使用该会话名加入同一白板会话。
- 示例
whiteboard.createChannel({
channelName: 'testChannelName' //必填
custom: '测试自定义数据' //可选
}).then(function(obj) {
// 预定房间成功后的上层逻辑操作
// eg: 初始化房间UI显示
// eg: 加入房间
})
- 参数说明
参数名 | 类型 | 说明 |
---|---|---|
channelName | string | 房间房号,可以任意英文字母和数组的组合 |
custom | string | 扩展字段,在通话的创建和加入之间传递自定义的额外信息 |
加入多人互动白板
- API 介绍
创建多人互动白板会话成功后,本人和其他人可以使用创建时的名称,通过该接口加入会话。
const sessionConfig = {
color: '#aaa',
width: 200,
height: 200,
record: false,
// 绘画模式
mode: 'free'
};
whiteboard
.joinChannel({
channelName: 'testChannelName', //必填
type: Netcall.NETCALL_TYPE_VIDEO,
sessionConfig: sessionConfig
})
.then(function(obj) {
// 加入房间成功后的上层逻辑操作
});
- 参数说明
参数名 | 类型 | 说明 |
---|---|---|
channelName | string | 房间房号,可以任意英文字母和数组的组合 |
type | number | 房间通话类型,音频、视频 |
sessionConfig | object | 通话配置, 每次通话会伴随着一次通话, 可以对此次通话进行一些配置,具体属性见这里 |
用户加入多人互动白板通知
API 介绍
- 多人通话中,加入多人房间后,如果有用户加入了当前房间,当前房间中的所有人都会收到该通知,做出相应处理
- 开启新加入的用户的视频画面显示
- 多人通话中,加入多人房间后,如果有用户加入了当前房间,当前房间中的所有人都会收到该通知,做出相应处理
示例
whiteboard.on('joinChannel', function(obj) {
// 通知上层有其他用户加入了房间,上层做相应逻辑和UI处理
console.log('joinChannel', obj);
});
- 参数说明
obj 为通知消息对象
obj 属性 | 类型 | 说明 |
---|---|---|
account | string | 新加入同伴的 accid |
channelId | number | 加入的房间 id |
用户离开多人互动白板通知
- API 介绍
- 多人通话中,加入房间后,如果有同伴离开房间,当前房间里的所有人都会收到该同伴离开会议的通知,开发者可以根据该通知做出相应处理
- 示例
whiteboard.on('leaveChannel', function(obj) {
// 通知上层有其他用户离开了会议,上层做相应逻辑和UI处理
console.log('leaveChannel', obj);
});
- 参数说明
obj 为通知消息对象
obj 属性 | 类型 | 说明 |
---|---|---|
account | string | 离开同伴的 accid |
channelId | number | 离开的房间 id |
- 具体方法说明
返回类型 | 方法名 | 说明 |
---|---|---|
promise | whiteboard.stopRemoteStream | 停止预览对方视频画面 |
发送多人互动白板数据
- API介绍
- 多人互动白板中通过该方法向房间中发送广播或单播数据
示例
whiteboard.sendData({ toAccount: '0', data: 'message' })
参数说明
obj参数属性 | 类型 | 说明 |
---|---|---|
toAccount | string | 消息的接收账号,当不填该字段时发送广播包。填写时发送单播包 |
data | string | 待发送数据 |
- 特殊说明
- 目前自定义数据仅支持
字符串
格式的数据传输
- 目前自定义数据仅支持
接收多人互动白板数据
- API介绍
- 白板互动中通过该方法接收来自房间内的所有数据
- 示例
whiteboard.on('data', function(msg){ console.log(`接收到来自${msg.account}的信息:${msg.data}`) })
- 参数说明
obj参数属性 | 类型 | 说明 |
---|---|---|
account | string | 该数据的发送账号 |
data | string | 数据 |
- 绘制插件接入
- 用户可接入绘制插件,在收到数据后交由插件进行白板绘制,接入参考
本篇文档内容是否对您有帮助?
有帮助
我要吐槽
此文档对你是否有帮助
×
有帮助
我要吐槽
×