import { ZegoExpressWebRTMEngine } from './zego.client.rtm'; import { ZegoExpressRangeAudio } from './ZegoExpressRangeAudio.web'; import { ZegoRealTimeSequentialDataManager } from './ZegoExpressDataChannel.web'; import { ZegoAudioEffectPlayer } from './ZegoAudioEffectPlayer.web'; import { ZegoStreamView } from './ZegoStreamView.web'; import { AiDenoiseMode, ZegoLiveAudioEffectMode, ZegoReverbPreset, ZegoVoiceChangerPreset } from './ZegoVoiceChangerEntity.web'; import { ZegoEvent, ZegoCapabilityDetection, ZegoDeviceInfos, ZegoDeviceInfo, ZegoLocalStreamConfig, ZegoMixStreamAdvance, ZegoMixStreamConfig, ZegoPublishStreamAudioConfig, ZegoPublishStreamConfig, ZegoServerResponse, ZegoWebPlayOption, ZegoWebPublishOption, ZegoCheckSingleType, ZegoElectronScreenSource, ZegoEffectsBeautyParam, ZegoSEIConfig, ZegoPublishStats, ZegoPlayStats, SoundLevelDelegateOptions, ZegoLowlightEnhancementMode, ZegoAutoSwitchDeviceConfig, BackgroundBlurOptions, BackgroundVirtualOptions, Segmentation, ZegoGeoFenceType, ZegoStreamUpdateType, AudioFrameOptions, ZegoAutoMixerTask, ZegoAudioFrame } from './ZegoExpressEntity.web'; import { ZegoScenario } from '../../src/common/zego.entity'; import { ZegoStreamOptions } from '../../src/common/zego.entity.web'; import { ZegoCopyrightedMusic } from './ZegoCopyrightedMusic.web'; import { ZegoStreamCompositor } from './ZegoStreamCompositor.web'; import ZegoLocalStream from './ZegoLocalStream.web'; /** * 实时音视频引擎 * * Note: 详情描述:该类用于初始化 Express SDK 引擎实例。 * */ export declare class ZegoExpressEngine extends ZegoExpressWebRTMEngine { /** * 当前SDK版本 * * Note: 支持版本:3.8.0 * * Note: 详情描述:需要查看当前版本时调用。 * * Note: 业务场景:日志收集时建议使用。 * * @return 为 string 字符串,例如“1.0.0.标识” */ static version: any; /** * 初始化 Engine * * Note: 支持版本:1.0.0 * * Note: 详情描述:实例化对象。 * * Note: 业务场景:所有场景必须。 * * Note: 默认值:无默认值,所有参数必须填写。 * * Note: 调用时机:第一个调用。 * * Note: 使用限制:无 * * Note: 注意事项:server 建议填写数组,备用域名抗弱网能力更强。 * * Note: 影响范围:无 * * Note: 相关回调:无 * * Note: 相关接口:无 * * Note: 平台差异:无 * * @param appID 用于区分不同客户和项目的唯一标识(必须为 number 类型),且必须从即构控制台获取。一个 appID 对应一个客户项目,不同端共有一个 appID 实现互通 ,一个客户可以申请多个 appID。 * @param server 表示 SDK 连接的即构服务器地址(支持备用域名),必须从控制台获取,SDK 内的大多数功能都通过该服务器地址交互 。同一个 appID 可以填写多个 server。 */ constructor(appID: number, server: string | string[], options?: { scenario: number; }); /** * 设置引擎进阶配置。 * * Note: 支持版本:2.21.0 及以上。 * * Note: 详情描述:设置引擎进阶配置。 * * Note: 业务场景:需要对SDK引擎进行特殊的配置操作时使用,详情可咨询 ZEGO 技术支持。 * * @param config 引擎进阶配置。 */ setEngineConfig(config: any): void; /** * 设置引擎进阶配置。 * * 支持版本:2.26.0 * * 详情描述:设置引擎进阶配置。 * * 业务场景:需要对SDK引擎进行特殊的配置操作时使用,详情可咨询 ZEGO 技术支持。 * * 调用时机:在调用 new 创建引擎之前调用。 * * @param options 引擎进阶配置。 */ static setEngineOptions(options: any): void; /** * 设置地理围栏。 * * 支持版本:2.26.0 及以上。 * * 详情描述:开发者需要使用地理围栏功能时,需要调用此函数来完成配置。 * * 调用时机:必须在调用 new 之前设置才生效,否则会失败。 * * 使用限制:如果需要使用地理围栏功能,请联系 ZEGO 技术支持。 * * @param type 地理围栏类型。详情描述:用于设置地理围栏类型。 * @param areaList 地理围栏区域列表。详情描述:用于描述地理围栏范围。 */ static setGeoFence(type: ZegoGeoFenceType, areaList: number[]): void; /** * 设置房间场景 * * 支持版本:2.21.0及以上。 * * 详情描述:开发者可设置房间的使用场景,SDK 会针对不同的场景采取不同的优化策略,以便获取更优的效果;此函数的作用与初始化引擎实例 [options] 配置中的 [scenario] 参数完全一致。 * * 业务场景:此函数适用于多种音视频业务场景的设置修改,例如有 1v1 音视频通话场景和秀场直播场景;通过此函数可以实现在同一个引擎实例的前提下切换场景。 * * 默认值:无 * * 调用时机/通知时机:必须在调用 [loginRoom] 之前设置,生效于后面调用的 [createStream] ,对于已经创建生成的流不生效。 * * 使用限制:一旦登录了房间就不再允许修改房间场景,若需要修改场景需要先退出房间,若登录了多个房间则需要退出所有房间后才能修改。 * * 注意事项: * 同一个房间内的用户建议使用同一种房间场景以获得最佳效果。 * 设置场景会影响音视频码率、帧率、分辨率、编码类型、3A、耳返等音视频配置,若开发者有特殊需求可以在设置房间场景后再调用其他各种 API 来设置上述配置。 * 调用此函数将覆盖 [new ZegoExpressEngine] 时指定的场景或上一次调用此函数设置的场景。 * * @param scenario 场景值 * * @return true 为设置成功,false 为设置失败。 */ setRoomScenario(scenario: ZegoScenario): boolean; /** * 设置 SEI 相关配置信息 * * Note: 支持版本:2.16.0 及以上。 * * Note: 详情描述:设置 SEI 额外的配置信息。 * * Note: 业务场景:开启 SEI 功能时若需要配置。 * * Note: 调用时机:初始化后。 * * Note: 注意事项: 无。 * * Note: 相关回调:无。 * * @param config SEI 功能相关配置。 */ setSEIConfig(config: ZegoSEIConfig): void; /** * 引入模块,可以通过该接口按需引入其他模块。 * * Note: 支持版本:2.10.0 及以上。 * * Note: 详情描述:可以通过该接口来按需引入其他功能模块,如背景虚化、AI 降噪等功能模块。该方法是静态方法。 * * Note: 调用时机:初始化 ZegoExpressEngine 实例后。 * * @param module 功能模块。 */ static use(module: any): void; /** * 支持能力检测接口 * * Note: 支持版本:1.0.0 * * Note: 详情描述:检测浏览器兼容性。 * * Note: 业务场景:音视频中很多功能只有较新版本的主流浏览器才支持,可以通过该接口来检测。 * * Note: 默认值:none * * Note: 调用时机:初始化之后,创建流之前调用。 * * Note: 使用限制:无 * * Note: 注意事项: * 1. 真实支持度除了依赖浏览器外,还依赖系统, 因此有较低概率监测不准的情况。 * 2. 选择检查摄像头或麦克风能力时浏览器会弹框提示要求允许设备权限。 * 3. 在仅使用拉流不推流的情况下不需要检查设备能力,只需要检查 "webRTC", "H264" 或 "VP8"。示例:`const result = await zg.checkSystemRequirements("webRTC")`。 * * Note: 影响范围:无 * * Note: 相关回调:无 * * Note: 相关接口:无 * * Note: 平台差异:无 * * @param checkType 指定检查一项浏览器所能支持能力,如: webRTC, VP8 等,该参数不传默认检查所有可支持的能力。 * @param checkLevel 检测编码格式的等级,0 表示快速检测,准确率高。1 表示精准检测但可能消耗时间长,准确率更高。 */ checkSystemRequirements(checkType?: T, checkLevel?: 0 | 1): Promise; /** * 删除注册过的回调事件 * * Note: 支持版本:1.0.0 * * Note: 详情描述:ZegoEvent 包括了 [ZegoRTCEvent](https://doc-zh.zego.im/article/api?doc=Express_Video_SDK_API~javascript_web~interface~ZegoRTCEvent) 与 [ZegoRTMEvent](https://doc-zh.zego.im/article/api?doc=Express_Video_SDK_API~javascript_web~interface~ZegoRTMEvent) ,用于处理 SDK 主动通知开发者回调的接口,用于删除注册的同一类回调事件。 * * Note: 业务场景:通用接口,必选。 * * Note: 调用时机:注册之后,退出房间之前。 * * Note: 默认值:无 * * Note: 使用限制:无 * * Note: 注意事项:同类事件有多个时,都会被删除。 * * Note: 影响范围:无 * * Note: 相关回调:无 * * Note: 相关接口:无 * * Note: 平台差异:无 * * @param event 监听事件名 * @param callBack 回调函数,可选 */ off(event: K, callBack?: ZegoEvent[K]): boolean; /** * 注册回调事件 * * Note: 支持版本:1.0.0 及以上 * * Note: 详情描述:ZegoEvent 包括了 [ZegoRTCEvent](https://doc-zh.zego.im/article/api?doc=Express_Video_SDK_API~javascript_web~interface~ZegoRTCEvent) 与 [ZegoRTMEvent](https://doc-zh.zego.im/article/api?doc=Express_Video_SDK_API~javascript_web~interface~ZegoRTMEvent) ,用于处理 SDK 主动通知开发者回调的接口,通过注册不同 event 的事件,可以收到不同功能的回调。 * * Note: 业务场景:通用接口,用于监听 SDK 的业务事件。 * * Note: 调用时机:初始化实例之后,调用接口 loginRoom 登录房间之前。 * * Note: 注意事项:同样的事件可以注册多个, 相同的注册事件,会根据注册的先后顺序依次触发。 * * Note: 相关接口:调用接口 off 来注销对应回调事件处理。 * * @param event 监听事件名。 * @param callBack 回调函数。 * * @return 注册是否成功。 */ on(event: K, callBack: ZegoEvent[K]): boolean; /** * 创建推流数据源,包括摄像头麦克风采集源数据,屏幕共享数据,第三方源数据(能在页面播放的其他源数据) * * Note: 支持版本:1.0.0 及以上。 * * Note: 详情描述:创建媒体流并设置推流相关参数,包括摄像头采集流、屏幕共享捕捉流、本地或者在线媒体流等多种类型。 * * Note: 业务场景:用于获取摄像头画面或者当前屏幕画面。 * * Note: 默认值:默认为摄像头采集流,默认为高清格式。 * * Note: 调用时机:初始化且调用接口 checkSystemRequirements 检测返回的结果支持后可调用。 * * Note: 注意事项: * 1. 移动端和 pc 端对视频宽高的理解不一样,两者恰好相反,同样的分辨率在 pc 端是横屏,在移动端就是竖屏。 * 2. 必须在安全域名下(https,localhost,127.0.0.1)调用该接口。 * 3. 推第三方流时,传入的