跳到主要内容

接口概述

接口说明

初始化

MoSDK.init(Application app, @NonNull MoConfig config, MoRspListener listener)
参数说明
appapplication对象
configSDK配置。详见MoConfig
listener初始化回调。详见MoRspListener

成功回调Void
失败回调error

登录

普通登录接口

MoSDK.login(boolean isMoPlat, @NonNull String server, int port, @NonNull String account, @NonNull String passwd, MoRspListener listener)
参数说明
isMoPlattrue:摩云平台 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)

注:进入加密会议时收到MoRspListeneronConfPasswd()的回调显示输入密码界面后点确认调用此接口,如果入会密码错误会重新回调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)
参数说明
btrue:开启语音激励,false:关闭语音激励

开关麦克风

MoSDK.setRecordMute(boolean mute)
参数说明
mutetrue:本地哑音,false:取消本地哑音

开关扬声器

MoSDK.setSilence(boolean silence)
参数说明
silencetrue:本地静音,false:取消本地静音

开关摄像头

MoSDK.pausePublishStream(boolean pause)
参数说明
pausetrue:关闭摄像头暂停发布码流,false:开启摄像头恢复发布码流

哑音其他终端

MoSDK.setMuteOther(String e164, boolean mute)

注:需要会议管理员(主席)权限

参数说明
e164远端e164号
mutetrue:哑音,false:取消哑音

申请管理权(主席)

MoSDK.applyChairReq()

申请后等待ConfCtrlListeneronChairmanRoleChange推送结果,申请后至少等待一分钟才能继续申请,请勿连续申请

释放管理权(主席)

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)

详见LoginListener

设置会议监听

MoSDK.setConfNtfListener(MoNtfListener.ConfListener listener)

详见ConfListener

设置会议呼叫监听

MoSDK.setConfCallingNtfListener(MoNtfListener.ConfCallingListener listener)

详见ConfCallingListener

设置会控监听

MoSDK.setConfCtrlNtfListener(MoNtfListener.ConfCtrlListener listener)

详见ConfCtrlListener

回调说明

MoRspListener主动调用接口结果回调

注:SDK请求成功的结果会以实体类的方式发送到回调接口中,因此在onSuccess(Object obj)中需要将obj强转成对应的实体类使用。

void onSuccess(Object obj) 请求成功回调

  • obj - 接口对应的实体类结果,部分接口无需关注此参数

void onFailed(int 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) 底层保活失败异常登出通知

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) 发言人变更通知

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) 会议结束通知

void onLocalDual(Conferee conferee, boolean isStart, int result) 本地双流预览状态通知

  • conferee - 与会方。详见Conferee
  • isStart - true:本地双流已开启,false:本地双流已关闭
  • result - 错误码。详见错误码说明

void onConfStatistics(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) 其他终端申请管理员权限推送

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

字段类型说明
confBitrateint会议码率,单位kb/s,默认2048
firstMuteboolean是否以哑音入会,默认正常入会
openCameraboolean是否关闭摄像头入会,默认开启
showBadgeboolean是否开启画面台标,默认开启

LoginRtcResult

字段类型说明
e164String登录的e164号

CreateConfParam

字段类型说明
nameString会议名称
durationint会议时长,单位分钟
bitrateint会议码率,单位kb/s
conf_typeint会议类型,见ConfType
max_join_mtint最大与会终端数
bHighDefinitionboolean是否高清会议,true:1080P false:720P
virtualConfIdString虚拟会议室ID
isCreateVirtualboolean是否创建虚拟会议
isOnlyMoyunboolean是否摩云平台专属

CreateConfResult

字段类型说明
conf_idString会议号码
meeting_idString视频会议唯一id
machine_room_moidString机房moid

JoinConfResult

字段类型说明
confE164String会议号
confNameString会议名称

ConfStatistics

字段类型说明
mSendStatisticsListList本地发送统计。详见LocalSendStatistics
mRecStatisticsListList远端接收统计。详见RemoteRecStatistics

LocalSendStatistics

字段类型说明
idint第几路码流(小流=0,中流=1,大流=2;音频为-1)
typeint码流类型(音频统计为-1)
videoProtocolString视频协议
audioProtocolString音频协议
frameRateint帧率
widthint视频宽度
heightint视频高度
bitratedouble码率(kbps)
isVideoboolean是否为视频统计
jitterint抖动(ms)
roundTripDelayint延时(ms)
lossRatelong丢包率
pLossCountint丢包总数

RemoteRecStatistics

字段类型说明
idint第几路码流(小流=0,中流=1,大流=2;音频为-1)
e164String与会方e164号(混音流为空)
nameString与会方昵称
typeint码流类型(音频统计为-1)
frameRateint帧率
frameCountint接收帧数
protocolString码流协议
widthint视频宽度
heightint视频高度
bitratedouble码率(kbps)
isVideoboolean是否为视频统计
jitterint抖动(ms)
roundTripDelayint延时(ms)
pkLoseRatelong丢包率
pkLoseCountint丢包总数

ReqVConfResult

字段类型说明
totalint会议总数
confsList会议信息。详见VConf

VConf

字段类型说明
nameString会议名称。最大字符长度:128个字节,最大字符:32字符
user_domain_moidString会议所属的用户域moid
user_domain_nameString会所属的的用户域名称
meeting_room_nameString虚拟会议室名称,当返回为空字符串时说明不是召开的虚拟会议室
conf_idString会议号。最大字符长度:48个字节
conf_levelint会议级别:1-16, 值越小, 级别越高(用于抢呼已在其他会议里的终端)
enable_rtcint是否允许RTC接入0-关闭;1-开启;
voice_activity_detectionint是否开启语音激励0-否;1-是;
vacintervalint语音激励敏感度(s),最小值3s, 开启语音激励时有效
conf_typeint会议类型0-传统;1-端口;2-SFU纯转发会议;
watermarkint是否开启视频水印0-未开启;1-开启;
conf_categoryint会议类别0-多点会议;1-调度会议;2-点对点;
start_timeString会议开始时间(ISO8601:2000格式表示)
end_timeString会议结束时间(ISO8601:2000格式表示)
durationint会议时长。0为永久会议
bitrateint会议码率
closed_confint会议免打扰。0-关闭;1-开启;
safe_confint会议安全。0-公开会议;1-隐藏会议;
encrypted_typeint传输加密类型。0-不加密;2-AES加密;3-商密(SM4);6-商密(SM1);
encrypted_authint终端双向认证。0-关闭;1-开启;
muteint初始化哑音。0-否;1-是;
multi_streamint下级会议中的多流终端回传是否开启。0-不开启;1-开启;
mute_filterint全场哑音例外,参数为1时,若执行全场哑音操作,主席和发言人不会被哑音,若执行单个哑音操作时可以被哑音0-否;1-是;
force_muteint全场哑音下是否禁止终端取消自身哑音。0-否;1-是;
anonymous_mtint是否支持匿名终端入会。0-否;1-是;
silenceint初始化静音。0-否;1-是;
auto_endint自动结会(少于两个终端时自动结会)。0-不自动结会;1-自动结会;
preoccupy_resourceint预占资源模式(创会时就预占音视频适配器)。0-不预占模式;1-预占模式;2-SFU纯转发模式;
video_qualityint视频质量。0-质量优先;1-速度优先;
encrypted_keyString传输加密AES加密密钥,最大字符长度:16字节
dual_modeint双流权限。0-发言会场;1-任意会场;
public_confint是否公共会议。0-否;1-是;
max_join_mtint最大与会终端数。8-小型8方会议;32-32方会议;64-64方会议;192-大型192方会议;
force_broadcastint是否强制广播。0-不强制广播;1-强制广播;
fec_modeint是否支持码流纠错。0-关闭;1-开启;
need_passwordint是否需要密码。0-否;1-是;
one_reformingint归一重整,开启该功能后可增强对外厂商终端的兼容,但会使丢包重传失效。0-不启用;1-启用;
doubleflowint成为发言人后立即发起内容共享。0-否;1-是;
own_confint会议是否和我相关(我在会议列表中或我创建的会议)。0-否;1-是;
enable_audienceint是否超大方。0-否;1-是;
platform_idString创会平台moid
superior_cascadeint是否有上级级联会议室。0-否;1-是;
subordinate_cascadeint是否有下级级联会议室。0-否;1-是;
meeting_idString视频会议唯一id
creatorobject会议发起者。详见VConfCreator
conf_modeint会议类型, 0:云会议室 1:网络研讨会
superconf_mt_numint会议方数

VConfCreator

字段类型说明
nameString名称 最大字符长度:128个字节
accountString帐号 最大字符长度:128个字节
account_typeint帐号类型4-非系统邮箱;5-e164号码;6-电话;7-ip地址;8-别名@ip(监控前端);
telephoneString座机 最大字符长度:地区区号4位-字符电话16位-字符分机10位字符
mobileString手机 最大字符长度:15个字节

ReqConfInfoResult

字段类型说明
nameString会议名称 最大字符长度:128个字节,最大字符:32字符
conf_idString会议号 最大字符长度:48个字节
conf_typeint会议类型 0-传统.1-端口.2-SFU纯转发会议
watermarkint是否开启视频水印 0-未开启,1-开启
start_timeString会议开始时间(ISO8601:2000格式表示)
end_timeString会议结束时间(ISO8601:2000格式表示)
bitrateint会议码率
muteint初始化哑音 0-否,1-是
silenceint初始化静音 0-否,1-是
meeting_idString视频会议唯一id
enable_audienceint是否超大方 0-否,1-是
durationint会议时长 0为永久会议
video_formatsList主视频格式列表。详见VideoFormats

VideoFormats

字段类型说明
formatint主视频格式 1-MPEG,2-H.261,3-H.263,4-H.264_HP,5-H.264_BP,6-H.265,7-H.263+
resolutionint主视频分辨率 1-QCIF,2-CIF,3-4CIF,12-720P,13-1080P,14-WCIF,15-W4CIF,16-4k
frameint帧率
bitrateint码率

ReqMeetingLinkResult

字段类型说明
conf_linkString会议分享链接

特殊类说明

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码流发布失败:平台拒绝发布
4097SDK初始化失败:OSP初始化失败
4098SDK初始化失败:RtcAdapter初始化失败
4099SDK初始化失败:MediaCtrl初始化失败
4100SDK初始化失败:RtcWrapper初始化失败
4101SDK初始化失败:AVShareLib初始化失败
5376加入房间错误:重定向失败
5377加入房间错误:被呼房间号/会议号不存在
7777频繁请求
8193房间管理(会议控制)操作错误:尚未加入房间(不在会议中)
8888RTC初始化失败
9991观众申请发言错误码
9992接口参数错误
9993平台不支持的请求
9994网络断开
9995会议服务器未连接
9996只有主席才能结会
9997token获取失败
9998http请求处理错误
9999未知错误
12289设备管理错误:无摄像头
12290设备管理错误:无麦克风
12291设备管理错误:枚举摄像头列表出错
22003设备类型限制
23002执行数据库失败