const kLiveRoomErrorBase = 0x01000000;
const SEG_PUBLISH_FATAL_ERROR = 0x0001 << 16; ///< 推流严重错误段
const SEG_PUBLISH_NORMAL_ERROR = 0x0002 << 16; ///< 推流普通错误段
const SEG_PLAY_FATAL_ERROR = 0x0003 << 16; ///< 拉流严重错误段
const SEG_PLAY_NORMAL_ERROR = 0x0004 << 16; ///< 拉流普通错误段
let ZEGOCONSTANTS = {
ZegoLogLevel:
{
Grievous: 0,
Error: 1,
Warning: 2,
Generic: 3, ///< 通常在发布产品中使用
Debug: 4 ///< 调试阶段使用
},
ZegoRoomRole:
{
Anchor: 1, /**< 主播 */
Audience: 2, /**< 观众 */
},
/** 用户更新类型 */
ZegoUserUpdateType:
{
UPDATE_TOTAL: 1, /**< 全量更新 */
UPDATE_INCREASE: 2,/**< 增量更新 */
},
/** 用户更新属性 */
ZegoUserUpdateFlag:
{
USER_ADDED: 1, /**< 新增 */
USER_DELETED: 2, /**< 删除 */
},
/** 消息类型 */
ZegoMessageType:
{
Text: 1, /**< 文字 */
Picture: 2, /**< 图片 */
File: 3, /**< 文件 */
OtherType: 100, /**< 其他 */
},
/** 消息优先级 */
ZegoMessagePriority:
{
Default: 2, /**< 默认优先级 */
High: 3, /**< 高优先级 */
},
/** 消息类别 */
ZegoMessageCategory:
{
Chat: 1, /**< 聊天 */
System: 2, /**< 系统 */
Like: 3, /**< 点赞 */
Gift: 4, /**< 送礼物 */
OtherCategory: 100, /**< 其他 */
},
PublishChannelIndex:
{
PUBLISH_CHN_MAIN: 0, /**< 主推流通道,默认 */
PUBLISH_CHN_AUX: 1, /**< 第二路推流通道,无法推出声音 */
},
RemoteViewIndex:
{
RemoteViewIndex_First: 0,
RemoteViewIndex_Second: 1,
RemoteViewIndex_Third: 2,
},
ZegoPublishFlag:
{
ZEGO_JOIN_PUBLISH: 0, ///< 连麦
ZEGO_MIX_STREAM: 1 << 1, ///< 混流,如果推出的流需要作为混流输入,请用这个模式
ZEGO_SINGLE_ANCHOR: 1 << 2, ///< 单主播
},
/** 音频设备类型 */
AudioDeviceType:
{
AudioDevice_Input: 0, /**< 输入设备 */
AudioDevice_Output: 1, /**< 输出设备 */
},
/** 设备状态 */
DeviceState:
{
Device_Added: 0, /**< 添加设备 */
Device_Deleted: 1, /**< 删除设备 */
},
/** 音量类型 */
VolumeType:
{
Volume_EndPoint: 0, /**< 设备音量 */
Volume_Simple: 1, /**< App 音量 */
},
ZegoAVAPIState:
{
AVStateBegin: 0, ///< 直播开始
AVStateEnd: 1, ///< 直播正常停止
TempBroken: 2, ///< 直播异常中断
FatalError: 3, ///< 直播遇到严重的问题(如出现,请联系 ZEGO 技术支持)
CreateStreamError: 4, ///< 创建直播流失败
FetchStreamError: 5, ///< 获取流信息失败
NoStreamError: 6, ///< 无流信息
MediaServerNetWorkError: 7, ///< 媒体服务器连接失败
DNSResolveError: 8, ///< DNS 解释失败
NotLoginError: 9, ///< 未登陆
LogicServerNetWrokError: 10, ///< 逻辑服务器网络错误
PublishBadNameError: 105,
HttpDNSResolveError: 106,
PublishForbidError: (SEG_PUBLISH_FATAL_ERROR | 0x03f3), ///< 禁止推流, 低8位为服务端返回错误码:1011
PublishDeniedError: (SEG_PUBLISH_NORMAL_ERROR | 0x1), ///< 推流被拒绝
PlayStreamNotExistError: (SEG_PLAY_FATAL_ERROR | 0x03ec), ///< 拉的流不存在, 低8位为服务端返回错误码:1004
PlayForbidError: (SEG_PLAY_FATAL_ERROR | 0x03f3), ///< 禁止拉流, 低8位为服务端返回错误码:1011
PlayDeniedError: (SEG_PLAY_NORMAL_ERROR | 0x1), ///< 拉流被拒绝
},
EventType:
{
Play_BeginRetry: 1, /**< 开始重试拉流 */
Play_RetrySuccess: 2, /**< 重试拉流成功 */
Publish_BeginRetry: 3, /**< 开始重试推流 */
Publish_RetrySuccess: 4, /**< 重试推流成功 */
Play_TempDisconnected: 5, /**< 拉流临时中断 */
Publish_TempDisconnected: 6, /**< 推流临时中断 */
Play_VideoBreak: 7, /**< 拉流卡顿(视频) */
},
/** 音频设备模式 */
ZegoAVAPIAudioDeviceMode:
{
ZEGO_AUDIO_DEVICE_MODE_COMMUNICATION: 1, /**< 开启硬件回声消除 */
ZEGO_AUDIO_DEVICE_MODE_GENERAL: 2, /**< 关闭硬件回声消除 */
ZEGO_AUDIO_DEVICE_MODE_AUTO: 3 /**< 根据场景自动选择是否开启硬件回声消除 */
},
/** 流量控制属性 */
ZegoTrafficControlProperty:
{
ZEGO_TRAFFIC_NONE: 0, /**< 无 */
ZEGO_TRAFFIC_FPS: 1, /**< 帧率 */
ZEGO_TRAFFIC_RESOLUTION: 1 << 1, /**< 分辨率 */
},
ZEGONetType:
{
ZEGO_NT_NONE: 0, /**< 无网络 */
ZEGO_NT_LINE: 1, /**< 有线网络 */
ZEGO_NT_WIFI: 2, /**< 无线网络 */
ZEGO_NT_2G: 3, /**< 2G网络 */
ZEGO_NT_3G: 4, /**< 3G网络 */
ZEGO_NT_4G: 5, /**< 4G网络 */
ZEGO_NT_UNKNOWN: 32 /**< 未知网络 */
},
ZegoStreamUpdateType:
{
StreamAdded: 2001, /**< 新增流 */
StreamDeleted: 2002, /**< 删除流 */
},
LiveRoomState:
{
Begin: 0, /**< 开始 */
FatalError: 3, /**< 直播遇到严重的问题(如出现,请联系 ZEGO 技术支持 */
CreateStreamError: 4, /**< 创建直播流失败 */
FetchStreamError: 5, /**< 获取流信息失败 */
NoStreamError: 6, /**< 无流信息 */
MediaServerNetWorkError: 7, /**< 媒体服务器连接失败 */
DNSResolveError: 8, /**< DNS 解释失败 */
NotLoginError: 9, /**< 未登陆 */
LogicServerNetWrokError: 10, /**< 逻辑服务器网络错误 */
PublishBadNameError: 105, /**< 推流名称错误 */
AddStreamError: 0x1 | kLiveRoomErrorBase,
ParameterError: 0x2 | kLiveRoomErrorBase,
MultiLoginError: 0x3 | kLiveRoomErrorBase,
},
/** Relay类别 */
ZegoRelayType:
{
RelayTypeNone: 1,
RelayTypeDati: 2,
},
/** 本地预览视频视图的模式 */
ZegoVideoViewMode:
{
ZegoVideoViewModeScaleAspectFit: 0, /**< 等比缩放,可能有黑边 */
ZegoVideoViewModeScaleAspectFill: 1, /**< 等比缩放填充整View,可能有部分被裁减 */
ZegoVideoViewModeScaleToFill: 2, /**< 填充整个View */
},
/** 录制源类型 */
RecordSourceType:
{
LocalVideo:0,
RemoteVideo:1,
Image:2
},
/** 延迟模式 */
ZegoAVAPILatencyMode:
{
ZEGO_LATENCY_MODE_NORMAL:0, /**< 普通延迟模式 */
ZEGO_LATENCY_MODE_LOW:1, /**< 低延迟模式,无法用于 RTMP 流 */
ZEGO_LATENCY_MODE_NORMAL2:2, /**< 普通延迟模式,最高码率可达 192K */
ZEGO_LATENCY_MODE_LOW2:3, /**< 低延迟模式,无法用于 RTMP 流。相对于 ZEGO_LATENCY_MODE_LOW 而言,CPU 开销稍低 */
ZEGO_LATENCY_MODE_LOW3:4, /**< 低延迟模式,无法用于 RTMP 流。支持WebRTC必须使用此模式 */
ZEGO_LATENCY_MODE_NORMAL3:5 /**< 普通延迟模式,使用此模式前先咨询即构技术支持 */
},
ZegoMediaPlayerType:
{
ZegoMediaPlayerTypePlayer:0, // 本地播放模式,不会将音频混入推流中,只有调用端可以听到播放的声音。
ZegoMediaPlayerTypeAux:1 // 推流播放模式,会将音频混流推流中,调用端和拉流端都可以听到播放的
},
ZegoMediaPlayerIndex:
{
ZegoMediaPlayerIndexFirst:0,
ZegoMediaPlayerIndexSecond:1,
ZegoMediaPlayerIndexThird:2
},
ZegoCustomCaptureType:
{
IMAGE_TYPE :0,
CAMERA_TYPE:1,
VIDEO_FILE_TYPE:2,
SCREEN_TYPE:3
},
ZegoMediaRecordType:
{
ZEGO_MEDIA_RECORD_NONE:0, /**< 不录制任何数据 */
ZEGO_MEDIA_RECORD_AUDIO:1, /**< 只录制音频 */
ZEGO_MEDIA_RECORD_VIDEO:2, /**< 只录制视频 */
ZEGO_MEDIA_RECORD_BOTH:3 /**< 同时录制音频、视频 */
},
ZegoAuxPublishChannelAudioSrcType:
{
kZegoAuxPublishChannelAudioSrcTypeNone : -1, /**< 无声 */
kZegoAuxPublishChannelAudioSrcTypeSameAsMainPublishChannel : 0, /**< 和主推流通道一样 */
kZegoAuxPublishChannelAudioSrcTypeExternalCapture : 1, /**< 使用外部采集 */
kZegoAuxPublishChannelAudioSrcTypePlayer : 2, /**< 使用媒体播放器的音源 */
kZegoAuxPublishChannelAudioSrcTypeMic :10 /**< 来源于麦克风声音 */
},
ZegoDeviceErrorReason:
{
/** 一般性错误 */
ZEGO_DEVICE_ERROR_REASON_GENERIC : -1,
/** 无效设备 ID */
ZEGO_DEVICE_ERROR_REASON_INVALID_ID : -2,
/** 没有权限 */
ZEGO_DEVICE_ERROR_REASON_NO_AUTHORIZATION : -3,
/** 采集帧率为0 */
ZEGO_DEVICE_ERROR_REASON_ZERO_FPS : -4,
/** 设备被占用 */
ZEGO_DEVICE_ERROR_REASON_IN_USE_BY_OTHER : -5,
/** 设备未插入 */
ZEGO_DEVICE_ERROR_REASON_UNPLUGGED : -6,
/** 需要重启系统 */
ZEGO_DEVICE_ERROR_REASON_REBOOT_REQUIRED : -7,
/** 媒体服务无法恢复 */
ZEGO_DEVICE_ERROR_REASON_MEDIA_SERVICES_LOST : -8,
/** 没有错误 */
ZEGO_DEVICE_ERROR_REASON_NONE : 0,
/** 禁用 */
ZEGO_DEVICE_ERROR_REASON_DISABLED : 2,
/** 屏蔽采集 */
ZEGO_DEVICE_ERROR_REASON_MUTE : 3,
/** 中断 */
ZEGO_DEVICE_ERROR_REASON_INTERRUPTION : 4,
/** 在后台 */
ZEGO_DEVICE_ERROR_REASON_IN_BACKGROUND : 5,
/** 前台有多个 APP 运行 */
ZEGO_DEVICE_ERROR_REASON_MULTI_FOREGROUND_APP : 6,
/** 系统压力过大 */
ZEGO_DEVICE_ERROR_REASON_SYSTEM_PRESSURE : 7
},
ZegoSeiMediaInfoType:{
/** ZEGO 定义的打包类型,跟视频编码器产生的信息不存兼容性问题, 但是在其它 CDN 上转码视频的时候,其它 CDN 基本上不支持提取这种方式打包的信息数据,转码完成后再从其它 CDN 拉流时,可能就丢失了这些次媒体信息 */
MEDIAINFOTYPE_SIDEINFO_ZEGODEFINED:0,
/** 采用 H264 的 SEI (nalu type = 6,payload type = 243) 类型打包,此类型是 SEI 标准未规定的类型,跟视频编码器或者视频文件中的 SEI 不存在冲突性,用户不需要根据 SEI 的内容做过滤 */
MEDIAINFOTYPE_SIDEINFO_SEIZEGODEFINED:1,
/** 采用 H264 的 SEI (nalu type = 6,payload type = 5) 类型打包,H264 标准对于此类型有规定的格式:startcode + nalu type(6) + payload type(5) + len + pay load(uuid + context)+ trailing bits。*/
/** 因为视频编码器自身会产生 payload type 为 5 的 SEI,或者使用视频文件推流时,视频文件中也可能存在这样的 SEI,所以使用此类型时,用户需要把 uuid + context 当作一段 buffer 塞给次媒体的发送接口 */
/** 为了区别视频编码器自身产生的 SEI,所以对 uuid 有格式要求,即 uuid 16字节的前四个字节固定为 'Z' 'E' 'G' 'O' 四个字符(全部大写),后面12字节用户任意填写 */
/** 在 SDK 接收端,对于 payload type = 5的 SEI 会根据'ZEGO'字样做过滤,识别出符合要求的 SEI 抛给用户,避免用户收到编码器自身产生的 SEI */
MEDIAINFOTYPE_SIDEINFO_SEIUSERUNREGISTED:2
},
ZegoSeiSendType:{
/** SEI 单帧发送,此种发送方式下,ffmpeg 解码会产生类似“此帧无视频”的警告,可能会导致一些 CDN 兼容性问题,例如转码失败等。*/
SEISEND_SINGLE_FRAME:0,
/** SEI 随视频帧(I, B, P)发送,推荐采用此类型*/
SEISEND_IN_VIDEO_FRAME:1
}
}
module.exports = exports = ZEGOCONSTANTS;