接口概述
接口说明
初始化
MoSDK.init(Application app, @NonNull MoConfig config, MoRspListener listener)
| 参数 | 说明 |
|---|---|
| app | application对象 |
| config | SDK配置。详见MoConfig |
| listener | 初始化回调。详见MoRspListener |
成功回调Void
失败回调error
登录
普通登录接口
MoSDK.login(boolean isMoPlat, @NonNull String server, int port, @NonNull String account, @NonNull String passwd, MoRspListener listener)
| 参数 | 说明 |
|---|---|
| isMoPlat | true:摩云平台 false:科达通用平台 |
| server | 服务器地址 |
| port | 端口 |
| account | 账号 |
| passwd | 密码 |
| listener | 登录回调。详见MoRspListener |
成功回调LoginRtcResult
失败回调error
鉴权登录接口
MoSDK.loginEx(String server, String userId, String token, MoRspListener listener)
| 参数 | 说明 |
|---|---|
| server | 服务器地址。如果是用户自有平台必须与摩云平台进行账号绑定 |
| userId | 用户唯一id |
| token | 认证授权token |
| listener | 登录回调。详见MoRspListener |
成功回调LoginRtcResult
失败回调error
退出登录
MoSDK.logout(MoRspListener listener)
| 参数 | 说明 |
|---|---|
| listener | 退出登录回调。详见MoRspListener |
成功回调Void
失败回调error
创建会议
MoSDK.createConf(@NonNull CreateConfParam param, MoRspListener listener)
| 参数 | 说明 |
|---|---|
| param | 创会参数。详见CreateConfParam |
| listener | 创会回调。详见MoRspListener |
成功回调CreateConfResult
失败回调error
加入会议
MoSDK.joinConf(String confId, MoRspListener listener)
| 参数 | 说明 |
|---|---|
| confId | 会议号 |
| listener | 入会回调。详见MoRspListener |
成功回调JoinConfResult
失败回调error
接听呼叫
MoSDK.acceptCall(MoRspListener listener)
| 参数 | 说明 |
|---|---|
| listener | 接听回调。详见MoRspListener |
成功回调Void
失败回调error
挂断呼叫
MoSDK.rejectCall(MoRspListener listener)
| 参数 | 说明 |
|---|---|
| listener | 挂断回调。详见MoRspListener |
成功回调Void
失败回调error
离开会议
MoSDK.quitConf(MoRspListener listener)
| 参数 | 说明 |
|---|---|
| listener | 离会回调。详见MoRspListener |
成功回调Void
失败回调error
结束会议
MoSDK.endConf(MoRspListener listener)
注:需要会议管理员(主席)权限
| 参数 | 说明 |
|---|---|
| listener | 结会回调。详见MoRspListener |
成功回调Void
失败回调error
验证入会密码
MoSDK.inputConfPassword(String password)
注:进入加密会议时收到MoRspListener的
onConfPasswd()的回调显示输入密码界面后点确认调用此接口,如果入会密码错误会重新回调onConfPasswd()
| 参数 | 说明 |
|---|---|
| password | 入会密码 |
放弃入加密会议
MoSDK.giveUpInputConfPasswd()
获取会议列表
MoSDK.getConfList(MoRspListener listener)
| 参数 | 说明 |
|---|---|
| listener | 会议列表回调。详见MoRspListener |
成功回调ReqVConfResult
失败回调error
获取当前会议详情
MoSDK.getConfInfo(MoRspListener listener)
| 参数 | 说明 |
|---|---|
| listener | 会议详情回调。详见MoRspListener |
成功回调ReqConfInfoResult
失败回调error
获取会议链接
MoSDK.getConfShareLink(String meetingId, MoRspListener listener)
| 参数 | 说明 |
|---|---|
| meetingId | 会议id,注意不是会议号e164,需先通过getConfInfo得到会议id |
| listener | 会议链接回调。详见MoRspListener |
成功回调ReqMeetingLinkResult
失败回调error
开关语音激励
MoSDK.toggleIndication(boolean b)
| 参数 | 说明 |
|---|---|
| b | true:开启语音激励,false:关闭语音激励 |
开关麦克风
MoSDK.setRecordMute(boolean mute)
| 参数 | 说明 |
|---|---|
| mute | true:本地哑音,false:取消本地哑音 |
开关扬声器
MoSDK.setSilence(boolean silence)
| 参数 | 说明 |
|---|---|
| silence | true:本地静音,false:取消本地静音 |
开关摄像头
MoSDK.pausePublishStream(boolean pause)
| 参数 | 说明 |
|---|---|
| pause | true:关闭摄像头暂停发布码流,false:开启摄像头恢复发布码流 |
哑音其他终端
MoSDK.setMuteOther(String e164, boolean mute)
注:需要会议管理员(主席)权限
| 参数 | 说明 |
|---|---|
| e164 | 远端e164号 |
| mute | true:哑音,false:取消哑音 |
申请管理权(主席)
MoSDK.applyChairReq()
申请后等待ConfCtrlListener的
onChairmanRoleChange推送结果,申请后至少等待一分钟才能继续申请,请勿连续申请
释放管理权(主席)
MoSDK.releaseChairReq()
注:需要会议管理员(主席)权限
转让管理权(主席)
MoSDK.specChairmanRsp(String e164)
注:需要会议管理员(主席)权限
| 参数 | 说明 |
|---|---|
| e164 | 被转让者e164号 |
延长会议时间
MoSDK.extentMeetingTime(int time)
注:需要会议管理员(主席)权限
| 参数 | 说明 |
|---|---|
| time | 延长时间,单位:分钟 |
获取所有与会方
MoSDK.getAllConferees()
返回与会方列表,详见Conferee
找到双流与会方
MoSDK.findAssConferee()
返回双流与会方,详见Conferee
找到合成画面与会方
MoSDK.findVmpConferee()
返回合成画面与会方,详见Conferee
找到自己
MoSDK.findMySelf()
返回自己与会方,详见Conferee
设置登录状态监听
MoSDK.setLoginNtfListener(MoNtfListener.LoginListener listener)
设置会议监听
MoSDK.setConfNtfListener(MoNtfListener.ConfListener listener)
设置会议呼叫监听
MoSDK.setConfCallingNtfListener(MoNtfListener.ConfCallingListener listener)
设置会控监听
MoSDK.setConfCtrlNtfListener(MoNtfListener.ConfCtrlListener listener)
回调说明
MoRspListener主动调用接口结果回调
注:SDK请求成功的结果会以实体类的方式发送到回调接口中,因此在onSuccess(Object obj)中需要将obj强转成对应的实体类使用。
void onSuccess(Object obj)请求成功回调
- obj - 接口对应的实体类结果,部分接口无需关注此参数
void onFailed(int error)请求失败回调
- error - 错误码。详见错误码说明
void onDownloadSuccess(long total, String path)下载完成回调
- total - 下载文件的总大小
- path - 已下载的文件路径
void onDownloadProcess(int progress, long contentSize)下载进度回调
- progress - 下载进度百分比
- contentSize - 已下载的文件大小
void onConfPasswd()加入带密码会议的回调
MoNtfListener被动接收平台消息回调
LoginListener登录状态监听
onLoginNtf(int result)登录异常状态通知
onExceptionLogout(int result)底层保活失败异常登出通知
- result - 错误码。详见错误码说明
ConfListener会议相关监听
void onConfereeJoined(Conferee conferee)成员入会通知
void onConfereeLeft(Conferee conferee)成员离会通知
void onConfereePublishStream(Conferee conferee)与会成员发布码流通知
void onConfereeUnPublishStream(Conferee conferee)与会成员取消发布码流通知
void onVoiceIndication(Conferee conferee)语音激励方通知
void onMeetingBroadCastConferee(Conferee conferee)会议广播通知
void onSpeakerChanged(@Nullable Conferee conferee)发言人变更通知
- conferee - 与会方。详见Conferee
void onRemoteCameraState(String e164, boolean isOpen)远端摄像头状态通知
- e164 - 与会方e164号
- isOpen - true:摄像头开启,false:摄像头关闭
void onRemoteSilence(String e164, boolean isSilence)远端扬声器状态通知
- e164 - 与会方e164号
- isSilence - true:扬声器关闭,false:扬声器开启
void onRemoteMute(String e164, boolean isMute)远端麦克风状态通知
- e164 - 与会方e164号
- isMute - true:麦克风关闭,false:麦克风开启
void onConfFinished(int reason)会议结束通知
- reason - 错误码。详见错误码说明
void onLocalDual(Conferee conferee, boolean isStart, int result)本地双流预览状态通知
void onConfStatistics(ConfStatistics confStatistics)会议信息统计通知
- confStatistics - 会议统计。详见ConfStatistics
void onVmpParam(List<Conferee> confereeList, int style, boolean bForce, int mod)画面合成参数通知
- confereeList - 与会方。详见Conferee
- style - 画面风格类型
- bForce - 是否强制。true:强制,false:不强制
- mod - 画面风格模式
ConfCallingListener会议呼叫监听
void onInvite(String confId, String confName)会议呼叫通知
void onCancelInvite(String confId, String confName)会议呼叫取消通知
- confId - 会议号
- confName - 会议名称
ConfCtrlListener会控相关监听
void onMute(boolean isMute, boolean isLocal)本地哑音状态推送
- isMute - true:哑音,false:不哑音
- isLocal - true:本地操作,false:远端操作
void onSilence(boolean isSilence, boolean isLocal)本地静音状态推送
- isSilence - true:静音,false:不静音
- isLocal - true:本地操作,false:远端操作
void onMuteOther(String e164, boolean isMute)远端哑音状态推送
- e164 - 远端e164号
- isMute - true:哑音,false:不哑音
void onConfMemberStatusChange()会议管理方或发言方变更推送
void onConfIdentityChange()会议身份变更推送,如自己由互动方变成观众方
void onSeeBroadcastCmd(boolean isOpen, Conferee conferee)强制广播推送
强制广播推送(兼容老平台)void onSeeBroadcastForce(boolean isOpen, Conferee conferee)
- isOpen - true:开启,false:关闭
- conferee - 推送关注的与会方。详见Conferee
void onAddWatermark(boolean open)会管水印开关推送
- open - true:开启水印,false:关闭水印
void onSimpleMsg(String msg)会管推送的短消息
- msg - 消息内容
void onChairmanRoleChange(boolean isChair)本地管理员状态推送
- isChair - true:被授予管理员,false:被取消管理员/授权未同意
void onConfWilled(int leftTime)会议即将结束推送
- leftTime - 剩余时间(分钟)
void onExtentMeetingTimeRsp(int delay)管理员操作延迟会议的结果通知
void onDelayConfTime(int delay)成员收到的延迟会议通知
- delay - 延长的时间(分钟)
void onApplyChairNtf(@Nullable Conferee conferee)其他终端申请管理员权限推送
- conferee - 申请者。详见Conferee
void onFeccCmdNtf(int action, int request)会管控制摄像头推送
- action - 指令
- request - 方向/大小
void onConfDumb(boolean confDumb)会议全体哑音通知
- confDumb - true:全体哑音,false:解除全体哑音
void onConfDualModel(int confDualModel)会议共享模式通知
- confDualModel - 0:发言会场,1:任意会场
void onConfNotDisturb(boolean isNotDisturb)会议免打扰通知
- isNotDisturb - true:开启会议免打扰,false:关闭会议免打扰
void onMixModeChanged(int mode)会议混音状态切换推送
- mode - 0:普通关闭,1:普通开启,3:关闭语音激励下混音,4:语音激励下开启混音
实体类说明
MoConfig
| 字段 | 类型 | 说明 |
|---|---|---|
| confBitrate | int | 会议码率,单位kb/s,默认2048 |
| firstMute | boolean | 是否以哑音入会,默认正常入会 |
| openCamera | boolean | 是否关闭摄像头入会,默认开启 |
| showBadge | boolean | 是否开启画面台标,默认开启 |
LoginRtcResult
| 字段 | 类型 | 说明 |
|---|---|---|
| e164 | String | 登录的e164号 |
CreateConfParam
| 字段 | 类型 | 说明 |
|---|---|---|
| name | String | 会议名称 |
| duration | int | 会议时长,单位分钟 |
| bitrate | int | 会议码率,单位kb/s |
| conf_type | int | 会议类型,见ConfType |
| max_join_mt | int | 最大与会终端数 |
| bHighDefinition | boolean | 是否高清会议,true:1080P false:720P |
| virtualConfId | String | 虚拟会议室ID |
| isCreateVirtual | boolean | 是否创建虚拟会议 |
| isOnlyMoyun | boolean | 是否摩云平台专属 |
CreateConfResult
| 字段 | 类型 | 说明 |
|---|---|---|
| conf_id | String | 会议号码 |
| meeting_id | String | 视频会议唯一id |
| machine_room_moid | String | 机房moid |
JoinConfResult
| 字段 | 类型 | 说明 |
|---|---|---|
| confE164 | String | 会议号 |
| confName | String | 会议名称 |
ConfStatistics
| 字段 | 类型 | 说明 |
|---|---|---|
| mSendStatisticsList | List | 本地发送统计。详见LocalSendStatistics |
| mRecStatisticsList | List | 远端接收统计。详见RemoteRecStatistics |
LocalSendStatistics
| 字段 | 类型 | 说明 |
|---|---|---|
| id | int | 第几路码流(小流=0,中流=1,大流=2;音频为-1) |
| type | int | 码流类型(音频统计为-1) |
| videoProtocol | String | 视频协议 |
| audioProtocol | String | 音频协议 |
| frameRate | int | 帧率 |
| width | int | 视频宽度 |
| height | int | 视频高度 |
| bitrate | double | 码率(kbps) |
| isVideo | boolean | 是否为视频统计 |
| jitter | int | 抖动(ms) |
| roundTripDelay | int | 延时(ms) |
| lossRate | long | 丢包率 |
| pLossCount | int | 丢包总数 |
RemoteRecStatistics
| 字段 | 类型 | 说明 |
|---|---|---|
| id | int | 第几路码流(小流=0,中流=1,大流=2;音频为-1) |
| e164 | String | 与会方e164号(混音流为空) |
| name | String | 与会方昵称 |
| type | int | 码流类型(音频统计为-1) |
| frameRate | int | 帧率 |
| frameCount | int | 接收帧数 |
| protocol | String | 码流协议 |
| width | int | 视频宽度 |
| height | int | 视频高度 |
| bitrate | double | 码率(kbps) |
| isVideo | boolean | 是否为视频统计 |
| jitter | int | 抖动(ms) |
| roundTripDelay | int | 延时(ms) |
| pkLoseRate | long | 丢包率 |
| pkLoseCount | int | 丢包总数 |
ReqVConfResult
| 字段 | 类型 | 说明 |
|---|---|---|
| total | int | 会议总数 |
| confs | List | 会议信息。详见VConf |
VConf
| 字段 | 类型 | 说明 |
|---|---|---|
| name | String | 会议名称。最大字符长度:128个字节,最大字符:32字符 |
| user_domain_moid | String | 会议所属的用户域moid |
| user_domain_name | String | 会所属的的用户域名称 |
| meeting_room_name | String | 虚拟会议室名称,当返回为空字符串时说明不是召开的虚拟会议室 |
| conf_id | String | 会议号。最大字符长度:48个字节 |
| conf_level | int | 会议级别:1-16, 值越小, 级别越高(用于抢呼已在其他会议里的终端) |
| enable_rtc | int | 是否允许RTC接入0-关闭;1-开启; |
| voice_activity_detection | int | 是否开启语音激励0-否;1-是; |
| vacinterval | int | 语音激励敏感度(s),最小值3s, 开启语音激励时有效 |
| conf_type | int | 会议类型0-传统;1-端口;2-SFU纯转发会议; |
| watermark | int | 是否开启视频水印0-未开启;1-开启; |
| conf_category | int | 会议类别0-多点会议;1-调度会议;2-点对点; |
| start_time | String | 会议开始时间(ISO8601:2000格式表示) |
| end_time | String | 会议结束时间(ISO8601:2000格式表示) |
| duration | int | 会议时长。0为永久会议 |
| bitrate | int | 会议码率 |
| closed_conf | int | 会议免打扰。0-关闭;1-开启; |
| safe_conf | int | 会议安全。0-公开会议;1-隐藏会议; |
| encrypted_type | int | 传输加密类型。0-不加密;2-AES加密;3-商密(SM4);6-商密(SM1); |
| encrypted_auth | int | 终端双向认证。0-关闭;1-开启; |
| mute | int | 初始化哑音。0-否;1-是; |
| multi_stream | int | 下级会议中的多流终端回传是否开启。0-不开启;1-开启; |
| mute_filter | int | 全场哑音例外,参数为1时,若执行全场哑音操作,主席和发言人不会被哑音,若执行单个哑音操作时可以被哑音0-否;1-是; |
| force_mute | int | 全场哑音下是否禁止终端取消自身哑音。0-否;1-是; |
| anonymous_mt | int | 是否支持匿名终端入会。0-否;1-是; |
| silence | int | 初始化静音。0-否;1-是; |
| auto_end | int | 自动结会(少于两个终端时自动结会)。0-不自动结会;1-自动结会; |
| preoccupy_resource | int | 预占资源模式(创会时就预占音视频适配器)。0-不预占模式;1-预占模式;2-SFU纯转发模式; |
| video_quality | int | 视频质量。0-质量优先;1-速度优先; |
| encrypted_key | String | 传输加密AES加密密钥,最大字符长度:16字节 |
| dual_mode | int | 双流权限。0-发言会场;1-任意会场; |
| public_conf | int | 是否公共会议。0-否;1-是; |
| max_join_mt | int | 最大与会终端数。8-小型8方会议;32-32方会议;64-64方会议;192-大型192方会议; |
| force_broadcast | int | 是否强制广播。0-不强制广播;1-强制广播; |
| fec_mode | int | 是否支持码流纠错。0-关闭;1-开启; |
| need_password | int | 是否需要密码。0-否;1-是; |
| one_reforming | int | 归一重整,开启该功能后可增强对外厂商终端的兼容,但会使丢包重传失效。0-不启用;1-启用; |
| doubleflow | int | 成为发言人后立即发起内容共享。0-否;1-是; |
| own_conf | int | 会议是否和我相关(我在会议列表中或我创建的会议)。0-否;1-是; |
| enable_audience | int | 是否超大方。0-否;1-是; |
| platform_id | String | 创会平台moid |
| superior_cascade | int | 是否有上级级联会议室。0-否;1-是; |
| subordinate_cascade | int | 是否有下级级联会议室。0-否;1-是; |
| meeting_id | String | 视频会议唯一id |
| creator | object | 会议发起者。详见VConfCreator |
| conf_mode | int | 会议类型, 0:云会议室 1:网络研讨会 |
| superconf_mt_num | int | 会议方数 |
VConfCreator
| 字段 | 类型 | 说明 |
|---|---|---|
| name | String | 名称 最大字符长度:128个字节 |
| account | String | 帐号 最大字符长度:128个字节 |
| account_type | int | 帐号类型4-非系统邮箱;5-e164号码;6-电话;7-ip地址;8-别名@ip(监控前端); |
| telephone | String | 座机 最大字符长度:地区区号4位-字符电话16位-字符分机10位字符 |
| mobile | String | 手机 最大字符长度:15个字节 |
ReqConfInfoResult
| 字段 | 类型 | 说明 |
|---|---|---|
| name | String | 会议名称 最大字符长度:128个字节,最大字符:32字符 |
| conf_id | String | 会议号 最大字符长度:48个字节 |
| conf_type | int | 会议类型 0-传统.1-端口.2-SFU纯转发会议 |
| watermark | int | 是否开启视频水印 0-未开启,1-开启 |
| start_time | String | 会议开始时间(ISO8601:2000格式表示) |
| end_time | String | 会议结束时间(ISO8601:2000格式表示) |
| bitrate | int | 会议码率 |
| mute | int | 初始化哑音 0-否,1-是 |
| silence | int | 初始化静音 0-否,1-是 |
| meeting_id | String | 视频会议唯一id |
| enable_audience | int | 是否超大方 0-否,1-是 |
| duration | int | 会议时长 0为永久会议 |
| video_formats | List | 主视频格式列表。详见VideoFormats |
VideoFormats
| 字段 | 类型 | 说明 |
|---|---|---|
| format | int | 主视频格式 1-MPEG,2-H.261,3-H.263,4-H.264_HP,5-H.264_BP,6-H.265,7-H.263+ |
| resolution | int | 主视频分辨率 1-QCIF,2-CIF,3-4CIF,12-720P,13-1080P,14-WCIF,15-W4CIF,16-4k |
| frame | int | 帧率 |
| bitrate | int | 码率 |
ReqMeetingLinkResult
| 字段 | 类型 | 说明 |
|---|---|---|
| conf_link | String | 会议分享链接 |
特殊类说明
Conferee
与会方抽象信息类,可以是参会者也可以是虚拟终端,仅在会议中使用
- 设置显示用的display,在预览或订阅之前调用
setDisplay(MDisplay display) - 预览或订阅,内部已做判断,调用者只需关注要不要显示
showDisplay(boolean isShow, VideoQuality videoQuality) - 获取已设置的display用于添加到layout作显示用
getDisplay() - 获取与会方类型
getType() - 判断与会方是不是自己
isMyself() - 判断与会方是不是双流
isDual() - 判断与会方是不是哑音状态
isMute() - 判断与会方是不是双流发送方
isAssSender() - 判断与会方是不是发言方
isSpeaker() - 判断与会方是不是主席
isPresenter() - 获取与会方的订阅质量
getVideoQuality()
MoCacheData
SDK缓存数据及状态类
- 判断当前是否在会议中
MoCacheData.isInConf() - 判断当前会议是否正在发送双流
MoCacheData.isSharing() - 判断自己是否为会议主席
MoCacheData.isChairman() - 判断自己是否为发言人
MoCacheData.isSpeaker()
枚举类说明
ConfType
TRADITIONAL, // 传统媒体会议
PORT, // 端口会议
RTC, // 纯转发会议(webrtc)
MIX, //混合会议(既是端口会议又是纯转发会议)
AUTO, //平台根据会议类型能力和终端支持的协议进行自动匹配
VideoQuality
LOW, //低画质,小流
MEDIUM, //中画质,中流
HIGH //高画质,大流
ConfereeType
NORMAL, //主流
ASS, //双流
VMP, //合成流
UNKNOWN //未知
错误码说明
注:由于功能迭代,部分错误码已经重复和冲突,下个版本会将错误码转换成枚举来统一维护
| 错误码 | 描述 |
|---|---|
| 0 | 成功 |
| 1 | 网络异常 |
| 2 | 网络中途断开连接(上层可立即监听网络状态,如果之后网络恢复正常,可尝试重新连接) |
| 3 | 参数异常 |
| 4 | 未进入房间 |
| 5 | 服务器异常 |
| 6 | 登录错误:重复注册(账号被另一台机器使用) |
| 7 | 登录错误:重复注册(本机已经注册成功) |
| 8 | 登录错误:注册操作太频繁(上次登录还在进行中,还没有返回结果) |
| 9 | 登录错误:Token错误 |
| 10 | 加入房间错误:重复入会 |
| 11 | 加入房间错误:未注册入会 |
| 12 | 加入房间错误:会议免打扰 |
| 13 | 被管理员请出 |
| 14 | 房间被解散 |
| 15 | 设备开启失败 |
| 16 | 无推双流权限 |
| 17 | 前后2次推双流的时间间隔太短(必须3秒以上) |
| 18 | 创建相互通道失败 |
| 19 | 扬声器异常 |
| 20 | 截图操作超时 |
| 21 | 未知错误 |
| 22 | 登录错误:无效的域名 |
| 23 | 登录错误:网络断开连接 |
| 24 | 加入房间错误:主动加入房间(入会)超时 |
| 25 | 登录错误:禁止匿名登录 |
| 26 | 登录错误:未知原因 |
| 27 | 登录错误:登录保活超时,并且重新尝试失败 |
| 28 | 加入房间错误:输入密码超时 |
| 29 | 重复订阅错误 |
| 30 | 重复取消订阅错误 |
| 31 | 登录错误:帐号被抢登 |
| 1280 | 码流发布失败:数据通道尚未建立 |
| 1281 | 码流发布失败:发送PeerConnection尚未创建 |
| 1282 | 码流发布失败:尚未加入任何房间 |
| 1283 | 码流发布失败:平台拒绝发布 |
| 4097 | SDK初始化失败:OSP初始化失败 |
| 4098 | SDK初始化失败:RtcAdapter初始化失败 |
| 4099 | SDK初始化失败:MediaCtrl初始化失败 |
| 4100 | SDK初始化失败:RtcWrapper初始化失败 |
| 4101 | SDK初始化失败:AVShareLib初始化失败 |
| 5376 | 加入房间错误:重定向失败 |
| 5377 | 加入房间错误:被呼房间号/会议号不存在 |
| 7777 | 频繁请求 |
| 8193 | 房间管理(会议控制)操作错误:尚未加入房间(不在会议中) |
| 8888 | RTC初始化失败 |
| 9991 | 观众申请发言错误码 |
| 9992 | 接口参数错误 |
| 9993 | 平台不支持的请求 |
| 9994 | 网络断开 |
| 9995 | 会议服务器未连接 |
| 9996 | 只有主席才能结会 |
| 9997 | token获取失败 |
| 9998 | http请求处理错误 |
| 9999 | 未知错误 |
| 12289 | 设备管理错误:无摄像头 |
| 12290 | 设备管理错误:无麦克风 |
| 12291 | 设备管理错误:枚举摄像头列表出错 |
| 22003 | 设备类型限制 |
| 23002 | 执行数据库失败 |