Class
ZegoApiCalledEventHandler
Declared in ZegoExpressEventHandler.ts
方法
onApiCalledResult
onApiCalledResult(errorCode: number, funcName: string, info: string): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| errorCode | number | 错误码,详情请参考 常见错误码文档 https://doc-zh.zego.im/zh/4378.html |
| funcName | string | 函数名。 |
| info | string | 错误的详细信息。 |
详情
通过 [setApiCalledCallback] 开启监听时,会通过本回调回调所有方法的执行的结果。
- 通知时机:在开发者调用 SDK 方法时,回调该方法的执行结果。
- 支持版本:2.3.0 及以上。
- 使用限制:无。
- 注意事项:建议在开发、测试阶段监听并处理本回调,在上线后关闭对本回调的监听。
ZegoEventHandler
Declared in ZegoExpressEventHandler.ts
方法
onDebugError
onDebugError(errorCode: number, funcName: string, info: string): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| errorCode | number | 错误码,详情请参考 常见错误码文档 https://doc-zh.zego.im/zh/4378.html |
| funcName | string | 函数名。 |
| info | string | 错误的详细信息。 |
详情
调用 SDK 函数出现异常时,会通过该回调提示详细的异常信息。
- 业务场景:开发者在集成 SDK 的开发、测试阶段,可以通过本回调中的详细异常信息快速定位问题。
- 通知时机:在 SDK 出现异常时通知开发者。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项:无。
onEngineStateUpdate
onEngineStateUpdate(state: ZegoEngineState): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| state | ZegoEngineState | 音视频引擎状态。 |
详情
音视频引擎状态更新的回调通知,当启用音视频功能时,比如预览、推流、本地媒体播放器、原始音频数据获取等,音视频引擎会进入开始状态,当退出房间或停用所有音视频功能时,音视频引擎会进入停止状态。
- 通知时机:开发者调用了相关函数改变了音视频引擎的状态。例如:1. 调用了ZegoExpressEngine的 [startPreview]、[stopPreview]、[startPublishingStream]、[startPlayingStream]、[startAudioDataObserver] 等函数。2. 调用了 MediaPlayer 的相关函数等。3. 调用了 [logoutRoom] 函数。4.调用了 RealTimeSequentialDataManager 的相关接口等。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项: 1. 开发者调用 [destroyEngine] 时,由于 SDK 的资源被完全释放,并不会触发此通知。 2. 如无特殊需要,开发者可以不必关注本回调。
onRecvExperimentalAPI
onRecvExperimentalAPI(content: string): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| content | string | 回调的内容,JSON 字符串格式。 |
详情
接收实验性 API 回调,请在 ZEGO 技术支持的帮助下使用此功能。
- 支持版本:2.7.0 及以上。
onRoomStateUpdate
onRoomStateUpdate(roomID: string, state: ZegoRoomState, errorCode: number, extendedData: string): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| roomID | string | 房间 ID,最大长度为 128 字节的字符串。 |
| state | ZegoRoomState | 变化后的房间状态。 |
| errorCode | number | 错误码,详情请参考 常见错误码。 |
| extendedData | string | 状态更新附带的扩展信息。当房间登录成功时,可通过"room_session_id" key 获取每一次音视频通信唯一的 RoomSessionID,标识房间内首个用户发起音视频通信到最后一个用户结束通信的持续通信。可用于通话质量评分、通话问题诊断等场景中。 |
详情
当房间的连接状态改变时触发该回调,并通知改变的原因。2.18.0 及以上版本推荐使用 onRoomStateChanged 回调来替代 onRoomStateUpdate 回调监听房间状态变化。
- 业务场景:开发者可以通过这个回调来判断房间内当前用户的状态。
- 通知时机: 1. 开发者调用 [loginRoom]、[logoutRoom]、[switchRoom] 函数时会收到此通知。
- 用户设备的网络情况变化时也可能收到此通知 (SDK 在断线时会自动重新登录房间,详情请参考 SDK 是否支持断线重连机制。
- 相关接口:[loginRoom]、[logoutRoom]、[switchRoom]。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项:若长时间处于正在请求连接状态(ZegoRoomStateConnecting),一般是因为用户端网络不稳定导致。
onRoomStateChanged
onRoomStateChanged(roomID: string, reason: ZegoRoomStateChangedReason, errorCode: number, extendedData: string): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| roomID | string | 房间 ID,最大长度为 128 字节的字符串。 |
| reason | ZegoRoomStateChangedReason | 房间状态变化原因。 |
| errorCode | number | 错误码,详情请参考常用 错误码文档 https://doc-zh.zego.im/zh/4378.html |
| extendedData | string | 状态更新附带的扩展信息。当房间登录成功时,可通过 "room_session_id" key 获取每一次音视频通信唯一的 RoomSessionID,标识房间内首个用户发起音视频通信到最后一个用户结束通信的持续通信。可用于通话质量评分、通话问题诊断等场景中。 |
详情
当房间的连接状态改变时触发该回调,并通知改变的原因。2.18.0 及以上版本推荐使用 onRoomStateChanged 回调来替代 onRoomStateUpdate 回调监听房间状态变化。
- 业务场景:开发者可以通过这个回调来判断房间内当前用户的状态。
- 通知时机: 1. 开发者调用房间相关函数 (参考 "相关接口") 时会收到此通知。 2. 用户设备的网络情况变化时也可能收到此通知 (SDK 在断线时会自动重新登录房间,详情请参考 https://doc-zh.zego.im/faq/reconnect )。
- 相关接口:[loginRoom], [logoutRoom], [switchRoom]
- 支持版本:2.18.0 及以上。
- 使用限制:无。
- 注意事项:若长时间处于正在请求连接状态 [ZegoRoomStateConnecting],一般是因为用户端网络不稳定导致。
onRoomUserUpdate
onRoomUserUpdate(roomID: string, updateType: ZegoUpdateType, userList: ZegoUser[]): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| roomID | string | 用户已登录的房间 ID,最大长度为 128 字节的字符串。 |
| updateType | ZegoUpdateType | 更新类型(添加/删除)。 |
| userList | ZegoUser[] | 当前房间内变更的用户列表。 |
详情
当房间内有其他用户上线或下线时,导致房间内用户列表发生变化,会通过本回调通知开发者。
- 业务场景:开发者可以通过这个回调来实时更新房间内的用户列表展示。
- 通知时机: 1. 用户首次登录房间时,如果房间内有其他用户,SDK 会触发 "updateType" 为 [ZegoUpdateTypeAdd] 的回调通知,此时 "userList" 为房间内的其他用户。 2. 用户已在房间内,如果有其他用户通过 [loginRoom]、[switchRoom] 函数登录到本房间,SDK 会触发 "updateType" 为 [ZegoUpdateTypeAdd] 的回调通知。 3. 用户已在房间内,有其他用户通过 [logoutRoom]、[switchRoom] 函数登出本房间,SDK 会触发 "updateType" 为 [ZegoUpdateTypeDelete] 的回调通知。 4. 用户已在房间内,如果有其他用户从服务端被踢出本房间,SDK 会触发 "updateType" 为 [ZegoUpdateTypeDelete] 的回调通知。
- 相关接口:[loginRoom]、[logoutRoom]、[switchRoom]。
- 支持版本:1.1.0 及以上。
- 使用限制:调用 [loginRoom] 登录房间时设置 [ZegoRoomConfig] 参数中的 "isUserStatusNotify" 属性为 "true" 时,才会接收到这个回调通知。如果开发者需要使用在回调通知中处理相关业务,请确保每个登录的用户都将 "isUserStatusNotify" 设置为 "true"。
onRoomOnlineUserCountUpdate
onRoomOnlineUserCountUpdate(roomID: string, count: number): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| roomID | string | 用户已登录的房间 ID,最大长度为 128 字节的字符串。 |
| count | number | 当前在线用户数量。 |
详情
此方法会通知用户当前房间内的在线人数。
- 业务场景:开发者可根据此回调来来展示当前房间内的在线人数。
- 通知时机:登录房间成功后。
- 支持版本:1.7.0 及以上。
- 使用限制:无。
- 注意事项:1. 此函数 30 秒回调一次。2. 因设计如此,当房间内用户超过 500 后,对房间内在线人数的统计会有一些误差。
onRoomStreamUpdate
onRoomStreamUpdate(roomID: string, updateType: ZegoUpdateType, streamList: ZegoStream[], extendedData: string): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| roomID | string | 用户已登录的房间 ID,最大长度为 128 字节的字符串。 |
| updateType | ZegoUpdateType | 更新类型(添加/删除)。 |
| streamList | ZegoStream[] | 更新的流列表。 |
| extendedData | string | 流更新附带的扩展信息。收到流删除通知时,开发者可将该字符串转为 json 对象得到 stream_delete_reason 字段,该字段为流删除原因的数组,stream_delete_reason[].code 字段可能为如下值:1(用户主动停止推流); 2(用户心跳超时); 3(用户重复登录); 4(用户被踢出); 5(用户断线); 6(被服务端移除)。 |
详情
当房间内有其他用户开始推流或停止推流时,导致房间内流列表发生变化,会通过本回调通知开发者。
- 业务场景:开发者可根据此回调来判断指定房间内其他用户是否新增推流或停止推流,并根据情况选择调用 [startPlayingStream] 主动拉流或调用[stopPlayingStream] 停止拉流,同时也可以变更拉流的 UI 控件。
- 通知时机: 1. 用户首次登录房间时,如果房间内其他用户正在推流,SDK 会触发 updateType 为 [ZegoUpdateTypeAdd] 的回调通知,此时 "streamList" 为已存在的流列表。 2. 用户已在房间内,如果有其他用户新增推流,SDK 会触发 "updateType" 为 [ZegoUpdateTypeAdd] 的回调通知。 3. 用户已在房间内,如果有其他用户停止推流,SDK 会触发 "updateType" 为 [ZegoUpdateTypeDelete] 的回调通知。 4. 用户已在房间内,如果有其他用户退出房间,SDK 会触发 "updateType" 为 [ZegoUpdateTypeDelete] 的回调通知。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
onRoomStreamExtraInfoUpdate
onRoomStreamExtraInfoUpdate(roomID: string, streamList: ZegoStream[]): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| roomID | string | 用户已登录的房间 ID,最大长度为 128 字节的字符串。 |
| streamList | ZegoStream[] | 流附加信息更新的流列表。 |
详情
房间内流附加信息更新时所有房间内用户会收到通知。
- 业务场景:用户可通过流附加信息与流生命周期一致的特性实现一些业务功能。
- 通知时机:当相同房间内一个正在推流的用户更新了流的附加信息时,相同房间内的其他用户会收到该回调。
- 相关接口:推流用户可以通过 [setStreamExtraInfo] 设置流附加信息。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项:不同于流 ID 在推流过程中不可修改,流附加信息可以在对应流 ID 的生命周期中更新。
onRoomExtraInfoUpdate
onRoomExtraInfoUpdate(roomID: string, roomExtraInfoList: ZegoRoomExtraInfo[]): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| roomID | string | 用户已登录的房间 ID,最大长度为 128 字节的字符串。 |
| roomExtraInfoList | ZegoRoomExtraInfo[] | 更新的房间附加信息列表。 |
详情
房间附加信息更新后,除更新房间附加信息的用户外,房间内所有用户会收到通知。
- 业务场景:为房间附加信息。
- 通知时机:当相同房间内其他用户更新了房间附加信息时,相同房间内的其他用户会收到该回调。
- 相关接口:用户可以通过 [setRoomExtraInfo] 更新房间附加信息。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
onRoomTokenWillExpire
onRoomTokenWillExpire(roomID: string, remainTimeInSecond: number): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| roomID | string | 用户已登录的房间 ID,最大长度为 128 字节的字符串。 |
| remainTimeInSecond | number | token 过期前的剩余时间。 |
详情
房间 Token 鉴权将要过期的回调通知,请用户通过 [renewToken] 函数更新房间 Token 鉴权。
- 业务场景:为了防止炸麦场景,需要对登录房间、推流等操作进行鉴权控制,提高安全性。
- 通知时机:在 Token 过期前 30 秒,SDK 会通过 onRoomTokenWillExpire 回调发出通知。
- 相关接口:当开发者收到此回调后,可通过 [renewToken] 来更新 token 鉴权信息。
- 支持版本:2.8.0 及以上。
- 使用限制:无。
- 注意事项:Token 中包含用户的房间权限、推流权限、有效时间等重要信息,详情请参考 https://doc-zh.zego.im/article/10360 。
onPublisherStateUpdate
onPublisherStateUpdate(streamID: string, state: ZegoPublisherState, errorCode: number, extendedData: string): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 推流的流 ID。 |
| state | ZegoPublisherState | 推流状态。 |
| errorCode | number | 推流状态变更对应的错误码。请参考 常见错误码文档 https://doc-zh.zego.im/zh/4378.html |
| extendedData | string | 状态更新附带的扩展信息,包含CDN拉流地址。 |
详情
在调用推流接口 [startPublishingStream] 成功后,可以通过该回调函数获取推流状态变更的通知。开发者可根据 state 参数是否在 [正在请求推流状态] 来大体判断用户的推流网络情况。
- 相关回调:在调用拉流接口 [startPlayingStream] 成功后,可以通过回调函数 [onPlayerStateUpdate] 获取拉流状态变更的通知。开发者可根据 state 参数是否在 [正在请求拉流状态] 来大体判断用户的拉流网络情况。
- 支持版本:1.1.0 及以上。
- 注意事项:参数 [extendedData] 为状态更新附带的扩展信息。若使用 ZEGO 的 CDN 内容分发网络,在推流成功后,该参数的内容的键为 [flv_url_list]、[rtmp_url_list]、[hls_url_list],分别对应 flv、rtmp、hls 协议的拉流 URL。
onPublisherQualityUpdate
onPublisherQualityUpdate(streamID: string, quality: ZegoPublishStreamQuality): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 推流的流 ID。 |
| quality | ZegoPublishStreamQuality | 推流质量,包含了音视频帧率、码率、RTT 等值。 |
详情
在调用推流接口 [startPublishingStream] 成功后默认3秒(该时间如果需要变更,请联系 ZEGO 技术支持配置)会收到此回调,通过该回调可以获取推送的音视频流的采集帧率,码率,RTT,丢包率等质量数据。开发者可根据此函数的质量参数实时监控推送的音视频流的健康情况,以便在设备 UI 界面上实时展示上行网络状况。
- 相关回调:当调用拉流接口 [startPlayingStream] 成功后每3秒会收到回调 [onPlayerQualityUpdate],开发者可根据拉取的音视频流的帧率,码率,RTT,丢包率等质量数据,实时监控拉取流的健康情况。
- 支持版本:1.1.0 及以上。
- 注意事项:若开发者不清楚该回调函数的各个参数应该如何使用,可以只关注其中的 [quality] 参数的 [level] 字段,这是 SDK 内部根据质量参数计算的一个描述上行网络的综合值。
onPublisherCapturedAudioFirstFrame
onPublisherCapturedAudioFirstFrame(): voidZegoExpressEventHandler.tsSDK 启动麦克风采集到第一帧音频数据时会收到此回调。若未收到该回调,说明音频采集设备被占用或异常。
- 通知时机:SDK内部的音视频模块的引擎启动时,SDK 会去采集本机设备的音频数据,此时会收到该回调。
- 相关回调:通过回调函数[onPublisherCapturedVideoFirstFrame] 判断 SDK 是否真正采集到了视频数据,通过回调[onPublisherRenderVideoFirstFrame] 判断 SDK 是否渲染完了采集到的第一帧视频数据。
- 支持版本:1.1.0 及以上。
onPublisherCapturedVideoFirstFrame
onPublisherCapturedVideoFirstFrame(channel: ZegoPublishChannel): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| channel | ZegoPublishChannel | 推流通道,如果只推一路音视频流,可以不关注该参数。 |
详情
SDK 启动摄像头采集到第一帧视频数据时会收到此回调。若未收到该回调,说明视频采集设备被占用或异常。
- 通知时机:SDK 内部的音视频模块的引擎启动时,SDK 会去采集本机设备的视频数据,此时会收到该回调。
- 相关回调:通过回调函数 [onPublisherCapturedAudioFirstFrame] 判断 SDK 是否真的采集到音频数据,通过回调 [onPublisherRenderVideoFirstFrame] 判断 SDK 是否渲染完采集到的第一帧视频数据。
- 支持版本:1.1.0 及以上。
onPublisherRenderVideoFirstFrame
onPublisherRenderVideoFirstFrame(channel: ZegoPublishChannel): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| channel | ZegoPublishChannel | 推流通道,如果只推一路音视频流,可以不关注该参数。 |
详情
SDK 渲染完采集到的第一帧视频数据时会收到此回调,该接口为预览渲染,自定义视频采集内部预览才有首帧回调,如果不是 SDK 渲染没有此回调。
- 相关回调:调用推流函数 [startPublishingStream] 成功后, 通过回调函数 [onPublisherCapturedAudioFirstFrame] 判断 SDK 是否真的采集到音频数据,通过回调 [onPublisherCapturedVideoFirstFrame] 判断 SDK 是否真的采集到视频数据。
- 支持版本:2.4.0 及以上。
onPublisherVideoSizeChanged
onPublisherVideoSizeChanged(width: number, height: number, channel: ZegoPublishChannel): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| width | number | 视频采集分辨率宽。 |
| height | number | 视频采集分辨率高。 |
| channel | ZegoPublishChannel | 推流通道,如果只推一路音视频流,可以不关注该参数。 |
详情
当在未推流 [startPublishingStream] 或未预览 [startPreview] 的情况下,首次推流或首次预览,即 SDK 内部的音视频模块的引擎启动时,会去采集本机设备的视频数据,此时采集分辨率会改变。
- 通知时机:推流 [startPublishingStream] 成功后,在推流中途如果有改变视频采集分辨率发生变化将会收到此回调。
- 业务场景:开发者可以根据此回调来去除本地预览的 UI 的遮盖等类似操作。也可以根据该回调的分辨率来动态调整预览视图的比例等。
- 支持版本:1.1.0 及以上。
- 注意事项:外部采集时通知的是编码分辨率大小变化,会受到流控影响。
onPublisherRelayCDNStateUpdate
onPublisherRelayCDNStateUpdate(streamID: string, infoList: ZegoStreamRelayCDNInfo[]): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 推流的流 ID。 |
| infoList | ZegoStreamRelayCDNInfo[] | 当前 CDN 正在转推的信息列表。 |
详情
开发者可根据该回调判断转推 CDN 的音视频流是否正常,若不正常根据异常原因进一步定位转推 CDN 的音视频流异常的原因,以及做对应的容灾策略。
- 通知时机:在 ZEGO RTC 服务器将音视频流转推到 CDN 后,如果 CDN 转推状态发生变化,例如出现转推停止或转推重试,将会收到此回调。
- 支持版本:1.1.0 及以上。
- 注意事项:若对异常的原因不了解,可联系 ZEGO 技术人员分析具体异常的原因。
onPublisherVideoEncoderChanged
onPublisherVideoEncoderChanged(fromCodecID: ZegoVideoCodecID, toCodecID: ZegoVideoCodecID, channel: ZegoPublishChannel): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| fromCodecID | ZegoVideoCodecID | 变更前的视频编码器 ID。 |
| toCodecID | ZegoVideoCodecID | 变更后的视频编码器 ID。 |
| channel | ZegoPublishChannel | 推流通道,如果只推一路音视频流,可以不关注该参数。 |
详情
推流使用的编码类型发生变化的回调。
- 通知时机:以 H.265 编码进行推流过程中,如果不支持 H.265 编码或编码失败,SDK 会主动降级为指定编码(H.264),此时会触发本回调。
- 支持版本:2.12.0 及以上。
- 注意事项:在触发本回调时,如果正在进行本地视频录制或云端录制,则会导致生成多个录制文件,开发者需要在录制结束后,收集所有录制文件进行处理。在触发本回调时,因为推流编码发生变更,开发者可以评估是否通知拉流端,以便拉流端做对应处理。
onPublisherStreamEvent
onPublisherStreamEvent(eventID: ZegoStreamEvent, streamID: string, extraInfo: string): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| eventID | ZegoStreamEvent | 推流事件ID |
| streamID | string | 推流的流 ID。 |
| extraInfo | string | 附加信息。JSON 格式的字符串。目前包括的信息有 "url"表示地址, "streamProtocol"表示流协议,包括rtmp,flv,avertp,hls,webrtc等, "netProtocol"表示网络协议,包括tcp,udp,quic, "resourceType"表示资源类型,包括cdn,rtc,l3。 |
详情
发起推流后,这个回调会返回当前使用的推流地址,资源类型和协议相关信息。
- 通知时机:推流以及重试推流的事件。
- 支持版本:2.18.0 及以上。
- 注意事项:无。
onPlayerStateUpdate
onPlayerStateUpdate(streamID: string, state: ZegoPlayerState, errorCode: number, extendedData: string): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 流 ID。 |
| state | ZegoPlayerState | 拉流状态。 |
| errorCode | number | 拉流状态变更对应的错误码。请参考 常见错误码文档 https://doc-zh.zego.im/zh/4378.html |
| extendedData | string | 状态更新附带的扩展信息。备用,目前仅返回空 json 表。 |
详情
在调用拉流接口 [startPlayingStream] 成功后,可以通过该回调函数获取拉流状态变更的通知。开发者可根据 state 参数是否在 [正在请求拉流状态] 来大体判断用户的拉流网络情况。
- 通知时机:在调用拉流接口 [startPlayingStream] 成功后,拉流状态变更时。
- 相关回调:在调用推流接口 [startPublishingStream] 成功后,可以通过回调函数 [onPublisherStateUpdate] 获取推流状态变更的通知。开发者可根据 state 参数是否在 [正在请求推流状态] 来大体判断用户的推流网络情况。
- 支持版本:1.1.0 及以上。
onPlayerQualityUpdate
onPlayerQualityUpdate(streamID: string, quality: ZegoPlayStreamQuality): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 拉流的流 ID。 |
| quality | ZegoPlayStreamQuality | 拉流质量,包含了音视频帧率、码率、RTT 等值。 |
详情
在调用拉流接口 [startPlayingStream] 成功后每3秒(该时间如果需要变更,请联系 ZEGO 技术支持配置)会收到此回调,通过该回调可以获取拉取的音视频流的帧率,码率,RTT,丢包率等质量数据。
- 业务场景:开发者可根据此函数的质量参数实时监控拉取的音视频流的健康情况,以便在设备 UI 界面上实时展示下行网络状况。
- 相关回调:当调用推流接口 [startPublishingStream] 成功后每3秒会收到回调 [onPublisherQualityUpdate],开发者可根据推送的音视频流的帧率,码率,RTT,丢包率等质量数据,实时监控推送流的健康情况。
- 支持版本:1.1.0 及以上。
- 注意事项:若开发者不清楚该回调函数的各个参数应该如何使用,可以只关注其中的 quality 参数的 level 字段,这是 SDK 内部根据质量参数计算的一个描述下行网络的综合值。
onPlayerMediaEvent
onPlayerMediaEvent(streamID: string, event: ZegoPlayerMediaEvent): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 拉流的流 ID。 |
| event | ZegoPlayerMediaEvent | 拉流时收到的具体事件。 |
详情
该回调用于接收拉流媒体事件。
- 业务场景:开发者可以根据此回调对卡顿情况做统计或在 App 的 UI 界面做友好的展示。
- 通知时机:在调用拉流接口 [startPlayingStream]后,当拉流发生音视频卡顿以及恢复等事件发生时会触发此回调。
- 支持版本:1.1.0 及以上。
onPlayerRecvAudioFirstFrame
onPlayerRecvAudioFirstFrame(streamID: string): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 拉流的流 ID。 |
详情
调用拉流函数 [startPlayingStream] 成功后,SDK 接收到第一帧音频数据时会收到此回调。
- 业务场景:开发者可用该回调来统计首帧耗时或更新播放流的 UI 组件。
- 通知时机:SDK 从网络接收到第一帧音频数据时,会收到该回调。
- 相关回调:调用拉流函数 [startPlayingStream] 成功后, 通过回调函数 [onPlayerRecvVideoFirstFrame] 判断 SDK 是否接收到视频数据,通过回调 [onPlayerRenderVideoFirstFrame] 判断 SDK 是否渲染完接收到的第一帧视频数据。
- 支持版本:1.1.0 及以上。
onPlayerRecvVideoFirstFrame
onPlayerRecvVideoFirstFrame(streamID: string): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 拉流的流 ID。 |
详情
调用拉流函数 [startPlayingStream] 成功后,SDK 接收到第一帧视频数据时会收到此回调。
- 业务场景:开发者可用该回调来统计首帧耗时或更新播放流的 UI 组件。
- 通知时机:SDK 从网络接收到第一帧视频数据时,会收到该回调。
- 相关回调:调用拉流函数 [startPlayingStream] 成功后, 通过回调函数 [onPlayerRecvAudioFirstFrame] 判断 SDK 是否接收到音频数据,通过回调 [onPlayerRenderVideoFirstFrame] 判断 SDK 是否渲染完接收到的第一帧视频数据。
- 支持版本:1.1.0 及以上。
onPlayerRenderVideoFirstFrame
onPlayerRenderVideoFirstFrame(streamID: string): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 拉流的流 ID。 |
详情
调用拉流函数 [startPlayingStream] 成功后,SDK 拉流并渲染完第一帧视频数据后会收到此回调。
- 业务场景:开发者可用该回调来统计首帧耗时或更新播放流的 UI 组件。
- 通知时机:SDK 拉流并渲染完第一帧视频数据后会收到此回调。
- 相关回调:调用拉流函数 [startPlayingStream] 成功后, 通过回调函数 [onPlayerRecvAudioFirstFrame] 判断 SDK 是否接收到音频数据,通过回调 [onPlayerRecvVideoFirstFrame] 判断 SDK 是否接收到第一帧视频数据。
- 支持版本:1.1.0 及以上。
onPlayerRenderCameraVideoFirstFrame
onPlayerRenderCameraVideoFirstFrame(streamID: string): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 拉流的流 ID。 |
详情
调用 [startPlayingStream] 函数拉流成功后,SDK 拉流并渲染完第一帧远端摄像头视频数据后会收到此回调。
- 业务场景:开发者可用该回调来统计首帧耗时或更新播放流的 UI 组件。
- 通知时机:远端 [enableCamera] 开启摄像头后,或者 [mutePublishStreamVideo] 为 true 开始发送视频数据后,SDK 拉流并渲染完第一帧远端摄像头视频数据后会收到此回调。
- 相关回调:调用拉流函数 [startPlayingStream] 成功后, 通过回调 [onPlayerRecvVideoFirstFrame] 判断 SDK 是否接收到第一帧视频数据。
- 支持版本:3.0.0 及以上。
- 注意事项:仅适用于远端使用摄像头推流的情况。仅适用于 RTC 推拉流场景。
onPlayerVideoSizeChanged
onPlayerVideoSizeChanged(streamID: string, width: number, height: number): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 拉流的流 ID。 |
| width | number | 视频解码分辨率宽。 |
| height | number | 视频解码分辨率高。 |
详情
调用拉流函数 [startPlayingStream] 成功后,当收到视频首帧数据,或推流方通过 [setVideoConfig] 改变编码分辨率,或流控策略生效时,拉流分辨率会发生改变。
- 业务场景:开发者可根据流的最终分辨率来更新或切换真正播放流的 UI 组件。
- 通知时机:拉流 [startPlayingStream] 成功后,在拉流中途如果有视频分辨率发生变化将会收到此回调。
- 支持版本:1.1.0 及以上。
- 注意事项: 1. 若拉的是流只有音频数据,则不会收到该回调。
- 若用户开启 ZegoVideoBufferTypeEncodedData 类型的自定义视频渲染, SDK 不负责视频解码,则不会收到该回调。
onPlayerRecvSEI
onPlayerRecvSEI(streamID: string, data: Uint8Array): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 拉流的流 ID。 |
| data | Uint8Array | SEI 内容。 |
详情
调用拉流函数 [startPlayingStream] 成功后,当远端流发送 SEI 后(如 直接调用 [sendSEI] 、混音中带 SEI 数据、自定义视频采集发送码流数据时附带 SEI 等等),本端会收到此回调。
- 通知时机:拉流 [startPlayingStream] 成功后,当远端流发送 SEI 后,本端会收到此回调。
- 支持版本:1.1.0 及以上。
- 注意事项: 1. 客户可在此回调函数中直接操作 UI 控件。
- 由于视频编码器自身会产生 payload type 为 5 的 SEI,或者使用视频文件推流时,视频文件中也可能存在这样的 SEI,因此若开发者需要过滤掉这类型的 SEI 时,可在 [createEngine] 之前调用 [ZegoEngineConfig.advancedConfig("unregister_sei_filter", "XXXXX")]。其中 unregister_sei_filter 为 key,XXXXX 为需要设置的uuid过滤字符串。 3.调用 [mutePlayStreamVideo] 或 [muteAllPlayStreamVideo] 设置只拉音频流时,将无法接收媒体次要信息。
onPlayerRecvAudioSideInfo
onPlayerRecvAudioSideInfo(streamID: string, data: Uint8Array): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 拉流的流 ID。 |
| data | Uint8Array | 音频次要信息内容。 |
详情
调用拉流函数 [startPlayingStream] 成功后,当远端流发送音频次要信息成功后 [sendAudioSideInfo],本端会收到此回调。
- 通知时机:拉流 [startPlayingStream] 成功后,当远端流发送音频次要信息后,本端会收到此回调。
- 相关接口:可通过接口 [sendAudioSideInfo] 发送音频次要信息。
- 支持版本:2.19.0 及以上。
- 注意事项:1. 调用 [mutePlayStreamAudio] 或 [muteAllPlayStreamAudio] 设置只拉视频流时,将无法接收音频次要信息。2. 受网络等因素影响,收到的数据可能会有缺失,但是保证顺序。
onPlayerLowFpsWarning
onPlayerLowFpsWarning(codecID: ZegoVideoCodecID, streamID: string): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| codecID | ZegoVideoCodecID | 视频解码器 ID。 |
| streamID | string | 拉流的流 ID。 |
详情
拉流出现低帧率触发的回调。
- 通知时机:拉流出现低帧率会触发本回调。
- 支持版本:2.14.0 及以上。
- 注意事项:如果用户拉 H.265 流触发本回调,可以停拉 H.265 流,转拉 H.264 流。
onPlayerStreamEvent
onPlayerStreamEvent(eventID: ZegoStreamEvent, streamID: string, extraInfo: string): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| eventID | ZegoStreamEvent | 拉流事件ID |
| streamID | string | 拉流的流 ID。 |
| extraInfo | string | 附加信息。JSON 格式的字符串。目前包括的信息有 "url"表示地址, "streamProtocol"表示流协议,包括rtmp,flv,avertp,hls,webrtc等, "netProtocol"表示网络协议,包括tcp,udp,quic, "resourceType"表示资源类型,包括cdn,rtc,l3。 |
详情
发起拉流后,这个回调会返回当前使用的拉流地址,资源类型和协议相关信息。
- 通知时机:拉流以及重试拉流的事件。
- 支持版本:2.18.0 及以上。
- 注意事项:无。
onPlayerVideoSuperResolutionUpdate
onPlayerVideoSuperResolutionUpdate(streamID: string, state: ZegoSuperResolutionState, errorCode: number): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 拉流的流 ID。 |
| state | ZegoSuperResolutionState | 超分状态。 |
| errorCode | number | 错误码,详情请参考 常见错误码文档 https://doc-zh.zego.im/zh/4378.html |
详情
拉流视频超分辨率开启状态变化。
- 通知时机:当 [enableVideoSuperResolution] 开启或关闭视频超分后,拉流视频渲染时根据实际情况通知开发者是否开启超分。
- 支持版本:3.0.0 及以上。
- 注意事项:无。
onAudioDeviceStateChanged
onAudioDeviceStateChanged(updateType: ZegoUpdateType, deviceType: ZegoAudioDeviceType, deviceInfo: ZegoDeviceInfo): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| updateType | ZegoUpdateType | 更新类型(添加/删除) |
| deviceType | ZegoAudioDeviceType | 音频设备类型 |
| deviceInfo | ZegoDeviceInfo | 音频设备信息 |
详情
通过监听此回调,用户可在必要的时候更新使用特定设备进行声音采集或输出。
- 通知时机:监测到系统中有音频设备添加或移除时,会触发此回调。
- 平台差异:仅支持 Windows、macOS。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
onAudioDeviceVolumeChanged
onAudioDeviceVolumeChanged(deviceType: ZegoAudioDeviceType, deviceID: string, volume: number): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| deviceType | ZegoAudioDeviceType | 音频设备类型 |
| deviceID | string | 音频设备ID |
| volume | number | 音频设备音量 |
详情
音频设备音量变更事件回调。
- 通知时机:调用 [startAudioDeviceVolumeMonitor] 函数启动设备音量监控器后,且监控的音频设备音量发生变更时。
- 平台差异:仅支持 Windows 和 macOS。
- 支持版本:1.1.0 及以上。
onVideoDeviceStateChanged
onVideoDeviceStateChanged(updateType: ZegoUpdateType, deviceInfo: ZegoDeviceInfo): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| updateType | ZegoUpdateType | 更新类型(添加/删除) |
| deviceInfo | ZegoDeviceInfo | 视频设备信息 |
详情
通过监听此回调,用户可在必要的时候更新使用特定设备进行视频采集。
- 通知时机:监测到系统中有视频设备添加或移除时,会触发此回调。
- 平台差异:仅支持 Windows、macOS。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
onCapturedSoundLevelInfoUpdate
onCapturedSoundLevelInfoUpdate(soundLevelInfo: ZegoSoundLevelInfo *): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| soundLevelInfo | ZegoSoundLevelInfo * | 本地采集的声浪值,取值范围为 0.0 ~ 100.0(该取值仅表示回调的声浪取值范围,不表示精度)。 |
详情
本地采集音频声浪回调。
- 通知时机:调用 [startSoundLevelMonitor] 函数启动声浪监控器后。
- 相关接口:通过 [startSoundLevelMonitor] 启动声浪监控,通过回调 [onRemoteSoundLevelUpdate] 或 [onRemoteSoundLevelInfoUpdate] 监控远端拉流音频声浪。
- 支持版本:2.10.0 及以上。
- 注意事项: 1. 回调通知周期为调用 [startSoundLevelMonitor] 时设置的参数值。 2. 该回调为高频回调,建议不要在回调内部做复杂逻辑处理。
onRemoteSoundLevelInfoUpdate
onRemoteSoundLevelInfoUpdate(soundLevelInfos: Map<string, zego.ZegoSoundLevelInfo>): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| soundLevelInfos | Map<string, zego.ZegoSoundLevelInfo> | 远端的声浪键值对,key 为流 ID,value 为对应的流的声浪值,value 取值范围为 0.0 ~ 100.0(该取值仅表示回调的声浪取值范围,不表示精度)。 |
详情
远端拉流音频声浪回调。
- 通知时机:调用 [startSoundLevelMonitor] 函数启动声浪监控器后,且处于正在拉流 [startPlayingStream] 的状态。
- 相关接口:通过 [startSoundLevelMonitor] 启动声浪监控,通过回调 [onCapturedSoundLevelUpdate] 或 [onCapturedSoundLevelInfoUpdate] 监控本地拉流音频声浪。
- 支持版本:2.10.0 及以上。
- 注意事项:回调通知周期为调用 [startSoundLevelMonitor] 时设置的参数值。
onCapturedAudioSpectrumUpdate
onCapturedAudioSpectrumUpdate(audioSpectrum: number[]): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| audioSpectrum | number[] | 本地采集的音频频谱值数组,频谱值范围为 [0-2^30]。 |
详情
本地采集音频频谱回调。
- 通知时机:调用 [startAudioSpectrumMonitor] 函数启动声浪监控器后。
- 相关接口:通过 [startAudioSpectrumMonitor] 启动声浪监控,通过回调 [onRemoteAudioSpectrumUpdate] 监控远端拉流音频频谱。
- 支持版本:1.1.0 及以上。
- 注意事项:回调通知周期为调用 [startAudioSpectrumMonitor] 时设置的参数值,当处于未推流 [startPublishingStream] 且未预览 [startPreview] 状态时,回调数值为默认值 0。
onRemoteAudioSpectrumUpdate
onRemoteAudioSpectrumUpdate(audioSpectrums: Map<string, number[]>): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| audioSpectrums | Map<string, number[]> | 远端音频频谱键值对,key 是流 ID,value 为对应的流的音频频谱值数组,频谱值范围为 [0-2^30] |
详情
远端拉流音频频谱回调。
- 通知时机:调用 [startAudioSpectrumMonitor] 函数启动声浪监控器后,且处于正在拉流 [startPlayingStream] 的状态。
- 相关接口:通过 [startAudioSpectrumMonitor] 启动音频频谱监控,通过回调 [onCapturedAudioSpectrumUpdate] 监控本地采集音频频谱。
- 支持版本:1.1.0 及以上。
- 注意事项:回调通知周期为调用 [startAudioSpectrumMonitor] 时设置的参数值。
onLocalDeviceExceptionOccurred
onLocalDeviceExceptionOccurred(exceptionType: ZegoDeviceExceptionType, deviceType: ZegoDeviceType, deviceID: string): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| exceptionType | ZegoDeviceExceptionType | 设备异常类型。 |
| deviceType | ZegoDeviceType | 发生异常的设备类型。 |
| deviceID | string | 设备 ID。目前仅支持桌面端设备,用于标识具体的设备;对于移动端设备,此参数将返回空字符串。 |
详情
本地设备异常。
- 通知时机:当本地音频或视频设备功能出现异常时会触发此回调。
- 支持版本:2.15.0 及以上。
onRemoteCameraStateUpdate
onRemoteCameraStateUpdate(streamID: string, state: ZegoRemoteDeviceState): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 拉流的流 ID。 |
| state | ZegoRemoteDeviceState | 远端摄像头状态。 |
详情
远端摄像头设备状态通知。
- 业务场景:1v1 教育场景的开发者或者教育小班课场景及相似场景的开发者可以根据此回调来判断远端推流设备的摄像头设备是否正常工作,以及根据相应的 state 初步了解设备出问题的原因。
- 通知时机:远端摄像头设备状态发生变更时,例如开关摄像头等,通过监听此回调,能够获取远端摄像头相关的事件,可以用于提示用户可能导致视频异常的情况。
- 支持版本:1.1.0 及以上。
- 注意事项:当从 CDN 拉流时,或对端使用了自定义视频采集时,不会触发此回调。
onRemoteMicStateUpdate
onRemoteMicStateUpdate(streamID: string, state: ZegoRemoteDeviceState): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 拉流的流 ID。 |
| state | ZegoRemoteDeviceState | 远端麦克风状态。 |
详情
远端麦克风设备状态通知。
- 业务场景:1v1 教育场景的开发者或者教育小班课场景及相似场景的开发者可以根据此回调来判断远端推流设备的麦克风设备是否正常工作,以及根据相应的 state 初步了解设备出问题的原因。
- 通知时机:远端麦克风设备状态发生变更时,例如开关麦克风等,通过监听此回调,能够获取远端麦克风相关的事件,可以用于提示用户可能导致音频异常的情况。
- 支持版本:1.1.0 及以上。
- 注意事项:当从 CDN 拉流时,或对端使用了自定义音频采集时(且不是推流到 ZEGO RTC服务器),不会触发此回调。
onRemoteSpeakerStateUpdate
onRemoteSpeakerStateUpdate(streamID: string, state: ZegoRemoteDeviceState): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 拉流的流 ID。 |
| state | ZegoRemoteDeviceState | 远端扬声器状态。 |
详情
远端扬声器设备状态通知。
- 业务场景:1v1 教育场景的开发者或者教育小班课场景及相似场景的开发者可以根据此回调来判断远端推流设备的扬声器设备是否正常工作,以及根据相应的 state 初步了解设备出问题的原因。
- 通知时机:远端扬声器设备状态发生变更时,例如开关扬声器等,通过监听此回调,能够获取远端扬声器相关的事件。
- 支持版本:1.1.0 及以上。
- 注意事项:此回调当从 CDN 拉流时不会回调。
onAudioRouteChange
onAudioRouteChange(audioRoute: ZegoAudioRoute): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| audioRoute | ZegoAudioRoute | 当前音频路由。 |
详情
音频设备路由变更通知。
- 通知时机:当有耳机插拔、扬声器和听筒切换等音频路由发生变化时会抛出此回调。
- 平台差异:仅支持 iOS 和 Android。
- 支持版本:1.20.0 及以上。
onAudioVADStateUpdate
onAudioVADStateUpdate(type: ZegoAudioVADStableStateMonitorType, state: ZegoAudioVADType): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| type | ZegoAudioVADStableStateMonitorType | 语音检测器类型 |
| state | ZegoAudioVADType | 语音检测结果 |
详情
检测音频数据的稳态语音状态的回调。 触发时机:调用 [startAudioVADStableStateMonitor] 启动语音状态检测,且处于正在推流的状态或预览预览状态。
- 相关接口:[startAudioVADStableStateMonitor], [stopAudioVADStableStateMonitor]。
- 支持版本:2.14.0 及以上。
- 使用限制:回调通知周期为 3 秒。
onIMRecvCustomCommand
onIMRecvCustomCommand(roomID: string, fromUser: ZegoUser, command: string): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| roomID | string | 房间 ID。取值范围:最大长度为 128 字节。 |
| fromUser | ZegoUser | 信令的发送人。 |
| command | string | 信令内容。取值范围:最大长度为 1024 字节。 |
详情
该回调用于接收相同房间内其他用户发送的自定义信令。
- 业务场景:一般在直播房间内使用。
- 通知时机:调用 [loginRoom] 登录房间之后,如果房间内有其他用户通过 [sendCustomCommand] 函数发送自定义信令给开发者,则触发此回调。
- 相关回调:可通过[onIMRecvBroadcastMessage]接收房间广播消息,可通过 [onIMRecvBarrageMessage] 接收房间弹幕消息。
- 支持版本:1.2.1 及以上。
- 使用限制:无。
- 注意事项:用户自己发送给自己的自定义信令不会通过此回调得到通知。
onPerformanceStatusUpdate
onPerformanceStatusUpdate(status: ZegoPerformanceStatus): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| status | ZegoPerformanceStatus | 系统性能监控状态。 |
详情
系统性能监控回调。回调周期为调用 [startPerformanceMonitor] 时设置的 millisecond 参数值。
- 业务场景:通过监控系统性能,协助用户快速定位、解决性能问题,提升用户体验。
- 通知时机:需要在 [createEngine] 之后,调用 [startPerformanceMonitor] 启动系统性能监控后才会触发本回调函数。
- 支持版本:1.19.0 及以上。
- 使用限制:无。
onNetworkSpeedTestError
onNetworkSpeedTestError(errorCode: number, type: ZegoNetworkSpeedTestType): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| errorCode | number | 网络测速错误码。请参考常见错误码文档 https://doc-zh.zego.im/zh/4378.html |
| type | ZegoNetworkSpeedTestType | 上行或下行网络。 |
详情
网络测速异常回调。
- 业务场景:用于检测当前网络环境是否适合推/拉指定码率的流。
- 通知时机:网络测试过程中发生异常时,例如:连接测速服务器失败等,将触发本回调。
- 支持版本:1.20.0 及以上。
- 使用限制:无。
onNetworkSpeedTestQualityUpdate
onNetworkSpeedTestQualityUpdate(quality: ZegoNetworkSpeedTestQuality, type: ZegoNetworkSpeedTestType): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| quality | ZegoNetworkSpeedTestQuality | 网速测速质量. |
| type | ZegoNetworkSpeedTestType | 上行或下行网络。 |
详情
网络连通状态下的网络测速质量回调。
- 业务场景:用于检测当前网络环境是否适合推/拉指定码率的流。
- 通知时机:调用 [startNetworkSpeedTest] 启动网络测速后,将触发本回调。回调通知周期为调用 [startNetworkSpeedTest] 时设置的参数值,未设置该参数时,默认 3 秒回调一次。
- 支持版本:1.20.0 及以上。
- 使用限制:无。
- 注意事项:当测速发生异常或停止测速时,本回调将会不再触发。
onNetworkQuality
onNetworkQuality(userID: string, upstreamQuality: ZegoStreamQualityLevel, downstreamQuality: ZegoStreamQualityLevel): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| userID | string | 用户 ID,空表示本地用户 |
| upstreamQuality | ZegoStreamQualityLevel | 上行网络质量 |
| downstreamQuality | ZegoStreamQualityLevel | 下行网络质量 |
详情
本地和远端用户的上下行网络回调,默认每两秒回调一次本地和每个拉取的远端用户的网络状况。 2.10.0 至 2.13.1 版本: 1. 自身必须既推流又拉流,才会收到自身的网络质量回调。 2. 当拉一条流时,推流端有拉流且推流端在自己所在房间内,才会收到该用户的网络质量。 2.14.0 至 2.21.1 版本:
- 自身只要推流或拉流,就会收到自身的网络质量回调。 2. 当拉一条流时,推流端在自己所在房间内,就会收到该用户的网络质量。 2.22.0 及以上版本:
- 自身只要推流或拉流,就会收到自身的网络质量回调。 2. 当拉一条流时,推流端在自己所在房间内,就会收到该用户的网络质量。
- 预估远端推流用户的网络情况,如果远端推流用户心跳丢失 1 次,回调其网络质量为 unknown;如果远端推流用户心跳丢失达到 3 次,回调其网络质量为 die。
- 业务场景:当开发者希望分析链路上的网络情况,或想要了解本地和远端用户的网络状况。
- 通知时机:调用 [startPublishingStream] 推流或 [startPlayingStream] 拉流后触发。
- 支持版本:2.10.0 及以上。
onScreenCaptureExceptionOccurred
onScreenCaptureExceptionOccurred(exceptionType: ZegoScreenCaptureExceptionType): voidZegoExpressEventHandler.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| exceptionType | ZegoScreenCaptureExceptionType | 采集源异常类型。 |
详情
移动端屏幕采集错误通知。
- 通知时机:移动端屏幕开始采集后产生异常会触发此回调。
- 支持版本:3.6.0 及以上。
- 使用限制:仅对 Android 和 iOS 系统生效。
- 注意事项:调用接口 [setEventHandler] 设置后该回调才生效。
onScreenCaptureStart
onScreenCaptureStart(): voidZegoExpressEventHandler.ts移动端屏幕采集开始通知。
- 通知时机:调用 [startScreenCapture] 后,成功开始屏幕采集会触发此回调,失败会触发 [onScreenCaptureExceptionOccurred]。
- 支持版本:3.16.0 及以上。
- 使用限制:仅对 Android 和 iOS 系统生效。
- 注意事项:调用接口 [setEventHandler] 设置后该回调才生效。
ZegoExpressEngine
Declared in ZegoExpressEngine.ts
方法
createEngine
createEngine(profile: ZegoEngineProfile, eventHandler?: ZegoEventHandler): ZegoExpressEngineZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| profile | ZegoEngineProfile | 用来创建引擎的基础配置信息。 |
| eventHandler | ZegoEventHandler | 事件通知回调。传 [null] 则意味着不接收任何回调通知,之后也可通过 [setEventHandler] 进行设置。如果重复调用 [createEngine] 且第二次调用前未调用 [destroyEngine] 函数销毁引擎,则 eventHandler 不会被更新。 |
详情
创建 ZegoExpressEngine 单例对象并初始化 SDK。
- 调用时机:SDK 其他实例方法调用之前。
- 支持版本:2.14.0 及以上。
- 使用限制:无。
- 注意事项:SDK 只支持创建一个实例,如需重复调用 [createEngine] ,则需在第二次调用 [createEngine] 前先调用 [destroyEngine] 函数销毁引擎,否则再次调用此函数返回的都是上次创建的对象。
返回值
引擎单例对象。
destroyEngine
destroyEngine(callback?: ZegoDestroyCompletionCallback): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| callback | ZegoDestroyCompletionCallback | 销毁引擎完成的通知回调,可监听此回调以确保设备硬件资源(麦克风、扬声器、摄像头等)被释放完成,若开发者不关注引擎资源的释放时机,该参数可传[null]。 |
详情
销毁 ZegoExpressEngine 单例对象并反初始化 SDK。
- 调用时机:当不再使用 SDK 时,可以通过本接口释放 SDK 使用的资源。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项:使用 [createEngine] 创建单例后,如果单例对象未被创建或已被销毁,调用此函数时,不会收到相关回调。
setEngineConfig
setEngineConfig(config: ZegoEngineConfig): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| config | ZegoEngineConfig | 引擎进阶配置 |
详情
用于开启进阶功能。
- 调用时机:不同的配置有不同的调用时机要求,详情可咨询 ZEGO 技术支持。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
setLogConfig
setLogConfig(config: ZegoLogConfig): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| config | ZegoLogConfig | 日志配置。 |
详情
开发者当需要自定义日志文件大小和路径时,需要调用此函数来完成配置。
- 调用时机:必须在调用 [createEngine] 之前设置才生效,若在 [createEngine] 之后设置,则在 [destroyEngine] 后的下一次 [createEngine] 时生效。
- 支持版本:2.3.0 及以上。
- 使用限制:无。
- 注意事项:一旦调用了本接口,通过 [setEngineConfig] 设置日志大小和路径的方式将无效。因此,不建议使用[setEngineConfig] 设置日志大小和路径 。
setRoomMode
setRoomMode(mode: ZegoRoomMode): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| mode | ZegoRoomMode | 房间模式。详情描述:用于设置房间模式。业务场景:当需要同时进入多个房间进行推拉流时,可以通过本接口开启多房间模式。是否必填:是。默认值:ZEGO_ROOM_MODE_SINGLE_ROOM。 |
详情
开发者需要使用多房间功能时,需要调用此函数来完成配置。
- 调用时机:必须在调用 [createEngine] 之前设置才生效,否则会失败。
- 支持版本:2.9.0 及以上。
- 使用限制:如果需要使用多房间功能,请与即构技术支持联系配置服务端支持。
- 注意事项:无。
getVersion
getVersion(): stringZegoExpressEngine.ts在 SDK 在运行过程中若遇到异常,可将问题、日志等信息提交 ZEGO 技术人员定位与排障。开发者也可通过该 API 收集当前 SDK 版本信息,便于 App 运营统计以及关联问题。
- 调用时机:任意时刻。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项:无。
SDK 版本号。
setApiCalledCallback
setApiCalledCallback(callback: ZegoApiCalledEventHandler): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| callback | ZegoApiCalledEventHandler | 方法执行结果的回调。 |
详情
设置调用方法执行结果的回调,设置后可以获取到每次执行 ZEGO SDK 方法结果的详细信息。
- 调用时机:任意时刻。
- 支持版本:2.3.0 及以上。
- 使用限制:无。
- 注意事项:建议开发者在需要获取每个接口的调用结果时才调用本接口,比如在排查、追踪问题的情况,一般情况下开发者不需要关注本接口。
isFeatureSupported
isFeatureSupported(featureType: ZegoFeatureType): booleanZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| featureType | ZegoFeatureType | 要查询的功能特性类型。 |
详情
由于 SDK 支持特性裁包,部分特性可能已被裁剪; 可以使用此函数快速判断当前 SDK 是否支持指定的功能特性,例如,查询是否支持媒体播放器功能。
- 调用时机:任意时刻。
- 支持版本:2.22.0 及以上。
返回值
是否支持指定功能特性。true 表示支持;false 表示不支持。
setEventHandler
setEventHandler(eventHandler?: ZegoEventHandler): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| eventHandler | ZegoEventHandler | 事件通知回调。传 [nullptr] 则清空已设置的回调。开发者应根据自身业务场景,监听相应的回调。SDK 主要的回调函数都在这里。 |
详情
设置事件通知回调,用于监听如 engine 状态变化、room 状态变化等回调。
- 调用时机:在 [createEngine] 后。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项:调用此函数或 [createEngine] 设置了回调后,除非调用此函数清空回调,否则再次设置一个回调将不生效。在调用 [destroyEngine] 销毁引擎之后,该回调会失效,在下一次 [createEngine] 后需要重新设置。
setRoomScenario
setRoomScenario(scenario: ZegoScenario): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| scenario | ZegoScenario | 房间场景。 |
详情
开发者可设置房间的使用场景,SDK 会针对不同的场景采取不同的优化策略,以便获取更优的效果;此函数的作用与 [createEngine] 的 [profile] 配置中的 [scenario] 参数完全一致。
- 业务场景:此函数适用于多种音视频业务场景的 App,例如有 1v1 音视频通话场景和秀场直播场景;通过此函数可以实现在不销毁引擎 [destroyEngine] 的前提下切换场景。
- 调用时机:必须在调用 [createEngine] 之后且调用 [loginRoom] 之前设置。
- 支持版本:3.0.0 及以上。
- 使用限制:一旦登录了房间就不再允许修改房间场景,若需要修改场景需要先退出房间,若登录了多个房间则需要退出所有房间后才能修改。
- 注意事项: 1. 同一个房间内的用户建议使用同一种房间场景以获得最佳效果。 2. 设置场景会影响音视频码率、帧率、分辨率、编码类型、音频设备模式、路由、流控、3A、耳返等音视频配置,若开发者有特殊需求可以在设置房间场景后再调用其他各种 API 来设置上述配置。 3. 调用此函数将覆盖 [createEngine] 时指定的场景或上一次调用此函数设置的场景。 4. 调用此函数将覆盖你通过 [setVideoConfig], [setAudioConfig] 等 API 设置的音视频相关配置,因此建议先第一时间设置场景再通过其他 API 调整音视频配置。
uploadLog
uploadLog(callback?: ZegoUploadLogResultCallback): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| callback | ZegoUploadLogResultCallback | 日志上传结果回调。 |
详情
默认情况下,SDK 会在 App 默认目录创建日志文件并打印,每个日志文件默认最大 5MB,三个日志文件循环覆盖写入。当调用此函数时 SDK 会自动将日志文件打包并上传到 ZEGO 服务器。
- 业务场景:开发者可在 App 提供业务上的“反馈”渠道,当用户反馈的问题属于 ZEGO SDK 时,可调用此函数将 SDK 的本地日志信息上传,并联系 ZEGO 技术支持协助定位用户问题。
- 调用时机:在 [createEngine] 后。
- 支持版本:2.4.0 及以上。
- 使用限制:限频每分钟1次。
- 注意事项:1. 在调用本接口上传日志后,如果过快的调用 [destroyEngine] 或 退出 App,则可能存在失败的情况。建议等待几秒,等收到上传成功回调后,再调用 [destroyEngine] 或 退出 App。2.如果希望在 [createEngine] 之前调用,请调用 [submitLog] 接口。
enableDebugAssistant
enableDebugAssistant(enable: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | 是否开启调试助手。 |
详情
开启后,SDK 将会打印日志到控制台,并且将会在 SDK 其他函数的调用发生问题时 UI 弹窗提示错误。
- 默认值:默认不开启。
- 调用时机:可在创建引擎 [createEngine] 后立刻调用此函数。
- 平台差异:弹窗提示功能仅支持 Android / iOS / macOS / Windows,而输出控制台日志功能支持全平台。
- 支持版本:2.17.0 及以上。
- 使用限制:无。
- 注意事项:请务必在 App 发布前确认此功能已关闭,以避免在正式版本中当发生错误时弹出 UI 提示。建议将此函数的 [enable] 参数与 App 的 DEBUG 变量相关联,即仅在 DEBUG 环境下开启调试助手。
callExperimentalAPI
callExperimentalAPI(params: string): stringZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| params | string | 传入的参数,格式为 JSON 字符串,具体可咨询 ZEGO 技术支持。 |
详情
ZEGO 通过此 API 提供 RTC 业务中的部分技术预览或特别定制功能,需要获取功能的使用或详情其详情可咨询 ZEGO 技术支持。
- 调用时机:在 [createEngine] 后。
- 支持版本:2.7.0 及以上。
返回值
返回的参数,格式为 JSON 字符串,具体可咨询 ZEGO 技术支持。
loginRoom
loginRoom(roomID: string, user: ZegoUser, config?: ZegoRoomConfig, callback?: ZegoRoomLoginCallback): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| roomID | string | 房间 ID,不得为空,最大长度小于 128 字节的字符串。 注意事项: 1.房间 ID 由您自己定义。 2. 仅支持数字,英文字符 和 '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', ''。 3. 如果需要与 Web SDK 互通,请不要使用 '%'。 |
| user | ZegoUser | 用户对象实例,配置用户 ID、用户名。 注意事项:注意用户 ID 需要在相同的 appID 下全局唯一,否则会出现后登录的用户踢掉先登录的用户的情况。 |
| config | ZegoRoomConfig | 房间进阶配置。 |
| callback | ZegoRoomLoginCallback | 本次登录结果的回调,如果需要详细的房间状态,请关注 [onRoomStateChanged] 回调。是否必填:否。默认值:null。注意事项:如果因为网络问题导致多次重试连接,重试状态将不会通过此回调抛出。 |
详情
如果房间不存在,[loginRoom] 会创建并登录房间。SDK 用"房间"概念来组织用户,用户必须首先登录某个房间,才能进行一系列关键操作,比如推流 [startPublishingStream]、拉流[startPlayingStream]、收发广播消息 [sendBroadcastMessage] 等。为了防止 App 被恶意用户模拟登录,可以在登录房间之前加上鉴权验证,即 [config] 参数传入的 ZegoRoomConfig 对象中的 [token] 参数。
- 业务场景:在同一个房间内用户可以进行直播、音视频通话等。
- 调用时机:在 [createEngine] 初始化 SDK 之后调用该函数。
- 相关回调: 1. 当用户开始登录房间、登录房间成功或登录房间失败后,将会触发 [onRoomStateChanged] (2.18.0 之前版本不支持,请使用 [onRoomStateUpdate]) 回调通知开发者当前用户连接房间的状态。 2. 登录同一个房间的不同用户可以得到以相同房间为单位的房间信令通知(例如:[onRoomUserUpdate], [onRoomStreamUpdate] 等),一个房间内的用户收不到另一个房间房间信令的通知。 3. 如果由于网络质量原因导致网络临时中断,SDK 内部会自动进行重连。可通过监听 [onRoomStateChanged] (2.18.0 之前版本不支持,请使用 [onRoomStateUpdate]) 回调获取本端当前房间连接状态的变化情况,同时同房间其他用户会接收到 [onRoomUserUpdate] 回调通知。详情请参考 https://doc-zh.zego.im/faq/reconnect 4. 一个房间发的消息(例如 [setStreamExtraInfo], [sendBroadcastMessage], [sendBarrageMessage], [sendCustomCommand] 等)在别的房间无法收到(例如 [onRoomStreamExtraInfoUpdate], [onIMRecvBroadcastMessage], [onIMRecvBarrageMessage], [onIMRecvCustomCommand] 等),目前 ZegoExpressEngine 未提供跨房间消息的能力。开发者可以集成 IM 的 SDK 来实现。
- 相关接口: 1. 可调用 [logoutRoom] 退出登录,如果没有退出登录而重复调用登录接口(roomID 和 user 保持相同的情况下),控制台会报错,打印错误码 1002001。 2. 如果需要登录多个房间,请在创建引擎前通过 [ZegoRoomMode] 选择多房间模式,然后调用 [loginRoom] 接口登录多房间。 3. 调用 [destroyEngine] 也会使用户自动退出登录。
- 支持版本:2.18.0 及以上。
- 使用限制:同一房间登录接口的调用频率 (QPS) 有一定限制,详情查阅 https://doc-zh.zego.im/article/7581 或联系 ZEGO 技术支持。
- 注意事项: 1. 使用不同 appID 的 App 不能互通。 2. SDK 支持拉相同 appID 下非同一个房间的流,即跨房间拉流。由于 SDK 的房间信令的相关回调通知是以相同房间为单位,当开发者想要跨房间拉流时,开发者需自行维护相关的消息及信令通知。 3. 强烈建议 userID 与业务 APP 的用户 ID 一一对应,即一个 userID 与一个真实用户是固定且唯一的,而不应该是以随机的 userID 的方式传给 SDK 的方式。因为唯一且固定的 userID 可以让 ZEGO 技术人员快速定位线上问题。 4. 首次因网络原因登录失败或者房间断开连接之后,SDK 重连默认时间为 20min。 隐私保护申明:请勿在此接口填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。
logoutRoom
logoutRoom(roomID?: string, callback?: ZegoRoomLogoutCallback): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| roomID | string | 房间 ID,最大长度为 128 字节的字符串。 注意事项: 1. 仅支持数字,英文字符 和 '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', ''。 2. 如果需要与 Web SDK 互通,请不要使用 '%'。 |
| callback | ZegoRoomLogoutCallback | 本次登出房间结果的回调,如果需要详细房间状态,请关注 [onRoomStateChagned] 回调。是否必填:否。默认值:null。 |
详情
该接口会退出房间名为 roomID 的房间。
- 业务场景:在同一个房间内用户可以进行直播、音视频通话等。
- 调用时机:登录房间成功后,若不再使用房间功能,用户可以调用函数 [logoutRoom]。
- 相关回调:调用此函数后会收到 [onRoomStateChanged] (2.18.0 之前版本不支持,请使用 [onRoomStateUpdate]) 回调通知成功退出房间,同时同房间其他用户会接收到 [onRoomUserUpdate] 回调通知(开启 isUserStatusNotify 配置的前提下)。
- 相关接口:用户可以调用 [loginRoom]、[switchRoom] 函数登录或更换房间。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项:1. 退出房间会停止该用户的所有推拉流,引擎会停止,SDK 内部会主动停止本地预览。如果切换房间想保留预览能力,请使用 [switchRoom] 函数。2. 若用户登出房间,但传入 roomID 与已登录房间名不同,SDK 会返回失败。
switchRoom
switchRoom(fromRoomID: string, toRoomID: string, config?: ZegoRoomConfig): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| fromRoomID | string | 当前处于的房间 ID。 |
| toRoomID | string | 需要登录的下一个房间 ID。 |
| config | ZegoRoomConfig | 房间进阶配置。 |
详情
使用此函数可以让用户快速从一个房间切换到另外一个房间。
- 业务场景:若需要快速切换到下一个房间,可调用此函数。
- 调用时机:登录房间成功后。
- 相关回调:当用户调用 [switchRoom] 函数时,将会触发 [onRoomStateChanged] (2.18.0 之前版本不支持,请使用 [onRoomStateUpdate]) 回调通知开发者当前用户连接房间的状态。
- 相关接口:用户可以调用 [logoutRoom] 函数退出房间。
- 支持版本:1.15.0 及以上。
- 使用限制:无。
- 注意事项: 1. 当调用此函数后,当前正在推或拉的所有流都将会停止(但本地预览不会停止)。 2. 为了防止 App 被恶意用户模拟登录,可以在切换房间之前加上鉴权验证,即 [config] 参数传入的 ZegoRoomConfig 对象中的 [token] 参数。此参数配置作用于即将切换过去的房间。 3. 3.5.0 版本开始支持多房间模式(使用函数 [setRoomMode] 设置 ZegoRoomMode 为 ZEGO_ROOM_MODE_MULTI_ROOM)。 4. 若登录房间 [loginRoom] 时传入了 Token 进行登录,则调用 [switchroom] 切换房间时,必须使用带有 config 参数的 [switchroom] 接口切换房间,并传入对应 Token 值。 隐私保护申明:请勿在此接口填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。
renewToken
renewToken(roomID: string, token: string): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| roomID | string | 房间 ID。 |
| token | string | 需要更新的 token。 |
详情
当开发者收到 [onRoomTokenWillExpire] 之后,可使用此 API 更新 token 鉴权信息,保障后续 RTC 功能正常。
- 业务场景:Token 将要过期时使用。
- 调用时机:收到 [onRoomTokenWillExpire] 之后。
- 支持版本:2.8.0 及以上。
- 使用限制:无。
- 注意事项:Token 中包含用户的房间权限、推流权限、有效时间等重要信息,详情请参考 https://doc-zh.zego.im/article/10360 。
setRoomExtraInfo
setRoomExtraInfo(roomID: string, key: string, value: string, callback?: ZegoRoomSetRoomExtraInfoCallback): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| roomID | string | 房间 ID。 |
| key | string | 附加消息键。 |
| value | string | 附加消息值。 |
| callback | ZegoRoomSetRoomExtraInfoCallback | 设置房间附加消息结果回调。 |
详情
用户调用此函数设置房间的附加消息。
- 业务场景:可以设置一些房间相关的业务属性,比如是否有人在上麦。
- 调用时机:登录房间成功后。
- 相关回调:相同房间内的其他用户会通过 [onRoomExtraInfoUpdate] 回调函数获得通知。
- 相关接口:无。
- 支持版本:1.13.0 及以上。
- 使用限制:关于此函数的使用限制,请参考 https://doc-zh.zego.im/article/7581 或联系 ZEGO 技术支持。
- 注意事项:key、value 的限制,请参考“使用限制”。新设置的 value 会覆盖旧的设置。
startPublishingStream
startPublishingStream(streamID: string, config?: ZegoPublisherConfig, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 流 ID,长度不超过 256 的字符串。 注意事项: 1. 流 ID 由您自己定义。 2. 需要在整个 AppID 内全局唯一,若出现在同一个 AppID 内,不同的用户各推了一条流且流名相同,将会导致后推流的用户推流失败。 3. 仅支持数字,英文字符 和 '-', '_'。 |
| config | ZegoPublisherConfig | 推流进阶配置。 |
| channel | ZegoPublishChannel | 推流通道。 |
详情
用户将自己本地的音视频流推送到 ZEGO RTC 服务器 或 CDN,同一房间的其他用户通过 "streamID" 或 CDN 拉流地址就可以拉取该音视频流进行观看。
- 业务场景:可以用于实时连麦、直播等场景下进行推流。
- 调用时机:调用 [loginRoom] 加入房间后调用该函数。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项: 1. 开始推流前,用户可选择调用 [setVideoConfig] 设置相关视频参数,调用 [startPreview] 进行视频预览。 2. 当推流成功之后,同房间内其他用户可通过监听 [onRoomStreamUpdate] 回调来获取流的新增情况。 3. 在网络质量不佳的情况下,用户推流可能出现中断,SDK 会尝试重连并推流(连接成功后 SDK 会自动进行推流),开发者可通过监听 [onPublisherStateUpdate] 事件来获知当前推流状态以及错误信息。详情请参考 https://doc-zh.zego.im/faq/reconnect 4. 调用 [SetRoomMode] 函数选择多房间,必须明确指定房间 ID。
stopPublishingStream
stopPublishingStream(channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| channel | ZegoPublishChannel | 推流通道。 |
详情
用户停止发送本地的音视频流,房间内其他用户会收到流删除通知。
- 业务场景:可以用于实时连麦、直播等场景下停止推流。
- 调用时机:调用 [startPublishingStream] 开始推流后。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项: 1. 在停止推流之后,同房间内其他用户可通过监听 [onRoomStreamUpdate] 回调来收到流的删除通知。 2. 如果用户已经启动推流,在推送新流(与之前的 streamID 不同)之前,必须要调用此函数停止当前流的推送,否则新流推送会返回失败。 3. 在停止推流之后,开发者应该根据业务情况来决定是否需要停止本地预览。
setStreamExtraInfo
setStreamExtraInfo(extraInfo: string, channel?: ZegoPublishChannel, callback?: ZegoPublisherSetStreamExtraInfoCallback): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| extraInfo | string | 流附加信息,长度不超过1024的字符串。 |
| channel | ZegoPublishChannel | 推流通道。 |
| callback | ZegoPublisherSetStreamExtraInfoCallback | 设置流附加信息执行结果通知。 |
详情
可通过此函数设置当前推流的流附加信息。流附加信息是流 ID 的附加信息标识,不同于流 ID 在推流过程中不可修改,流附加信息可以在对应流 ID 的推流中途修改。开发者可根据流附加信息来实现流 ID 相关的可变内容的同步。
- 调用时机:在创建引擎 [createEngine] 之后,在推流 [startPublishingStream] 前后调用都可生效。
- 相关回调:结果会通过 [ZegoPublisherSetStreamExtraInfoCallback] 回调通知。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
startPreview
startPreview(canvas?: ZegoCanvas, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| canvas | ZegoCanvas | 启动预览时用于显示画面的视图,视图设置为 null 则不进行预览。 |
| channel | ZegoPublishChannel | 推流通道 |
详情
用户通过调用此函数可以看到自己本地的画面。
- 业务场景:可以用于实时连麦、直播等场景下的本地预览。
- 调用时机:调用 [createEngine] 后。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项:1. 预览功能不需要先登录房间或推流,但是在退出房间之后 SDK 内部默认会主动停止预览。2. 可以通过再次调用此函数来切换视图或修改预览模式(ZegoViewMode)。用户只能在一个视图上预览,如果再次调用 [startPreview] 传入新的视图,则预览画面只会在新视图展现。3. 可以通过调用 [setVideoMirrorMode] 函数来设置预览画面的镜像模式,移动端默认开启预览画面的镜像效果。4. 调用此函数后,SDK 会启动音视频引擎,并尝试采集音频与视频。
stopPreview
stopPreview(channel?: ZegoPublishChannel): voidZegoExpressEngine.tssetVideoConfig
setVideoConfig(config: ZegoVideoConfig, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| config | ZegoVideoConfig | 视频配置,SDK 提供常用的分辨率、帧率和码率的组合值,也可自定义分辨率、帧率和码率。 |
| channel | ZegoPublishChannel | 推流通道。 |
详情
设置视频帧率、码率、视频采集分辨率、视频编码输出分辨率等视频配置。
- 业务场景:不同业务场景下的建议配置 https://doc-zh.zego.im/article/10365
- 默认值:默认视频采集分辨率为 360p,视频编码输出分辨率为 360p,码率为 600 kbps,帧率为 15 fps。
- 调用时机:调用 [createEngine] 之后。
- 支持版本:1.1.0 及以上。
- 使用限制:需要在 [startPreview] 前调用。在 [startPreview] 之后调用无法修改采集分辨率,仅支持修改编码分辨率、码率和帧率。
- 注意事项:移动端分辨率的宽高与 PC 端分辨率的宽高是相反的,例:移动端的 360p 的分辨率为 360x640,而 PC 端 360p 的分辨率为 640x360。
getVideoConfig
getVideoConfig(channel?: ZegoPublishChannel): ZegoVideoConfigZegoExpressEngine.tssetVideoMirrorMode
setVideoMirrorMode(mirrorMode: ZegoVideoMirrorMode, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| mirrorMode | ZegoVideoMirrorMode | 预览或推流的镜像模式。 |
| channel | ZegoPublishChannel | 推流通道。 |
详情
设置本地预览视频以及推送的视频是否开启镜像模式,具体镜像模式可以参考 https://doc-zh.zego.im/article/10365
- 调用时机:调用 [createEngine] 之后。
- 支持版本:1.1.0 及以上。
- 使用限制:只有 SDK 负责渲染时该设置才有效。
setAppOrientation
setAppOrientation(orientation: ZegoOrientation, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| orientation | ZegoOrientation | 视频的朝向。 |
| channel | ZegoPublishChannel | 推流通道。 |
详情
设置视频的朝向,详细的介绍可参考文档 https://doc-zh.zego.im/faq/express_video_capture_rotation
- 业务场景:用户使用移动设备进行直播或视频通话时,可以根据现场设置不同的视频方向。
- 调用时机:调用 [createEngine] 之后。
- 支持版本:1.1.0 及以上。
- 使用限制:目前只支持 iOS 和 Android 平台。
setAudioConfig
setAudioConfig(config: ZegoAudioConfig, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| config | ZegoAudioConfig | 音频质量配置。 |
| channel | ZegoPublishChannel | 推流通道。 |
详情
可通过此函数设置音频编码类型、码率、音频声道的组合值。若预设的值无法满足开发者的场景,开发者可自行根据业务要求设置符合的参数。
- 默认值:默认的音频配置参考 [ZegoAudioConfig] 的默认值。
- 调用时机:在创建引擎 [createEngine] 后,且在推流 [startPublishingStream] 前设置。
- 相关接口:[getAudioConfig]。
- 支持版本:1.3.4 及以上。
- 使用限制:无。
getAudioConfig
getAudioConfig(channel?: ZegoPublishChannel): ZegoAudioConfigZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| channel | ZegoPublishChannel | 推流通道。 |
详情
可通过此函数获取当前的音频编码类型、码率、音频声道的组合值。
- 调用时机:在创建引擎 [createEngine] 后。
- 相关接口:[setAudioConfig]。
- 支持版本:1.8.0 及以上。
- 使用限制:无。
返回值
音频质量配置。
setPublishStreamEncryptionKey
setPublishStreamEncryptionKey(key: string, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| key | string | 加密密钥,注意密钥长度仅支持 16/24/32 字节。 |
| channel | ZegoPublishChannel | 推流通道。 |
详情
支持在推流中途调用此函数更新加密密钥。
- 调用时机:在创建引擎 [createEngine] 后,在推流 [startPublishingStream] 前后调用都可生效。
- 相关接口:调用 [stopPublishingStream] 或 [logoutRoom] 都将会清空加密密钥。
- 支持版本:1.19.0 及以上。
- 使用限制:该函数仅当向 Zego RTC 服务器推流时调用有效。
- 注意事项:需要先更新拉流端解密密钥后才能更新推流端加密密钥。
mutePublishStreamAudio
mutePublishStreamAudio(mute: boolean, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| mute | boolean | 是否停止发送音频流;true 表示不发送音频流;false 表示发送音频流;默认为 false。 |
| channel | ZegoPublishChannel | 推流通道。 |
详情
推流时可调用此函数实现不推音频数据流,本地仍会采集和处理音频,但向网络发送静音帧数据包。
- 业务场景:用户不希望推出任何音频数据时,可以调用该接口。该接口不影响 [onBeforeAudioPrepAudioData]。
- 调用时机:在创建引擎 [createEngine] 后调用生效。
- 相关回调:如果在本地设置了停止发送音频流,拉本地流的远端用户可以通过监听 [onRemoteMicStateUpdate] 回调收到
Mute的状态变更通知。 - 相关接口:[mutePublishStreamVideo]。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
mutePublishStreamVideo
mutePublishStreamVideo(mute: boolean, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| mute | boolean | 是否停止发送视频流;true 表示只发送音频流不发送视频流;false 表示同时发送音频和视频流;默认为 false。 |
| channel | ZegoPublishChannel | 推流通道。 |
详情
推流时可调用此函数实现不推视频流,本地摄像头仍能正常工作,能正常采集,预览和处理视频画面,但不向网络发送视频数据。
- 调用时机:在创建引擎 [createEngine] 后调用生效。
- 相关回调:如果在本地设置了停止发送视频流,拉本地流的远端用户可以通过监听 [onRemoteCameraStateUpdate] 回调收到
Mute的状态变更通知。 - 相关接口:[mutePublishStreamAudio]。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
enableTrafficControl
enableTrafficControl(enable: boolean, property: number, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | 是否使用流量控制;true 表示开启流控;false 表示关闭流控;默认为 true。 |
| property | number | 流量控制的属性,位掩码格式。具体可设置为 [ZegoTrafficControlProperty] 的属性的一个或多个枚举组合。默认为 AdaptiveFPS。 |
| channel | ZegoPublishChannel | 推流通道。 |
详情
开启流量控制可以使 SDK 根据当前上行网络环境状况,或者在1 对1 互动场景下根据对方下行网络环境状况,调节音视频推流码率大小,以保障效果流畅。同时,可进一步指定流量控制的属性来调整相应的控制策略。
- 默认值:默认开启。
- 调用时机:在创建引擎 [createEngine] 后,在推流 [startPublishingStream] 之前调用生效。
- 支持版本:1.5.0 及以上。
- 使用限制:仅支持 RTC 推流。
setMinVideoBitrateForTrafficControl
setMinVideoBitrateForTrafficControl(bitrate: number, mode: ZegoTrafficControlMinVideoBitrateMode, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| bitrate | number | 最低视频码率,单位为 kbps。 |
| mode | ZegoTrafficControlMinVideoBitrateMode | 低于最低码率时的视频发送模式。 |
| channel | ZegoPublishChannel | 推流通道。 |
详情
设置流量控制时视频码率达到最低阈值时的控制策略。当码率低于最低阈值时,可以选择不发送视频数据或者以极低帧率发送。
- 默认值:无视频码率最低阈值的控制效果。
- 调用时机:在创建引擎 [createEngine] 后,在推流 [startPublishingStream] 前调用生效。
- 相关接口:[enableTrafficControl]。
- 支持版本:1.1.0 及以上。
- 使用限制:必须开启流量控制 [enableTrafficControl]。
setMinVideoFpsForTrafficControl
setMinVideoFpsForTrafficControl(fps: number, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| fps | number | 流量控制的最低视频帧率阈值,单位为 fps。 |
| channel | ZegoPublishChannel | 推流通道。 |
详情
开启流量控制 [enableTrafficControl],并且它的参数 [property] 包含属性 AdaptiveFPS 后,视频的最低帧率不会低于 [setMinVideoFpsForTrafficControl] 接口设置的值, 0 值表示不限制。
- 默认值:无视频帧率最低阈值的控制效果。
- 调用时机:在创建引擎 [createEngine] 后调用生效。
- 相关接口:[enableTrafficControl]。
- 支持版本:2.17.0 及以上。
- 使用限制:必须开启流量控制 [enableTrafficControl],并且它的参数 [property] 必须包含属性 AdaptiveFPS,具体可以参考 [ZegoTrafficControlProperty]。
- 注意事项:如果需要取消该设置值的限制可以设置为 0。
setMinVideoResolutionForTrafficControl
setMinVideoResolutionForTrafficControl(width: number, height: number, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| width | number | 流量控制的最低视频分辨率的宽。 |
| height | number | 流量控制的最低视频分辨率的高。 |
| channel | ZegoPublishChannel | 推流通道。 |
详情
开启流量控制 [enableTrafficControl],并且它的参数 [property] 包含属性 AdaptiveResolution 时,视频的最低分辨率不会低于 [setMinVideoResolutionForTrafficControl] 接口设置的值。 0 值表示不限制。
- 默认值:无视频分辨率最低阈值的控制效果。
- 调用时机:在创建引擎 [createEngine] 后调用生效。
- 相关接口:[enableTrafficControl]。
- 支持版本:2.17.0 及以上。
- 使用限制:必须开启流量控制 [enableTrafficControl],并且它的参数 [property] 必须包含属性 AdaptiveResolution,具体可以参考 [ZegoTrafficControlProperty]。
- 注意事项:如果需要取消该设置值的限制可以设置分辨率宽高值为 0。
setCaptureVolume
setCaptureVolume(volume: number): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| volume | number | 音量增益百分比,范围为 0 ~ 200,默认值为 100,表示为设备原始采集音量的 100%. |
详情
此函数用于在设备采集音量的基础上做增益处理,本端用户可控制往远端发送音频流的声音大小。
- 默认值:默认为 100。
- 调用时机:在创建引擎 [createEngine] 后。
- 相关接口:设置拉流音量 [setPlayVolume]。
- 支持版本:1.13.0 及以上。
- 使用限制:在推流途中可以动态设置采集音量。
enableHardwareEncoder
enableHardwareEncoder(enable: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | 是否开启硬件编码;true 表示开启硬编;false 表示关闭硬编;默认为 false。 |
详情
推流时是否采用硬件编码的开关,开启硬解编码后会使用 GPU 进行编码,降低 CPU 使用率。
- 调用时机:在推流前设置才能生效,如果在推流后设置,停推后重新推流可以生效。
- 支持版本:1.1.0 及以上。
- 注意事项:由于少部分机型设备硬编支持不是特别好,SDK 默认使用软件编码的方式。若开发者在某些机型测试时发现推大分辨率音视频流时设备发热严重,可考虑调用此函数开启硬编的方式。
setCapturePipelineScaleMode
setCapturePipelineScaleMode(mode: ZegoCapturePipelineScaleMode): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| mode | ZegoCapturePipelineScaleMode | 采集缩放时机。 |
- 调用时机:此函数需要在调用 [createEngine] 之后,调用预览 [startPreview] 或推流 [startPublishingStream] 前设置有效。
- 支持版本:1.1.0 及以上。
- 注意事项:主要影响是当采集分辨率与编码分辨率不同的时候,是否影响本地预览情况。
isVideoEncoderSupported
isVideoEncoderSupported(codecID: ZegoVideoCodecID): booleanZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| codecID | ZegoVideoCodecID | 视频编码类型。是否必填:是。 |
详情
是否支持指定视频编码,主要取决于以下几个方面:硬件型号是否支持硬编、硬件型号性能是否支持软编、SDK 是否带该编码模块。
- 调用时机:创建引擎后。
- 支持版本:2.12.0 及以上。
- 注意事项:建议用户在进行 H.265 编码推流前,先调用本接口获取 H.265 编码支持能力,如果不支持,可以采用其他编码进行推流,比如 H.264。在移动端,SDK 仅支持 H.265 硬件编码,且受机型和硬件能力影响。
返回值
是否支持指定视频编码。取值范围:true 表示支持,可以使用该编码进行推流;false 表示不支持,不可以使用该编码进行推流。
setAppOrientationMode
setAppOrientationMode(mode: ZegoOrientationMode): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| mode | ZegoOrientationMode | 视频的朝向模式。 |
详情
为了简化移动端开发者处理视频画面旋转的复杂度,SDK 支持设置多种视频朝向模式,开发者可以根据场景需求选择不同的模式。
- 业务场景:使用移动设备进行直播或者视频通话的场景。
- 默认值:自定义模式。
- 调用时机:此函数需要在调用 [createEngine] 之后,调用预览 [startPreview] 或推流 [startPublishingStream] 前设置有效。
- 相关接口:可调用 [setAppOrientation] 函数,设置 App 朝向。
- 支持版本:2.23.0 及以上。
- 注意事项: 1. 对所有通道生效。 2. 自适应模式在预览、拉流、混流场景下生效,不支持视频外部采集、媒体播放器、云录制、本地录制,不支持通过 CDN 推拉流场景。
setVideoSource
setVideoSource(source: ZegoVideoSourceType, instanceID?: number, channel?: ZegoPublishChannel): numberZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| source | ZegoVideoSourceType | 视频采集源类型。 |
| instanceID | number | 视频采集源实例 ID。 |
| channel | ZegoPublishChannel | 推流通道。 |
详情
设置视频采集源,用于在不同的视频采集源之间进行切换。
- 业务场景:通常用于需要在不同的视频采集源之间切换的场景下。
- 调用时机:在创建引擎 [createEngine] 后调用生效。
- 支持版本:3.1.0 及以上。
- 使用限制:无。
- 注意事项:1. 主路推流通道 ZegoPublishChannel.Main 不支持设置 ZegoVideoSourceType.Player 和 ZegoVideoSourceType.MainPublishChannel 视频输入源类型。
- 辅路推流通道 ZegoPublishChannel.Aux 使用 ZegoVideoSourceType.Player 和 ZegoVideoSourceType.MainPublishChannel 视频输入源类型时,需要确保主推流通道 ZegoPublishChannel.Main 设备正常工作。
- 抢占型视频源不允许在多通道同时使用,例如 ZegoVideoSourceType.Camera、ZegoVideoSourceType.ScreenCapture。
- 只有主路使用内部采集,辅路才可复制,且最多支持一路复制。
- 设置 ZegoVideoSourceType.Player 视频输入源类型时,请确保 ZegoMediaPlayer 实例创建成功。
setAudioSource
setAudioSource(source: ZegoAudioSourceType, channel?: ZegoPublishChannel): numberZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| source | ZegoAudioSourceType | 音频采集源类型。 |
| channel | ZegoPublishChannel | 推流通道。 |
详情
设置音频采集源,用于在不同的音频采集源之间进行切换。
- 业务场景:通常用于需要在不同的音频采集源之间切换的教育场景下。
- 调用时机:在创建引擎 [createEngine] 后调用生效。
- 支持版本:3.1.0 及以上。
- 注意事项:1. 主路推流通道 ZegoPublishChannel.Main 不支持设置 ZegoAudioSourceType.MediaPlayer 和 ZegoAudioSourceType.MainPublishChannel 音频输入源类型。
- 辅路推流通道 ZegoPublishChannel.Aux 使用 ZegoAudioSourceType.MediaPlayer 和 ZegoAudioSourceType.MainPublishChannel 音频输入源类型时,需要确保主推流通道 ZegoPublishChannel.Main 设备正常工作。 3. 抢占型音源不允许在多通道同时使用,例如 ZegoAudioSourceType.Microphone。
- 设置 ZegoAudioSourceType.MediaPlayer 音频输入源类型时,请确保 ZegoMediaPlayer 实例创建成功。
startPlayingStream
startPlayingStream(streamID: string, canvas?: ZegoCanvas, config?: ZegoPlayerConfig): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 流 ID,长度不超过 256 字节的字符串。 注意事项: 仅支持数字,英文字符 和 '-', '_'。 |
| canvas | ZegoCanvas | 用于显示拉流画面的视图,视图设置为 [null] 时不显示视频,只播放音频。该参数可以设置视图显示模式(viewMode)和背景色。 |
| config | ZegoPlayerConfig | 拉流进阶配置, [ZegoPlayerConfig] 中房间 [roomID] 为登录的房间ID。 |
详情
从 ZEGO RTC 服务器或第三方 CDN 拉取远端用户的音视频流进行互通。
- 业务场景:在实时连麦或直播场景下,开发者可通过监听 [onRoomStreamUpdate] 事件回调来获取所在房间内新增的流信息,并调用此接口传入 "streamID" 进行拉流操作。
- 调用时机:调用 [loginRoom] 加入房间后调用该函数。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项:1. 开发者可通过再次调用此函数实现切换拉流 canvas 的操作(streamID 必须一样)。同一条流只能在唯一的视图中拉取展示,如果调用 [startPlayingStream] 传入相同的 "streamID" 和不同的视图,画面只会在新视图展现。2. 首次拉流时如果因网络原因拉流失败或拉流中断,SDK 会在 20min 内多次尝试重连并拉流。3. 在网络质量不佳的情况下,用户拉流可能出现中断,SDK 会尝试重连并拉流,可通过监听 [onPlayerStateUpdate] 事件来获知当前拉流状态以及错误信息。详情请参考 https://doc-zh.zego.im/faq/reconnect 4. 如果拉取不存在的 "streamID",SDK 会持续尝试拉取,在该 streamID 对应的音视频流被成功推送后,该流可以真正被拉取到。
stopPlayingStream
stopPlayingStream(streamID: string): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 流 ID。 |
详情
停止从 ZEGO RTC 服务器拉取远端用户的音视频流。
- 业务场景:在实时连麦场景下,开发者可通过监听 [onRoomStreamUpdate] 事件回调来获取所在房间内删除的流信息,并调用此接口传入 "streamID" 进行停止拉流操作。
- 调用时机:调用 [loginRoom] 加入房间后调用该函数。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项:1. 停止拉流后对此条流此前设置的属性如 [setPlayVolume]、[mutePlayStreamAudio]、[mutePlayStreamVideo] 等拉流相关的配置都会失效,需要在下次拉流之前重新设置。 2.停止拉流后,iOS平台的视图默认会清除最后一帧,保持为视图的背景色。Android 平台视图默认保持在最后一帧,如果需要清除最后一帧,请联系 ZEGO 技术支持。
setPlayStreamDecryptionKey
setPlayStreamDecryptionKey(streamID: string, key: string): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 流 ID。 |
| key | string | 解密密钥,注意密钥长度仅支持 16/24/32 字节。 |
详情
拉流时会根据设置的密匙解密音视频数据。
- 业务场景:常用于对音视频通话安全性要求较高的场景。
- 调用时机:[createEngine]后,拉流后可随时变更。
- 相关接口:[setPublishStreamEncryptionKey] 设置推流加密密匙。
- 支持版本:1.19.0 及以上。
- 使用限制:该函数仅当从 ZEGO RTC 或 L3 服务器拉流时调用有效。
- 注意事项:推流端有设置加密才能调用此函数。调用 [stopPlayingStream] 或 [logoutRoom] 都将会清空解密密钥。
setPlayVolume
setPlayVolume(streamID: string, volume: number): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 流 ID。 |
| volume | number | 音量百分比,取值范围为 0 ~ 200,默认值为 100。 |
详情
设置拉流的声音大小,本端用户可控制音频流的播放音量。
- 调用时机:[startPlayingStream] 后调用。
- 相关接口:[setAllPlayStreamVolume] 设置所有拉流音量。
- 支持版本:1.16.0 及以上。
- 使用限制:无。
- 注意事项:停止拉流后,再次拉流需要重新设置。此函数与 [setAllPlayStreamVolume] 函数相互覆盖,最后一个调用生效。
setAllPlayStreamVolume
setAllPlayStreamVolume(volume: number): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| volume | number | 音量百分比,取值范围为 0 ~ 200,默认值为 100。 |
详情
此函数用于设置所有拉流的声音大小,本端用户可控制所有音频流的播放音量。
- 调用时机:[startPlayingStream]后调用。
- 相关接口:可使用 [setPlayVolume] 设置指定音视频流的音量。
- 支持版本:2.3.0 及以上。
- 使用限制:无。
- 注意事项:与setPlayVolume函数相互覆盖,最后一个调用生效。
setPlayStreamVideoType
setPlayStreamVideoType(streamID: string, streamType: ZegoVideoStreamType): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 流 ID。 |
| streamType | ZegoVideoStreamType | 视频流类型。 |
详情
当推流方通过 [setVideoConfig] 设置了 codecID 为 SVC 时,拉流方可以动态设置选用不同的流类型(小分辨率为标准图层的二分之一)。
- 业务场景:一般情况下,在网络较弱或者渲染的 UI 窗体较小的情况下,可以选择使用拉取小分辨率的视频来达到节省带宽的目的。
- 调用时机:[createEngine] 后可调用。
- 支持版本:2.3.0 及以上。
- 使用限制:无。
setPlayStreamBufferIntervalRange
setPlayStreamBufferIntervalRange(streamID: string, minBufferInterval: number, maxBufferInterval: number): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 流 ID。 |
| minBufferInterval | number | 缓存自适应区间下限,单位毫秒。默认值为 0ms。 |
| maxBufferInterval | number | 缓存自适应区间上限,单位毫秒。默认值为 4000ms。 |
详情
设置拉流时 SDK 内部缓存自适应调整的区间范围 0-4000ms。
- 业务场景:一般在网络环境较差的情况下,调整增大拉流的播放缓存,会显著减少音视频卡顿,但会增大延迟。
- 调用时机:[createEngine] 后,如果有设置过,则每次重新拉流时都需要重新设置。
- 支持版本:2.1.0 及以上。
- 使用限制:无。
- 注意事项:当开发者设置的缓存区间上限超过 4000ms 时,会取值 4000 ms。当开发者设置的缓存区间上限小于缓存区间下限时,会自动将上限取值为下限。
setPlayStreamFocusOn
setPlayStreamFocusOn(streamID: string): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 流 ID。 |
详情
设置拉音视频流优先级的权重。
- 业务场景:当开发者业务上,需要对某音视流优先保证质量时(纯音频流下请勿使用),可使用此接口。例如:上课场景,学生拉多路流,则可设置老师流高优先级。
- 调用时机:[startPlayingStream]之后 。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项:默认所有音视频流的权重相同。只能设置一路流是高优先级的,以最后设置的为准。流停止之后自动恢复初始状态,所有流的权重相同。在本地网络不好的时候,保证focus流的同时,可能造成其他的卡顿更多。
mutePlayStreamAudio
mutePlayStreamAudio(streamID: string, mute: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 流 ID。 |
| mute | boolean | 拉流时是否可以接收指定远端用户的音频数据,“true” 表示禁止,“false” 表示接收,默认值为 “false”。 |
详情
在实时音视频互动过程中,本地用户可根据需要,通过此函数控制拉流时是否接收指定远端用户的音频数据,当开发者不接收音频收据时,可降低硬件和网络的开销。
- 业务场景:当开发者需要快速关闭、恢复远端音频时,可调用此函数。相比重新拉流,能极大降低耗时,提升互动体验。
- 调用时机:在调用 [createEngine] 后可调用此函数。
- 相关接口:可调用 [muteAllPlayStreamAudio] 函数控制是否接收所有音频数据。必须当 [muteAllPlayStreamAudio] 和 [mutePlayStreamAudio] 两个函数同时设置为 "false" 时,本地用户拉流时才能接收远端用户的音频数据:1. 当调用 [muteAllPlayStreamAudio(true)] 函数时,全局生效,即本地用户会禁止接收所有远端用户的音频数据,此时无论在 [muteAllPlayStreamAudio] 之前还是之后调用 [mutePlayStreamAudio] 函数都不生效。2. 当调用 [muteAllPlayStreamAudio(false)] 函数时,本地用户可以接收所有远端用户的音频数据,此时可再通过 [mutePlayStreamAudio] 函数控制是否接收单条音频数据。调用 [mutePlayStreamAudio(true, streamID)] 函数则本地用户可以接收该 "streamID" 之外的其他音频数据;调用 [mutePlayStreamAudio(false, streamID)] 函数则本地用户可以接收 "streamID" 的音频数据。
- 支持版本:1.1.0 及以上。
- 注意事项: 1. 与 [muteAllPlayAudioStreams] 一起使用时,可以互相覆盖配置。
- 与 [muteAllPlayStreamAudio] 一起使用时,只有当 [muteAllPlayStreamAudio] 函数设置为 “false”时,此函数才有效。
- 停止拉流后对此条流此前设置的属性如 [setPlayVolume]、[mutePlayStreamAudio]、[mutePlayStreamVideo] 等拉流相关的配置都会失效,需要在下次拉流之前重新设置。
mutePlayStreamVideo
mutePlayStreamVideo(streamID: string, mute: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| streamID | string | 流 ID。 |
| mute | boolean | 拉流时是否可以接收指定远端用户的视频数据,“true” 表示禁止,“false” 表示接收,默认值为 “false”。SDK 内部自动拉取的流默认值为 false。 |
详情
在实时音视频互动过程中,本地用户可根据需要,通过此函数控制拉流时是否接收指定远端用户的视频数据,当开发者不接收视频数据时,可降低硬件和网络的开销。
- 业务场景:当开发者需要快速关闭、恢复观看远端视频画面时,可调用此函数。相比重新拉流,能极大降低耗时,提升互动体验。
- 调用时机:在调用 [createEngine] 后可调用此函数。
- 相关接口:可调用 [muteAllPlayStreamVideo] 函数控制是否接收所有视频数据。必须当 [muteAllPlayStreamVideo] 和 [mutePlayStreamVideo] 两个函数同时设置为 "false" 时,本地用户拉流时才能接收远端用户的视频数据:1. 当调用 [muteAllPlayStreamVideo(true)] 函数时,全局生效,即本地用户会禁止接收所有远端用户的视频数据,此时无论在 [muteAllPlayStreamVideo] 之前还是之后调用 [mutePlayStreamVideo] 函数都不生效。2. 当调用 [muteAllPlayStreamVideo(false)] 函数时,本地用户可以接收所有远端用户的视频数据,此时可再通过 [mutePlayStreamVideo] 函数控制是否接收单条视频数据。调用 [mutePlayStreamVideo(true, streamID)] 函数则本地用户可以接收该 "streamID" 之外的其他视频数据;调用 [mutePlayStreamVideo(false, streamID)] 函数则本地用户可以接收 "streamID" 的视频数据。
- 支持版本:1.1.0 及以上。
- 注意事项: 1. 与 [muteAllPlayAudioStreams] 一起使用时,可以互相覆盖配置。
- 与 [muteAllPlayStreamVideo] 一起使用时,只有当 [muteAllPlayStreamVideo] 函数设置为 “false”时,此函数才有效。
- 当指定不接收视频流数据时,视图默认保持在最后一帧,如果需要清除最后一帧,请联系 ZEGO 技术支持。
- 停止拉流后对此条流此前设置的属性如 [setPlayVolume]、[mutePlayStreamAudio]、[mutePlayStreamVideo] 等拉流相关的配置都会失效,需要在下次拉流之前重新设置。
muteAllPlayStreamAudio
muteAllPlayStreamAudio(mute: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| mute | boolean | 拉流时是否可以接收所有远端用户的音频数据,“true” 表示禁止,“false” 表示接收,默认值为 “false”。 |
详情
在实时音视频互动过程中,本地用户可根据需要,通过此函数控制拉流时是否接收所有远端用户的音频数据(包括在调用该函数后新加入房间的用户所推的音频流)。默认情况下,用户加入房间后可以接收所有远端用户推送的音频数据。当开发者不接收音频收据时,可降低硬件和网络的开销
- 业务场景:当开发者需要快速关闭、恢复远端音频时,可调用此函数。相比重新拉流,能极大降低耗时,提升互动体验。
- 调用时机:在调用 [createEngine] 后可调用此函数。
- 相关接口:可调用 [mutePlayStreamAudio] 函数控制是否接收单条音频数据。必须当 [muteAllPlayStreamAudio] 和 [mutePlayStreamAudio] 两个函数同时设置为 "false" 时,本地用户拉流时才能接收远端用户的音频数据:1. 当调用 [muteAllPlayStreamAudio(true)] 函数时,全局生效,即本地用户会禁止接收所有远端用户的音频数据,此时无论在 [muteAllPlayStreamAudio] 之前还是之后调用 [mutePlayStreamAudio] 函数都不生效。 2. 当调用 [muteAllPlayStreamAudio(false)] 函数时,本地用户可以接收所有远端用户的音频数据,此时可再通过 [mutePlayStreamAudio] 函数控制是否接收单条音频数据。调用 [mutePlayStreamAudio(true, streamID)] 函数则本地用户可以接收该 "streamID" 之外的其他音频数据;调用 [mutePlayStreamAudio(false, streamID)] 函数则本地用户可以接收 "streamID" 的音频数据。
- 支持版本:2.4.0 及以上。
- 注意事项:此接口在 SDK 生命周期内不能和 [muteAllPlayAudioStreams] 混用。
muteAllPlayStreamVideo
muteAllPlayStreamVideo(mute: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| mute | boolean | 拉流时是否可以接收所有远端用户的视频数据,“true” 表示禁止,“false” 表示接收,默认值为 “false”。 |
详情
在实时音视频互动过程中,本地用户可根据需要,通过此函数控制拉流时是否接收所有远端用户的视频数据(包括在调用该函数后新加入房间的用户所推的视频流)。默认情况下,用户加入房间后可以接收所有远端用户推送的视频数据。当开发者不接收视频数据时,可降低硬件和网络的开销。
- 业务场景:当开发者需要快速关闭、恢复观看远端视频画面时,可调用此函数。相比重新拉流,能极大降低耗时,提升互动体验。
- 调用时机:在调用 [createEngine] 后可调用此函数。
- 相关接口:可调用 [mutePlayStreamVideo] 函数控制是否接收单条视频数据。必须当 [muteAllPlayStreamVideo] 和 [mutePlayStreamVideo] 两个函数同时设置为 "false" 时,本地用户拉流时才能接收远端用户的视频数据: 1. 当调用 [muteAllPlayStreamVideo(true)] 函数时,全局生效,即本地用户会禁止接收所有远端用户的视频数据,此时无论在 [muteAllPlayStreamVideo] 之前还是之后调用 [mutePlayStreamVideo] 函数都不生效。 2. 当调用 [muteAllPlayStreamVideo(false)] 函数时,本地用户可以接收所有远端用户的视频数据,此时可再通过 [mutePlayStreamVideo] 函数控制是否接收单条视频数据。调用 [mutePlayStreamVideo(true, streamID)] 函数则本地用户可以接收该 "streamID" 之外的其他视频数据;调用 [mutePlayStreamVideo(false, streamID)] 函数则本地用户可以接收 "streamID" 的视频数据。
- 支持版本:2.4.0 及以上。
- 注意事项: 1. 此接口在 SDK 生命周期内不能和 [muteAllPlayVideoStreams] 混用。
- 当指定不接收视频流数据时,视图默认保持在最后一帧,如果需要清除最后一帧,请联系 ZEGO 技术支持。
enableHardwareDecoder
enableHardwareDecoder(enable: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | 是否开启硬解开关,true 表示开启硬解,false 表示关闭硬解。 |
详情
拉流时是否使用硬件解码,开启硬件解码后 SDK 会使用 GPU 进行解码,降低 CPU 使用率。
- 业务场景:若开发者在某些机型测试时发现拉大分辨率音视频流时设备发热严重,可考虑调用此函数开启硬件解码的方式。
- 默认值:未调用此接口时,默认关闭硬解。
- 调用时机:此函数需要在 [createEngine] 创建实例后调用。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项:在拉流前设置才能生效,如果在拉流后设置,停止拉流后重新拉流才生效,此配置生效后,在下次调用生效前一直有效。
enableCheckPoc
enableCheckPoc(enable: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | 是否开启帧顺序检测,true 表示开启帧顺序检测,false 表示关闭帧顺序检测。 |
详情
设置是否开启帧顺序检查。
- 业务场景:拉cdn的流时,开启帧顺序检测可防止花屏。
- 默认值:未调用此接口时,默认开启帧顺序检测。
- 调用时机:此函数需要在 [createEngine] 创建实例后调用。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项:拉流过程中关闭顺序检测可能出现短暂花屏。
isVideoDecoderSupported
isVideoDecoderSupported(codecID: ZegoVideoCodecID): booleanZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| codecID | ZegoVideoCodecID | 视频解码类型。是否必填:是。 |
详情
是否支持指定视频解码,主要取决于以下几个方面:硬件型号是否支持硬解、硬件型号性能是否支持软解、SDK 是否带该解码模块。
- 调用时机:创建引擎后。
- 支持版本:2.12.0 及以上。
- 注意事项:建议用户在拉 H.265 流前,先调用本接口获取 H.265 解码支持能力,如果不支持,可以拉其他编码格式的流,比如 H.264。
返回值
是否支持指定视频解码格式;true 表示支持,可以使用该解码格式进行拉流;false 表示不支持,SDK 不建议用户拉取该编码格式的流,如果用户强制拉取,可能会出现低帧率的表现。
muteMicrophone
muteMicrophone(mute: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| mute | boolean | 是否静音(关闭麦克风);"true" 表示静音(关闭麦克风);"false" 表示开启麦克风。 |
详情
此函数用于控制是否使用采集到的音频数据,静音(关闭麦克风)将会使用静音数据替换设备采集到的音频数据进行推流,此时仍然会占用麦克风设备。
- 业务场景:用户仅关闭麦克风采集的人声,不关闭媒体播放器的音乐声音,可以调用该接口。该接口影响 [onBeforeAudioPrepAudioData]。
- 默认值:默认为 "false",即不静音。
- 调用时机:在创建引擎 [createEngine] 后。
- 相关接口:若想要真正让 SDK 放弃占用麦克风,例如实现 App 退到后台后释放麦克风占用等功能,可调用 [enableAudioCaptureDevice] 函数开关音频采集设备。可使用 [isMicrophoneMuted] 来检查麦克风是否静音。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
isMicrophoneMuted
isMicrophoneMuted(): booleanZegoExpressEngine.ts用于判断麦克风是否被设置为静音。
- 调用时机:在创建引擎 [createEngine] 后。
- 相关接口:[muteMicrophone]。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
麦克风是否静音;"true" 表示麦克风静音;"false" 表示麦克风开启中(没有被静音)。
muteSpeaker
muteSpeaker(mute: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| mute | boolean | 是否静音(关闭音频输出);"true" 表示静音(关闭音频输出);"false" 表示开启音频输出。 |
详情
设置静音后,SDK 所有声音都不会播放,包括拉流、媒体播放器等。
- 默认值:默认为 "false",即不静音。
- 调用时机:在创建引擎 [createEngine] 后。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
isSpeakerMuted
isSpeakerMuted(): booleanZegoExpressEngine.ts用于判断音频输出是否静音。
- 调用时机:在创建引擎 [createEngine] 后。
- 相关接口:[muteSpeaker]。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
音频输出是否静音;"true" 表示音频输出静音;"false" 表示音频输出开启中(没有被静音)。
getAudioDeviceList
getAudioDeviceList(deviceType: ZegoAudioDeviceType): ZegoDeviceInfo[]ZegoExpressEngine.tsgetDefaultAudioDeviceID
getDefaultAudioDeviceID(deviceType: ZegoAudioDeviceType): stringZegoExpressEngine.tsuseAudioDevice
useAudioDevice(deviceType: ZegoAudioDeviceType, deviceID: string): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| deviceType | ZegoAudioDeviceType | 音频设备类型 |
| deviceID | string | 通过 [getAudioDeviceList] 获取的某个设备的 ID |
详情
选择使用某个音频设备。
- 调用时机:在创建引擎 [createEngine] 之后。
- 支持版本:1.1.0 及以上。
- 使用限制:仅支持 Windows / macOS / Linux
getAudioDeviceVolume
getAudioDeviceVolume(deviceType: ZegoAudioDeviceType, deviceID: string): numberZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| deviceType | ZegoAudioDeviceType | 音频设备类型 |
| deviceID | string | 通过 [getAudioDeviceList] 获取的某个设备的 ID |
详情
获取音频设备音量,只适用于 Windows / macOS / Linux
返回值
设备音量
setAudioDeviceVolume
setAudioDeviceVolume(deviceType: ZegoAudioDeviceType, deviceID: string, volume: number): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| deviceType | ZegoAudioDeviceType | 音频设备类型 |
| deviceID | string | 通过 [getAudioDeviceList] 获取的某个设备的 ID |
| volume | number | 设备音量 |
详情
可能因为系统限制导致直接操作系统设备失败,请优先使用 [setCaptureVolume] 和 [setPlayVolume] 来调节推拉流音量。 只适用于 Windows / macOS / Linux
startAudioDeviceVolumeMonitor
startAudioDeviceVolumeMonitor(deviceType: ZegoAudioDeviceType, deviceID: string): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| deviceType | ZegoAudioDeviceType | 音频设备类型 |
| deviceID | string | 通过 [getAudioDeviceList] 获取的某个设备的 ID |
详情
启动音频设备音量监控器。当该设备音量发生变更时,会通过 [onAudioDeviceVolumeChanged] 回调变更后的音量。
- 调用时机:在创建引擎 [createEngine] 之后。
- 平台差异:仅支持 Windows 和 macOS。
- 相关接口:当不再需要监控设备音量时,请调用 [stopAudioDeviceVolumeMonitor] 停止监控。
- 支持版本:1.1.0 及以上。
- 注意事项:目前仅支持同时监控一个音频输出设备和一个音频输入设备,多次调用此接口且传入相同的设备类型时将会覆盖上一次调用时此接口设置的设备 ID。
stopAudioDeviceVolumeMonitor
stopAudioDeviceVolumeMonitor(deviceType: ZegoAudioDeviceType, deviceID: string): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| deviceType | ZegoAudioDeviceType | 音频设备类型 |
| deviceID | string | 通过 [getAudioDeviceList] 获取的某个设备的 ID |
详情
停止音频设备音量监控器。
- 调用时机:在创建引擎 [createEngine] 之后,当不再需要监控设备音量时。
- 平台差异:仅支持 Windows 和 macOS。
- 支持版本:1.1.0 及以上。
muteAudioDevice
muteAudioDevice(deviceType: ZegoAudioDeviceType, deviceID: string, mute: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| deviceType | ZegoAudioDeviceType | 音频设备类型 |
| deviceID | string | 通过 [getAudioDeviceList] 获取的某个设备的 ID |
| mute | boolean | 是否静音音频设备;"true" 表示静音音频设备;"false" 表示取消静音音频设备。 |
详情
只适用于 Windows / macOS / Linux
setAudioDeviceMode
setAudioDeviceMode(deviceMode: ZegoAudioDeviceMode): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| deviceMode | ZegoAudioDeviceMode | 音频设备模式 |
详情
根据场景需要选择音频设备模式(仅 Android 和 iOS 支持)。 使用场景:如实时 KTV 场景下,必须使用 General 模式,但是在语聊房场景下,为了避免第三方音乐的声音被采集,所以会要求使用 Communication2 或者 Communication3 模式。如何设置音频设备模式,请参考 https://doc-zh.zego.im/faq/AudioDeviceMod?product=ExpressVideo&platform=macos
- 调用时机:在创建引擎 [createEngine] 之后。
- 支持版本:2.22.0 及以上。
- 注意事项:该接口会触发设备的启动切换,建议不要频繁调用,避免不必要的开销与硬件问题。该接口可能导致音量模式在通话/媒体间切换,若媒体音量和通话音量不一致,可能导致音量变化。
isAudioDeviceMuted
isAudioDeviceMuted(deviceType: ZegoAudioDeviceType, deviceID: string): booleanZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| deviceType | ZegoAudioDeviceType | 音频设备类型 |
| deviceID | string | 通过 [getAudioDeviceList] 获取的某个设备的 ID |
详情
只适用于 Windows / macOS / Linux
返回值
音频设备是否静音;"true" 表示音频设备静音;"false" 表示音频设备没有被静音。
enableAudioCaptureDevice
enableAudioCaptureDevice(enable: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | 是否开启音频采集设备;"true" 表示打开音频采集设备;"false" 表示关闭音频采集设备。 |
详情
此函数用于控制是否使用音频采集设备。如果关闭音频采集设备,则 SDK 不会再占用音频设备,当然如果此时正在推流,默认情况下会使用静音数据做为音频数据进行推流。注意 Linux 平台不支持该功能 使用场景:当用户从不需要用到音频的时候,可以调用此函数关闭音频采集。
- 默认值:默认为 "true"。
- 调用时机:在创建引擎 [createEngine] 后。
- 相关接口:硬件上关闭或打开麦克风是耗时操作,用户频繁操作时有一定的性能开销,一般推荐使用 [muteMicrophone]。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
getAudioRouteType
getAudioRouteType(): ZegoAudioRouteZegoExpressEngine.ts音频路由是指 App 在播放音频时使用的音频输出设备,常见的音频路由有:扬声器、听筒、耳机、蓝牙设备等。
- 调用时机:在创建引擎 [createEngine] 后。
- 相关接口:设置音频路由到扬声器 [setAudioRouteToSpeaker]。
- 支持版本:1.1.0 及以上。
- 使用限制:win 或 mac 平台下不支持。
setAudioRouteToSpeaker
setAudioRouteToSpeaker(defaultToSpeaker: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| defaultToSpeaker | boolean | 是否使用内置扬声器播放声音,"true" 表示使用内置扬声器播放声音,"false" 表示使用当前系统调度的优先级最高的音频输出设备播放声音。 |
详情
是否使用扬声器播放音频,当选择不使用内置扬声器播放声音时,SDK 会根据系统调度选择当前优先级最高的音频输出设备播放声音,常见的音频路由有:听筒、耳机、蓝牙设备等。
- 调用时机:在创建引擎 [createEngine] 后。
- 相关接口:获取当前音频路由 [getAudioRouteType]。
- 支持版本:1.1.0 及以上。
- 使用限制:只支持听筒和扬声器的切换,如果是蓝牙耳机或者有线耳机不支持通过该接口路由到扬声器。
enableCamera
enableCamera(enable: boolean, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | 是否打开摄像头;"true" 表示打开摄像头;"false" 表示关闭摄像头。 |
| channel | ZegoPublishChannel | 推流通道 |
详情
此函数用于控制是否启动摄像头的采集,关闭摄像头后,将不会进行视频采集,此时本地预览和推流都将没有视频数据。
- 默认值:默认为 "true",即打开摄像头。
- 调用时机:在创建引擎 [createEngine] 后。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项:在使用自定义视频采集功能 [enableCustomVideoCapture] 的情况下,由于开发者接管了视频数据的采集,SDK 不再负责视频数据的采集,但此函数依然会影响是否进行编码的行为。因此开发者使用自定义视频采集时,请确保此函数的值为 "true"。
useFrontCamera
useFrontCamera(enable: boolean, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | [ZegoVideoSourceTypeCamera] 是否采用前置摄像头;true: 表示使用前置摄像头;false: 表示使用后置摄像头。 |
| channel | ZegoPublishChannel | 推流通道。 |
详情
此函数用于控制 [ZegoVideoSourceTypeCamera] 使用前置摄像头或者后置摄像头(仅 Android 和 iOS 支持)。
- 默认值:默认为 "true",即使用前置摄像头。
- 调用时机:在创建引擎 [createEngine] 后。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项:在开启自定义视频采集功能 [enableCustomVideoCapture] 的情况下,由于开发者接管了视频数据的采集,SDK 不再负责视频数据的采集,本函数不再有效。
isCameraFocusSupported
isCameraFocusSupported(channel?: ZegoPublishChannel): booleanZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| channel | ZegoPublishChannel | 推流通道 |
详情
摄像头是否支持对焦。
- 调用时机:在开启预览后 [startPreview] 后调用。
- 支持版本:2.14.0 及以上
- 注意事项:需要摄像头启动成功
返回值
是否支持对焦,支持为 true,不支持为 false
setCameraFocusMode
setCameraFocusMode(mode: ZegoCameraFocusMode, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| mode | ZegoCameraFocusMode | 对焦模式。 |
| channel | ZegoPublishChannel | 推流通道 |
详情
设置摄像头对焦模式。
- 调用时机:在开启预览后 [startPreview] 后调用。
- 支持版本:2.14.0 及以上
- 使用限制:目前只支持 iOS 和 Android 平台。
setCameraFocusPointInPreview
setCameraFocusPointInPreview(x: number, y: number, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| x | number | 归一化的 X 轴坐标值, 有效值 [0,1]。 |
| y | number | 归一化的 Y 轴坐标值, 有效值 [0,1]。 |
| channel | ZegoPublishChannel | 推流通道 |
详情
设置预览视图中的对焦点。(x,y)是在预览视图中归一化的坐标,即对焦点相对预览视图的位置与预览视图宽高的比值,左上角是(0, 0)。
- 调用时机:在开启预览后 [startPreview] 后调用。
- 支持版本:2.14.0 及以上
- 使用限制:目前只支持 iOS 和 Android 平台。
- 注意事项:每次摄像头重新启动采集,设置都会失效,需要重新设置。
setCameraExposureMode
setCameraExposureMode(mode: ZegoCameraExposureMode, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| mode | ZegoCameraExposureMode | 曝光模式。 |
| channel | ZegoPublishChannel | 推流通道 |
详情
设置摄像头曝光模式。
- 调用时机:在开启预览后 [startPreview] 后调用。
- 支持版本:2.14.0 及以上
- 使用限制:目前只支持 iOS 和 Android 平台。
setCameraExposurePointInPreview
setCameraExposurePointInPreview(x: number, y: number, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| x | number | 归一化的 X 轴坐标值, 有效值 [0,1]。 |
| y | number | 归一化的 Y 轴坐标值, 有效值 [0,1]。 |
| channel | ZegoPublishChannel | 推流通道 |
详情
设置预览视图中的曝光点。(x,y)是在预览视图中归一化的坐标,即曝光点相对预览视图的位置与预览视图宽高的比值,左上角是(0, 0)。
- 调用时机:在开启预览后 [startPreview] 后调用。
- 支持版本:2.14.0 及以上
- 使用限制:目前只支持 iOS 和 Android 平台。
- 注意事项:每次摄像头重新启动采集,设置都会失效,需要重新设置。
setCameraExposureCompensation
setCameraExposureCompensation(value: number, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| value | number | 摄像头曝光度,取值范围为 [-1,1], 默认值为 0。取值越小画面越暗,取值越大画面越亮。 |
| channel | ZegoPublishChannel | 推流通道 |
详情
设置摄像头曝光补偿数值。
- 业务场景:当用户需要设置摄像头曝光补偿值时,可以调用此接口。
- 调用时机:调用 [startPublishingStream] 或 [startPreview] 后调用此函数。
- 平台差异:仅支持 iOS 和 Android。
- 支持版本:2.10.0 及以上。
- 使用限制:无。
- 注意事项:摄像头重启后,设置会失效。
setCameraZoomFactor
setCameraZoomFactor(factor: number, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| factor | number | 摄像头变焦倍数,最小值为 1.0,最大值为 [getCameraMaxZoomFactor] 的返回值。 |
| channel | ZegoPublishChannel | 推流通道 |
详情
设置摄像头变焦倍数。
- 调用时机:在开启预览 [startPreview] 后调用。
- 支持版本:1.20.0 及以上。
- 使用限制:摄像头启动后设置才生效。
getCameraMaxZoomFactor
getCameraMaxZoomFactor(channel?: ZegoPublishChannel): numberZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| channel | ZegoPublishChannel | 推流通道 |
详情
获取摄像头最大变焦倍数。
- 调用时机:摄像头启动成功后调用才有效,一般可以在收到采集首帧回调 [onPublisherCapturedVideoFirstFrame] 的时候调用。
- 支持版本:1.20.0 及以上。
- 使用限制:无。
返回值
摄像头最大变焦倍数
enableCameraAdaptiveFPS
enableCameraAdaptiveFPS(enable: boolean, minFPS: number, maxFPS: number, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | 是否开启摄像头自适应帧率。true 表示开启,false 表示关闭。默认关闭。 |
| minFPS | number | 期望的最小帧率,最小值为 3,推荐 15。单位:fps。 |
| maxFPS | number | 期望的最大帧率,推荐 25。单位:fps。 |
| channel | ZegoPublishChannel | 推流通道。 |
详情
开启后,SDK 根据设置的帧率范围匹配摄像头支持的采集帧率范围,在此范围内根据环境亮度动态调整摄像头采集帧率,提升设置的帧率过高时的画面亮度。
- 业务场景:推流端用户设置的帧率偏高,所处环境光照较低,无法正常显示或识别主体。比如对曝光要求较高的直播场景。
- 调用时机:创建引擎 [createEngine] 后,摄像头启动前。
- 相关接口:通过 [setVideoConfig] 可以设置摄像头采集帧率以及编码器编码帧率。
- 支持版本:2.20.0 及以上。
- 注意事项:当调用 [setVideoConfig] 设置帧率小于期望帧率最小值时,将使用 [setVideoConfig] 设置的帧率值。由于不同的手机厂商的硬件和算法策略不同,该接口在不同的机型或同一机型的前后摄像头上,效果存在一定差异。
useVideoDevice
useVideoDevice(deviceID: string, channel?: ZegoPublishChannel): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| deviceID | string | 通过 [getVideoDeviceList] 获取的某个设备的 ID |
| channel | ZegoPublishChannel | 推流通道 |
详情
只适用于 Windows / macOS / Linux
getVideoDeviceList
getVideoDeviceList(): ZegoDeviceInfo[]ZegoExpressEngine.ts只适用于 Windows / macOS / Linux
视频设备列表
getDefaultVideoDeviceID
getDefaultVideoDeviceID(): stringZegoExpressEngine.ts只适用于 Windows / macOS / Linux
默认视频设备 ID
startSoundLevelMonitor
startSoundLevelMonitor(config?: ZegoSoundLevelConfig): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| config | ZegoSoundLevelConfig | 启动声浪监控的配置。 |
详情
启动监控后可通过 [onCapturedSoundLevelUpdate] 回调接收本地采集音频声浪,以及 [onRemoteSoundLevelUpdate] 回调接收远端拉流音频声浪。开发者可在进入房间之前,调用 [startPreview] 与此函数,并与 [onCapturedSoundLevelUpdate] 结合来判断音频设备是否正常工作。
- 业务场景:在推拉流过程中,判断麦上的用户谁在说话,并做 UI 展示。
- 调用时机:在创建引擎 [createEngine] 后。
- 支持版本:2.10.0 及以上。
- 注意事项: 1. [onCapturedSoundLevelUpdate] 与 [onRemoteSoundLevelUpdate] 回调通知周期为参数设置的值。 2. 启动声浪监控后,即使未启动本地音频采集,onCapturedSoundLevelUpdate也会有回调,声浪值为0。
stopSoundLevelMonitor
stopSoundLevelMonitor(): voidZegoExpressEngine.ts停止监控后将停止回调本地采集以及远端拉流的音频声浪回调。
- 调用时机:在创建引擎 [createEngine] 后。
- 相关接口:可通过 [startSoundLevelMonitor] 启动声浪监控。
- 支持版本:1.1.0 及以上。
startAudioSpectrumMonitor
startAudioSpectrumMonitor(millisecond?: number): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| millisecond | number | 音频频谱的监控时间周期,单位为毫秒,最小值为 10。默认 500 ms。 |
详情
启动监控后可通过 [onCapturedAudioSpectrumUpdate] 回调接收本地采集音频频谱,以及 [onRemoteAudioSpectrumUpdate] 回调接收远端音频声浪。
- 业务场景:在主播 K 歌场景中,已经推流或拉流的前提下,让主播或观众看到音调与音量变化的动画。
- 调用时机:在创建引擎 [createEngine] 后。
- 支持版本:1.15.0 及以上。
- 注意事项:[onCapturedAudioSpectrumUpdate] 与 [onRemoteAudioSpectrumUpdate] 回调通知周期为参数设置的值。
stopAudioSpectrumMonitor
stopAudioSpectrumMonitor(): voidZegoExpressEngine.ts停止监控后将停止回调本地采集以及远端拉流的音频频谱回调。
- 调用时机:在创建引擎 [createEngine] 后。
- 相关接口:可通过 [startAudioSpectrumMonitor] 启动音频频谱监控。
- 支持版本:1.1.0 及以上。
enableHeadphoneMonitor
enableHeadphoneMonitor(enable: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | true: 开启耳返, false: 关闭耳返。 |
详情
开启耳返,用户使用麦克风采集声音时会听到自己的声音。
- 调用时机:在创建引擎 [createEngine] 后。
- 默认值:关闭。
- 支持版本:1.9.0 及以上。
- 注意事项: 1. 同时连接耳机和麦克风时该设置才实际生效。 2. 耳返默认是在采集之后、前处理之前返回,如果需要在前处理之后返回请咨询 ZEGO 技术支持。
setHeadphoneMonitorVolume
setHeadphoneMonitorVolume(volume: number): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| volume | number | 采集耳返音量大小,取值 [0, 200],默认 60。 |
详情
设置耳返音量。
- 调用时机:在创建引擎 [createEngine] 后。
- 相关接口:可通过 [enableHeadphoneMonitor] 开关耳返。
- 支持版本:1.9.0 及以上。
- 注意事项:同时连接耳机和麦克风时该设置才实际生效。
enableMixSystemPlayout
enableMixSystemPlayout(enable: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | true: 开启声卡采集, false: 关闭声卡采集 |
详情
开启声卡采集,将系统播放的声音混入推流中,如浏览器播放的声音、第三方播放器软件播放的声音等。
- 默认值:默认关闭。
- 调用时机:调用 [startPublishingStream] 或 [startPreview] 后调用此函数。
- 相关接口:[setMixSystemPlayoutVolume] 设置系统声卡采集的音量。
- 平台差异:仅支持 Windows、macOS。
- 支持版本:1.9.0 及以上。
- 使用限制:无。
- 注意事项:系统声卡声音不包含拉流声音、媒体播放器声音和音效播放器声音。
setMixSystemPlayoutVolume
setMixSystemPlayoutVolume(volume: number): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| volume | number | 声卡采集音量。有效范围 [0, 200],默认为 100。 |
详情
设置系统声卡采集的音量。
- 业务场景:用户需要调整系统声卡采集的音量大小。
- 调用时机:调用 [startPublishingStream] 或 [startPreview] 后调用此函数。
- 相关接口:[enableMixSystemPlayout] 开启或关闭声卡采集。
- 平台差异:仅支持 Windows、macOS。
- 支持版本:2.4.0 及以上。
- 使用限制:无。
enableMixEnginePlayout
enableMixEnginePlayout(enable: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | true: 开启, false: 关闭 |
详情
开启后将 SDK 播放的声音混入推流中。
- 业务场景:用户需要将 SDK 播放的声音混入推流中,例如直播上课场景时,老师与学生连麦,老师可以将拉流声音混入推流中。
- 默认值:默认关闭。
- 调用时机:调用 [startPublishingStream] 或 [startPreview] 后调用此函数。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
startAudioVADStableStateMonitor
startAudioVADStableStateMonitor(type: ZegoAudioVADStableStateMonitorType, millisecond: number): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| type | ZegoAudioVADStableStateMonitorType | 语音检测器类型。 |
| millisecond | number | 检测周期 默认值 3000,有效值 [200, 10000] |
详情
启动监控后可通过 [onAudioVADStateUpdate] 回调接收指定类型的音频语音检测回调。
- 业务场景:例如指定采集后类型而且使用麦克风采集时,就可以通过这个接口检测主播是否有持续稳定的语音输入。
- 调用时机:开发者可在推流之前,调用 [startPreview] 与此函数,并与 [onAudioVADStateUpdate] 结合来判断音频设备是否正常工作。
- 相关接口:[stopAudioVADStableStateMonitor]
- 支持版本:2.17.0 及以上。
- 使用限制:无。
stopAudioVADStableStateMonitor
stopAudioVADStableStateMonitor(type: ZegoAudioVADStableStateMonitorType): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| type | ZegoAudioVADStableStateMonitorType | 语音检测器类型。 |
详情
调用该接口后不再能接收到指定类型的 [onAudioVADStateUpdate] 回调。
- 调用时机:无。
- 相关接口:[startAudioVADStableStateMonitor]
- 支持版本:2.14.0 及以上。
- 使用限制:无。
getCurrentAudioDevice
getCurrentAudioDevice(deviceType: ZegoAudioDeviceType): ZegoDeviceInfoZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| deviceType | ZegoAudioDeviceType | 音频设备类型。是否必填:是。 |
详情
获取当前使用的音频设备信息。
- 业务场景:用于需要手动在多个音频设备间切换的场景。
- 调用时机:调用 [startPublishingStream] 或 [startPreview] 后调用此函数。
- 相关接口:可通过 [getDefaultAudioDeviceID] 获取默认音频设备 ID。
- 支持版本:2.12.0 及以上。
- 使用限制:仅支持 Windows 和 macOS。
返回值
音频设备信息。
enableAEC
enableAEC(enable: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | 是否开启回声消除;true 表示开启;false 表示关闭 |
详情
打开回声消除, SDK 会对采集到的音频数据进行过滤以降低音频中的回音成分。
- 业务场景:当需要降低回声以提高通话质量和用户体验时,可以开启此功能。
- 调用时机:需要在 [createEngine] 之后调用。
- 相关接口:开发者可通过 [enableHeadphoneAEC] 以设置当使用耳机时是否也开启回声消除;可通过 [setAECMode] 设置回声消除的模式。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项:回声消除功能仅支持处理经过 SDK 播放的声音,例如拉流、媒体播放器、音效播放器等功能播放的声音。未调用此函数前,SDK 内部会自动判断是否需要使用 AEC,一旦调用了此函数则不再自动判断。
enableHeadphoneAEC
enableHeadphoneAEC(enable: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | 是否开启;true 表示开启;false 表示关闭。 |
详情
当使用 [enableAEC] 开启了回声消除后,对于移动端设备来说只在使用扬声器时开启。如果需要在使用耳机时开启或者关闭回声消除,请调用此函数。
- 业务场景:当移动端设备连接了一个外置声卡作为音频输出源时,为了消除这种情况下的回声,需要调用此函数开启回声消除。
- 默认值:Android 默认关闭,iOS 默认开启。
- 调用时机:需要在 [createEngine] 之后,[startPublishingStream]、 [startPlayingStream]、 [startPreview]、 [createMediaPlayer]、 [createAudioEffectPlayer] 和 [createRealTimeSequentialDataManager] 之前调用。
- 相关接口:不使用耳机时可通过 [enableAEC] 设置 SDK 是否开启回声消除。
- 平台差异:仅支持 iOS 和 Android。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项:开启回声消除会增加耳返延迟。在 iOS 平台,SDK 内部无法区分耳机跟外置声卡,如果使用此函数关闭使用耳机时的系统回声消除,则在用户接入外部声卡时会采集外部声卡播放的声音,导致回声问题。
setAECMode
setAECMode(mode: ZegoAECMode): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| mode | ZegoAECMode | 回声消除模式 |
详情
当使用 [enableAEC] 开启了回声消除后,可通过此函数切换不同的回声消除模式以控制消除回声数据的程度。
- 业务场景:当默认的回声消除效果不符合预期时,可通过此函数调整回声消除模式。
- 默认值:未调用此函数时,默认的回声消除模式为 [Aggressive] 激进模式。
- 调用时机:需要在 [createEngine] 之后调用。
- 支持版本:1.1.0 及以上。
- 使用限制:仅在开启了回声消除功能后此函数设置的值才有效。
enableAGC
enableAGC(enable: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | 是否开启自动增益控制;true 表示开启;false 表示关闭 |
详情
开启该功能后,SDK 能够自动调节麦克风音量,适应远近拾音,保持音量稳定。
- 业务场景:当需要保障音量稳定性以提高通话质量和用户体验时,可以开启此功能。
- 调用时机:需要在 [createEngine] 之后调用。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项:未调用此函数前,SDK 内部会自动判断是否需要使用 AGC,一旦调用了此函数则不再自动判断。
enableANS
enableANS(enable: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | 是否开启噪声抑制;true 表示开启噪声抑制;false 表示关闭噪声抑制 |
详情
开启该功能后,可以使人声更加清晰。
- 业务场景:当需要抑制噪声以提高通话质量和用户体验时,可以开启此功能。
- 调用时机:需要在 [createEngine] 之后调用。
- 相关接口:此功能对持续性的噪声(例如下雨声等白噪音)抑制效果较好,如果需要抑制瞬态噪声,请使用 [enableTransientANS];可通过 [setANSMode] 设置噪声抑制的模式。
- 支持版本:1.1.0 及以上。
- 使用限制:无。
- 注意事项:未调用此函数前,SDK 内部会自动判断是否需要使用 ANS,一旦调用了此函数则不再自动判断。
enableTransientANS
enableTransientANS(enable: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | 是否开启瞬态噪声抑制;true 表示开启;false 表示关闭 |
详情
用于抑制敲击键盘、桌子等瞬态噪声。
- 业务场景:当需要抑制瞬态噪声以提高通话质量和用户体验时,可以开启此功能。
- 默认值:未调用此函数时,默认不开启瞬态噪声抑制。
- 调用时机:需要在 [createEngine] 之后调用。
- 相关接口:此函数开启后不会抑制常规噪声,如果需要开启常规噪声抑制,请使用 [enableANS]
- 支持版本:1.17.0 及以上。
- 使用限制:无。
setANSMode
setANSMode(mode: ZegoANSMode): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| mode | ZegoANSMode | 噪声抑制模式 |
详情
当使用 [enableANS] 开启了噪声抑制后,可通过此函数切换不同的噪声抑制模式以控制抑制噪声数据的程度。
- 业务场景:当默认的噪声抑制效果不符合预期时,可通过此函数调整噪声抑制模式。
- 默认值:未调用此函数时,默认的噪声抑制模式为 [Medium] 中等模式。
- 调用时机:需要在 [createEngine] 之后调用。
- 支持版本:1.1.0 及以上。
- 使用限制:仅在开启了噪声抑制功能后此函数设置的值才有效。
startEffectsEnv
startEffectsEnv(): voidZegoExpressEngine.ts开启 Effects 美颜环境。SDK 内部会使用固定的视频帧数据类型进行传输,Windows 平台只支持视频帧裸数据, Apple 平台只支持 CVPixelBuffer,Android 平台只支持 texture2d。
- 业务场景:常用于视频通话、直播等场景。
- 默认值:未调用此函数时,默认不启动美颜环境。
- 调用时机:必须在调用 [startPreview]、[startPublishingStream] 之前设置。如果需要修改配置,请先调用 [logoutRoom] 登出房间,否则不会生效。
- 相关接口:[enableEffectsBeauty] 开关美颜,[setEffectsBeautyParam] 设置美颜参数。
- 支持版本:2.16.0 及以上。
- 使用限制:此函数只支持 Android 系统 5.0 及以上,Android SDK 版本 21 及以上。
- 注意事项:此美颜功能为基础功能,如不符合开发者的预期,可使用自定义视频前处理功能 [enableCustomVideoProcessing] 或者自定义视频采集功能 [enableCustomVideoCapture] 对接即构 AI 美颜 SDK [ZegoEffects] https://doc-zh.zego.im/article/9556 以获得最佳效果。
stopEffectsEnv
stopEffectsEnv(): voidZegoExpressEngine.ts关闭 Effects 美颜环境。
- 业务场景:常用于视频通话、直播等场景。
- 调用时机:必须在调用 [startPreview]、[startPublishingStream] 之前设置。如果需要修改配置,请先调用 [logoutRoom] 登出房间,否则不会生效。
- 相关接口:[enableEffectsBeauty] 开关美颜,[setEffectsBeautyParam] 设置美颜参数。
- 支持版本:2.16.0 及以上。
- 使用限制:此函数只支持 Android 系统 5.0 及以上,Android SDK 版本 21 及以上。
- 注意事项:此美颜功能为基础功能,如不符合开发者的预期,可使用自定义视频前处理功能 [enableCustomVideoProcessing] 或者自定义视频采集功能 [enableCustomVideoCapture] 对接即构 AI 美颜 SDK [ZegoEffects] https://doc-zh.zego.im/article/9556 以获得最佳效果。
enableEffectsBeauty
enableEffectsBeauty(enable: boolean): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | 是否开启美颜效果,true 开启;false 关闭,默认为 false。 |
详情
支持基础美颜功能,包括美白、红润、磨皮、锐化。
- 业务场景:通常用于视频通话、直播等场景。
- 调用时机:必须在调用 [startEffectsEnv] 开启美颜环境后才能调用此函数。
- 默认值:未调用此函数时,默认不开启美颜效果。
- 相关接口:可调用 [setEffectsBeautyParam] 函数调整美颜参数。
- 支持版本:2.16.0 及以上。
- 使用限制:此函数如果使用在 Android 平台上只支持 5.0 及以上,SDK 版本 21 及以上。
- 注意事项:此美颜功能为基础功能,如不符合开发者的预期,可使用自定义视频前处理功能 [enableCustomVideoProcessing] 或者自定义视频采集功能 [enableCustomVideoCapture] 对接即构 AI 美颜 SDK [ZegoEffects] https://doc-zh.zego.im/article/9556 以获得最佳效果。
setEffectsBeautyParam
setEffectsBeautyParam(param: ZegoEffectsBeautyParam): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| param | ZegoEffectsBeautyParam | 美颜选项参数。 |
详情
设置美颜参数,包括美白、红润、磨皮、锐化。
- 业务场景:通常用于视频通话、直播等场景。
- 调用时机:必须在调用 [startEffectsEnv] 开启美颜环境后才能调用此函数。
- 相关接口:可调用 [enableEffectsBeauty] 开启或关闭美颜效果。
- 支持版本:2.16.0 及以上。
- 使用限制:此函数只支持 Android 系统 5.0 及以上,Android SDK 版本 21 及以上。
setAudioEqualizerGain
setAudioEqualizerGain(bandIndex: number, bandGain: number): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| bandIndex | number | 频谱子带索引,取值范围 [0, 9],分别对应 10 个频带,中心频率分别是 [31, 62, 125, 250, 500, 1K, 2K, 4K, 8K, 16K] Hz。 |
| bandGain | number | 指定频带的增益值,取值范围 [-15, 15],默认值为 0,如果所有频带的增益值全部为 0,即关闭 EQ 功能。 |
详情
可通过调用本函数设置音效均衡器调整音色。
- 业务场景:通常用于语聊房、KTV 等场景。
- 调用时机:需要在 [createEngine] 之后调用才有效。
- 支持版本:1.12.0 及以上。
- 使用限制:无。
setVoiceChangerPreset
setVoiceChangerPreset(preset: ZegoVoiceChangerPreset): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| preset | ZegoVoiceChangerPreset | 变声预设枚举。 |
详情
可通过调用本函数设置预设变声效果。
- 业务场景:通常用于直播、语聊房和 KTV 等场景。
- 调用时机:需要在 [createEngine] 之后调用才有效。
- 相关接口: 如需自定义变声效果,可使用 [setVoiceChangerParam]。 本函数与 [setReverbPreset] 同时使用效果可能和预期有差异,如需同时使用,建议先开启变声,再开启混响。 使用机器人或空灵预设变声效果时,会修改混响或混响回声参数。因此,在使用上述预设变声效果后调用 [setVoiceChangerParam], [setReverbAdvancedParam], [setReverbEchoParam] 等函数可能影响变声效果。 如需自定义混响/回声/变声/电音效果可通过 [setReverbAdvancedParam], [setReverbEchoParam], [setVoiceChangerParam], [setElectronicEffects] 四个函数组合配置使用。
- 支持版本:1.17.0 及以上。
setVoiceChangerParam
setVoiceChangerParam(param: ZegoVoiceChangerParam): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| param | ZegoVoiceChangerParam | 变声参数。 |
详情
可通过调用本函数设置自定义变声效果。
- 业务场景:通常用于直播、语聊房和 KTV 等场景。
- 调用时机:需要在 [createEngine] 之后调用才有效。
- 相关接口: 如需使用常见的变声效果,可使用 [setVoiceChangerPreset] 函数。 如需自定义混响/回声/变声效果可通过 [setReverbAdvancedParam], [setReverbEchoParam], [setVoiceChangerParam] 三个函数组合配置使用。
- 支持版本:1.10.0 及以上。
setReverbPreset
setReverbPreset(preset: ZegoReverbPreset): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| preset | ZegoReverbPreset | 混响预设枚举。 |
详情
可通过调用本函数设置预设混响效果。
- 业务场景:通常用于直播、语聊房和 KTV 等场景。
- 调用时机:需要在 [createEngine] 之后调用才有效。支持推流过程中调用本函数动态设置混响效果。
- 相关接口: 如需自定义混响效果,请使用 [setReverbAdvancedParam]。 本函数与 [setVoiceChangerPreset] 同时使用效果可能和预期有差异,如需同时使用,建议先开启变声,再开启混响。 如需自定义混响/回声/变声效果可通过 [setReverbAdvancedParam], [setReverbEchoParam], [setVoiceChangerParam] 三个函数组合配置使用。
- 支持版本:1.17.0 及以上。
setReverbAdvancedParam
setReverbAdvancedParam(param: ZegoReverbAdvancedParam): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| param | ZegoReverbAdvancedParam | 混响高级参数。 |
详情
可通过调用本函数设置自定义混响效果。
- 业务场景:通常用于直播、语聊房和 KTV 等场景。
- 调用时机:需要在 [createEngine] 之后调用才有效。
- 相关接口: 如需使用常见的混响效果,可使用 [setReverbPreset] 函数。 如需自定义混响/回声/变声效果可通过 [setReverbAdvancedParam], [setReverbEchoParam], [setVoiceChangerParam] 三个函数组合配置使用。
- 支持版本:1.10.0 及以上。
- 注意事项:推流过程中动态设置不同的值都会生效,当全部参数都设置成 0 时,混响关闭。
setReverbEchoParam
setReverbEchoParam(param: ZegoReverbEchoParam): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| param | ZegoReverbEchoParam | 混响回声效果参数。 |
详情
可通过调用本函数设置混响回声效果。可搭配变声、混响以实现自定义各式各样的声音效果。
- 业务场景:通常用于直播、语聊房和 KTV 等场景。
- 调用时机:需要在 [createEngine] 之后调用才有效。
- 相关接口:如需自行配置混响/回声/变声效果请通过 [setReverbAdvancedParam], [setReverbEchoParam], [setVoiceChangerParam] 三个函数组合使用。
- 支持版本:1.17.0 及以上。
enableVirtualStereo
enableVirtualStereo(enable: boolean, angle: number): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | true 代表开启虚拟立体声,false 代表关闭虚拟立体声。 |
| angle | number | 虚拟立体声中声源的角度,范围为 -1 ~ 360,90 为正前方,0 / 180 / 270 分别对应最右边 / 最左边 / 正后方;特别的,设置 -1 时为全方位虚拟立体声效果。 |
详情
可通过调用本函数开启/关闭推流时的虚拟立体声效果。
- 业务场景:通常用于直播、语聊房和 KTV 等场景。
- 调用时机:需要在 [createEngine] 之后调用才有效。
- 支持版本:1.10.0 及以上;注意:从 2.15.0 版本开始,角度参数支持设置 -1 以呈现全方位虚拟立体声效果。
- 注意事项:需要调用 [setAudioConfig] 设置双声道后虚拟立体声才能生效。
enablePlayStreamVirtualStereo
enablePlayStreamVirtualStereo(enable: boolean, angle: number, streamID: string): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | true 代表开启虚拟立体声,false 代表关闭虚拟立体声。 |
| angle | number | 虚拟立体声中声源的角度,范围为 0 ~ 360,90 为正前方,0 / 180 / 270 分别对应最右边 / 最左边 / 正后方。 |
| streamID | string | 流 ID。 |
详情
可通过调用本函数开启/关闭拉流时的虚拟立体声效果。
- 业务场景:通常用于直播、语聊房和 KTV 等场景。
- 调用时机:需要在 [createEngine] 之后调用才有效。
- 支持版本:2.8.0 及以上。
- 注意事项:在拉流之前和之后可以动态切换和设置角度参数。停止拉流后,虚拟立体声会自动重置和关闭。
setElectronicEffects
setElectronicEffects(enable: boolean, mode: ZegoElectronicEffectsMode, tonal: number): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| enable | boolean | true 代表开启电音效果,false 代表关闭电音效果。 |
| mode | ZegoElectronicEffectsMode | 电音参考的调式。 |
| tonal | number | 电音在某个调式下的起始音高,代表声音一个八度的12个半音,取值范围 [0, 11]。 |
详情
可通过调用本函数开启/关闭电音效果。
- 业务场景:通常用于直播、语聊房和清唱场景。
- 默认值:未调用此接口时,默认关闭电音效果。
- 调用时机:需要在 [createEngine] 之后调用才有效。
- 相关接口:可通过 [setVoiceChangerPreset] 设置常见电音配置。
- 支持版本:2.13.0 及以上。
- 使用限制:无。
- 注意事项:当 mode 参数为和声小调时,tonal 参数不生效。
sendCustomCommand
sendCustomCommand(roomID: string, command: string, toUserList: ZegoUser[], callback?: ZegoIMSendCustomCommandCallback): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| roomID | string | 房间 ID,不得为空,最大长度小于 128 字节的字符串。 注意事项: 1.房间 ID 由您自己定义。 2. 仅支持数字,英文字符 和 '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', ''。 3. 如果需要与 Web SDK 互通,请不要使用 '%'。 |
| command | string | 自定义信令内容。是否必填:是。取值范围:最大长度为 1024 字节。注意事项:为保护隐私,请勿在此接口填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。 |
| toUserList | ZegoUser[] | 信令的接收者列表。是否必填:是。取值范围:用户列表或者 [null]。注意事项:为 [null] 时 SDK 回向房间内所有用户发送自定义信令。 |
| callback | ZegoIMSendCustomCommandCallback | 发送信令结果通知。是否必填:否。注意事项:传 [null] 则意味着不接收回调通知。 |
详情
向已经登录相同房间的其他用户发送点对点的信令,消息可靠。
- 业务场景:一般用于远程控制信令或用户与用户之间的消息发送。
- 调用时机:调用 [loginRoom] 登录房间之后。
- 相关回调:可通过 [onIMRecvCustomCommand] 接收到房间自定义信令。
- 相关接口:可通过 [sendBroadcastMessage] 函数发送广播消息,可通过 [sendBarrageMessage] 函数发送弹幕消息。
- 隐私保护声明:请勿在此接口填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。
- 支持版本:1.2.1 及以上。
- 使用限制:同一房间内向单个用户发送的自定义消息频率不能高于 200条/s,向多个用户发送的自定义消息不能高于 10条/s。关于此函数的使用限制,请参考 https://doc-zh.zego.im/article/7581 或联系 ZEGO 技术支持。
createMediaPlayer
createMediaPlayer(): ZegoMediaPlayer|nullZegoExpressEngine.ts创建媒体播放器实例对象。
- 业务场景:常用于播放媒体资源场景,例如播放视频文件,结合自定义视频采集将媒体资源的视频数据推送出去,远端可拉流观看。
- 调用时机:在初始化 SDK [createEngine] 之后。
- 相关接口:用户可以调用 [destroyMediaPlayer] 销毁媒体播放器实例对象。
- 支持版本:2.1.0 及以上。
- 使用限制:目前最多支持创建 4 个实例,超过后将返回 null。
- 注意事项:媒体播放器的实例越多,对设备的性能开销越大。
媒体播放器实例,超过最大数量限制后将返回 null。
destroyMediaPlayer
destroyMediaPlayer(mediaPlayer: ZegoMediaPlayer): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| mediaPlayer | ZegoMediaPlayer | 媒体播放器实例对象。 |
详情
销毁媒体播放器实例对象。
- 相关接口:用户可以调用 [createMediaPlayer] 创建媒体播放器实例对象。
- 支持版本:2.1.0 及以上。
startPerformanceMonitor
startPerformanceMonitor(millisecond?: number): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| millisecond | number | 监控时间周期。 单位为毫秒。取值范围为 [1000, 10000]。默认值为 2000 ms。 |
详情
启动系统性能监控,检测系统和应用的 CPU 使用率、内存使用率。支持设置监听时间间隔。
- 业务场景:通过监控系统性能,协助用户快速定位、解决性能问题,提升用户体验。
- 调用时机:需要在 [createEngine] 之后调用。
- 相关回调:启动系统性能监控后,可通过 [onPerformanceStatusUpdate] 接收系统性能状态回调。[onPerformanceStatusUpdate] 回调通知周期为 millisecond 参数设置的值。
- 相关接口:可通过 [stopPerformanceMonitor] 停止系统性能监控。
- 支持版本:1.19.0 及以上。
- 使用限制:无。
stopPerformanceMonitor
stopPerformanceMonitor(): voidZegoExpressEngine.ts停止系统性能监控。停止系统性能监控后,将停止触发 [onPerformanceStatusUpdate] 回调。
- 业务场景:通过监控系统性能,协助用户快速定位、解决性能问题,提升用户体验。
- 调用时机:需要在 [createEngine] 之后调用。
- 相关接口:可通过 [startPerformanceMonitor] 启动系统性能监控。
- 支持版本:1.19.0 及以上。
- 使用限制:无。
startNetworkSpeedTest
startNetworkSpeedTest(config: ZegoNetworkSpeedTestConfig, interval?: number): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| config | ZegoNetworkSpeedTestConfig | 网络测速度配置。 |
| interval | number | 网络测速周期。单位为毫秒,默认为 3000 ms。 |
详情
网络连通状态下的上行/下行网络测速。
- 业务场景:用于检测当前网络环境是否适合推/拉指定码率的流。
- 调用时机:需要在 [loginRoom] 后调用。若在测速中途开始推流/拉流,则测速会自动停止。
- 相关接口:可通过 [stopNetworkSpeedTest] 停止网络测速。
- 支持版本:1.20.0 及以上。
- 使用限制:单次网络测速默认最大允许测试时间为30秒。
- 注意事项:可监听 [onNetworkSpeedTestQualityUpdate] 回调来获取测速结果,每 3 秒回调一次结果。若测速过程中发生异常,将会触发 [onNetworkSpeedTestError] 回调。若重复多次调用本函数,将以最后一次调用的测速配置为准。
stopNetworkSpeedTest
stopNetworkSpeedTest(): voidZegoExpressEngine.ts停止网络测速。
- 业务场景:用于检测当前网络环境是否适合推/拉指定码率的流。
- 调用时机:需要在 [createEngine] 之后调用。
- 相关接口:可通过 [startNetworkSpeedTest] 启动网络测速。
- 支持版本:1.20.0 及以上。
- 使用限制:无。
- 注意事项:停止网络测速后,将不再触发 [onNetworkSpeedTestQualityUpdate] 回调。
setAppGroupID
setAppGroupID(groupID: string): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| groupID | string | 主应用和 extension 扩展应用应该归属于同一个 App Group,此处需要传入 AppGroupID。 |
- 业务场景:需要使用 iOS 跨进程屏幕共享功能,需要启动 App Group,可以提供更好的性能与稳定性。必须搭配
ZegoReplayKit扩展类里的 [setupWithAppGroupID:] 使用。 - 调用时机:[createEngine] 之后,调用 [startScreenCapture] 之前调用。
- 支持版本:3.3.0 及以上。
- 使用限制:仅 iOS 平台使用。
startScreenCaptureInApp
startScreenCaptureInApp(config: ZegoScreenCaptureConfig): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| config | ZegoScreenCaptureConfig | 屏幕采集参数配置。 |
详情
开始屏幕采集。
- 调用时机:在调用 [setVideoSource]、[setAudioSource] 函数设置采集源 为
ScreenCapture后。
- 支持版本:3.1.0 及以上。
- 使用限制:仅对 iOS 系统生效。
startScreenCapture
startScreenCapture(config: ZegoScreenCaptureConfig): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| config | ZegoScreenCaptureConfig | 屏幕采集参数配置。 |
详情
开始屏幕采集。
- 调用时机:在调用 [setVideoSource]、[setAudioSource] 函数设置采集源 为
ScreenCapture后。
- 支持版本:3.1.0 及以上。
stopScreenCapture
stopScreenCapture(): voidZegoExpressEngine.ts停止屏幕采集。
- 支持版本:3.1.0 及以上。
updateScreenCaptureConfig
updateScreenCaptureConfig(config: ZegoScreenCaptureConfig): voidZegoExpressEngine.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| config | ZegoScreenCaptureConfig | 屏幕采集参数配置。 |
详情
更新屏幕采集参数配置。
- 调用时机:在调用 [startScreenCapture] 开始采集后。
- 支持版本:3.1.0 及以上。
- 使用限制:仅对 iOS 系统生效。仅适用于 iOS 12.0 或更高版本。
ZegoMediaPlayer
Declared in ZegoExpressDefines.ts
方法
loadResourceWithConfig
loadResourceWithConfig(resource: ZegoMediaPlayerResource, callback?: ZegoMediaPlayerLoadResourceCallback): voidZegoExpressDefines.ts参数
| 名称 | 类型 | 描述 |
|---|---|---|
| resource | ZegoMediaPlayerResource | 需要加载的多媒体资源。 |
| callback | ZegoMediaPlayerLoadResourceCallback | 资源加载结果的通知。 |
详情
加载媒体资源。
- 业务场景:开发者可以将可传本地资源的绝对路径或者网络资源的 URL 传入进行加载。
- 调用时机:在已经初始化引擎 [createEngine] 且创建媒体播放器 [createMediaPlayer] 之后调用。
- 相关接口:支持通过 [loadResourceWithPosition] 或 [loadResourceFromMediaData] 接口加载资源。
- 支持版本:3.3.0 及以上。
- 注意事项:如果该媒体播放器已经加载资源或者正在播放,请先调用 [stop] 接口停止播放,然后再调用接口加载媒体资源,否则无法加载成功。
返回值
加载媒体资源结果回调。

