McuClient API.md 10.6 KB

McuClient API参考说明


##McuClient 目录 ##

  • 创建McuClient对象

  • McuClient方法

  • McuClient回调事件

  • ErrorCode 错误码查询


##使用步骤说明 ##

  1. 创建McuClient对象
  2. McuClient初始化init
  3. 添加MessageTypes中的事件监听(接收各个模块的消息)
  4. McuClient加入会议
  5. 加入会议成功之后可以操作客户端界面

##创建McuClient对象 ## 只创建一次

示例代码

window.onload=function(){
    //创建client,这是必须的第一步
    const client=MCUClientEngine.createMcuClient();
    //获取事件监听消息定义
    const MessageTypes=MCUClientEngine.MessageTypes;
}

McuClient方法

初始化

client.init (paramInfo,onSuccess,mcuErrorEventHandler)

client创建完成之后第一步需要初始化。

示例代码

var paramInfo={ 
    "meetingNumber":123456,
    "portal":"127.0.0.1:80",
    "usertRole":"normal",
    "userID":0,
};
//初始化
client.init(paramInfo,onSuccess,mcuErrorEventHandler);
function onSuccess(callbackData){
    //初始化成功回调
    //{"siteId":"h5test","passwordRequired":true,"md5":"de399d5540b3da2fbc1eb0a770d4fd66","code":0,"msType":1}
};
function mcuErrorEventHandler(callbackData){
    //整个MCUClient中Error异常监听
    //返回值callbackData的结构为{"code":errorCode,"reson":""}
    //errorCode的列表在文档最后面的 ErrorCode错误码查询
};

参数名称

类型

该对象包含以下属性

paramInfo

对象

  • meetingNumber:(必选)Number 课堂号
  • portal:(必选)String IP地址
  • usertRole:(可选) String 用户的身份,5种类型,默认是normal ;host(主持人/老师)、presenter(主讲人)、assistant(助教)、normal(普通角色/学生),record(暂时没用)
  • userId:(可选) String 第三方用户id,默认是0

onSuccess

Function

(必选) Function 初始化成功回调函数,返回值:{"siteId":"h5test","passwordRequired":true,"md5":"de399d5540b3da2fbc1eb0a770d4fd66","code":0,"msType":1}

mcuErrorEventHandler

Function

(必选) Function 整个MCUClient中Error异常监听

加入会议

client.joinClass (paramInfo,onSuccess)

client初始化成功之后,加入会议。

示例代码

var paramInfo={
    "userName":"大名",//自己的名字,在列表中显示
    "password":"123321",//课堂密码,如果设置了密码需要验证
};

//加入会议
client.joinClass(paramInfo,onSuccess);

function onSuccess(callbackData){
    //加入会议成功回调
    //{"siteId":"h5test","confId":1292388778,"h5Module":0,"nodeId":1484789938,"topNodeID":101,"userRole":"normal","role":1,"isHost":false,"classRole":0,"userId":"0","userName":"cccccc","password":"222222","userType":8,"passwordRequired":true,"md5":"b36da144521b70d89e72993cd1117b5b","msType":1,"portal":"112.126.80.182:80","mcuDelay":3000,"MCUServerIP":"123.56.73.119","MCUServerPort":"7001","maxVideoChannels":1,"maxAudioChannels":1,"maxMediaChannels":2}
};

参数名称

类型

该对象包含以下属性

paramInfo

对象

  • userName:(必选)String 进入课堂的名字
  • password:(可选)String 进入课堂的密码,如果课堂不设置密码就不需要,设置了密码的情况下,进入课堂需要输入密码,根据初始化回调的参数passwordRequired来判断

onSuccess

Function

(必选) Function 成功回调函数

离开会议

client.leaveClass()

离开会议

获取当前的状态

client.currentStatus()

获取当前的状态

示例代码

var callbackData=client.currentStatus();
//返回一个对象
//{code:0,message:"XXXXXX"}

参数名称

类型

该对象包含以下属性

callbackData

对象

  • code:Number
  • 0 //SDK 未初始化 1 //未加入会议 2 //已经加入会议 3 //已经离开会议 4 //未知状态
  • message:String 状态的描述,对应code,默认为空

发送消息

client.sendChatMsg(paramInfo)

发送聊天消息

示例代码

var paramInfo={
    "message":"需要发送的内容",
    "to":0

};
client.sendChatMsg(paramInfo);

参数名称

类型

该对象包含以下属性

paramInfo

对象

  • message:(必选)String 消息内容
  • to:(可选) Number 接收消息的人的ID,默认值是0(所有人都)

McuClient 回调事件

会议日志信息 事件回调

示例代码

client.on(MessageTypes.CLASS_SHOW_DETAIL, function(callbackData){
{
"repeatmonthweekweek": 0,
"endmode": 0,
"repeatweek": "",
"endcount": 1,
"errorCode": 0,
"cycle": 0,
"repeatmonthday": 0,
"frequency": 1,
"repeatday": 0,
"meetingName": "mcuClient",
"repeatmode": 0,
"finalenddate": "",
"meetingContent": "",
"beginTime": "2017-01-16 13:00:00",
"endTime": "2017-01-31 15:00:00",
"monthType": 0,
"category": "",
"repeatmonthweekday": 0,
"status": 1

} });

会议有人加入 事件回调

示例代码

 client.on(MessageTypes.CLASS_INSERT_ROSTER,function(callbackData){
    //返回值
    //{"nodeId":1483947664,"nodeData":{"nodeId":1483947664,"name":"cccccc","role":1,"level":0,"audioRecords":[],"videoRecords":[],"status":null,"userData":{"qq":"","skype":"","mobile":""},"userId":"0","handUpTime":null,"deviceType":3,"mobileDirection":null}};
});

会议有人离开 事件回调

示例代码

 client.on(MessageTypes.CLASS_DELETE_ROSTER,function(callbackData){
    //{"nodeId":1234}
});

关闭会议 事件回调

示例代码

client.on(MessageTypes.CLASS_EXIT, function(callbackData){
    //.....
});

收到聊天消息 事件回调

示例代码

client.on(MessageTypes.CHAT_RECEIVE, function(callbackData){
    //{"fromNodeID":1484207995,"toNodeID":0,"message":"消息内容","fromName":"发送消息人的名字","fromRole":0}
});

视频显示 事件回调

示例代码

client.on(MessageTypes.VIDEO_RECEIVE, function(callbackData){
    //.....
});

文档 事件回调

示例代码

client.on(MessageTypes.DOC_SHOW, function(callbackData){
    //.....
});

文档笔记 事件回调

示例代码

client.on(MessageTypes.DOC_ANNOTATION,function(callbackData){
    //.....
});

删除文档 事件回调

示例代码

 client.on(MessageTypes.DOC_DEL,function(callbackData){
    //.....
});

ErrorCode 错误码查询

MessageTypes.ERR_NETWORK=10000;//网络错误
MessageTypes.ERR_UNKNOWN=10001;//未知错误


//会议初始化失败的几种情况
MessageTypes.ERR_CLASS_INIT_PAEAM=100;//初始化参数错误
MessageTypes.ERR_CLASS_INIT_NETWORK=101;//初始化网络错误
MessageTypes.ERR_CLASS_INIT_PROTOCOL=102;//初始化协议错误
MessageTypes.ERR_CLASS_INIT_FAILED=103;//初始化验证失败


//加入会议失败的几种情况
MessageTypes.ERR_CLASS_JOIN_NETWORK=200;//加入会议网络错误
MessageTypes.ERR_CLASS_JOIN_PROTOCOL=201;//加入会议化协议错误
MessageTypes.ERR_CLASS_JOIN_FAILED=202;//加入会议化异常错误
MessageTypes.ERR_CLASS_JOIN_PARAM=203;//加入会议参数错误
MessageTypes.ERR_CLASS_JOIN_FULL=204;//人数已满
MessageTypes.ERR_CLASS_MD5_WRONG=205;//MD5验证失败
MessageTypes.ERR_CLASS_PASSWORD_WRONG=206;//密码错误
MessageTypes.ERR_CLASS_JOIN_CONFILICT=207;//已经在其它地方登陆


MessageTypes.ERR_GET_CLASS_DETAIL=300;//获取classDetail失败
MessageTypes.ERR_GET_MEETING_PARAML=301;//获取MeetingParam失败