ZegoClient.config(option),配置参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| option.appid | appid | 数值 | 必填 |
| option.server | 服务器地址 | 字符串或字符串数组 | 必填 |
| option.idName | 用户id | 字符串 | 必填 |
| option.nickName | 用户昵称 | 字符串 | 必填 |
| option.logLevel | 本地log级别 0:debug 1:info 2:warn 3:error 98:report 100:disable | 数值 | 必填 |
| option.remoteLogLevel | 上报log级别 0:debug 1:info 2:warn 3:error 100:disable | 数值,默认为0 | 可选(建议上报) |
| option.logUrl | 远程log服务器地址 websocket地址 | 字符串 | 可选 |
| option.audienceCreateRoom | 观众是否可以创建房间 | 布尔值 | 可选 |
ZegoClient.login(roomid, role, token, success, error) ,登录参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| roomid | 房间id | 字符串 | 必填 |
| role | 角色类型,1:主播 2:观众 | 数值 | 必填 |
| token | 登录验证token | 字符串 | 必填 |
| success | 成功回调函数 | function(streamList) | 必填 |
| error | 失败回调函数 | function(err) | 必填 |
若配置了CDN则streamList也包含了stream的CDN播放地址(flv,m3u8,rtmp) streamList数组中stream的对象结构如下
| 参数 | 含义 | 类型 |
|---|---|---|
| stream_id | 流Id | 字符串 |
| anchor_id_name | 流对应的用户Id | 字符串 |
| anchor_nick_name | 流对应的用户昵称 | 字符串 |
| extra_info | 流附加信息 | 字符串 |
ZegoClient.loginWithAuthor(roomid, role, token,thirdToken, success, error) ,登录参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| roomid | 房间id | 字符串 | 必填 |
| role | 角色类型,1:主播 2:观众 | 数值 | 必填 |
| token | 登录验证token | 字符串 | 必填 |
| thirdToken | 客户自定义验证token | 字符串 | 必填 |
| success | 成功回调函数 | function(streamList) | 必填 |
| error | 失败回调函数 | function(err) | 必填 |
若配置了CDN则streamList也包含了stream的CDN播放地址(flv,m3u8,rtmp) streamList数组中stream的对象结构
| 参数 | 含义 | 类型 |
|---|---|---|
| stream_id | 流Id | 字符串 |
| anchor_id_name | 流对应的用户Id | 字符串 |
| anchor_nick_name | 流对应的用户昵称 | 字符串 |
| extra_info | 流附加信息 | 字符串 |
ZegoClient.logout,无参数;
调用之后会向Zego服务器发送登出信令,之后重置当前房间中用户与Zego服务器进行交互所需的关键数据,并置空websocket对象
ZegoClient.sendCustomCommand(dstMembers, customContent, success, error) ,参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| dstMembers | 接收消息者列表 | 字符串数组 | 必填 |
| customContent | 自定义消息内容 | 字符串 或 object(支持最大1024字节) | 必填 |
| success | 成功回调函数 | function(seq, customContent) | 必填 |
| error | 失败回调函数 | function(err, seq, customContent) | 必填 |
回调参数说明:
ZegoClient.enumDevices(deviceInfoCallback, errorCallback),参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| deviceInfoCallback | 媒体设备信息回调 | function(deviceInfo) | 必填 |
| errorCallback | 失败回调 | function(error) | 必填 |
deviceInfo对象结构如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| microphones | 音频输入设备列表 | 对象数组 |
| speakers | 音频输出设备列表 | 对象数组 |
| cameras | 视频输输入设备列表 | 对象数组 |
设备列表中的每一个元素类型相同,结构如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| label | 设备名称 | 字符串 |
| deviceId | 设备Id | 字符串 |
ZegoClient.startPreview(localVideo, mediaStreamConstraints, success, error) ,参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| localVideo | 本地预览的<video>对象 |
文档对象 | 必填 |
| mediaStreamConstraints | 音视频配置项 | 对象 | 必填 |
| success | 成功回调函数 | function() | 必填 |
| error | 失败回调函数 | function(reason) | 必填 |
mediaStreamConstraints的对象结构
| 参数 | 含义 | 类型 |
|---|---|---|
| audio | 是否需要音频 | 布尔值 |
| audioInput | 麦克风设备Id | 字符串 |
| video | 是否需要视频 | 布尔值 |
| facingMode | 摄像头朝向,"user"表示前置摄像头,"environment"表示后置摄像头 | 字符串 |
| videoInput | 摄像头设备Id | 字符串 |
| videoQuality | 视频质量等级 | 数值 |
| horizontal | 是否横屏视频 | 布尔值 |
| externalCapture | 是否使用外部来源 | 布尔值 |
| externalMediaStream | 外部提供MediaStream对象 | MediaStream |
| noiseSuppression | 是否开启降噪 | 布尔值 |
| autoGainControl | 是否开启自动增益控制 | 布尔值 |
| echoCancellation | 是否开启回声消除 | 布尔值 |
| channelCount | 音频声道数
|
数值 |
| audioBitRate | 音频码率,单位为 bps,取值范围为 6k~510k,默认值为 48k | 数值 |
<video>指定的视频源作为预览。目前只支持 Chrome 53 和 Firefox 47版本以上externalCapture 和 externalMediaStream 只在推第三方流(如屏幕共享,用户其他来源媒体流)情况下使用
facingMode参数取值
| 取值 | 说明 |
|---|---|
| "user" | 手机上的前置摄像头 |
| "environment" | 手机上的后置摄像头 |
videoQuality参数取值
| 取值 | 分辨率 | 帧率 | 码率 |
|---|---|---|---|
| 1 | 240 * 320 | 15 | 300K |
| 2 | 480 * 640 | 15 | 800K |
| 3 | 720 * 1280 | 20 | 1500K |
| 4 | width * height | frameRate | bitRate(k) |
videoQuality == 4时:
horizontal属性说明:
async startPreviewByStreamView(mediaStreamConstraints: ZegoMediaStreamConstraints ): Promise
其中,ZegoStreamView 是媒体流播放器组件对象。
示例代码:
// 创建预览并获取 StreamView 对象
zc.startPreviewByStreamView(previewConfig)
.then(view => {
// 挂载界面,localView 为 div 容器 id
view.play("localView");
})
.catch(error => {
alert("预览失败!" + JSON.stringify(error));
throw error;
});
ZegoClient.stopPreview(localVideo),参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| localVideo | 本地预览的<video>对象 |
文档对象 | 必填 |
stopPreview(localVideo: HTMLMediaElement | ZegoStreamView): boolean
其中,ZegoStreamView 是媒体流播放器组件对象。
ZegoClient.enableCamera(localVideo, enable),在开始预览之后才能调用。参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| localVideo | 本地预览的<video>对象 |
文档对象 | 必填 |
| enable | 是否启用 | 布尔值 | 必填 |
ZegoClient.enableMicrophone(localVideo, enable),在开始预览之后才能调用。参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| localVideo | 本地预览的<video>对象 |
文档对象 | 必填 |
| enable | 是否启用 | 布尔值 | 必填 |
ZegoClient.setLocalAudioOutput(localVideo, audioOutput),参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| localVideo | 本地预览的<video>对象 |
文档对象 | 必填 |
| audioOutput | 音频输出设备 | 字符串或null | 必填 |
<video>没有设置静音属性,会听到自己的回声ZegoClient.startPublishingStream(streamid, localVideo, extraInfo,publishOption),参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| streamid | 推流Id | 字符串 | 必填 |
| localVideo | 本地预览的<video>对象 |
文档对象 | 必填 |
| extraInfo | 流附加信息 | 字符串 | 可选 |
| publishOption | 推拉附加参数:鉴权、视频编码 | {streamParams:'XXX',cdnUrl:'XX',videoDecodeType:'XX'} | 可选 |
- 鉴权参数streamParams格式如下:'zg_expired=XX&zg_nonce=XX&zg_token=XX',只有需要配置鉴权才传入(可选功能)
- 转推客户自己cdn地址cdnUrl:先向即构申请开通,且填入完整的rtmp地址(可选功能)
- 如需要传publishOption 则extraInfo必须传 类型是字符串 没有附加信息传入null占位
- 视频编码参数videDecodeType目前支持VP8与H.264,填写格式如 '{videoDecodeType: 'VP8'}','{videoDecodeType: 'H264'}',不传默认为H.264视频编码
ZegoClient.switchDevice(type, localVideo, deviceId, success, error),参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| type | 切换设备类型,'audio'或'video' | 字符串 | 必填 |
| localVideo | 需要切换设备的<video>或<audio>对象 |
文档对象 | 必填 |
| deviceId | 设备id | 字符串 | 必填 |
| success | 成功回调函数 | function | 选填 |
| error | 失败回调函数 | function | 选填 |
enumDevices 获得ZegoClient.stopPublishingStream(streamid),参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| streamid | 推流Id | 字符串 | 必填 |
ZegoClient.updateStreamExtraInfo(streamd, extraInfo) ,参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| streamid | 推流Id | 字符串 | 必填 |
| extraInfo | 流附加信息 | 字符串 | 必填 |
ZegoClient.filterStreamList(streamId) 一般用于CDN拉流
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| streamId | 流id | string | 可选 |
streamList为login成功回调, 该方法一般用于CDN拉流情况,该方法可通过浏览器及协议筛选出能够在当前页面播放的url地址
参数streamId为可选,不填流id默认选择拉到的第一条流
ZegoClient.startPlayingStream(streamid, remoteVideo, audioOutput, playOption) 开始播放流,参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| streamid | 拉流id | 字符串 | 必填 |
| remoteVideo | 拉流界面的<video>对象 |
文档对象 | 必填 |
| audioOutput | 音频输出设备 | 字符串 | 可选 |
| playOption | 播放附加参数(播放模式,鉴权) | {playType:'audio',streamParams:'XXX',streamType: 0 | 1 |
async startPlayingByStreamView(streamID: string, playOption?: PlayOption): Promise
其中,ZegoStreamView 是媒体流播放器组件对象。
示例代码:
zc.startPlayingByStreamView(streamId, playOptions).then(view => {
// 挂载界面, remoteView 为 div 容器 id
view.play("remoteView");
}).catch(error => {
alert("拉流失败!" + JSON.stringify(error));
throw error;
});
ZegoClient.stopPlayingStream(streamid),参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| streamid | 流id | 字符串 | 必填 |
ZegoClient.setPlayAudioOutput(streamid, audioOutput),设置拉流时streamid对应的音频输出设备,参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| streamid | 拉流id | 字符串 | 必填 |
| audioOutput | 音频输出设备 | 字符串 | 必填 |
ZegoClient.setQualityMonitorCycle(timeInMS) ,参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| timeInMS | 时间间隔,默认3000ms | 数值,单位毫秒 | 必填 |
ZegoClient.requestJoinLive(destIdName, success, error, resultCallback),参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| dest_id_name | 目标用户IdName | 字符串 | 必填 |
| success | 成功回调函数 | function(seq) | 必填 |
| error | 失败回调函数 | function(err, seq) | 必填 |
| resultCallback | 目标用户响应结果 | function(result, fromUserId, fromUserName) | 必填 |
ZegoClient.inviteJoinLive(destIdName, success, error, resultCallback),参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| dest_id_name | 目标用户IdName | 字符串 | 必填 |
| success | 成功回调函数 | function(seq) | 必填 |
| error | 失败回调函数 | function(err, seq) | 必填 |
| resultCallback | 目标用户响应结果 | function(result, fromUserId, fromUserName) | 必填 |
ZegoClient.respondJoinLive(requestId, respondResult, success, error) ,参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| requestId | 请求Id | 字符串 | 必填 |
| respondResult | 响应结果 | 布尔值 | 必填 |
| success | 成功回调函数 | function(seq) | 必填 |
| error | 失败回调函数 | function(err, seq) | 必填 |
ZegoClient.endJoinLive(destIdName, success, error) ,参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| destIdName | 目标用户IdName | 字符串 | 必填 |
| success | 成功回调函数 | function(seq) | 必填 |
| error | 失败回调函数 | function(err, seq) | 必填 |
ZegoClient.sendRoomMsg(msg_category, msg_type, msg_content, success, error),参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| msg_category | 消息业务类型 | 数值 1:聊天消息 2:系统消息 | 必填 |
| msg_type | 消息格式类型 | 数值 1:文本消息 2:图片url 3:文件url | 必填 |
| msg_content | 消息内容 | 字符串 | 必填 |
| success | 成功回调函数 | function(seq, msgId, msg_category, msg_type, msg_content) | 必填 |
| error | 失败回调函数 | function(err, seq, msg_category, msg_type, msg_content) | 必填 |
ZegoClient.setUserStateUpdate(update),默认为false,参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| update | 是否更新 | 布尔值 | 必填 |
ZegoClient.sendReliableMessage(type, data, success, error),只用于大房间低频场景(如,直播答题中的题目推送),参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| type | 消息类型 | 字符串 | 必填 |
| data | 消息内容 | 字符串 | 必填 |
| success | 成功回调函数 | function(seq) | 必填 |
| error | 失败回调函数 | function(err, seq) | 必填 |
参数 type 表示可靠业务消息类型,不能超过 128 字节,不允许为空字符串,一个房间内只允许不超过 1 个不同的消息类型
ZegoClient.sendRelayMessage(type, data, success, error),向业务服务器转发消息(如,直播答题中的观众答题),参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| type | 消息类型 | 字符串 '1':聊天消息 '2':系统消息 | 必填 |
| data | 消息内容 | 字符串 | 必填 |
| success | 成功回调函数 | function(seq, result) | 必填 |
| error | 失败回调函数 | function(err, seq) | 必填 |
ZegoClient.sendBigRoomMessage(msg_category ,msg_type , msg_content, success, error) 发送大房间的实时消息(如,直播答题中的观众评论),参数如下
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| msg_category | 消息业务类型 | 数值 1:聊天消息 2:系统消息 | 必填 |
| msg_type | 消息格式类型 | 数值 1:文本消息 2:图片url 3:文件url | 必填 |
| msg_content | 消息内容 | 字符串 | 必填 |
| success | 成功回调函数 | function(seq, messageId) | 必填 |
| error | 失败回调函数 | function(err, seq) | 必填 |
ZegoClient.updateMixStream(mixStreamConfig, success, error),发起(更新)混流信息
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| mixStreamConfig | 混流配置信息 | 对象 | 必填 |
| success | 成功回调函数 | function(mixStreamId, mixStreamInfop[]) | 必填 |
| error | 失败回调函数 | function(err, errorInfo) | 必填 |
mixStramConfig对象结构
| 参数 | 含义 | 类型 |
|---|---|---|
| outputStreamId | 混流输出流ID | 字符串 |
| outputUrl | 混流输出URL | 字符串 |
| outputBitrate | 混流输出码率 | 数值 (必须,且大于0) |
| outputFps | 混流输出帧率 | 数值 (必须,且大于0) |
| outputWidth | 混流输出宽度 | 数值 (必须,且大于0) |
| outputHeight | 混流输出高度 | 数值 (必须,且大于0) |
| outputAudioConfig | 混流输出音频编码 | 数值(可选,默认为0) |
| outputAudioBitrate | 混流输出音频码率 | 数值 (可选) |
| outputAudioChannels | 混流输出声道数 | 数值 (可选) |
| outputBgColor | 混流背景颜色 | 数值 (可选) |
| outputBgImage | 混流背景图片 | 字符串 (可选) |
| streamList | 混流输入流列表 | 数组 (不能为空) |
| extraParams | 额外参数 | 数组 (可选) |
streamList里的一个元素,即每一条输入流的对象结构如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| streamId | 输入流ID | 字符串 |
| top | 目标位置,上 | 数值 >=0 |
| left | 目标位置,左 | 数值 >= 0 |
| bottom | 目标位置,下 | 数值 >= 0 |
| right | 目标位置,右 | 数值 >= 0 |
mixStreamInfo对象结构如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| rtmpUrls | 混流Rtmp地址 | 数组 |
| hlsUrls | 混流hls地址 | 数组 |
| flvUrls | 混流flv地址 | 数组 |
extraParams里的一个元素,即每一个对象是K-V 结构:
| 参数 | 含义 | 类型 |
|---|---|---|
| key | 参数类型 | 字符串 |
| value | 参数的值 | 字符串 |
ZegoClient.stopMixStream(mixStreamConfig, success, error)
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| mixStreamConfig | 混流配置信息 | 对象 | 必填 |
| success | 成功回调函数 | function() | 必填 |
| error | 失败回调函数 | function(err) | 必填 |
mixStreamConfig对象结构
| 参数 | 含义 | 类型 |
|---|---|---|
| outputStreamId | 混流输出流ID | 字符串 |
| outputUrl | 混流输出URL | 字符串 |
ZegoClient.preloadEffect(id, effectUrl, callBack)
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| id | 音效资源id | 数字 | 必填 |
| effectUrl | 音效资源地址 | 字符串 | 必填 |
| callBack | 回调函数 | function(err) | 选填 |
ZegoClient.playEffect(audioMixConfig, start, end)
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| audioMixConfig | 播放音效配置信息 | 对象 | 必填 |
| start | 播放开始回调 | function | 选填 |
| end | 播放结束回调 | function | 选填 |
audioMixConfig对象结构
| 参数 | 含义 | 类型 |
|---|---|---|
| streamId | 需混音的流ID | 字符串 |
| effectId | 已预先加载的音效资源id | 数字 |
| loop | 是否循环播放 | 布尔值 |
| playTime | 音效开始播放位置 | 数字 |
| replace | 是否替换音轨 | 布尔值 |
ZegoClient.pauseEffect(streamid)
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| streamid | 正在混音的流id | 字符串 | 必填 |
ZegoClient.resumeEffect(streamid)
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| streamid | 正在混音的流id | 字符串 | 必填 |
ZegoClient.unloadEffect(effectid)
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| effectid | 音效资源id | 数字 | 必填 |
ZegoClient.startMixingAudio(streamid, localaudio, replace)
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| streamid | 需要混音的流id | 字符串 | 必填 |
| localaudio | 本地的<audio>对象 |
文档对象 | 必填 |
| replace | 是否替换音轨 | 布尔值 | 必填 |
<audio>对象 需要混多路的 请传入<audio>数组集合 1.8.0版本及以上支持<audio>对象的方式,这种方式对音效的暂停恢复则是通过操作<audio>对象完成。ZegoClient.stopMixingAudio(streamid)
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| streamid | 正在混音的流id | 字符串 | 必填 |
ZegoClient.setMixingAudioVolume(streamid, volume)
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| streamid | 正在混音的流id | 字符串 | 必填 |
| volume | 音效音量 | 数字 | 必填 |
ZegoClient.publishTarget(cdnPublishConfig, success, error)
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| cdnPublishConfig | CDN转推配置 | 对象 | 必填 |
| success | 成功回调 | function | 选填 |
| error | 失败回调 | function | 选填 |
cdnPublishConfig对象结构
| 参数 | 含义 | 类型 |
|---|---|---|
| streamId | 需要转推CDN的流ID | 字符串 |
| type | 转推方式 | 字符串 |
| appSecret | 联系技术支持获取 | 字符串 |
| pushUrl | 转推CDN地址 | 字符串 |
ZegoClient.setPublishStreamConstraints(streamID, constraints, success,error)
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| streamID | 推流流ID | 字符串 | 必填 |
| constraints | 想要修改的推流参数 | 对象 | 必填 |
| success | 成功回调 | function | 必填 |
| error | 失败回调 | function(error) | 必填 |
constraints对象结构
| 参数 | 含义 | 类型 |
|---|---|---|
| width | 宽 | 数值 |
| height | 高 | 数值 |
| frameRate | 帧率 | 数值 |
error对象结构如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| code | 错误码 | 字符串 |
| msg | 错误说明 | 字符串 |
ZegoClient.setSoundLevelDelegate(boolean, interval)参数如下:
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| boolean | 开启或关闭音浪回调 | 布尔值 | 必填 |
| interval | 需要回调的时间间隔,默认1000ms | number | 选填 |
onSoundLevelUpdate 回调推拉流的音量大小ZegoClient.onSoundLevelUpdate(soundLevelList) 参数如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| soundLevelList | 流音浪列表 | 对象数组 |
soundLevelList对象结构:
| 参数 | 含义 | 类型 |
|---|---|---|
| streamID | 流Id | 字符串 |
| soundLevel | 流对应的音浪大小[0-100] | number |
| type | 流类型,"push" 代表推流,"pull"代表拉流 | 字符串 |
ZegoClient.setDummyCaptureImagePath(filePath, localStream)
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| filePath | 关闭视频流时所推静态图片的路径 | string | 必填 |
| localStream | 流关闭时发送图片的流对象 | string | 必填 |
ZegoClient.enableDualStream(localVideo)
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| localVideo | 本地预览的<video>或<audio>对象 |
文档对象 | 必填 |
ZegoClient.setLowStreamParameter(localVideo, constraints)
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| localVideo | 本地预览的<video>或<audio>对象 |
文档对象 | 必填 |
| constraints | 要修改的小流参数 | 对象 | 必填 |
constraints 对象结构
| 参数 | 含义 | 类型 |
|---|---|---|
| width | 宽 | 数值 |
| height | 高 | 数值 |
| frameRate | 帧率 | 数值 |
| bitRate | 码率 | 数值 |
ZegoClient.onDisconnect = function(err) {
//处理回调逻辑.....
}
ZegoClient.onDisconnect(err) ,参数如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| err.code | 错误码 | 字符串 |
| err.msg | 错误信息 | 字符串 |
ZegoClient.onKickOut(err) ,参数如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| err.code | 错误码 | 字符串 |
| err.msg | 错误信息 | 字符串 |
ZegoClient.onGetAnchorInfo(anchor_userid, anchro_username) ,参数如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| anchor_userid | 主播id | 字符串 |
| anchor_username | 主播昵称 | 字符串 |
ZegoClient.onRecvCustomCommand(from_idName, from_nickName, custom_content) ,参数如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| from_idName | 发送者id | 字符串 |
| from_nickName | 发送者昵称 | 字符串 |
| custom_content | 自定义命令消息 | 字符串 |
ZegoClient.onStreamUpdated(type, streamList) ,参数如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| type | 变更类型 | 数值,0:添加, 1:删除 |
| streamList | 变更流列表 | 对象数组 |
流信息对象结构:
| 参数 | 含义 | 类型 |
|---|---|---|
| stream_id | 流Id | 字符串 |
| anchor_id_name | 流对应的用户Id | 字符串 |
| anchor_nick_name | 流对应的用户昵称 | 字符串 |
| extra_info | 流附加信息 | 字符串 |
ZegoClient.onStreamExtraInfoUpdated(streamList) ,(不包含增加,删除),参数如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| streamList | 变更流列表 | 对象数组 |
流信息对象结构:
| 参数 | 含义 | 类型 |
|---|---|---|
| stream_id | 流Id | 字符串 |
| anchor_id_name | 流对应的用户Id | 字符串 |
| anchor_nick_name | 流对应的用户昵称 | 字符串 |
| extra_info | 流附加信息 | 字符串 |
ZegoClient.onRecvRoomMsg(chat_data, server_msg_id, ret_msg_id) ,参数如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| chat_data | 消息内容 | 数组 |
| server_msg_id | 服务器最新消息id | 数值 |
| ret_msg_id | 当前推送消息id | 数值 |
消息对象结构:
| 参数 | 含义 | 类型 |
|---|---|---|
| id_name | 用户Id | 字符串 |
| nick_name | 用户昵称 | 字符串 |
| role | 用户角色 | 数值 |
| msg_id | 消息Id | 数值 |
| msg_category | 消息类别 | 数值 |
| msg_type | 消息类型 | 数值 |
| msg_content | 消息内容 | 字符串 |
| send_time | 发送时间 | 数值 |
ZegoClient.onPlayStateUpdate(type, streamId, error) ,参数如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| type | 流状态类型 | 数值 start:0, error:1, retry: 2 |
| streamId | 流id | 字符串 |
拉流失败时会返回error,error对象结构如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| code | 错误码 | 字符串 |
| msg | 错误说明 | 字符串 |
错误码有以下类型:
| 错误码 | 含义 |
|---|---|
| ZegoPlay.Error.Dispatch | 调度信令失败,请联系技术支持 |
| ZegoPlay.Timeout.Dispatch | 调度信令超时,请检查当前网络状况 |
| ZegoPlay.Error.Token | Token错误,请检查token是否正确 |
| ZegoPlay.Timeout.Session | 创建会话超时,请检查网络状况 |
| ZegoPlay.Error.Session | 创建会话失败,请联系技术支持 |
| ZegoPlay.Timeout.RemoteOffer | Server Offer 超时,请检查当前网络状况 |
| ZegoPlay.Error.RemoteOffer | Server Offer 错误,请联系技术支持 |
| ZegoPlay.Error.CreateAnswer | 创建 Answer 失败,请确认浏览器兼容性 |
| ZegoPlay.Error.LocalDesc | 本地 SDP 失败,请确认浏览器兼容性 |
| ZegoPlay.Timeout.Desc | 发送 SDP 超时,请检查当前网络状况 |
| ZegoPlay.Timeout.Candidate | 发送 Candidate 超时,请检查当前网络状况 |
| ZegoPlay.Timeout.ServerCandidate | 接收 Candidate 超时,请检查当前网络状况 |
| ZegoPlay.Error.ServerCandidate | 接收 Candidate 错误,请联系技术支持 |
| ZegoPlay.Error.ConnectionFailed | 媒体网络连接失败,请检查当前网络状态或联系技术支持 |
| ZegoPlay.Error.ConnectionClosed | 媒体网络连接关闭,请检查当前网络状态或联系技术支持 |
| ZegoPlay.Error.SessionClosed | 会话关闭,请联系技术支持 |
| ZegoPlay.Error.SocketError | WebSocket 连接失败,请检查当前网络状态 |
ZegoClient.onVideoSizeChanged(streamId, videoWidth, videoHeight) ,参数如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| streamId | 流id | 字符串 |
| videoWidth | 视频宽度 | 数值 |
| videoHeight | 视频高度 | 数值 |
ZegoClient.onPlayQualityUpdate(streamId, streamQuality) ,参数如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| streamId | 流Id | 字符串 |
| streamQuality | 流质量 | 对象 |
streamQuality对象结构:
| 参数 | 含义 | 类型 |
|---|---|---|
| videoBitrate | 视频码率 | 数值 |
| audioBitrate | 音频码率 | 数值 |
| videoFPS | 视频编码帧率 | 数值 |
| frameHeight | 视频高度 | 数值 |
| frameWidth | 视频宽度 | 数值 |
| videoTransferFPS | 视频发送帧率 | 数值 |
ZegoClient.onPublishStateUpdate(type, streamId, error) ,参数如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| type | 流状态类型 | 数值 start:0, error:1, retry: 2 |
| streamId | 流id | 字符串 |
推流失败时会返回error,error对象结构如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| code | 错误码 | 字符串 |
| msg | 错误说明 | 字符串 |
错误码有以下类型:
| 错误码 | 含义 |
|---|---|
| ZegoPublish.Error.Dispatch | 调度信令失败,请联系技术支持 |
| ZegoPublish.Timeout.Dispatch | 调度信令超时,请检查当前网络状况 |
| ZegoPublish.Error.Token | Token错误,请检查token是否正确 |
| ZegoPublish.Timeout.Session | 创建会话超时,请检查网络状况 |
| ZegoPublish.Error.Session | 创建会话失败,请联系技术支持 |
| ZegoPublish.Error.CreateOffer | 创建 Offer 失败,请确认浏览器兼容性 |
| ZegoPublish.Error.LocalDesc | 本地 SDP 失败,请确认浏览器兼容性 |
| ZegoPublish.Timeout.Desc | 发送 SDP 超时,请检查当前网络状况 |
| ZegoPublish.Timeout.ServerAnswer | Server Answer 超时,请检查当前网络状况 |
| ZegoPublish.Error.ServerAnsewer | Server Answer 错误,请联系技术支持 |
| ZegoPublish.Error.RemoteDesc | Server Desc 错误,请联系技术支持 |
| ZegoPublish.Timeout.Candidate | 发送 Candidate 超时,请检查当前网络状况 |
| ZegoPublish.Timeout.ServerCandidate | 接收 Candidate 超时,请检查当前网络状况 |
| ZegoPublish.Error.ServerCandidate | 接收 Candidate 错误,请联系技术支持 |
| ZegoPublish.Error.ConnectionFailed | 媒体网络连接失败,请检查当前网络状态或联系技术支持 |
| ZegoPublish.Error.ConnectionClosed | 媒体网络连接关闭,请检查当前网络状态或联系技术支持 |
| ZegoPublish.Error.SessionClosed | 会话关闭,请联系技术支持 |
| ZegoPublish.Error.SocketError | WebSocket 连接失败,请检查当前网络状态 |
ZegoClient.onPublishQualityUpdate(streamId, streamQuality) ,参数如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| streamId | 流Id | 字符串 |
| streamQuality | 流质量 | 对象 |
streamQuality对象结构:
| 参数 | 含义 | 类型 |
|---|---|---|
| videoBitrate | 视频码率 | 数值 |
| audioBitrate | 音频码率 | 数值 |
| videoFPS | 视频编码帧率 | 数值 |
| videoTransferFPS | 视频发送帧率 | 数值 |
ZegoClient.onUserStateUpdate(roomId, userList) ,设置setUserStateUpdate为true时回调。参数如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| roomId | 房间Id | 字符串 |
| userList | 成员列表 | 对象数组 |
成员对象结构:
| 参数 | 含义 | 类型 |
|---|---|---|
| action | 行为 | 数值 1:进入房间 2:退出房间 |
| idName | 用户id | 字符串 |
| nickName | 用户昵称 | 字符串 |
| role | 角色类型 | 数值 1:主播 2:观众 |
| loginTime | 登录时间 | 字符串 |
ZegoClient.onGetTotalUserList(roomId, userList) ,设置setUserStateUpdate为true时回调。参数如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| roomId | 房间Id | 字符串 |
| userList | 成员列表 | 对象数组 |
成员对象结构:
| 参数 | 含义 | 类型 |
|---|---|---|
| idName | 用户id | 字符串 |
| nickName | 用户昵称 | 字符串 |
| role | 角色类型 | 数值 1:主播 2:观众 |
ZegoClient.onRecvJoinLiveRequest(requestId, from_idName, from_nickName, roomid) ,参数如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| requestId | 请求Id | 字符串 |
| from_idName | 请求者userId | 字符串 |
| from_nickName | 请求者userName | 字符串 |
| roomid | 房间id | 字符串 |
ZegoClient.onRecvInviteJoinLiveRequest(requestId, from_idName, from_nickName, roomid) ,参数如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| requestId | 请求Id | 字符串 |
| from_idName | 邀请者userId | 字符串 |
| from_nickName | 邀请者userName | 字符串 |
| roomid | 房间id | 字符串 |
ZegoClient.onRecvEndJoinLiveCommand(requestId, from_idName, from_nickName, roomid) ,参数如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| requestId | 请求Id | 字符串 |
| from_idName | 连麦者userId | 字符串 |
| from_nickName | 连麦者userName | 字符串 |
| roomid | 房间id | 字符串 |
ZegoClient.onRecvReliableMessage(type, seq, data) ,参数如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| type | 消息类型 | 字符串 |
| seq | 消息序列号 | 数值 |
| data | 消息内容 | 字符串 |
ZegoClient.onRecvBigRoomMessage(messageList, roomId) ,参数如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| messageList | 消息列表 | 对象数组 |
| roomId | 房间ID | 字符串 |
消息结构如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| idName | 用户ID | 字符串 |
| nickName | 用户昵称 | 字符串 |
| messageId | 消息ID | 字符串 |
| category | 消息分类 | 数值 |
| type | 消息类型 | 数值 |
| content | 消息内容 | 字符串 |
| time | 发送消息时间 | 数值 |
ZegoClient.onUpdateOnlineCount(roomId, userCount)
| 参数 | 含义 | 类型 |
|---|---|---|
| roomId | 房间ID | 字符串 |
| userCount | 在线人数 | 数值 |
ZegoClient.onRemoteCameraStatusUpdate(streamID, status)
| 参数 | 含义 | 类型 |
|---|---|---|
| streamID | 流ID | 字符串 |
| status | 所拉流的摄像头状态 | 数值 |
status状态为0表示开启,其它数值表示为关闭状态
ZegoClient.onRemoteMicStatusUpdate(streamID, status)
| 参数 | 含义 | 类型 |
|---|---|---|
| streamID | 流ID | 字符串 |
| status | 所拉流的麦克风状态 | 数值 |
status状态为0表示开启,其它数值表示为关闭状态
ZegoClient.onScreenSharingEnded(mediaStream)
| 参数 | 含义 | 类型 |
|---|---|---|
| mediaStream | 屏幕共享对应停止的媒体流对象 | MediaStream对象 |
ZegoClient.OnAudioDeviceStateChanged(msg)
msg对象结构
| 参数 | 含义 | 类型 |
|---|---|---|
| deviceType | 设备类型 | 字符串 |
| deviceInfo | 设备信息 | 对象 |
| state | 状态 | 字符串 |
deviceInfo对象结构
| 参数 | 含义 | 类型 |
|---|---|---|
| deviceName | 设备名称 | 字符串 |
| deviceID | 设备ID | 字符串 |
ZegoClient.OnVideoDeviceStateChanged(msg)
msg对象结构
| 参数 | 含义 | 类型 |
|---|---|---|
| deviceType | 设备类型 | 字符串 |
| deviceInfo | 设备信息 | 对象 |
| state | 状态 | 字符串 |
deviceInfo对象结构
| 参数 | 含义 | 类型 |
|---|---|---|
| deviceName | 设备名称 | 字符串 |
| deviceID | 设备ID | 字符串 |
ZegoClient.onDeviceError(msg)
msg对象结构
| 参数 | 含义 | 类型 |
|---|---|---|
| deviceName | 设备名称 | 字符串 |
| deviceType | 设备类型 | 字符串 |
| errorCode | 状态 | 数值 |
errorCode 0:正常 -6:异常
ZegoClient.onTempBroken()
ZegoClient.onReconnect()
ZegoClient.onExceptionUpdate(streamID, eventData),参数定义如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| streamID | 流 ID | 字符串 |
| eventData | 事件回调数据 | 对象 |
eventData 的对象结构:
| 参数 | 含义 | 类型 |
|---|---|---|
| code | 事件码 | 数字 |
| message | 异常相关的解释信息 | 字符串 |
事件码描述(异常相关):
| 异常事件码 | 含义 |
|---|---|
| 1001 | 视频采集帧率过低 |
| 1002 | 采集音量异常 |
| 1003 | 视频发送码率过低 |
| 1004 | 视频发送帧率过低 |
| 1005 | 音频发送码率异常 |
| 1006 | 接收音量异常 |
| 1007 | 接收音频解码失败 |
| 1008 | 接收视频解码失败 |
| 1009 | 解码帧率异常 |
| 1010 | 渲染帧率异常 |
事件码描述(从异常变正常):
| 事件码 | 含义 |
|---|---|
| 2001 | 视频采集帧率恢复正常 |
| 2002 | 采集音量恢复正常 |
| 2003 | 视频发送码率恢复正常 |
| 2004 | 视频发送帧率恢复正常 |
| 2005 | 音频发送码率恢复正常 |
| 2006 | 接收音量恢复正常 |
| 2007 | 接收音频解码恢复正常 |
| 2008 | 接收视频解码恢复正常 |
| 2009 | 解码帧率恢复正常 |
| 2010 | 渲染帧率恢复正常 |
ZegoClient.supportDetection(success, error)
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| success | 成功回调函数 | function(result) | 必填 |
| error | 失败回调函数 | function(err) | 可选 |
该方法为静态方法,不需要先初始化ZegoClient对象
result结构如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| capture | 是否支持获取摄像头麦克风设备 | 布尔值 |
| screenSharing | 是否支持屏幕共享 | 布尔值 |
| videoDecodeType | 是否支持视频编码 | object |
| webRtc | 是否支持webRTC协议 | 布尔值 |
videoDecodeType 目前包含 H264与VP8属性,类型为布尔值,表示当前浏览器是否支持H264与VP8视频编码
ZegoClient.getCurrentVersion()
该方法为静态方法,不需要先初始化ZegoClient对象
ZegoClient.getAudioInfo(localVideo, error)
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| localVideo | 本地预览的<video>对象 |
文档对象 | 必填 |
| error | 失败回调函数 | function(reason) | 必填 |
方法返回souder对象,该对象包含流当前音量属性:instant
ZegoClient.takeSnapShot(videoElement,imgElement) ZegoClient.saveSnapShot(videoElement,name)
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| videoElement | 截取源<video>对象 |
文档对象 | 必填 |
| imgElement | 目标img对象 |
文档对象 | 必填 |
| name | 保存图像名称(不需要带格式后缀) | string | 必填 |
这两个方法为静态方法,不需要先初始化ZegoClient对象
ZegoClient.startRecord(videoElement,constraints)
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| videoElement | 源<video>对象 |
文档对象 | 必填 |
| constraints | 纯音频录制配置 | 对象 | 选填 |
constraints 结构如下:
| 参数 | 含义 | 类型 |
|---|---|---|
| audio | 是否录制纯音频 | 布尔值 |
| audioInput | 麦克风设备 | 布尔值 |
该方法为静态方法,不需要先初始化ZegoClient对象
ZegoClient.pauseRecord()
该方法为静态方法,不需要先初始化ZegoClient对象
ZegoClient.resumeRecord()
该方法为静态方法,不需要先初始化ZegoClient对象
ZegoClient.stopRecord()
该方法为静态方法,不需要先初始化ZegoClient对象
ZegoClient.saveRecord(name)
| 参数 | 含义 | 类型 | 是否必填 |
|---|---|---|---|
| name | 保存视频名称(不需要带格式后缀) | string | 必填 |
该方法为静态方法,不需要先初始化ZegoClient对象
web屏幕共享功能,目前只支持桌面端(例如window和mac)的chrome和火狐浏览器以及最新的safari浏览器,chrome 72及72版本以上无需下载插件,72版本以下需要下载即构共享插件
分享功能只能获取到系统扬声器声音,外部麦克风需另外推流(例子:电脑播放音乐可以采集到,对着电脑说话声音采集不到)
当同时推多路流时,建议音频只推一路,防止回音
点击下载即构共享插件,并解压;
打开你的 Chrome 浏览器,点击屏幕右上方的扩展按钮,选择 更多工具 > 扩展程序, 打开开发者模式 > 加载已解压的扩展程序 > 选择 解压的 即构共享插件文件夹,即可完成安装
进入chrome网上应用商店搜索 Screensharing Extension by Zego 即构共享插件;
选择添加至chrome即可
火狐获取屏幕区域需要在代码中传入参数,chrome则会以弹窗形式给用户提供选择
火狐获取屏幕共享媒体流
| 参数 | 含义 | 类型 |
|---|---|---|
| mediaSource | 屏幕共享区域 | 只能是'screen', 'application', 'window'中一个 |
| auido | 是否捕捉声音 | bool |
| callback(suc,mediaStream) | 获取共享媒体流回调 | suc是bool类型代表成功与否,mediaStream为获取到的媒体流 |
screen 代表整个屏幕;application 代表某个应用; window 代表某个应用的某个窗口
chrome获取屏幕共享媒体流
| 参数 | 含义 | 类型 |
|---|---|---|
| callback(suc,mediaStream) | 获取共享媒体流回调 | suc是bool类型代表成功与否,mediaStream为获取到的媒体流 |
无插件获取屏幕共享媒体流
| 参数 | 含义 | 类型 |
|---|---|---|
| screenConfig | 屏幕共享选项 | 对象 |
| audio | 是否需要音频 | 布尔值 |
| callback(suc,mediaStream) | 获取共享媒体流回调 | suc是bool类型代表成功与否,mediaStream为获取到的媒体流 |
screenConfig 对象结构
| 参数 | 含义 | 类型 |
|---|---|---|
| frameRate | 屏幕共享帧率,默认15 | 数值 |
stopScreenShot( )
zg.startScreenShotChrome(function (suc,mediastream) {
previewVideo.srcObject = mediastream;//本地预览
// 与正常推流一样,需要先调用SDK预览接口,成功后再推流 ,
// 需要注意的是 mediaStreamConstraints.externalCapture = true (必须)
zg.startPreview(localVideo, mediaStreamConstraints, function() {
zg.startPublishingStream(streamid, localVideo, extraInfo);
}, error)
})
| 错误码 | 含义 |
|---|---|
| ZegoClient.Success | 成功 |
| ZegoClient.Error.Param | 参数错误 |
| ZegoClient.Error.Timeout | 超时 |
| ZegoClient.Error.Network | 网络错误 |
| ZegoClient.Error.Kickout | 用户被踢 |
| ZegoClient.Error.Server | 服务返回错误 |
| ZegoClient.Error.Unknown | 未知错误 |

联系我们
文档反馈