李勇

1.修改加入会议的接口,增加两个字段,摄像头和麦克风是否可用的字段

2.用户信息中增加摄像头和麦克风是否可用两个属性
... ... @@ -198,7 +198,7 @@ export default class MessageEntrance extends Emiter {
GlobalConfig.portal = _param.portal;
GlobalConfig.userRole = _param.userRole || ApeConsts.normal;
GlobalConfig.userId = _param.userId || "0";
GlobalConfig.userName=_param.userName || "";
//获取课堂校验信息
if (_sass) {
_sass.getJoinParams(GlobalConfig.getClassInfo());
... ... @@ -221,9 +221,13 @@ export default class MessageEntrance extends Emiter {
return;
}
GlobalConfig.userName = _param.userName;
if(GlobalConfig.userName==null||GlobalConfig.userName==""){
GlobalConfig.userName = _param.userName;
}
GlobalConfig.password = _param.password || "";
GlobalConfig.hasCamera=(typeof _param.hasCamera=="boolean")? _param.hasCamera:false;
GlobalConfig.hasMicrophone=(typeof _param.hasMicrophone=="boolean")? _param.hasMicrophone:false;
debugger;
//开始校验
if (_sass) {
_sass.passwordAndMd5Checking(GlobalConfig.getClassInfo());
... ...
... ... @@ -259,6 +259,8 @@ GlobalConfig.maxMediaChannels=0;
GlobalConfig.isDebug=false;
GlobalConfig.deBugData={};
GlobalConfig.hasCamera=false;//摄像头是否可用
GlobalConfig.hasMicrophone=false;//麦克风是否可用
GlobalConfig.deviceType=0; //设备类型 0:电脑 1:安卓 2:ios
GlobalConfig.userIP="";//用户当前IP
... ...
... ... @@ -42,7 +42,7 @@ public static const NR_INVISIBLE:uint = 32; // 隐身用户
//角色身份
ApeConsts.NR_GUEST = 0; // 客人
//ApeConsts.NR_GUEST = 0; // 客人
ApeConsts.NR_NORMAL = 1;// 普通与会者
ApeConsts.NR_ADMIN = 2;// 管理员
ApeConsts.NR_MASTER = 4; // 主持人
... ... @@ -56,6 +56,19 @@ ApeConsts.presenter="presenter";//(主讲人)
ApeConsts.assistant="assistant";//(助教)
ApeConsts.normal="normal";//(普通角色/学生)
ApeConsts.record="record";//(暂时没用.
ApeConsts.invisible="invisible";//隐身用户
////最新定义的角色身份 20170220
//ApeConsts.USER_TYPE_HOST=1;//(主持人/老师)
//ApeConsts.USER_TYPE_ASSISTANT=2;//(助教)
//ApeConsts.USER_TYPE_NORMAL=8;//(普通角色/学生)
//ApeConsts.USER_TYPE_MONITOR_INVISIBLE=32;//(监课/隐身)
//
////
//ApeConsts.USER_TYPE_HOST_STRING="host";//(主持人/老师)
//ApeConsts.USER_TYPE_ASSISTANT_STRING="assistant";//(助教)
//ApeConsts.USER_TYPE_NORMAL_STRING="normal";//(普通角色/学生)
//ApeConsts.USER_TYPE_MONITOR_INVISIBLE_STRING="invisible";//(监课/隐身)
/*msType type*/
... ...
... ... @@ -146,7 +146,6 @@ class ConferApe extends Ape {
let userDataPdu = new pdu['RCNodeInfoUserDataPdu'];
userDataPdu.qq = '';
userDataPdu.skype = '';
userDataPdu.mobile = '';
nodeInfoRecordPdu.userData = userDataPdu.toArrayBuffer();
nodeInfoRecordPdu.deviceType = GlobalConfig.deviceType;
... ... @@ -441,8 +440,14 @@ class ConferApe extends Ape {
}
let rosterExists = this.rosters[nodeId];
this.rosters[nodeId] = nodeData;
let userDataObj=null;
if (!rosterExists) {
let userDataObj=pdu['RCNodeInfoUserDataPdu'].decode(nodeData.userData);
try{
userDataObj=pdu['RCNodeInfoUserDataPdu'].decode(nodeData.userData);
}catch (err){
loger.log("RCNodeInfoUserDataPdu decode err",err.message);
}
let newNodeData=nodeData;
newNodeData.userData=userDataObj;
loger.log("更新人员列表数据 rosterUpdateHandler",{"nodeId":nodeId});
... ...
... ... @@ -170,14 +170,20 @@ class VideoChat extends Ape {
loger.log('不能发送Video消息.McuClient还未初始化数据!');
if(GlobalConfig.getCurrentStatus().code==0||GlobalConfig.getCurrentStatus().code==1){
this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_APE_SEND_FAILED_NO_JOIN);
return;
return ;
}
return ;
return 1;
}
if(_param==null){
loger.warn('sendVideoCommandMsg失败,参数错误',paramInfo);
this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG);
return 1;
}
// to, message
loger.log('发送Video消息.', _param);
/* message RCVideoSendDataRequestPdu {
required uint32 from_node_id = 1;//发起人
optional uint32 to_node_id = 2;//接收人,如果是0就是所有人都接收
... ... @@ -204,6 +210,7 @@ class VideoChat extends Ape {
loger.log('发送公聊Video消息.');
this.sendChatUniform(videoSendPdu);
}
return 0;
}
sendTableUpdateHandler(){
... ... @@ -334,6 +341,7 @@ class VideoChat extends Ape {
let packPduModel =new pdu['RCVideoChannelInfoPdu'];
packPduModel.status=ApeConsts.CHANNEL_STATUS_OPENING;
packPduModel.channelId=_itemIdx;
packPduModel.classId=parseInt(GlobalConfig.classId);
packPduModel.mediaType=ApeConsts.MEDIA_TYPE_VIDEO;
packPduModel.timestamp=EngineUtils.creatTimestamp();
packPduModel.fromNodeId =GlobalConfig.nodeId;
... ...
... ... @@ -134,6 +134,17 @@ enum RCPduType_E {
RCPDU_INDEX_CONFERENCE_USER_JOINED = 302;
RCPDU_INDEX_CONFERENCE_USER_EXITED = 303;
RCPDU_INDEX_CONFERENCE_USERS = 304;
//new data
RCPDU_SEND_CONFERENCE_DATA_REQUEST =500;
RCPDU_SEND_VIDEO_DATA_REQUEST = 501;
RCPDU_SEND_AUDIO_DATA_REQUEST = 502;
RCPDU_SEND_GIFT_DATA_REQUEST = 503;
RCPDU_SEND_CHAT_DATA_REQUEST = 504;
}
enum RCPduNodeType_E {
... ... @@ -756,6 +767,7 @@ message RCVideoChannelInfoPdu {
optional uint32 from_node_id = 4;//发起者的id
optional uint32 to_node_id = 5;//接收者的id,(如果是0,所有人都接收)
optional uint32 media_type = 6;//媒体类型:视频(包含音频)或音频
optional uint32 class_id = 7;//课堂号
}
message RCVideoChannelInfoRecordPdu {
... ...