): number;
/**
* 订阅 / 取消订阅指定远端用户的视频流。对方打开视频后需要主动订阅
* @param {number} uid 指定用户的用户 ID。
* @param {number} type 流类型:
*
* - 0 默认大流
* - 1 小流
* - 2 不订阅
*
* @param {boolean} subscribe
*
* - true:订阅指定远端用户的视频流。
* - false:取消订阅指定远端用户的视频流。
*
* @returns {number}
*
* - 0:方法调用成功。
* - 其他:方法调用失败。
*
*/
subscribeRemoteVideoStream(uid: string, type: number, subscribe: boolean): any;
/**
* 订阅 / 取消订阅指定远端用户的视频辅流。
*
* 对方打开视频后需要主动订阅
* NOTE:
* - 必须在远端加入房间后调用。
* - 必须先设置远端辅流画布。
*
* @param {number} uid 指定用户的用户 ID。
* @param {number} subscribe
*
* - true:订阅指定远端用户的视频流。
* - false:取消订阅指定远端用户的视频流。
*
* @returns {number}
*
* - 0:方法调用成功。
* - 其他:方法调用失败。
*
*/
subscribeRemoteVideoSubStream(uid: string, sub: boolean): any;
/**
* 添加房间推流任务,成功添加后当前用户可以收到该直播流的状态通知。通话中有效。
* @fires NERtcChannel#onAddLiveStreamTask
* @param {Object} info 直播任务信息。
* @param {String} info.task_id 推流任务 ID,为推流任务的唯一标识,用于过程中增删任务操作 <64 chars
* @param {String} info.stream_url 直播推流地址 <256 chars
* @param {Boolean} info.server_record_enabled 服务器录制功能是否开启
* @param {Number} info.ls_mode 直播推流模式:
*
* - 0 推流带视频
* - 1 推流纯音频
*
* @param {Object} info.config 音视频流编码参数等设置:
* @param {boolean} info.config.singleVideoPassThrough 音频编码规格。默认值为 NERtcLiveStreamAudioCodecProfileLCAAC 普通编码规格。
* @param {boolean} info.config.audioBitrate 音频推流码率。单位为 kbps,取值范围为 10~192。语音场景建议设置为 64 及以上码率,音乐场景建议设置为 128 及以上码率。
* @param {boolean} info.config.sampleRate 音频推流采样率。默认值为 NERtcLiveStreamAudioSampleRate48000 48K。
* @param {boolean} info.config.channels 音频推流声道数。1:单声道。2:(默认)双声道。
* @param {boolean} info.config.audioCodecProfile 音频编码规格。默认值为 NERtcLiveStreamAudioCodecProfileLCAAC 普通编码规格。
*
* - 0 HE-AAC 规格,表示高效音频编码规格。
* - 1 (默认)LC-AAC 规格,表示基本音频编码规格。
*
* @param {Object} info.layout 视频布局:
* @param {number} info.layout.width 视频推流宽度
* @param {number} info.layout.height 视频推流高度
* @param {number} info.layout.background_color 视频推流背景色,(R & 0xff) << 16 | (G & 0xff) << 8 | (B & 0xff)
* @param {number} info.layout.user_count 成员布局个数
* @param {object[]} info.layout.users 成员布局数组:
* @param {number} info.layout.users[].uid 用户 ID
* @param {boolean} info.layout.users[].video_push 是否推送该用户视频流,info.ls_mode=1 时无效
* @param {number} info.layout.users[].adaption 视频流裁剪模式:
*
* - 0 视频尺寸等比缩放。优先保证视频内容全部显示。因视频尺寸与显示视窗尺寸不一致造成的视窗未被填满的区域填充背景色
* - 1 视频尺寸等比缩放。优先保证视窗被填满。因视频尺寸与显示视窗尺寸不一致而多出的视频将被截掉
*
* @param {number} info.layout.users[].x 画面离主画面左边距
* @param {number} info.layout.users[].y 画面离主画面上边距
* @param {number} info.layout.users[].width 画面在主画面的显示宽度,画面右边超出主画面会失败
* @param {number} info.layout.users[].height 画面在主画面的显示高度,画面底边超出主画面会失败
* @param {boolean} info.layout.users[].audio_push 是否推送该用户音频流
* @param {object} info.layout.users[].bg_image 背景图信息:
* @param {String} info.layout.users[].bg_image.url 图片地址
* @param {number} info.layout.users[].bg_image.x 画面离主画面左边距
* @param {number} info.layout.users[].bg_image.y 画面离主画面上边距
* @param {number} info.layout.users[].bg_image.width 画面在主画面的显示宽度,画面右边超出主画面会失败
* @param {number} info.layout.users[].bg_image.height 画面在主画面的显示高度,画面底边超出主画面会失败
* @returns {number}
*
* - 0:方法调用成功。
* - 其他:方法调用失败。
*
*/
addLiveStreamTask(info: NERtcLiveStreamTaskInfo): number;
/**
* 更新修改房间推流任务。通话中有效。
* @fires NERtcChannel#onUpdateLiveStreamTask
* @param {Object} info 直播任务信息。
* @param {String} info.task_id 推流任务 ID,为推流任务的唯一标识,用于过程中增删任务操作 <64 chars
* @param {String} info.stream_url 直播推流地址 <256 chars
* @param {Boolean} info.server_record_enabled 服务器录制功能是否开启
* @param {Number} info.ls_mode 直播推流模式:
*
* - 0 推流带视频
* - 1 推流纯音频
*
* @param {Object} info.layout 视频布局:
* @param {number} info.layout.width 视频推流宽度
* @param {number} info.layout.height 视频推流高度
* @param {number} info.layout.background_color 视频推流背景色,(R & 0xff) << 16 | (G & 0xff) << 8 | (B & 0xff)
* @param {number} info.layout.user_count 成员布局个数
* @param {object[]} info.layout.users 成员布局数组:
* @param {number} info.layout.users[].uid 用户 ID
* @param {boolean} info.layout.users[].video_push 是否推送该用户视频流,info.ls_mode=1 时无效
* @param {number} info.layout.users[].adaption 视频流裁剪模式:
*
* - 0 视频尺寸等比缩放。优先保证视频内容全部显示。因视频尺寸与显示视窗尺寸不一致造成的视窗未被填满的区域填充背景色
* - 1 视频尺寸等比缩放。优先保证视窗被填满。因视频尺寸与显示视窗尺寸不一致而多出的视频将被截掉
*
* @param {number} info.layout.users[].x 画面离主画面左边距
* @param {number} info.layout.users[].y 画面离主画面上边距
* @param {number} info.layout.users[].width 画面在主画面的显示宽度,画面右边超出主画面会失败
* @param {number} info.layout.users[].height 画面在主画面的显示高度,画面底边超出主画面会失败
* @param {boolean} info.layout.users[].audio_push 是否推送该用户音频流
* @param {object} info.layout.users[].bg_image 背景图信息:
* @param {String} info.layout.users[].bg_image.url 图片地址
* @param {number} info.layout.users[].bg_image.x 画面离主画面左边距
* @param {number} info.layout.users[].bg_image.y 画面离主画面上边距
* @param {number} info.layout.users[].bg_image.width 画面在主画面的显示宽度,画面右边超出主画面会失败
* @param {number} info.layout.users[].bg_image.height 画面在主画面的显示高度,画面底边超出主画面会失败
* @returns {number}
*
* - 0:方法调用成功。
* - 其他:方法调用失败。
*
*/
updateLiveStreamTask(info: NERtcLiveStreamTaskInfo): number;
/**
* 删除房间推流任务。通话中有效。
* @fires NERtcChannel#onRemoveLiveStreamTask
* @param {String} taskId 直播任务 ID
* @returns {number}
*
* - 0:方法调用成功。
* - 其他:方法调用失败。
*
*/
removeLiveStreamTask(taskId: String): number;
/**
* 发送媒体补充增强信息(SEI)。
* @since 4.1.110
*
* 在本端推流传输视频流数据同时,发送流媒体补充增强信息来同步一些其他附加信息。当推流方发送 SEI 后,拉流方可通过监听 onRecvSEIMsg 的回调获取 SEI 内容。
* - 调用时机:视频流(主流)开启后,可调用此函数。
* - 数据长度限制: SEI 最大数据长度为 4096 字节,超限会发送失败。如果频繁发送大量数据会导致视频码率增大,可能会导致视频画质下降甚至卡顿。
* - 发送频率限制:最高为视频发送的帧率,建议不超过 10 次/秒。
* - 生效时间:调用本接口之后,最快在下一帧视频数据帧之后发送 SEI 数据,最慢在接下来的 5 帧视频之后发送。
* NOTE:
* - SEI 数据跟随视频帧发送,由于在弱网环境下可能丢帧,SEI 数据也可能随之丢失,所以建议在发送频率限制之内多次发送,保证接收端收到的概率。
* - 调用本接口时,默认使用主流通道发送 SEI。
*
* @param {ArrayBuffer} data 自定义 SEI 数据
* @return {number}
*
* - 0:方法调用成功。
* - 其他:方法调用失败。
*
*/
sendSEIMsg(data: ArrayBuffer): number;
/**
* 发送媒体补充增强信息(SEI)。
* @since 4.1.110
*
* 在本端推流传输视频流数据同时,发送流媒体补充增强信息来同步一些其他附加信息。当推流方发送 SEI 后,拉流方可通过监听 onRecvSEIMsg 的回调获取 SEI 内容。
* - 调用时机:视频流(主流)开启后,可调用此函数。
* - 数据长度限制: SEI 最大数据长度为 4096 字节,超限会发送失败。如果频繁发送大量数据会导致视频码率增大,可能会导致视频画质下降甚至卡顿。
* - 发送频率限制:最高为视频发送的帧率,建议不超过 10 次/秒。
* - 生效时间:调用本接口之后,最快在下一帧视频数据帧之后发送 SEI 数据,最慢在接下来的 5 帧视频之后发送。
* NOTE:
* - SEI 数据跟随视频帧发送,由于在弱网环境下可能丢帧,SEI 数据也可能随之丢失,所以建议在发送频率限制之内多次发送,保证接收端收到的概率。
* - 调用本接口时,默认使用主流通道发送 SEI。
*
* @param {ArrayBuffer} data 自定义 SEI 数据
* @param {number} type 发送 SEI 时,使用的流通道类型:
*
* - 0: 主流通道
* - 1: 辅流通道
* - 2: 第三流通道
* - 3: 第四流通道
*
* @return {number}
*
* - 0:方法调用成功。
* - 其他:方法调用失败。
*
*/
sendSEIMsgWithType(data: ArrayBuffer, type: NERtcStreamChannelType): any;
/**
* 在指定用户的画布上截图。
* @param {'local'|number} uid 指定用户的 uid,其中在本地用户画布上截图时,此参数为 local。
* @param {NERtcVideoStreamType} streamType 视频流类型。
*
* - 0:视频流主流。
* - 1:视频流辅流。
* - 2:视频流第三流。
* - 3:视频流第四流。
*
* @returns string 返回 base64 截图数据。
*/
captureImageByUid(uid: 'local' | string, streamType?: NERtcVideoStreamType): string;
/**
* 调节本地播放的指定远端用户的指定流类型的信号音量
* @since 4.1.110
*
* - 加入房间后,您可以多次调用该方法设置本地播放的不同远端用户的音量;也可以反复调节本地播放的某个远端用户的音量。
* NOTE:
* - 请在成功加入房间后调用该方法。
* - 该方法在本次通话中有效。如果远端用户中途退出房间,则再次加入此房间时仍旧维持该设置,通话结束后设置失效。
* - 该方法调节的是本地播放的指定远端用户混音后的音量,且每次只能调整一位远端用户。若需调整多位远端用户在本地播放的音量,则需多次调用该方法。
*
* @param {number} uid 远端用户 ID。
* @param {number} volume volume 播放音量,取值范围为 [0,100]。
*
* - 0:静音。
* - 100:原始音量。
*
* @returns {number}
*
* - 0:方法调用成功。
* - 其他:方法调用失败。
*
*/
adjustUserPlaybackSignalVolume(uid: string, volume: number): number;
/**
* 调节本地播放的指定房间的所有远端用户的信号音量。
* @since V5.4.0
*
* -通过此接口可以实现在通话过程中随时调节指定房间内的所有远端用户在本地播放的混音音量。
* NOTE:
* - 请在引擎初始化之后调用此接口,该方法在加入房间前后都可调用。
* - 该方法设置内部引擎为启用状态,在 leaveChannel 后失效,但在本次通话过程中有效。
*
* @param {number} volume 播放音量,取值范围为 [0,400]。
* @returns {number}
*
* - 0:方法调用成功。
* - 其他:方法调用失败。
*
*/
adjustChannelPlaybackSignalVolume(volume: number): number;
/**
* 开始跨房间媒体流转发。
*
* - 该方法可用于实现跨房间连麦等场景。支持同时转发到 4 个房间,同一个房间可以有多个转发进来的媒体流。
* - 成功调用该方法后,SDK 会触发 onMediaRelayStateChanged 和 onMediaRelayEvent 回调,并在回调中报告当前的跨房间媒体流转发状态和事件。
* NOTE:
* - 此方法仅适用于用户角色为主播时。
* - 成功调用该方法后,若您想再次调用该方法,必须先调用 stopChannelMediaRelay 方法退出当前的转发状态。
* - 成功开始跨房间转发媒体流后,如果您需要修改目标房间,例如添加或删减目标房间等,可以调用方法 updateChannelMediaRelay 更新目标房间信息。
*
* @param {Object} config 跨房间媒体流转发参数配置信息: NERtcChannelMediaRelayConfiguration
* @param {Object} config.src_infos 源房间信息: NERtcChannelMediaRelayInfo
* @param {String} config.src_infos.channel_name 源房间名。默认值为 nil,表示 SDK 填充当前的房间名。
* @param {String} config.src_infos.channel_token 能加入源房间的 Token。
* @param {String} config.src_infos.uid 标识源房间中的转发媒体流的 UID。
* @param {Object} config.dest_infos 目标房间信息: NERtcChannelMediaRelayInfo
* @param {String} config.dest_infos.channel_name 目标房间的房间名。
* @param {String} config.dest_infos.channel_token 可以加入目标房间的 Token。
* @param {String} config.dest_infos.uid 标识目标房间中的转发媒体流的 UID。请确保不要将该参数设为目标房间的主播的 UID,并与目标房间中的 所有 UID 都不同。
* @returns {number}
*
* - 0:方法调用成功。
* - 其他:方法调用失败。
*
*/
startChannelMediaRelay(config: NERtcChannelMediaRelayConfiguration): number;
/**
* 更新媒体流转发的目标房间。
*
* - 成功开始跨房间转发媒体流后,如果您需要修改目标房间,例如添加或删减目标房间等,可以调用此方法。
* - 成功调用该方法后,SDK 会触发 onMediaRelayStateChanged 和 onMediaRelayEvent 回调,并在回调中报告当前的跨房间媒体流转发状态和事件。
* NOTE:
* - 请在加入房间并成功调用 startChannelMediaRelay 开始跨房间媒体流转发后,调用此方法。
*
* @param {Object} config 跨房间媒体流转发参数配置信息: NERtcChannelMediaRelayConfiguration
* @param {Object} config.src_infos 源房间信息: NERtcChannelMediaRelayInfo
* @param {String} config.src_infos.channel_name 源房间名。默认值为 nil,表示 SDK 填充当前的房间名。
* @param {String} config.src_infos.channel_token 能加入源房间的 Token。
* @param {String} config.src_infos.uid 标识源房间中的转发媒体流的 UID。
* @param {Object} config.dest_infos 目标房间信息: NERtcChannelMediaRelayInfo
* @param {String} config.dest_infos.channel_name 目标房间的房间名。
* @param {String} config.dest_infos.channel_token 可以加入目标房间的 Token。
* @param {String} config.dest_infos.uid 标识目标房间中的转发媒体流的 UID。请确保不要将该参数设为目标房间的主播的 UID,并与目标房间中的 所有 UID 都不同。
* @returns {number}
*
* - 0:方法调用成功。
* - 其他:方法调用失败。
*
*/
updateChannelMediaRelay(config: NERtcChannelMediaRelayConfiguration): number;
/**
* 停止跨房间媒体流转发。
*
* 主播离开房间时,跨房间媒体流转发自动停止,您也可以在需要的时候随时调用 stopChannelMediaRelay 方法,此时主播会退出所有目标房间。
* 成功调用该方法后,SDK 会触发 onMediaRelayStateChanged 回调。
*
* @return {number}
*
* - 0:方法调用成功。
* - 其他:方法调用失败。
*
*/
stopChannelMediaRelay(): number;
/**
* 暂停所有媒体流转发。
* @returns {number}
*
* - 0:方法调用成功。
* - 其他:方法调用失败。
*
*/
pauseAllMediaRelay(): number;
/**
* 恢复所有媒体流转发。
* @returns {number}
*
* - 0:方法调用成功。
* - 其他:方法调用失败。
*
*/
resumeAllMediaRelay(): number;
/**
* 设置弱网条件下发布的音视频流回退选项。
*
* 在网络不理想的环境下,发布的音视频质量都会下降。使用该接口并将 option 设置为 kNERtcStreamFallbackAudioOnly 后:
* - SDK 会在上行弱网且音视频质量严重受影响时,自动关断视频流,尽量保证音频质量。
* - 同时 SDK 会持续监控网络质量,并在网络质量改善时恢复音视频流。
* - 当本地发布的音视频流回退为音频流时,或由音频流恢复为音视频流时,SDK 会触发本地发布的媒体流已回退为音频流 onLocalPublishFallbackToAudioOnly 回调。
* NOTE: 请在加入房间(joinChannel)前调用此方法。
*
* @param {number} option 发布音视频流的回退选项:NERTCStreamFallbackOption。
*
* - 0:上行或下行网络较弱时,不对音视频流作回退处理,但不能保证音视频流的质量。
* - 1:在下行网络条件较差的情况下,SDK 将只接收视频小流,即低分辨率、低码率视频流。
* - 2:上行网络较弱时,只发布音频流。下行网络较弱时,先尝试只接收视频小流,即低分辨率、低码率视频流。如果网络环境无法显示视频,则再回退到只接收音频流。
*
* @returns {number}
*
* - 0:方法调用成功。
* - 其他:方法调用失败。
*
*/
setLocalPublishFallbackOption(option: number): number;
/**
* 设置弱网条件下订阅的音视频流回退选项。
* 弱网环境下,订阅的音视频质量会下降。使用该接口并将 option 设置为 #kNERtcStreamFallbackVideoStreamLow 或者 #kNERtcStreamFallbackAudioOnly 后:
* - SDK 会在下行弱网且音视频质量严重受影响时,将视频流切换为小流,或关断视频流,从而保证或提高通信质量。
* - SDK 会持续监控网络质量,并在网络质量改善时自动恢复音视频流。
* - 当远端订阅流回退为音频流时,或由音频流恢复为音视频流时,SDK 会触发远端订阅流已回退为音频流 onRemoteSubscribeFallbackToAudioOnly 回调。
* NOTE:
* - 请在加入房间(joinChannel)前调用此方法。
*
* @param {number} option 发布音视频流的回退选项:NERTCStreamFallbackOption。
*
* - 0:上行或下行网络较弱时,不对音视频流作回退处理,但不能保证音视频流的质量。
* - 1:在下行网络条件较差的情况下,SDK 将只接收视频小流,即低分辨率、低码率视频流。
* - 2:上行网络较弱时,只发布音频流。下行网络较弱时,先尝试只接收视频小流,即低分辨率、低码率视频流。如果网络环境无法显示视频,则再回退到只接收音频流。
*
* @returns {number}
*
* - 0:方法调用成功。
* - 其他:方法调用失败。
*
*/
setRemoteSubscribeFallbackOption(option: number): number;
/**
* 设置远端用户音频流为高优先级。
* @since V5.4.0
*
* 支持在音频自动订阅的情况下,设置某一个远端用户的音频为最高优先级,可以优先听到该用户的音频。
* NOTE:
* - 该接口需要通话中设置,并需要自动订阅打开(默认打开)。
* - 该接口只能设置一个用户的优先级,后设置的会覆盖之前的设置。
* - 该接口通话结束后,优先级设置重置。
*
* @param enable 是否设置音频订阅优先级。
*
* - true 设置音频订阅优先级。
* - false 取消设置音频订阅优先级。
*
* @param {number} uid 用户 ID。
* @return
*
* - 0: 方法调用成功
* - 其他: 调用失败
*
*/
setRemoteHighPriorityAudioStream(enabled: boolean, uid: string): number;
/**
* 开启或关闭本地媒体流(主流)的发送。
* @since V5.4.0
*
* - 该方法用于开始或停止向网络发送本地音频或视频数据。
* - 该方法不影响接收或播放远端媒体流,也不会影响本地音频或视频的采集状态。
* NOTE:
* - 该方法暂时仅支持控制音频流的发送。
* - 该方法在加入房间前后均可调用。
* - 停止发送媒体流的状态会在通话结束后被重置为允许发送。
* - 成功调用该方法切换本地用户的发流状态后,房间内其他用户会收到 onUserAudioStart(开启发送音频)或 onUserAudioStop(停止发送音频)的回调。
*
* @param {boolean} enabled 是否发布本地媒体流。
*
* - true 布本地媒体流(默认)。
* - false 不发布本地媒体流。
*
* @param {number} media_type 媒体发布类型,暂时仅支持音频。
*
* - 0 音频 pub 类型。
*
* @return {number}
*
* - 0: 方法调用成功
* - 其他: 调用失败
*
*/
enableMediaPub(enabled: boolean, type: number): number;
/**
* 更新权限密钥。
* @since V5.4.0
*
* - 通过本接口可以实现当用户权限被变更,或者收到权限密钥即将过期的回调 onPermissionKeyWillExpire 时,更新权限密钥。
* NOTE:
* - 请确保已开通高级 Token 鉴权功能,具体请联系网易云信商务经理。
* - 请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
* - 适用于变更指定用户加入、创建房间或上下麦时发布流相关权限的场景。
*
* @param {string} key 新的权限密钥
* @return {number}
*
* - 0: 方法调用成功
* - 其他: 调用失败
*
*/
updatePermissionKey(key: string): number;
/**
* 上报自定义事件。
* @param {string} eventName 自定义事件名称。
* @param {string} customIdentify 自定义标识符,可为空字符串。
* @param {string} parameters 自定义参数,JSON 格式字符串。
* @returns {number}
*
* - 0:方法调用成功。
* - 其他:方法调用失败。
*
*/
reportCustomEvent(eventName: string, customIdentify: string, parameters: string): number;
/**
* 您可以调用该方法指定只订阅的音频流。
*
* - 此接口需要在加入房间成功后调用。
* - 对于调用接口时不在房间的 uid 不生效。
*
* @param {Array} uids 只订阅此用户 uid 列表 的音频.此列表为全量列表。如果列表为空或 null,取消订阅白名单。例如:[uid1,uid2...]。
* @return {number}
*
* - 0:方法调用成功。
* - 其他:方法调用失败。
*
*/
setSubscribeAudioAllowlist(uids: Array, size: number): number;
/**
* 您可以调用该方法指定不订阅的音频流。
*
* - 此接口需要在加入房间成功后调用。
* - 对于调用接口时不在房间的 uid 不生效。
*
* @param {number} audioStreamType 音频流类型。
*
* - 0: 主流
* - 1: 辅流
* - 2: 第三流
* - 3: 第四流
*
* @param {Array} uids 只订阅此用户 uid 列表 的音频.此列表为全量列表。如果列表为空或 null,取消订阅白名单。例如:[uid1,uid2...]。
* @return {number}
*
* - 0:方法调用成功。
* - 其他:方法调用失败。
*
*/
setSubscribeAudioBlocklist(audioStreamType: number, uids: Array, size: number): number;
/**
* 设置玩家本人在房间中的范围语音模式,该设置不影响其他人。
* @since V5.5.10
*
* - 请在引擎初始化后调用此接口,且该方法在加入房间前后均可调用。
* NOTE:
* - 离开房间后,此参数不会自动重置为默认模式,所以请在每次加入房间之前都调用此方法设置语音模式。
* - 加入房间后,可以随时修改语音模式,并立即生效。
*
* @param {number} mode 范围语音模式,包括所有人和仅小队两种模式。
*
* - 0:默认模式。设置后玩家附近一定范围的人都能听到该玩家讲话,如果范围内也有玩家设置为此模式,则也可以互相通话。
* - 1:小组模式。仅 TeamID 相同的队友可以互相听到
*
* @return {number}
*
* - 0: 方法调用成功
* - 其他: 调用失败
*
*/
setRangeAudioMode(mode: number): number;
/**
* 设置范围语音的小队 ID。
* @since V5.5.10
*
* - 请在引擎初始化后调用此接口,且该方法在加入房间前后均可调用。
* NOTE:
* - 离开房间后,TeamID 失效,需要重新配置 TeamID,请在每次加入房间之前都调用此方法设置 TeamID。
* - 离开房间后,TeamID 失效,需要重新配置 TeamID,请在每次加入房间之前都调用此方法设置队伍号。
* - 如果离开房间后再加入房间,请在收到退房成功回调(onLeaveChannel)后,再调用此方法设置队伍号。
* - 若加入房间后,调用此接口修改队伍号,设置后立即生效。
* - 请配合 #setRangeAudioMode 接口一起使用。
*
* @param {number} team_id 小队 ID, 有效值:>=0。若 team_id = 0,则房间内所有人(不论范围语音的模式是所有人还是仅小队)都可以听到该成员的声音。
* @return {number}
*
* - 0: 方法调用成功
* - 其他: 调用失败
*
*/
setRangeAudioTeamID(team_id: number): number;
/**
* 设置空间音效的距离衰减属性和语音范围。
* @since V5.5.10
*
* - 请在引擎初始化后调用此接口,且该方法在加入房间前后均可调用。
* NOTE:
* - 若要使用范围语音或 3D 音效功能,加入房间前需要调用一次本接口。
* - 仅使用范围语音时,您只需要设置 audible_distance 参数,其他参数设置不生效,填写默认值即可。
*
* @param {number} audible_distance 监听器能够听到扬声器并接收其语音的距离扬声器的最大距离。距离有效范围:[1,max int),无默认值。
* @param {number} conversational_distance 范围语音场景中,该参数设置的值不起作用,保持默认值即可。空间音效场景中,需要配置该参数。控制音频保持其原始音量的范围,超出该范围时,语音聊天的响度在被听到时开始淡出。
* 默认值为 1。
* @param {number} roll_off 范围语音场景中,该参数设置的值不起作用,保持默认值即可。
*
* - 0: 指数模式
* - 1: 线性模式
* - 2: 无衰减
* - 3: 仅线性衰减,没有方位效果
* @return {number}
*
* - 0: 方法调用成功
* - 其他: 调用失败
*
*/
setAudioRecvRange(audible_distance: number, conversational_distance: number, roll_off: number): number;
/**
* 更新本地用户的空间位置。
* @since V5.5.10
*
* - 请在引擎初始化后调用此接口,且该方法在加入房间前后均可调用。
*
* @param {Object} info L 通过 info 参数设置空间音效中说话者和接收者的空间位置信息。
* @param {Array} info.speaker_position 说话者的位置信息,三个值依次表示 X、Y、Z 的坐标值。默认值[0,0,0]。
* @param {Array} info.speaker_quaternion 说话者的旋转信息,通过四元组来表示,数据格式为[w, x, y, z]。默认值[0,0,0,0]。
* @param {Array} info.head_position 接收者的位置信息,三个值依次表示 X、Y、Z 的坐标值。默认值[0,0,0]。
* @param {Array} info.head_quaternion 接收者的旋转信息,通过四元组来表示,数据格式为[w, x, y, z]。默认值[0,0,0,0]。
* @return {number}
*
* - 0: 方法调用成功
* - 其他: 调用失败
*
*/
updateSelfPosition(info: any): number;
/**
* 开启或关闭空间音效的房间混响效果.
* @since V5.4.0
*
* - 请在引擎初始化后调用此接口,且该方法在加入房间前后均可调用。
* - 该接口不支持 Linux 平台
* - 请先调用 enableSpatializer 接口启用空间音效,再调用本接口。
*
* @param {boolean} enable 混响效果开关,默认值关闭。
* @return {number}
*
* - 0: 方法调用成功
* - 其他: 调用失败
*
*/
enableSpatializerRoomEffects(enable: boolean): number;
/**
* 设置空间音效的房间混响属性。
* @since V5.4.0
*
* - 请在引擎初始化后调用此接口,且该方法在加入房间前才可调用。
* - 该接口不支持 Linux。
* - 请先调用 \ref #enableSpatializer 接口启用空间音效,再调用本接口。
*
* @param {Object} config 房间属性。
* @param {number} config.room_capacity 房间大小。
*
* - 0:小房间。
* - 1:中等大小房间。
* - 2:大房间。
* - 3:巨大房间。
* - 4: 无房间效果
*
* @param {number} config.material 房间材质。
*
* - 0: 透明的
* - 1: 声学天花板,未开放
* - 2: 砖块,未开放
* - 3: 涂漆的砖块,未开放
* - 4: 粗糙的混凝土块,未开放
* - 5: 涂漆的混凝土块,未开放
* - 6: 厚重的窗帘
* - 7: 隔音的玻璃纤维,未开放
* - 8: 薄的的玻璃,未开放
* - 9: 茂密的草地,未开放
* - 10: 草地
* - 11: 铺装了油毡的混凝土,未开放
* - 12: 大理石
* - 13: 金属,未开放
* - 14: 镶嵌木板的混凝土,未开放
* - 15: 石膏,未开放
* - 16: 粗糙石膏,未开放
* - 17: 光滑石膏,未开放
* - 18: 木板,未开放
* - 19: 石膏灰胶纸板,未开放
* - 20: 水面或者冰面,未开放
* - 21: 木头天花板,未开放
* - 22: 木头枪板,未开放
* - 23: 均匀分布,未开放
*
* @param {number} config.reflection_scalar 反射比例,默认值 1.0。
* @param {number} config.reverb_gain 混响增益比例因子,默认值 1.0。
* @param {number} config.reverb_time 混响时间比例因子,默认值 1.0。
* @param {number} config.reverb_brightness 混响亮度,默认值 1.0。
* @return {number}
*
* - 0: 方法调用成功
* - 其他: 调用失败
*
*/
setSpatializerRoomProperty(config: any): number;
/**
* 设置空间音效的渲染模式。
* @since V5.4.0
*
* - 请在引擎初始化后调用此接口,且该方法在加入房间前才可调用。
* NOTE:
* - 该接口不支持 Linux 平台。
* - 请先调用 \ref #enableSpatializer 接口启用空间音效,再调用本接口。
*
* @param {number} mode 渲染模式。
*
* - 0: 立体声
* - 1: 双声道低
* - 2: 双声道中
* - 3: 双声道高
* - 4: 仅房间音效
*
* @return {number}
*
* - 0: 方法调用成功
* - 其他: 调用失败
*
*/
setSpatializerRenderMode(mode: number): number;
/**
* 初始化引擎 3D 音效算法。
* @since V5.5.10
*
* - 此接口在加入房间前调用后均可调用。
* NOTE:
* - 该接口不支持 Linux 平台。
*
* @return {number}
*
* - 0: 方法调用成功
* - 其他: 调用失败
*
*/
initSpatializer(): number;
/**
* 开启或关闭空间音效。
* @since V5.4.0
*
* - 请在引擎初始化后调用此接口,且该方法在加入房间前后均可调用。
* NOTE:
* - 该接口不支持 Linux 平台。
* - 开启空间音效后,通话结束时仍保留该开关状态,不重置。
* - 请先调用 \ref #initSpatializer 接口初始化空间音效算法,再调用本接口。
*
* @param {boolean} enable 是否打开 3D 音效算法功能,默认为关闭状态。
*
* - true:开启空间音效。
* - false:关闭空间音效。
*
* @param {boolean} apply_to_team 是否仅本小队开启 3D 音效。默认为 false。
*
* - true:仅在接收本小队的语音时有 3D 音效。
* - false:接收到所有的语音都有 3D 音效。
*
* @return {number}
*
* - 0: 方法调用成功
* - 其他: 调用失败
*
*/
enableSpatializer(enable: boolean, apply_to_team: boolean): number;
/**
* 开启/关闭外部视频源。
* @param {boolean} enabled 是否开启外部视频源。
* @return {number} 0: 成功, 其他: 失败
*/
setExternalVideoSource(enabled: boolean): number;
/**
* 开启/关闭指定流类型的外部视频源。
* @param {number} type 视频流类型。
* @param {boolean} enabled 是否开启外部视频源。
* @return {number} 0: 成功, 其他: 失败
*/
setExternalVideoSourceEx(type: number, enabled: boolean): number;
/**
* 推送外部视频帧。
* @param {Object} frame 视频帧数据。
* @return {number} 0: 成功, 其他: 失败
*/
pushExternalVideoFrame(frame: any): number;
/**
* 推送指定流类型的外部视频帧。
* @param {number} type 视频流类型。
* @param {Object} frame 视频帧数据。
* @return {number} 0: 成功, 其他: 失败
*/
pushExternalVideoFrameWithType(type: number, frame: any): number;
initEventHandler(): void;
/**
* @private
* @ignore
* check if WebGL will be available with appropriate features
* @returns {number} {boolean}
*/
_checkWebGL(): boolean;
/**
* @private
* @ignore
* @param {number} type 0-local 1-remote 2-localsubstream 3-remotesubstream
* @param {number} uid uid get from native engine, differ from electron engine's uid
*/
_getRenderer(type: number, uid: string, streamType?: number): IRenderer | undefined;
/**
* check if data is valid
* @private
* @ignore
* @param {*} header
* @param {*} ydata
* @param {*} udata
* @param {*} vdata
*/
_checkData(header: ArrayBuffer, ydata: ArrayBuffer, udata: ArrayBuffer, vdata: ArrayBuffer): boolean;
/**
* register renderer for target info
* @private
* @ignore
* @param {number} infos
*/
doVideoFrameReceived(infos: any): void;
/**
* @private
* @ignore
* Initializes the renderer.
* @param key Key for the map that store the renderers,
* e.g, uid or `local`
* @param view The Dom elements to render the video.
*/
initRender(key: 'local' | string, view: Element): void;
/**
* @private
* @ignore
* Initializes the renderer of substream.
* @param key Key for the map that store the renderers,
* e.g, uid or `local`
* @param view The Dom elements to render the substream video.
*/
initSubStreamRender(key: 'local' | string, view: Element): void;
captureRender(key: 'local' | string, streamType?: NERtcVideoStreamType): string;
/**
* Destroys the renderer.
* @private
* @ignore
* @param key Key for the map that store the renderers,
* e.g, `uid` or `local`.
* @param onFailure The error callback for the {@link destroyRenderer}
* method.
*/
destroyRender(key: 'local' | string, onFailure?: (err: Error) => void): void;
/**
* Destroys the renderer of substream.
* @private
* @ignore
* @param key Key for the map that store the renderers,
* e.g, `uid` or `local`.
* @param onFailure The error callback for the {@link destroySubStreamRender}
* method.
*/
destroySubStreamRender(key: 'local' | string, onFailure?: (err: Error) => void): void;
}
declare interface NERtcChannel {
/** 发生错误回调。
该回调方法表示 SDK 运行时出现了(网络或媒体相关的)错误。通常情况下,SDK上报的错误意味着SDK无法自动恢复,需要 App 干预或提示用户。
@param error_code 错误代码: #NERtcDMErrorCode.
@param msg 错误描述。
*/
on(event: 'onError', cb: (errorCode: number, msg: string) => void): this;
/** 发生警告回调。
该回调方法表示 SDK 运行时出现了(网络或媒体相关的)警告。通常情况下,SDK 上报的警告信息 App 可以忽略,SDK 会自动恢复。
@param warn_code 错误代码: #NERtcWarnCode.
@param msg 警告描述。
*/
on(event: 'onWarning', cb: (warnCode: number, msg: string) => void): this;
on(event: 'onApiCallExecuted', cb: (apiName: string, code: number, msg: string) => void): this;
/** 加入频道回调。
@param cid 频道 ID。
@param uid 用户 ID。
@param result 返回结果。
@param elapsed 从 joinChannel 开始到发生此事件过去的时间(毫秒)。
*/
on(event: 'onJoinChannel', cb: (cid: string, uid: string, result: NERtcErrorCode, elapsed: number) => void): this;
/** 触发重连。
有时候由于网络原因,客户端可能会和服务器失去连接,SDK会进行自动重连,开始自动重连后触发此回调。
@param cid 频道 ID。
@param uid 用户 ID。
*/
on(event: 'onReconnectingStart', cb: (cid: string, uid: string) => void): this;
/** 连接状态变更。
有时候由于通话流程、用户行为、网络原因等,客户端通话状态变更,触发此回调。
@param state 变更后通话状态。
@param reason 变更原因。
*/
on(event: 'onConnectionStateChange', cb: (state: NERtcConnectionStateType, reason: NERtcReasonConnectionChangedType) => void): this;
/** 重新加入频道回调。
有时候由于网络原因,客户端可能会和服务器失去连接,SDK会进行自动重连,自动重连后触发此回调方法。
@param cid 频道 ID。
@param uid 用户 ID。
@param result 返回结果。
@param elapsed 从开始重连到发生此事件过去的时间(毫秒)。
*/
on(event: 'onRejoinChannel', cb: (cid: string, uid: string, result: NERtcErrorCode, elapsed: number) => void): this;
/** 离开频道回调。
App 调用 \ref IRtcEngine::leaveChannel "leaveChannel" 方法时,SDK提示 App 离开频道是否成功。
@param result 返回结果。
*/
on(event: 'onLeaveChannel', cb: (result: NERtcErrorCode) => void): this;
/** 掉线回调。
由于非网络原因,客户端可能会和服务器失去连接,此时SDK无需自动重连,直接触发此回调方法。
@param reason 返回结果。
*/
on(event: 'onDisconnect', cb: (result: NERtcErrorCode) => void): this;
/** 参会者角色类型变更回调。
本地用户加入房间后,通过 \ref IRtcEngine::setClientRole "setClientRole" 切换用户角色后会触发此回调。例如从主播切换为观众、从观众切换为主播。
直播场景下,如果您在加入房间后调用该方法切换用户角色,调用成功后,会触发以下回调:
- 主播切观众,本端触发onClientRoleChanged回调,远端触发\ref nertc::IRtcEngineEventHandler::onUserLeft "onUserLeft"回调。
- 观众切主播,本端触发onClientRoleChanged回调,远端触发\ref nertc::IRtcEngineEventHandler::onUserJoined "onUserJoined"回调。
@param oldRole 原角色类型。
@param newRole 新角色类型。
*/
on(event: 'onClientRoleChanged', cb: (oldRole: NERtcClientRole, newRole: NERtcClientRole) => void): this;
/** 远端用户加入当前频道回调。
- 通信模式下,该回调提示有远端用户加入了频道,并返回新加入用户的 ID;如果加入之前,已经有其他用户在频道中了,新加入的用户也会收到这些已有用户加入频道的回调。
@param uid 新加入频道的远端用户ID。
@param user_name 新加入频道的远端用户名(无效)。
*/
on(event: 'onUserJoined', cb: (uid: string, userName: string, extra_info: any) => void): this;
on(event: 'onUserJoinedEx', cb: (uid: string, userName: string, extra_info: any) => void): this;
/** 远端用户离开当前频道回调。
提示有远端用户离开了频道(或掉线)。
@param uid 远端用户ID。
@param reason 远端用户离开原因。
*/
on(event: 'onUserLeft', cb: (uid: string, reason: NERtcSessionLeaveReason) => void): this;
on(event: 'onUserLeftEx', cb: (uid: string, reason: NERtcSessionLeaveReason, extra_info: any) => void): this;
/** 远端用户开启音频回调。
@param uid 远端用户ID。
*/
on(event: 'onUserAudioStart', cb: (uid: string) => void): this;
/** 远端用户停用音频回调。
@param uid 远端用户ID。
*/
on(event: 'onUserAudioStop', cb: (uid: string) => void): this;
/** 远端用户是否静音回调。
@param uid 远端用户ID。
@param mute 是否静音。
*/
on(event: 'onUserAudioMute', cb: (uid: string, mute: boolean) => void): this;
on(event: 'onUserSubStreamAudioStart', cb: (uid: string) => void): this;
on(event: 'onUserSubStreamAudioStop', cb: (uid: string) => void): this;
on(event: 'onUserSubStreamAudioMute', cb: (uid: string, numte: boolean) => void): this;
/** 远端用户开启视频回调。
@param uid 远端用户ID。
@param max_profile 最大分辨率。
*/
on(event: 'onUserVideoStart', cb: (uid: string, maxProfile: NERtcVideoProfileType) => void): this;
/** 远端用户停用视频回调。
@param uid 远端用户ID。
*/
on(event: 'onUserVideoStop', cb: (uid: string) => void): this;
/** 远端用户是否禁视频流回调。
@param uid 远端用户ID。
@param mute 是否禁视频流。
*/
on(event: 'onUserVideoMute', cb: (uid: string, mute: boolean) => void): this;
on(event: 'onUserVideoMuteEx', cb: (streamType: number, uid: string, mute: boolean) => void): this;
/** 远端用户开启辅流视频回调。
@param uid 远端用户ID。
@param max_profile 最大分辨率。
*/
on(event: 'onUserSubStreamVideoStart', cb: (uid: string, max_profile: NERtcVideoProfileType) => void): this;
/** 远端用户停用辅流视频回调。
@param uid 远端用户ID。
*/
on(event: 'onUserSubStreamVideoStop', cb: (uid: string) => void): this;
/**
* 屏幕共享暂停/恢复/开始/结束等回调
*/
on(event: 'onScreenCaptureStatus', cb: (status: number) => void): this;
/** 已接收到远端音频首帧回调。
@param uid 发送音频帧的远端用户的用户 ID。
*/
on(event: 'onFirstAudioDataReceived', cb: (uid: string) => void): this;
/** 已显示首帧远端视频回调。
第一帧远端视频显示在视图上时,触发此调用。
@param uid 用户 ID,指定是哪个用户的视频流。
*/
on(event: 'onFirstVideoDataReceived', cb: (uid: string) => void): this;
on(event: 'onFirstVideoDataReceivedEx', cb: (type: number, uid: string) => void): this;
/** 已解码远端音频首帧的回调。
@param uid 远端用户 ID。
*/
on(event: 'onFirstAudioFrameDecoded', cb: (uid: string) => void): this;
/** 已接收到远端视频并完成解码回调。
引擎收到第一帧远端视频流并解码成功时,触发此调用。 App 可在此回调中设置该用户的 video canvas。
@param uid 用户 ID,指定是哪个用户的视频流。
@param width 视频流宽(px)。
@param height 视频流高(px)。
*/
on(event: 'onFirstVideoFrameDecoded', cb: (uid: string, width: number, height: number) => void): this;
on(event: 'onFirstVideoFrameDecodedEx', cb: (type: number, uid: string, width: number, height: number) => void): this;
/** 提示频道内本地用户瞬时音量的回调。
该回调默认禁用。可以通过 enableAudioVolumeIndication 方法开启;
开启后,本地用户说话,SDK 会按 enableAudioVolumeIndication 方法中设置的时间间隔触发该回调。
如果本地用户将自己静音(调用了 muteLocalAudioStream),SDK 将音量设置为 0 后回调给应用层。
@param volume (混音后的)音量,取值范围为 [0,100]。
*/
on(event: 'onLocalAudioVolumeIndication', cb: (volume: number) => void): this;
on(event: 'onLocalAudioVolumeIndicationEx', cb: (volume: number, enable_vad: boolean) => void): this;
/** 提示频道内谁正在说话及说话者瞬时音量的回调。
该回调默认禁用。可以通过 enableAudioVolumeIndication 方法开启;
开启后,无论频道内是否有人说话,SDK 都会按 enableAudioVolumeIndication 方法中设置的时间间隔触发该回调。
在返回的 speakers 数组中:
- 如果有 uid 出现在上次返回的数组中,但不在本次返回的数组中,则默认该 uid 对应的远端用户没有说话。
- 如果volume 为 0,表示该用户没有说话。
- 如果speakers 数组为空,则表示此时远端没有人说话。
@param speakers 每个说话者的用户 ID 和音量信息的数组: NERtcAudioVolumeInfo
@param speaker_number speakers 数组的大小,即说话者的人数。
@param total_volume (混音后的)总音量,取值范围为 [0,100]。
*/
on(event: 'onRemoteAudioVolumeIndication', cb: (speakers: Array, speaker_number: number, total_volume: number) => void): this;
/** 通知添加直播任务结果。
该回调异步返回 \ref IRtcEngineEx::addLiveStreamTask "addLiveStreamTask" 接口的调用结果;实际推流状态参考 \ref IRtcEngineEventHandlerEx::onLiveStreamState "onLiveStreamState"
@param task_id 任务id
@param url 推流地址
@param error_code 结果
- 0: 调用成功;
- 其他: 调用失败。
*/
on(event: 'onAddLiveStreamTask', cb: (task_id: string, url: string, error: number) => void): this;
/** 通知更新直播任务结果。
该回调异步返回 \ref IRtcEngineEx::updateLiveStreamTask "updateLiveStreamTask" 接口的调用结果;实际推流状态参考 \ref IRtcEngineEventHandlerEx::onLiveStreamState "onLiveStreamState"
@param task_id 任务id
@param url 推流地址
@param error_code 结果
- 0: 调用成功;
- 其他: 调用失败。
*/
on(event: 'onUpdateLiveStreamTask', cb: (task_id: string, url: string, error: number) => void): this;
/** 通知删除直播任务结果。
该回调异步返回 \ref IRtcEngineEx::removeLiveStreamTask "removeLiveStreamTask" 接口的调用结果;实际推流状态参考 \ref IRtcEngineEventHandlerEx::onLiveStreamState "onLiveStreamState"
@param task_id 任务id
@param error_code 结果
- 0: 调用成功;
- 其他: 调用失败。
*/
on(event: 'onRemoveLiveStreamTask', cb: (task_id: string, error: number) => void): this;
/** 通知直播推流状态
@param task_id 任务id
@param url 推流地址
@param state #NERtcLiveStreamStateCode, 直播推流状态
- 505: 推流中;
- 506: 推流失败;
- 511: 推流结束;
*/
on(event: 'onLiveStreamState', cb: (task_id: string, url: string, state: NERtcLiveStreamStateCode) => void): this;
/** 收到远端流的 SEI 内容回调。
* @param uid 发送该 sei 的用户 id
* @param data 接收到的 sei 数据
*/
on(event: 'onRecvSEIMsg', cb: (uid: string, data: ArrayBuffer) => void): this;
/**
* 跨房间媒体流转发状态发生改变回调。
* @param {number} state 当前跨房间媒体流转发状态。
*
* - 0 初始状态。在成功调用 stopChannelMediaRelay 停止跨房间媒体流转发后,会回调该状态。
* - 1 尝试跨房间转发媒体流。
* - 2 源房间主播角色成功加入目标房间。
* - 3 发生异常,请参考 onMediaRelayEvent 的 error 中提示的错误信息。
*
* @param {string} channel_name 媒体流转发的目标房间名。
*/
on(event: 'onMediaRelayStateChanged', cb: (state: number, channel_name: String) => void): this;
/**
* 媒体流相关转发事件回调。
* @param {number} event 当前媒体流转发事件。
*
* - 0 媒体流转发停止。
* - 1 正在连接服务器,开始尝试转发媒体流。
* - 2 连接服务器成功。
* - 3 视频音频媒体流成功转发到目标房间。
* - 4 音频媒体流成功转发到目标房间。
* - 100 媒体流转发失败。
*
* @param {string} channel_name 转发的目标房间名。
* @param {number} error 相关错误码。
*/
on(event: 'onMediaRelayEvent', cb: (event: number, channel_name: String, error: number) => void): this;
/**
* 本地发布流已回退为音频流、或已恢复为音视频流回调。
* @param {boolean} is_fallback 本地发布流已回退或已恢复。
*
* - true:由于网络环境不理想,发布的媒体流已回退为音频流。
* - false:由于网络环境改善,从音频流恢复为音视频流。
*
* @param {number} stream_type 对应的视频流类型。
*
* - 0 主流
* - 1 辅流
* - 2 第三流
* - 3 第四流
*
*/
on(event: 'onLocalPublishFallbackToAudioOnly', cb: (is_fallback: boolean, stream_type: number) => void): this;
/**
* 订阅的远端流已回退为音频流、或已恢复为音视频流回调。
* @param {number} uid 远端用户的 ID。
* @param {boolean} is_fallback 远端订阅流已回退或恢复。
*
* - true:由于网络环境不理想,发布的媒体流已回退为音频流。
* - false:由于网络环境改善,从音频流恢复为音视频流。
*
* @param {number} stream_type 对应的视频流类型。
*
* - 0 主流
* - 1 辅流
* - 2 第三流
* - 3 第四流
*
*/
on(event: 'onRemoteSubscribeFallbackToAudioOnly', cb: (uid: string, is_fallback: boolean, stream_type: number) => void): this;
/**
* 服务端禁言音视频权限变化回调。
* @since V5.4.0
* @param {boolean} is_audio_banned 是否禁用音频。
*
* - true 禁用音频。
* - false 取消禁用音频。
*
* @param {boolean} is_video_banned 是否禁用视频。
*
* - true 禁用视频。
* - false 取消禁用视频。
*
*/
on(event: 'onMediaRightChange', cb: (is_audio_banned: boolean, is_video_banned: boolean) => void): this;
/**
* 权限密钥即将过期事件回调。
* @since V5.4.0
*
* 由于 PermissionKey 具有一定的时效,在通话过程中如果 PermissionKey 即将失效,SDK 会提前 30 秒触发该回调,提醒用户更新 PermissionKey。
*
*/
on(event: 'onPermissionKeyWillExpire', cb: () => void): this;
/**
* 更新权限密钥事件回调。
* @since V5.4.0
* @param {string} key 新的权限密钥。
* @param {number} code 错误码。
* @param {number} time 更新后的权限密钥剩余有效时间,单位为秒。
*/
on(event: 'onUpdatePermissionKey', cb: (key: string, code: number, time: number) => void): this;
}
export default NERtcChannel;