/**
* 应用使用场景
* @enum {number}
*/
const ZegoScenario =
{
/**
* @description 通用场景,SDK 为大多数使用场景提供的默认模式,开发者如果不是很确定自己产品的使用场景,可选择此场景模式。
*/
General: 0,
/**
* @description 实时通讯场景,常用于 1V1 通话、多人通话等对实时性要求较高的通讯场景。
*/
Communication: 1,
/**
* @description 直播场景,常用于 1 对多直播 等直播场景。
*/
Live: 2,
}
/**
* 语言
* @enum {number}
*/
const ZegoLanguage =
{
/**
* @description 英文
*/
English: 0,
/**
* @description 中文
*/
Chinese: 1,
}
/**
* 引擎状态
* @enum {number}
*/
const ZegoEngineState =
{
/**
* @description 引擎已开启
*/
Start: 0,
/**
* @description 引擎已停止
*/
Stop: 1,
}
/**
* 房间状态
* @enum {number}
*/
const ZegoRoomState =
{
/**
* @description 未连接状态,在登陆房间前和退出房间之后进入该状态。如果登陆房间的过程出现稳态异常,例如 AppID 和 AppSign 不正确,或者有相同用户名在其他地方登陆导致本端被 KickOut,都会进入该状态
*/
Disconnected: 0,
/**
* @description 正在请求连接状态,登陆房间动作执行成功后会进入此状态。通常通过该状态进行应用界面的展示。如果因为网络质量不佳产生的中断, SDK 会进行内部重试,也会回到正在请求连接状态
*/
Connecting: 1,
/**
* @description 连接成功状态,进入该状态表示登陆房间已经成功,用户可以正常收到房间内的用户和流信息增删的回调通知
*/
Connected: 2,
}
/**
* 推流通道
* @enum {number}
*/
const ZegoPublishChannel =
{
/**
* @description 主推流通道,默认通道
*/
Main: 0,
/**
* @description 辅推流通道(第二路推流通道)
*/
Aux: 1,
/**
* @description 第三路推流通道
*/
Third: 2,
/**
* @description 第四路推流通道
*/
Fourth: 3,
}
/**
* 视频渲染填充模式
* @enum {number}
*/
const ZegoViewMode =
{
/**
* @description 等比缩放,可能有黑边
*/
AspectFit: 0,
/**
* @description 等比缩放填充整个 View,可能有部分被裁减
*/
AspectFill: 1,
/**
* @description 填充整个 View,图像可能被拉伸
*/
ScaleToFill: 2,
}
/**
* 预览或拉流端的镜像模式。
* @enum {number}
*/
const ZegoVideoMirrorMode =
{
/**
* @description 只有本地预览时才是镜像画面,默认采用此模式。
*/
OnlyPreviewMirror: 0,
/**
* @description 本地预览和拉流端看到的视频都是镜像画面。
*/
BothMirror: 1,
/**
* @description 本地预览和拉流端看到的视频都不是镜像画面。
*/
NoMirror: 2,
/**
* @description 只有拉流端看到的视频才是镜像画面。
*/
OnlyPublishMirror: 3,
}
/**
* SEI 类型
* @enum {number}
*/
const ZegoSEIType =
{
/**
* @description 采用 H.264 的 SEI (nalu type = 6, payload type = 243) 类型打包,此类型是 SEI 标准未规定的类型,跟视频编码器或者视频文件中的 SEI 不存在冲突性,用户不需要根据 SEI 的内容做过滤,SDK 默认采用此种类型。
*/
ZegoDefined: 0,
/**
* @description 采用 H.264 的 SEI (nalu type = 6, payload type = 5) 类型打包,H.264 标准对于此类型有规定的格式:startcode + nalu type (6) + payload type (5) + len + payload (uuid + context) + trailing bits;因为视频编码器自身会产生 payload type 为 5 的 SEI,或者使用视频文件推流时,视频文件中也可能存在这样的 SEI,所以使用此类型时,用户需要把 uuid + content 当作 buffer 塞给发送 SEI 的函数;此时为了区别视频编码器自身产生的 SEI, App 在发送此类型 SEI 时,可以填写业务特定的 uuid (uuid 长度为 16 字节),接收方使用 SDK 解析 payload type 为 5 的 SEI 时,会根据设置的过滤字符串过滤出 uuid 相符的 SEI 抛给业务,如果没有设置过滤字符串,SDK 会把所有收到的 SEI 都抛给开发者。
*/
UserUnregister: 1,
}
/**
* 推流状态
* @enum {number}
*/
const ZegoPublisherState =
{
/**
* @description 未推流状态,在推流前处于该状态。如果推流过程出现稳态的异常,例如 AppID 和 AppSign 不正确,或者如果其他用户已经在推送流,推送相同流 ID 的流会失败,都会进入未推流状态
*/
NoPublish: 0,
/**
* @description 正在请求推流状态,推流操作执行成功后会进入正在请求推流状态,通常通过该状态进行 UI 界面的展示。如果因为网络质量不佳产生的中断,SDK 会进行内部重试,也会回到正在请求推流状态
*/
PublishRequesting: 1,
/**
* @description 正在推流状态,进入该状态表明推流已经成功,用户可以正常通信
*/
Publishing: 2,
}
/**
* 变声器预设值
* @enum {number}
*/
const ZegoVoiceChangerPreset =
{
/**
* @description 无变声
*/
None: 0,
/**
* @description 男声变童声(萝莉声效)
*/
MenToChild: 1,
/**
* @description 男声变女声(幼儿园声效)
*/
MenToWomen: 2,
/**
* @description 女声变童声
*/
WomenToChild: 3,
/**
* @description 女声变男声
*/
WomenToMen: 4,
/**
* @description 歪果仁声效
*/
Foreigner: 5,
/**
* @description 汽车人擎天柱声效
*/
OptimusPrime: 6,
/**
* @description 机器人声效
*/
Android: 7,
/**
* @description 空灵声效
*/
Ethereal: 8,
/**
* @description 磁性男声效
*/
MaleMagnetic: 9,
/**
* @description 清新女声效
*/
FemaleFresh: 10,
/**
* @description C大调电音音效
*/
MajorC: 11,
/**
* @description A小调电音音效
*/
MinorA: 12,
/**
* @description 和声小调电音音效
*/
HarmonicMinor: 13,
}
/**
* 混响预设值
* @enum {number}
*/
const ZegoReverbPreset =
{
/**
* @description 无混响
*/
None: 0,
/**
* @description 小房间混响效果
*/
SoftRoom: 1,
/**
* @description 大房间混响效果
*/
LargeRoom: 2,
/**
* @description 音乐厅混响效果
*/
ConcertHall: 3,
/**
* @description 山谷混响效果
*/
Valley: 4,
/**
* @description 录音棚混响效果
*/
RecordingStudio: 5,
/**
* @description 地下室混响效果
*/
Basement: 6,
/**
* @description KTV 混响效果
*/
KTV: 7,
/**
* @description 流行混响效果
*/
Popular: 8,
/**
* @description 摇滚混响效果
*/
Rock: 9,
/**
* @description 演唱会混响效果
*/
VocalConcert: 10,
/**
* @description 留声机混响效果
*/
GramoPhone: 11,
}
/**
* 视频配置分辨率与比特率预设枚举。预设的分辨率分别针对移动端与桌面端做了适配。在移动端上 height 长于 width,而桌面端相反。例如 1080p 在移动端上实际为 1080(w) x 1920(h),而在桌面端上实际为 1920(w) x 1080(h)
* @enum {number}
*/
const ZegoVideoConfigPreset =
{
/**
* @description 设置分辨率为 320x180,默认采用 15 fps,码率 300 kbps
*/
Preset180P: 0,
/**
* @description 设置分辨率为 480x270,默认采用 15 fps,码率 400 kbps
*/
Preset270P: 1,
/**
* @description 设置分辨率为 640x360,默认采用 15 fps,码率 600 kbps
*/
Preset360P: 2,
/**
* @description 设置分辨率为 960x540,默认采用 15 fps,码率 1200 kbps
*/
Preset540P: 3,
/**
* @description 设置分辨率为 1280x720,默认采用 15 fps,码率 1500 kbps
*/
Preset720P: 4,
/**
* @description 设置分辨率为 1920x1080,默认采用 15 fps,码率 3000 kbps
*/
Preset1080P: 5,
}
/**
* 流质量等级
* @enum {number}
*/
const ZegoStreamQualityLevel =
{
/**
* @description 质量极好
*/
Excellent: 0,
/**
* @description 质量好
*/
Good: 1,
/**
* @description 质量正常
*/
Medium: 2,
/**
* @description 质量差
*/
Bad: 3,
/**
* @description 质量异常
*/
Die: 4,
/**
* @description 质量未知
*/
Unknown: 5,
}
/**
* 音频声道
* @enum {number}
*/
const ZegoAudioChannel =
{
/**
* @description 未知
*/
Unknown: 0,
/**
* @description 单声道
*/
Mono: 1,
/**
* @description 双声道
*/
Stereo: 2,
}
/**
* 音频采集双声道模式
* @enum {number}
*/
const ZegoAudioCaptureStereoMode =
{
/**
* @description 不开启双声道采集,即单声道采集
*/
None: 0,
/**
* @description 始终开启双声道采集
*/
Always: 1,
/**
* @description 自适应模式,当仅推流时采集双声道,当推拉流(如通话/连麦场景)时采集单声道
*/
Adaptive: 2,
}
/**
* 音频编码器
* @enum {number}
*/
const ZegoAudioCodecID =
{
/**
* @description default
*/
Default: 0,
/**
* @description Normal
*/
Normal: 1,
/**
* @description Normal2
*/
Normal2: 2,
/**
* @description Normal3
*/
Normal3: 3,
/**
* @description Low
*/
Low: 4,
/**
* @description Low2
*/
Low2: 5,
/**
* @description Low3
*/
Low3: 6,
}
/**
* 视频编码格式
* @enum {number}
*/
const ZegoVideoCodecID =
{
/**
* @description 默认编码 (H.264)
*/
Default: 0,
/**
* @description 分层编码 (H.264 SVC)
*/
SVC: 1,
/**
* @description VP8
*/
VP8: 2,
/**
* @description H.265
*/
H265: 3,
}
/**
* 拉流播放的视频分层
* @enum {number}
*/
const ZegoPlayerVideoLayer =
{
/**
* @description 根据网络状态选择图层
*/
Auto: 0,
/**
* @description 指定拉基本层(小分辨率)
*/
Base: 1,
/**
* @description 指定拉扩展层(大分辨率)
*/
BaseExtend: 2,
}
/**
* 视频流类型
* @enum {number}
*/
const ZegoVideoStreamType =
{
/**
* @description 根据网络状态自动选择流类型
*/
Default: 0,
/**
* @description 小分辨率类型
*/
Small: 1,
/**
* @description 大分辨率类型
*/
Big: 2,
}
/**
* 回声消除模式。
* @enum {number}
*/
const ZegoAECMode =
{
/**
* @description 激进的回声抵消,可能会影响音质稍微明显,但是回声会消除得很干净。
*/
Aggressive: 0,
/**
* @description 适度的回声抵消,就是可能会稍微影响一点点音质,但是残留的回声会更少。
*/
Medium: 1,
/**
* @description 舒适的回声抵消,就是回声抵消基本不会影响声音的音质,可能有时会残留一点回声,但不会影响正常听音。
*/
Soft: 2,
}
/**
* 噪声抑制模式
* @enum {number}
*/
const ZegoANSMode =
{
/**
* @description 轻度的噪声抑制,基本不会损伤音质,但会残留一些噪声。
*/
Soft: 0,
/**
* @description 适度的噪声抑制,有可能损伤一些音质,但有不错的降噪效果。
*/
Medium: 1,
/**
* @description 激进的噪声抑制,有可能明显损伤音质,但有很好的降噪效果。
*/
Aggressive: 2,
}
/**
* 当发生流量控制时可供调节的属性(位掩码枚举)
* @enum {number}
*/
const ZegoTrafficControlProperty =
{
/**
* @description 基础属性(自适应(降低)视频码率)
*/
Basic: 0,
/**
* @description 自适应(降低)视频帧率
*/
AdaptiveFPS: 1,
/**
* @description 自适应(降低)视频分辨率
*/
AdaptiveResolution: 1 << 1,
/**
* @description 自适应(降低)音频码率
*/
AdaptiveAudioBitrate: 1 << 2,
}
/**
* 流控触发最低码率时的视频发送模式
* @enum {number}
*/
const ZegoTrafficControlMinVideoBitrateMode =
{
/**
* @description 低于设置的最低码率时,停止视频发送
*/
NoVideo: 0,
/**
* @description 低于设置的最低码率时,视频以极低的频率发送(不超过 2 FPS)
*/
UltraLowFPS: 1,
}
/**
* 触发流量控制的因素
* @enum {number}
*/
const ZegoTrafficControlFocusOnMode =
{
/**
* @description 只关注本地网络
*/
ZegoTrafficControlFounsOnLocalOnly: 0,
/**
* @description 关注本地网络, 同时也兼顾远端网络,目前只在 1v1 场景下有效
*/
ZegoTrafficControlFounsOnRemote: 1,
}
/**
* 拉流状态
* @enum {number}
*/
const ZegoPlayerState =
{
/**
* @description 未拉流状态,在拉流前处于该状态。如果拉流过程出现稳态的异常,例如 AppID 和 AppSign 不正确,都会进入未拉流状态
*/
NoPlay: 0,
/**
* @description 正在请求拉流状态,拉流操作执行成功后会进入正在请求拉流状态,通常通过该状态进行应用界面的展示。如果因为网络质量不佳产生的中断,SDK 会进行内部重试,也会回到正在请求拉流状态
*/
PlayRequesting: 1,
/**
* @description 正在拉流状态,进入该状态表明拉流已经成功,用户可以正常通信
*/
Playing: 2,
}
/**
* 拉流媒体事件
* @enum {number}
*/
const ZegoPlayerMediaEvent =
{
/**
* @description 拉流端出现音频卡顿事件
*/
AudioBreakOccur: 0,
/**
* @description 拉流端音频卡顿事件结束
*/
AudioBreakResume: 1,
/**
* @description 拉流端出现视频卡顿事件
*/
VideoBreakOccur: 2,
/**
* @description 拉流端视频卡顿事件结束
*/
VideoBreakResume: 3,
}
/**
* 拉流资源策略模式
* @enum {number}
*/
const ZegoStreamResourceMode =
{
/**
* @description 默认模式。SDK 会根据拉流设置的 cdnConfig 参数以及即构的后台配置自动选择拉流资源
*/
Default: 0,
/**
* @description 仅从 CDN 拉流
*/
OnlyCDN: 1,
/**
* @description 仅从 L3 拉流
*/
OnlyL3: 2,
/**
* @description 仅从 RTC 拉流
*/
OnlyRTC: 3,
}
/**
* 更新类型
* @enum {number}
*/
const ZegoUpdateType =
{
/**
* @description 添加
*/
Add: 0,
/**
* @description 删除
*/
Delete: 1,
}
/**
* 转推 CDN 状态
* @enum {number}
*/
const ZegoStreamRelayCDNState =
{
/**
* @description 未转推状态,在转推前处于该状态。如果转推过程出现稳态的异常,例如 转推地址 不正确,都会进入未转推状态
*/
NoRelay: 0,
/**
* @description 正在请求转推状态,转推操作执行成功后会进入正在请求转推状态,通常通过该状态进行应用界面的展示。如果因为网络质量不佳产生的中断,SDK 会进行内部重试,也会回到正在转推状态
*/
RelayRequesting: 1,
/**
* @description 正在转推状态,进入该状态表明转推已成功
*/
Relaying: 2,
}
/**
* 转发 CDN 状态改变原因
* @enum {number}
*/
const ZegoStreamRelayCDNUpdateReason =
{
/**
* @description 无
*/
None: 0,
/**
* @description 服务器错误
*/
ServerError: 1,
/**
* @description 握手失败
*/
HandshakeFailed: 2,
/**
* @description 接入点错误
*/
AccessPointError: 3,
/**
* @description 创建流失败
*/
CreateStreamFailed: 4,
/**
* @description 流 ID 不合法
*/
BadName: 5,
/**
* @description CDN 服务器主动断开
*/
CDNServerDisconnected: 6,
/**
* @description 主动断开
*/
Disconnected: 7,
/**
* @description 混流的全部输入流会话关闭
*/
MixStreamAllInputStreamClosed: 8,
/**
* @description 混流的全部输入流没有数据
*/
MixStreamAllInputStreamNoData: 9,
/**
* @description 混流服务器内部错误
*/
MixStreamServerInternalError: 10,
}
/**
* 远端设备状态
* @enum {number}
*/
const ZegoRemoteDeviceState =
{
/**
* @description 设备开启
*/
Open: 0,
/**
* @description 设备关闭:一般性设备错误
*/
GenericError: 1,
/**
* @description 设备关闭:无效的设备 ID
*/
InvalidID: 2,
/**
* @description 设备关闭:无权限
*/
NoAuthorization: 3,
/**
* @description 设备关闭:采集帧率为 0
*/
ZeroFPS: 4,
/**
* @description 设备关闭:设备被占用
*/
InUseByOther: 5,
/**
* @description 设备关闭:设备未插入或被拔出
*/
Unplugged: 6,
/**
* @description 设备关闭:由于系统原因需要重启后才能进行下一次修改,否则重新打开也不生效
*/
RebootRequired: 7,
/**
* @description 设备关闭:系统媒体服务停止,如 iOS 平台下,当系统检测到当前压力巨大(如播放大量动画),则有可能会将媒体相关服务全部停用
*/
SystemMediaServicesLost: 8,
/**
* @description 设备关闭:禁用采集
*/
Disable: 9,
/**
* @description 设备关闭:远端设备被静音
*/
Mute: 10,
/**
* @description 设备关闭:设备被中断,如电话事件打断等
*/
Interruption: 11,
/**
* @description 设备关闭:用户 App 退到后台
*/
InBackground: 12,
/**
* @description 设备关闭:当前前台同时存在多个 App,如 iPad 应用分屏下,系统会禁止所有应用使用摄像头
*/
MultiForegroundApp: 13,
/**
* @description 设备关闭:系统处于高负载压力下,可能导致设备异常
*/
BySystemPressure: 14,
/**
* @description 设备状态未知:远端的 SDK 版本过低,不支持发布该设备状态信息
*/
NotSupport: 15,
}
/**
* 音频设备类型
* @enum {number}
*/
const ZegoAudioDeviceType =
{
/**
* @description 音频输入设备
*/
Input: 0,
/**
* @description 音频输出设备
*/
Output: 1,
}
/**
* 音频路由
* @enum {number}
*/
const ZegoAudioRoute =
{
/**
* @description 扬声器
*/
Speaker: 0,
/**
* @description 耳机
*/
Headphone: 1,
/**
* @description 蓝牙设备
*/
Bluetooth: 2,
/**
* @description 听筒
*/
Receiver: 3,
/**
* @description USB 音频外接设备
*/
ExternalUSB: 4,
/**
* @description Apple 隔空播放
*/
AirPlay: 5,
}
/**
* 混流内容类型
* @enum {number}
*/
const ZegoMixerInputContentType =
{
/**
* @description 音频混流内容类型
*/
Audio: 0,
/**
* @description 视频混流内容类型
*/
Video: 1,
/**
* @description 仅视频混流内容类型
*/
VideoOnly: 2,
}
/**
* 视频采集缩放时机
* @enum {number}
*/
const ZegoCapturePipelineScaleMode =
{
/**
* @description 采集后立即进行缩放,默认
*/
Pre: 0,
/**
* @description 编码时进行缩放
*/
Post: 1,
}
/**
* 视频帧格式
* @enum {number}
*/
const ZegoVideoFrameFormat =
{
/**
* @description 未知格式,将取平台默认值
*/
Unknown: 0,
/**
* @description I420 (YUV420Planar) 格式
*/
I420: 1,
/**
* @description NV12 (YUV420SemiPlanar) 格式
*/
NV12: 2,
/**
* @description NV21 (YUV420SemiPlanar) 格式
*/
NV21: 3,
/**
* @description BGRA32 格式
*/
BGRA32: 4,
/**
* @description RGBA32 格式
*/
RGBA32: 5,
/**
* @description ARGB32 格式
*/
ARGB32: 6,
/**
* @description ABGR32 格式
*/
ABGR32: 7,
/**
* @description I422 (YUV422Planar) 格式
*/
I422: 8,
}
/**
* 视频帧数据类型
* @enum {number}
*/
const ZegoVideoBufferType =
{
/**
* @description 未知类型
*/
Unknown: 0,
/**
* @description 裸数据类型视频帧
*/
RawData: 1,
/**
* @description 编码类型视频帧
*/
EncodedData: 2,
/**
* @description OpenGL Texture 2D 类型视频帧
*/
GLTexture2D: 3,
/**
* @description CVPixelBuffer 类型视频帧
*/
CVPixelBuffer: 4,
/**
* @description SurfaceTexture 类型视频帧
*/
SurfaceTexture: 5,
/**
* @description OpenGL GL_TEXTURE_EXTERNAL_OES 类型视频帧
*/
GLTextureExternalOES: 6,
}
/**
* 视频帧格式系列
* @enum {number}
*/
const ZegoVideoFrameFormatSeries =
{
/**
* @description RGB 系列
*/
RGB: 0,
/**
* @description YUV 系列
*/
YUV: 1,
}
/**
* 视频帧翻转模式
* @enum {number}
*/
const ZegoVideoFlipMode =
{
/**
* @description 不翻转
*/
None: 0,
/**
* @description X 轴翻转
*/
X: 1,
/**
* @description 垂直翻转
*/
Y: 2,
/**
* @description XY 轴翻转
*/
XY: 3,
}
/**
* 音频配置类型
* @enum {number}
*/
const ZegoAudioConfigPreset =
{
/**
* @description 基础音质 (16 kbps, Mono, ZegoAudioCodecIDDefault)
*/
BasicQuality: 0,
/**
* @description 标准音质 (48 kbps, Mono, ZegoAudioCodecIDDefault)
*/
StandardQuality: 1,
/**
* @description 标准音质 (56 kbps, Stereo, ZegoAudioCodecIDDefault)
*/
StandardQualityStereo: 2,
/**
* @description 高音质 (128 kbps, Mono, ZegoAudioCodecIDDefault)
*/
HighQuality: 3,
/**
* @description 高音质 (192 kbps, Stereo, ZegoAudioCodecIDDefault)
*/
HighQualityStereo: 4,
}
/**
* 播放器状态
* @enum {number}
*/
const ZegoMediaPlayerState =
{
/**
* @description 不在播放
*/
NoPlay: 0,
/**
* @description 播放中
*/
Playing: 1,
/**
* @description 暂停播放
*/
Pausing: 2,
/**
* @description 播放结束
*/
PlayEnded: 3,
}
/**
* 播放器网络事件
* @enum {number}
*/
const ZegoMediaPlayerNetworkEvent =
{
/**
* @description 网络资源播放不畅,开始尝试缓存数据
*/
BufferBegin: 0,
/**
* @description 网络资源可以顺畅播放
*/
BufferEnded: 1,
}
/**
* 播放器声道
* @enum {number}
*/
const ZegoMediaPlayerAudioChannel =
{
/**
* @description 左声道
*/
Left: 0,
/**
* @description 右声道
*/
Right: 1,
/**
* @description 全部声道
*/
All: 2,
}
/**
* 音效播放器状态
* @enum {number}
*/
const ZegoAudioEffectPlayState =
{
/**
* @description 不在播放
*/
NoPlay: 0,
/**
* @description 播放中
*/
Playing: 1,
/**
* @description 暂停播放
*/
Pausing: 2,
/**
* @description 播放结束
*/
PlayEnded: 3,
}
/**
* 录制类型
* @enum {number}
*/
const ZegoDataRecordType =
{
/**
* @description 该字段表示纯音频 SDK 默认录制音频,音视频 SDK 默认录制音视频,当录制 .aac 格式的文件时默认也是录制音频
*/
Default: 0,
/**
* @description 只录制音频
*/
OnlyAudio: 1,
/**
* @description 只录制视频,音频的 SDK 和录制 .aac 格式文件时无效
*/
OnlyVideo: 2,
/**
* @description 同时录制音频、视频。音频的 SDK 和录制 .aac 格式文件时录制出来也只有音频
*/
AudioAndVideo: 3,
}
/**
* 录制状态
* @enum {number}
*/
const ZegoDataRecordState =
{
/**
* @description 未录制状态,当录制出错或者未开始录制之前处于此状态
*/
NoRecord: 0,
/**
* @description 正在录制中,当成功调用 [startRecordingCapturedData] 函数之后处于此状态
*/
Recording: 1,
/**
* @description 录制成功
*/
Success: 2,
}
/**
* 网络模式
* @enum {number}
*/
const ZegoNetworkMode =
{
/**
* @description 离线(无网络)
*/
Offline: 0,
/**
* @description 未知网络模式
*/
Unknown: 1,
/**
* @description 有线以太网 (LAN)
*/
Ethernet: 2,
/**
* @description 无线局域网 (WLAN)
*/
Wifi: 3,
/**
* @description 2G 网络 (GPRS/EDGE/CDMA1x/etc.)
*/
Mode2G: 4,
/**
* @description 3G 网络 (WCDMA/HSDPA/EVDO/etc.)
*/
Mode3G: 5,
/**
* @description 4G 网络 (LTE)
*/
Mode4G: 6,
/**
* @description 5G 网络 (NR (NSA/SA))
*/
Mode5G: 7,
}
/**
* 网速测试类型
* @enum {number}
*/
const ZegoNetworkSpeedTestType =
{
/**
* @description 上行测速
*/
Uplink: 0,
/**
* @description 下行测速
*/
Downlink: 1,
}
/**
* @typedef {Object} ZegoLogConfig - 日志配置
* @property {string} logPath - 日志文件的存储路径。详情描述:用于自定义日志文件的存储路径。业务场景:当需要自定义日志存储路径时,需要这个配置。是否必填:否。默认值:各平台的默认路径有所不同,具体参考官网文档:https://doc-zh.zego.im/article/6467。注意事项:开发者需要确保对该路径下文件的读写权限。
* @property {number} logSize - 日志文件大小上限,单位Bytes。详情描述:用于自定义日志文件大小上限。业务场景:当需要自定义日志文件大小上限时,需要这个配置。是否必填:否。默认值:5MB (5 * 1024 * 1024 Bytes)。取值范围:最小1MB (1 * 1024 * 1024 Bytes),最大100M (100 * 1024 * 1024 Bytes),0表示不需要写日志。注意事项:日志文件大小上限越大,承载的日志信息越多,但是日志上传时间也会更长。
*/
/**
* @typedef {Object} ZegoEngineProfile - 创建引擎的配置
* @property {number} appID - ZEGO 为开发者签发的应用 ID,请从 ZEGO 管理控制台 https://console-express.zego.im 申请。appID 取值范围 0~4294967295。
* @property {string} appSign - 每个 AppID 对应的应用签名,请从 ZEGO 管理控制台申请。该参数为包含 64 个字符的字符串,字符取值范围:'0' ~ '9', 'a' ~ 'z'。例:"9dc9a25bh2f2137446897071c8c033fa33b91c3dd2a85e0c000ae82c0dad3"。
* @property {ZegoScenario} scenario - 产品的应用场景,开发者可根据所开发的 App 的场景选择其中一个,SDK 会针对该场景的作一些优化。当设置具体场景后,开发者若需要定制化更多参数,依然可以调用具体函数来设置具体参数。不同应用场景的建议配置可以参考:https://doc-zh.zego.im/faq/profile_difference。
*/
/**
* @typedef {Object} ZegoEngineConfig - 引擎进阶配置
* @property {ZegoLogConfig} logConfig - 日志配置,未设置时使用默认配置(详见 [ZegoLogConfig])。
* @property {map<string, string>} advancedConfig - 进阶功能配置,未设置时默认不使用任何特殊功能,如需使用,请联系 ZEGO 技术支持。
*/
/**
* @typedef {Object} ZegoRoomConfig - 房间进阶配置
* @property {number} maxMemberCount - 房间最大用户数量,传 0 视为不限制,默认无限制
* @property {boolean} isUserStatusNotify - 是否开启用户进出房间回调通知 [onRoomUserUpdate],默认关闭。若开发者需要使用 ZEGO 房间用户广播通知,请确保每个登录的用户都将此标记设置为true
* @property {string} token - 由开发者业务服务器下发的 token,用以保证安全性,生成规则详见 用户权限控制 https://doc-zh.zego.im/article/10360,默认为空字符串,即不鉴权。
*/
/**
* @typedef {Object} ZegoVideoConfig - 视频配置
* @property {number} captureWidth - 采集分辨率宽度,控制摄像头图像采集的宽度。SDK 要求设置此成员为偶数。仅摄像头启动前且没有使用自定义视频采集时,设置有效。出于性能考虑,SDK 在采集摄像头画面后、渲染预览画面之前,就将视频帧缩放为编码分辨率,因此预览画面的分辨率是编码分辨率,如果您需要预览画面的分辨率为此值,请先调用 [setCapturePipelineScaleMode] 将采集缩放模式改为 [Post]
* @property {number} captureHeight - 采集分辨率高度,控制摄像头图像采集的高度。SDK 要求设置此成员为偶数。仅摄像头启动前且没有使用自定义视频采集时,设置有效。出于性能考虑,SDK 在采集摄像头画面后、渲染预览画面之前,就将视频帧缩放为编码分辨率,因此预览画面的分辨率是编码分辨率,如果您需要预览画面的分辨率为此值,请先调用 [setCapturePipelineScaleMode] 将采集缩放模式改为 [Post]
* @property {number} encodeWidth - 编码分辨率宽度,控制编码器编码推流的图像宽度。SDK 要求设置此成员为偶数。推流前后设置均可生效
* @property {number} encodeHeight - 编码分辨率高度,控制编码器编码推流的图像高度。SDK 要求设置此成员为偶数。推流前后设置均可生效
* @property {number} fps - 帧率,控制摄像头采集帧率以及编码器编码帧率的大小。仅摄像头启动前设置有效
* @property {number} bitrate - 码率,单位为 kbps。推流前后设置均可生效
* @property {ZegoVideoCodecID} codecID - 要使用的编码器,默认为 default。仅在推流前设置生效
*/
/**
* @typedef {Object} ZegoSEIConfig - SEI 配置
* @property {ZegoSEIType} type - SEI 类型
*/
/**
* @typedef {Object} ZegoVoiceChangerParam - 变声器参数
* @property {number} pitch - 音高参数,取值范围 [-8.0, 8.0],数值越大声音越尖,设为 0.0 即关闭变声器。注意:变声音效只针对采集的声音有效。
*/
/**
* @typedef {Object} ZegoReverbParam - 音频混响参数
* @property {number} roomSize - 房间大小,取值范围 [0.0, 1.0],用于控制产生混响模拟的 “房间” 的大小,房间越大,混响越强
* @property {number} reverberance - 余响,取值范围 [0.0, 0.5],用于控制混响的拖尾长度
* @property {number} damping - 混响阻尼,取值范围 [0.0, 2.0],控制混响的衰减程度,阻尼越大,衰减越大
* @property {number} dryWetRatio - 干湿比,取值范围大于等于 0.0,控制混响与直达声和早期反射声之间的比 例,干(dry)的部分默认定为1,当干湿比设为较小时,湿(wet)的比例较大,此时混响较强
*/
/**
* @typedef {Object} ZegoReverbAdvancedParam - 音频混响高级参数
* @property {number} roomSize - 房间大小(百分比),取值范围 [0.0, 100.0],用于控制产生混响模拟的 “房间” 的大小,房间越大,混响越强
* @property {number} reverberance - 余响(百分比),取值范围 [0.0, 100.0],用于控制混响的拖尾长度
* @property {number} damping - 混响阻尼(百分比),取值范围 [0.0, 100.0],控制混响的衰减程度,阻尼越大,衰减越大
* @property {boolean} wetOnly - 只有湿信号。设置只输出混响声音,不叠加原始输入声音,默认是false。
* @property {number} wetGain - 湿信号增益(dB),取值范围 [-20.0, 10.0]
* @property {number} dryGain - 干信号增益(dB),取值范围 [-20.0, 10.0]
* @property {number} toneLow - 低频衰减,默认为不衰减(100%)
* @property {number} toneHigh - 高频衰减,默认为不衰减(100%)
* @property {number} preDelay - 初始延迟时间(ms)。取值范围[0, 200]
* @property {number} stereoWidth - 立体声宽度(百分比),默认值为 0%
*/
/**
* @typedef {Object} ZegoReverbEchoParam - 音频混响回声参数
* @property {number} inGain - 输入音频信号的增益,取值范围 [0.0, 1.0]
* @property {number} outGain - 输出音频信号的增益,取值范围 [0.0, 1.0]
* @property {number} numDelays - 回声数量,取值范围 [0, 7]
* @property {number[]} delay - 回声信号分别的延时,单位为毫秒,取值范围 [0, 5000] ms
* @property {number[]} decay - 回声信号分别的衰减系数,取值范围 [0.0, 1.0]
*/
/**
* @typedef {Object} ZegoUser - 用户对象
* @property {string} userID - 用户 ID,最大 64 字节的字符串。请勿在此字段填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。仅支持数字,英文字符 和 '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', '/', '\'。
* @property {string} userName - 用户名,最大长度不超过 256 字节的字符串。请勿在此字段填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。
*/
/**
* @typedef {Object} ZegoStream - 音视频流对象
* @property {ZegoUser} user - 用户对象实例。请勿在此字段填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。
* @property {string} streamID - 流 ID,长度不超过256的字符串。不可以包含 URL 关键字,否则推拉流失败。仅支持数字,英文字符 和 '~', '!', '@', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', '/', '\'。
* @property {string} extraInfo - 流附加信息
*/
/**
* @typedef {Object} ZegoRoomExtraInfo - 房间附加消息
* @property {string} key - 房间附加消息的键
* @property {string} value - 房间附加消息的值
* @property {ZegoUser} updateUser - 更新房间附加消息的用户。请勿在此字段填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。
* @property {number} updateTime - 房间附加消息的更新时间,UNIX 时间戳,单位为毫秒
*/
/**
* @typedef {Object} ZegoRect - 视图相关所使用的坐标
* @property {number} x - 矩形左上角在坐标系 X 轴上的值
* @property {number} y - 矩形左上角在坐标系 Y 轴上的值
* @property {number} width - 矩形宽度
* @property {number} height - 矩形高度
*/
/**
* @typedef {Object} ZegoView - 视图对象
* @property {ZegoViewMode} viewMode - 视图模式,默认为 ZegoViewModeAspectFit
* @property {number} backgroundColor - 背景颜色,格式为 0xRRGGBB,默认为黑色即 0x000000
* @property {canvas} canvas - html canvas element
* @property {boolean} preserveDrawingBuffer - webgl context 保存缓存
*/
/**
* @typedef {Object} ZegoPublishStreamQuality - 推流质量对象
* @property {number} videoCaptureFPS - 视频采集帧率,单位为 f/s
* @property {number} videoEncodeFPS - 视频编码帧率,单位为 f/s
* @property {number} videoSendFPS - 视频发送帧率,单位为 f/s
* @property {number} videoKBPS - 视频码率,单位为 kbps
* @property {number} audioCaptureFPS - 音频采集帧率,单位为 f/s
* @property {number} audioSendFPS - 音频发送帧率,单位为 f/s
* @property {number} audioKBPS - 音频码率,单位为 kbps
* @property {number} rtt - 本端至服务端的延迟,单位为毫秒
* @property {number} packetLostRate - 丢包率,单位为百分比,0.0 ~ 1.0
* @property {ZegoStreamQualityLevel} level - 推流质量级别
* @property {boolean} isHardwareEncode - 是否开启硬件编码
* @property {ZegoVideoCodecID} videoCodecID - 视频编码格式
* @property {number} totalSendBytes - 已发送的总字节数,包括音频、视频和SEI等
* @property {number} audioSendBytes - 已发送的音频字节数
* @property {number} videoSendBytes - 已发送的视频字节数
*/
/**
* @typedef {Object} ZegoCDNConfig - CDN 配置对象
* @property {string} url - CDN 的 URL
* @property {string} authParam - URL 的鉴权参数
*/
/**
* @typedef {Object} ZegoStreamRelayCDNInfo - 转推 CDN 信息
* @property {string} url - CDN 推流的 URL
* @property {ZegoStreamRelayCDNState} state - 转推状态
* @property {ZegoStreamRelayCDNUpdateReason} updateReason - 转推状态变更的原因
* @property {number} stateTime - 状态发生的时间,UNIX 时间戳,单位为毫秒
*/
/**
* @typedef {Object} ZegoPlayerConfig - 拉流进阶配置。
* @property {ZegoStreamResourceMode} resourceMode - 拉流资源策略模式。
* @property {ZegoCDNConfig} cdnConfig - 拉流的 CDN 配置,若设置后,则按照 URL 拉流而不是按照 streamID 拉流,此后 streamID 仅作为 SDK 内部回调的标识。
* @property {ZegoPlayerVideoLayer} videoLayer - 设置拉流的视频分层。
* @property {string} roomID - 房间 ID。
*/
/**
* @typedef {Object} ZegoPlayStreamQuality - 拉流质量对象
* @property {number} videoRecvFPS - 视频接收帧率,单位为 f/s
* @property {number} videoDejitterFPS - 视频抗抖动帧率,单位为 f/s
* @property {number} videoDecodeFPS - 视频解码帧率,单位为 f/s
* @property {number} videoRenderFPS - 视频渲染帧率,单位为 f/s
* @property {number} videoKBPS - 视频码率,单位为 kbps
* @property {number} videoBreakRate - 视频卡顿率,单位为(卡顿次数/每10秒)
* @property {number} audioRecvFPS - 音频接收帧率,单位为 f/s
* @property {number} audioDejitterFPS - 音频抗抖动帧率,单位为 f/s
* @property {number} audioDecodeFPS - 音频解码帧率,单位为 f/s
* @property {number} audioRenderFPS - 音频渲染帧率,单位为 f/s
* @property {number} audioKBPS - 音频码率,单位为 kbps
* @property {number} audioBreakRate - 音频卡顿率,单位为(卡顿次数/每10秒)
* @property {number} rtt - 服务端至本端的延迟,单位为毫秒
* @property {number} packetLostRate - 丢包率,单位为百分比,0.0 ~ 1.0
* @property {number} peerToPeerDelay - 端到端延迟,单位为毫秒
* @property {number} peerToPeerPacketLostRate - 端到端丢包率,单位为百分比,0.0 ~ 1.0
* @property {ZegoStreamQualityLevel} level - 拉流质量级别
* @property {number} delay - 本端接收到数据后到播放的延迟,单位为毫秒
* @property {number} avTimestampDiff - 视频时间戳相对于音频时间戳的差值,用于反映音画同步情况,单位为毫秒。此值小于 0 表示视频超前音频的毫秒数, 大于 0 表示视频滞后音频的毫秒数, 等于0表示无差别。 当绝对值小于200,可基本认为音画同步,当绝对值连续 10 秒大于 200 可以认为异常
* @property {boolean} isHardwareDecode - 是否开启硬件解码
* @property {ZegoVideoCodecID} videoCodecID - 视频编码格式
* @property {number} totalRecvBytes - 已接收的总字节数,包括音频、视频和 SEI 等
* @property {number} audioRecvBytes - 已接收的音频字节数
* @property {number} videoRecvBytes - 已接收的视频字节数
*/
/**
* @typedef {Object} ZegoDeviceInfo - 设备信息
* @property {string} deviceID - 设备 ID
* @property {string} deviceName - 设备名称
*/
/**
* @typedef {Object} ZegoPerformanceStatus - 系统性能监控状态
* @property {number} cpuUsageApp - 当前 App 的 CPU 使用率,取值范围 [0, 1]
* @property {number} cpuUsageSystem - 当前系统的 CPU 使用率,取值范围 [0, 1]
* @property {number} memoryUsageApp - 当前 App 的运行内存使用率,取值范围 [0, 1]
* @property {number} memoryUsageSystem - 当前系统的运行内存使用率,取值范围 [0, 1]
* @property {number} memoryUsedApp - 当前 App 的运行内存使用量,单位为 MB
*/
/**
* @typedef {Object} ZegoMixerAudioConfig - 混流音频配置
* @property {number} bitrate - 音频码率,单位为 kbps,默认为 48 kbps,开始混流任务后不能修改
* @property {ZegoAudioChannel} channel - 音频声道,默认为 Mono 单声道
* @property {ZegoAudioCodecID} codecID - 编码 ID,默认为 ZegoAudioCodecIDDefault
*/
/**
* @typedef {Object} ZegoMixerVideoConfig - 混流视频配置
* @property {number} width - 视频分辨率宽
* @property {number} height - 视频分辨率高
* @property {number} fps - 视频帧率,开始混流任务后不能修改
* @property {number} bitrate - 视频码率,单位为 kbps
*/
/**
* @typedef {Object} ZegoMixerInput - 混流输入
* @property {string} streamID - 流 ID,长度不超过256的字符串。不可以包含 URL 关键字,否则推拉流失败。仅支持数字,英文字符 和 '~', '!', '@', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', '/', '\'。
* @property {ZegoMixerInputContentType} contentType - 混流内容类型
* @property {ZegoRect} layout - 流的布局。当混入的流为音频流时(即 ContentType 参数设置为音频混流类型),SDK内部不处理布局字段,此时无需关注该参数。
* @property {number} soundLevelID - 当混流任务开启了声浪回调时,需要为每条输入流指定唯一的 soundLevelID
* @property {boolean} isAudioFocus - 当前输入流是否开启焦点语音,开启了会突出此路流的声音
*/
/**
* @typedef {Object} ZegoMixerOutput - 混流输出对象
* @property {string} target - 混流输出目标,URL 或者流 ID,若为 URL 格式 目前只支持 RTMP URL 格式:rtmp://xxxxxxxx, 且不能传入两个相同的混流输出的地址。
*/
/**
* @typedef {Object} ZegoWatermark - 水印对象
* @property {string} imageURL - 水印图片路径。支持本地文件绝对路径 (file://xxx)。 格式支持 png、jpg。
* @property {ZegoRect} layout - 水印图片的大小方位
*/
/**
* @typedef {Object} ZegoMixerTask - 混流任务对象
* @property {string} taskID - 混流任务 ID
* @property {ZegoMixerInput[]} inputList - 混流任务的输入流列表
* @property {ZegoMixerOutput[]} outputList - 混流任务的输出流列表
* @property {ZegoMixerVideoConfig} videoConfig - 混流任务的视频配置
* @property {ZegoMixerAudioConfig} audioConfig - 混流任务的音频配置
* @property {ZegoWatermark} watermark - 混流任务的水印
* @property {string} backgroundImageURL - 混流任务的背景图 URL
* @property {boolean} enableSoundLevel - 是否开启混流的声浪回调通知,开启后拉混流时可通过 [onMixerSoundLevelUpdate] 回调收到每条单流的声浪信息
* @property {map<string, string>} advancedConfig - 设置高级配置,如可用于指定视频编码等功能。如需使用,联系 ZEGO 技术支持。
*/
/**
* @typedef {Object} ZegoBroadcastMessageInfo - 房间广播消息
* @property {string} message - 消息内容
* @property {number} messageID - 消息 ID
* @property {number} sendTime - 消息的发送时间,UNIX 时间戳,单位为毫秒
* @property {ZegoUser} fromUser - 消息的发送者。请勿在此字段填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。
*/
/**
* @typedef {Object} ZegoBarrageMessageInfo - 房间弹幕消息
* @property {string} message - 消息内容
* @property {string} messageID - 消息 ID
* @property {number} sendTime - 消息的发送时间,UNIX 时间戳,单位为毫秒
* @property {ZegoUser} fromUser - 消息的发送者。请勿在此字段填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。
*/
/**
* @typedef {Object} ZegoAudioConfig - 推流音频配置
* @property {number} bitrate - 音频码率,单位为 kbps,默认为 48 kbps. 该配置推流前后设置均可生效
* @property {ZegoAudioChannel} channel - 音频编码声道,控制编码器编码的声道数。默认为 Mono 单声道。仅在推流前设置生效。
* @property {ZegoAudioCodecID} codecID - 编码 ID,默认为 ZegoAudioCodecIDDefault。仅在推流前设置生效。
*/
/**
* @typedef {Object} ZegoDataRecordConfig - 录制配置
* @property {string} filePath - 录制文件保存路径,绝对路径,需要包含文件名, 文件名需指明后缀,目前支持 .mp4/.flv/.aac 格式文件。若多次录制为同一个路径,会覆盖同名的文件。最大长度应小于 1024 字节。
* @property {ZegoDataRecordType} recordType - 录制文件媒体类型
*/
/**
* @typedef {Object} ZegoDataRecordProgress - 文件录制进度
* @property {number} duration - 当前录制时长, 单位为毫秒
* @property {number} currentFileSize - 当前录制文件大小, 单位为字节
*/
/**
* @typedef {Object} ZegoNetworkSpeedTestConfig - 网络测速配置
* @property {boolean} testUplink - 是否进行上行测速
* @property {number} expectedUplinkBitrate - 单位 kbps。用于确定网络上行环境是否适合推送指定码率的数据,建议用推流的码率来测试。
* @property {boolean} testDownlink - 是否进行下行测速
* @property {number} expectedDownlinkBitrate - 单位 kbps。用于确定网络下行环境是否适合拉取指定码率的数据,建议用推流的码率来测试。
*/
/**
* @typedef {Object} ZegoNetworkSpeedTestQuality - 网络测速质量
* @property {number} connectCost - 连接服务器耗时,单位毫秒。测速过程中如果网络连接断开会自动发起重连,此变量会相应更新。
* @property {number} rtt - rtt,单位毫秒
* @property {number} packetLostRate - 丢包率,单位为百分比,0.0 ~ 1.0
*/
/**
* @typedef {Object} ZegoAudioEffectPlayConfig - 音效播放器播放配置
* @property {number} playCount - 播放次数,当设为 0 时则无限循环播放,直到用户调用 [stop],默认为 1 即仅播放一次。
* @property {boolean} isPublishOut - 是否将音效混入推流中,默认 false。
*/
module.exports = {
ZegoScenario,
ZegoLanguage,
ZegoEngineState,
ZegoRoomState,
ZegoPublishChannel,
ZegoViewMode,
ZegoVideoMirrorMode,
ZegoSEIType,
ZegoPublisherState,
ZegoVoiceChangerPreset,
ZegoReverbPreset,
ZegoVideoConfigPreset,
ZegoStreamQualityLevel,
ZegoAudioChannel,
ZegoAudioCaptureStereoMode,
ZegoAudioCodecID,
ZegoVideoCodecID,
ZegoPlayerVideoLayer,
ZegoAECMode,
ZegoANSMode,
ZegoTrafficControlProperty,
ZegoTrafficControlMinVideoBitrateMode,
ZegoPlayerState,
ZegoPlayerMediaEvent,
ZegoStreamResourceMode,
ZegoUpdateType,
ZegoStreamRelayCDNState,
ZegoStreamRelayCDNUpdateReason,
ZegoRemoteDeviceState,
ZegoAudioDeviceType,
ZegoAudioRoute,
ZegoMixerInputContentType,
ZegoCapturePipelineScaleMode,
ZegoVideoFrameFormat,
ZegoVideoBufferType,
ZegoVideoFrameFormatSeries,
ZegoVideoFlipMode,
ZegoAudioConfigPreset,
ZegoMediaPlayerState,
ZegoMediaPlayerNetworkEvent,
ZegoMediaPlayerAudioChannel,
ZegoAudioEffectPlayState,
ZegoDataRecordType,
ZegoDataRecordState,
ZegoNetworkMode,
ZegoNetworkSpeedTestType,
ZegoTrafficControlFocusOnMode,
ZegoVideoStreamType
}