appKey
额外参数
会议成员对象的集合
集合的key为成员的uri, key为 self
表示自己(即: participantMap['self'] === selfParticipant)
代表自己的会议成员对象
获取client状态
设置client状态
获取视频布局对象
添加事件监听器
要监听的事件类型
事件监听回调
若添加成功则返回一个函数, 用于移除事件监听
对多个事件添加同一个事件监听器
要监听的事件类型
事件监听回调
设置监听器参数
若添加成功则返回一个函数, 用于移除事件监听
指定业务组号进行呼叫, 呼叫成功后将通过 then
返回, 呼叫时可通过GuestCallParam设置随路参数, 昵称等参数.
client.call('roomId', {
extraParam: '',
displayName: 'nickname'
})
.then(() => {
console.log('呼叫成功.')
});
业务号
呼叫参数
清空所有绑定的事件
销毁client和CD
该接口调用后将会关闭WebRTC连接并移除所有事件监听器, client将不会再触发任何事件.
分发事件
分发的事件对象
事件是否发送成功
简化分发事件接口, 如需要分发的是错误事件, error参数传入具体错误类型
事件类型
消息
错误类型
指定类型的事件是否被监听
查询所有的组号, 查询成功后返回值将变为 resolve
状态, 并执行 then
中的回调, 同时也会触发GuestEventType.GET_ALL_GROUPS事件.
GroupInfo属性说明
属性 | 类型 | 描述 |
---|---|---|
telNumber | string | 业务号 |
group | string | 组号 |
memo | string | 备注 |
logoUrl | string | 业务logo地址 |
登录视频平台
可通过该接口指定账号, 密码等参数, 该接口将会创建CD, 并通过CD登录视频平台, 登录成功后返回值将变为 resolve
状态, 并执行 then
中的回调,
同时会触发GuestEventType.LOGOUT事件.
登录参数
见 Guest.logout 登出
一对一呼叫
指定坐席进行呼叫, userId
应传入坐席的账号, 其他与call相同.
被呼叫方id
呼叫参数
移除事件监听器, 要提供与调用addEventListener或addEventListeners时相同的参数
要移除的事件监听器类型
要移除的事件监听器
返回true表示有该fun监听器并且移除成功
通过sourceId获取RTCStream
<div id="screen-video"></div>
// 监听成员开启屏幕共享事件
client.addEventListener(GuestEventType.SCREEN_SHARE_START, ev => {
// 屏幕共享uri
const uri = ev.message.screenUri;
// 发起屏幕共享的成员
const sharer = ev.message.sharer;
// 获取屏幕共享流的RTCStream对象
client.requestStream(uri)
.then(stream => {
screenStream = stream;
// 渲染屏幕共享画面,
screenStream.start('screen-video');
});
});
// 监听成员关闭屏幕共享事件
client.addEventListener(GuestEventType.SCREEN_SHARE_STOP, ev => {
// 停止渲染屏幕共享画面
screenStream.stop();
});
渲染画面对应的id, 默认会返回一个将渲染 所有会议成员(初自己外)合并后的画面 的RTCStream.
也可传入一个从ConferenceEventType.SCREEN_SHARE_START时间中获取到的 screenUri
, 将会返回一个会渲染屏幕共享画面的RTCStream.
请求加急, 请求失败或坐席拒绝返回值都将变为 reject
状态, 并执行 catch
中的回调
发送会议内消息, 需指定消息类型和消息内容, 可选参数 toUserId
可以从participantMap中获取到.
client.sendMessage('messageType', 'messageContent', 'userId')
.then(() => {
console.log('消息发送成功');
});
消息类型
消息内容
消息发送的目标, 不传将发送给所有会议内成员
发送信令消息, 可指定发送的目的地
信令消息
设置音频输出设备, device
可以从JuphoonRTCGuest.getMediaDevices 获取.
音频输出设备
设置坐席接收到访客的画面的比例, 一般使用 0.5625
(9/16), 1.777
(16/9), 0.75
(3/4), 1.333
(4/3), 1
(正方形).
设置结果将通过返回值的状态变化或GuestEventType.SET_RATIO_RESULT事件通知.
宽高比
设置远端视频流的分辨率
该接口可用于动态设置远端画面的分辨率, 可设置的分辨率有4层(GuestPictureSize).
const { GuestPictureSize } = JuphoonRTCGuestSDK;
client.setRequestVideo(GuestPictureSize.MAX)
.then(() => console.log('分辨率设置为最大'));
设置结果将通过返回值的状态变化或GuestEventType.REQUEST_VIDEO_SIZE_RESULT事件通知.
视频请求尺寸类型
开启摄像头麦克风, 该接口将会去向用户请求媒体设备权限并开启WebRTC连接, WebRTC是否进行连接与设备请求成功与否并无关联.
即无论设备权限请求是否成功, 都会进建立WebRTC连接, 设备请求失败的情况下, 应当只会收到对端的音视频流, 本地音视频不会发送.
该接口返回的 Promise
的 resolve
/ reject
状态仅表示用户允许/拒绝了设备授权. 当用户拒绝时可以在界面上做出对应提示.
调用成功后, then
的回调函数会传入一个 RTCStream 对象, 调用RTCStream.start可以将本地画面通过 <video>
标签渲染到界面上.
client.startCameraVideo(RenderType.CONTAIN)
.then(stream => {
stream.start('local-video');
});
渲染模式
常量 | 描述 |
---|---|
RenderType.CONTAIN | 画面保持宽高比, 并填充整个内容框, 如画面无法填满内容框将被添加黑边 |
RenderType.COVER | 画面保持宽高比,并填充整个内容框, 如画面有溢出部分将被裁剪 |
开启远端音视频画面
如果接口调用成功, 返回值将变为 resolve
状态, 并且 then
回调里将会返回一个表示远端画面的RTCStream对象, 调用RTCStream.start可以将本地画面通过 <video>
标签渲染到界面上.
client.startVideo(RenderType.CONTAIN)
.then(stream => {
stream.start('remote-video');
});
切换摄像头
该接口同时会影响到渲染的本地视频, 本地渲染的视频也会同步更新.
切换摄像头可通过JuphoonRTCGuest.getMediaDevices获取到 deviceId
来选择视频输入设备.
如果只是需要在移动端进行前后置摄像头的切换, 可以通过指定StreamCameraConstraints.facingMode来切换前后置摄像头.
参数名 | 类型 | 描述 |
---|---|---|
deviceId | string | 代表设备的唯一id,可通过JuphoonRTCGuest.getMediaDevices获取 |
facingMode | 'user', 'environment' | user: 前置摄像头, environment: 后置摄像头 |
client.switchCamera({
// deviceId: '',
// facingMode: 'user',
facingMode: 'environment',
})
.then(() => console.log('切换摄像头成功')
指定的摄像头约束
切换通过WebRTC传输的本地媒体流, 可用于发送从 <canvas>
<video>
中获取到的 MediaStream
该接口可用于将本地传输的音视频轨道切换为从其他地方(音视频输入设备/<canvas>
/<video>
/<audio>
/屏幕共享)获取到的{@link MediaStream}或{@link MediaStreamTrack}对象.
StreamOptions可用属性说明
参数名 | 类型 | 描述 |
---|---|---|
video | boolean | 使用默认的视频输入设备, 一般为前置摄像头 |
video | StreamCameraConstraints | 可指定StreamCameraConstraints.deviceId, StreamCameraConstraints.facingMode |
audio | boolean | 使用默认的音频输入设备 |
audio | StreamMicrophoneConstraints | 可指定StreamMicrophoneConstraints.deviceId |
videoSource | {@link MediaStreamTrack} | 自行获取的视频轨道, 可以是从<canvas> /<video> 中捕获的{@link MediaStream}的视频轨道 |
audioSource | {@link MediaStreamTrack} | 自行获取的音频轨道, 可以是从<video> /<audio> 中捕获的{@link MediaStream}的音频轨道 |
stream | {@link MediaStream} | {@link MediaStream}对象, 可能包含音频和视频轨道 |
注: 从 canvas
或 video
/<audio>
中捕获音视频流的兼容性要求较高, 谨慎使用.
调用该接口会挂断通话, 成功挂断通话并离开会议返回值 Promise
状态将变为 resolve
且会销毁client.
Generated using TypeDoc
视频访客模块