李勇

增加事件消息USER_DEVICE_STATUS_CHAANGE,更新用户的摄像头麦克风开启状态

此 diff 太大无法显示。
@@ -27,7 +27,7 @@ import Server from "config/Server"; @@ -27,7 +27,7 @@ import Server from "config/Server";
27 import UTF8 from 'utf-8'; 27 import UTF8 from 'utf-8';
28 28
29 let loger = Loger.getLoger('McuClient'); 29 let loger = Loger.getLoger('McuClient');
30 -let _sdkInfo = {"version": "v1.15.2.20170507", "author": "www.3mang.com"}; 30 +let _sdkInfo = {"version": "v1.16.1.201705010", "author": "www.3mang.com"};
31 31
32 //APE 32 //APE
33 let _sass; 33 let _sass;
@@ -105,11 +105,13 @@ export default class MessageEntrance extends Emiter { @@ -105,11 +105,13 @@ export default class MessageEntrance extends Emiter {
105 _video_ape = new VideoApe(); 105 _video_ape = new VideoApe();
106 _video_ape.on('*', (type, data) => this._emit(type, data)); 106 _video_ape.on('*', (type, data) => this._emit(type, data));
107 _video_ape.on(MessageTypes.VIDEO_UPDATE, this.videoUpdate.bind(this));//这个监听事件不能删除,需要通知课堂模块,检查channel占用 107 _video_ape.on(MessageTypes.VIDEO_UPDATE, this.videoUpdate.bind(this));//这个监听事件不能删除,需要通知课堂模块,检查channel占用
  108 + _video_ape.on(MessageTypes.USER_DEVICE_STATUS_CHAANGE, this.userDeviecStatusChange.bind(this));//监听摄像头和麦克风的开启状态
108 109
109 110
110 _audio_ape = new AudioApe(); 111 _audio_ape = new AudioApe();
111 _audio_ape.on('*', (type, data) => this._emit(type, data)); 112 _audio_ape.on('*', (type, data) => this._emit(type, data));
112 _audio_ape.on(MessageTypes.AUDIO_UPDATE, this.audioUpdate.bind(this));//这个监听事件不能删除,需要通知课堂模块,检查channel占用 113 _audio_ape.on(MessageTypes.AUDIO_UPDATE, this.audioUpdate.bind(this));//这个监听事件不能删除,需要通知课堂模块,检查channel占用
  114 + _audio_ape.on(MessageTypes.USER_DEVICE_STATUS_CHAANGE, this.userDeviecStatusChange.bind(this));//监听摄像头和麦克风的开启状态
113 115
114 _whiteboard_ape = new WhiteBoardApe(); 116 _whiteboard_ape = new WhiteBoardApe();
115 _whiteboard_ape.on('*', (type, data) => this._emit(type, data)); 117 _whiteboard_ape.on('*', (type, data) => this._emit(type, data));
@@ -1034,6 +1036,19 @@ export default class MessageEntrance extends Emiter { @@ -1034,6 +1036,19 @@ export default class MessageEntrance extends Emiter {
1034 } 1036 }
1035 } 1037 }
1036 1038
  1039 + //监听摄像头麦克风状态
  1040 + userDeviecStatusChange(_data){
  1041 + /* nodeId:GlobalConfig.nodeId,
  1042 + userRole:GlobalConfig.userRole,
  1043 + userName:GlobalConfig.userName,
  1044 + userId:GlobalConfig.userId,
  1045 + openCamera:GlobalConfig.openCamera,
  1046 + openMicrophones:GlobalConfig.openMicrophones*/
  1047 + if (_confer_ape) {
  1048 + _confer_ape.updaterUserDeviecStatusChange(_data);
  1049 + }
  1050 + }
  1051 +
1037 //VidoeApe 1052 //VidoeApe
1038 videoUpdate(_data) { 1053 videoUpdate(_data) {
1039 //视频同步的消息发送改变,需要通知ferApe模块中的用户更新状态 1054 //视频同步的消息发送改变,需要通知ferApe模块中的用户更新状态
@@ -39,6 +39,7 @@ MessageTypes.CLASS_RECORD_SUCCESS="class_record_success";////开启录制成功 @@ -39,6 +39,7 @@ MessageTypes.CLASS_RECORD_SUCCESS="class_record_success";////开启录制成功
39 MessageTypes.CHAT_RECEIVE ="chat_receive_message";// 'chat.receive'; 39 MessageTypes.CHAT_RECEIVE ="chat_receive_message";// 'chat.receive';
40 40
41 //视频模块事件定义 41 //视频模块事件定义
  42 +MessageTypes.USER_DEVICE_STATUS_CHAANGE ="user_device_status_change";// 'video.play';//播放视频
42 MessageTypes.VIDEO_PLAY ="video_play";// 'video.play';//播放视频 43 MessageTypes.VIDEO_PLAY ="video_play";// 'video.play';//播放视频
43 MessageTypes.VIDEO_STOP ="video_stop"; //'video.stop';//停止视频 44 MessageTypes.VIDEO_STOP ="video_stop"; //'video.stop';//停止视频
44 MessageTypes.VIDEO_UPDATE ="video_update";// //这个监听事件不能删除,需要通知课堂模块,检查channel占用(内部使用) 45 MessageTypes.VIDEO_UPDATE ="video_update";// //这个监听事件不能删除,需要通知课堂模块,检查channel占用(内部使用)
@@ -375,7 +375,21 @@ class AudioApe extends Ape { @@ -375,7 +375,21 @@ class AudioApe extends Ape {
375 }else { 375 }else {
376 loger.warn("消息是自己发送的或者是消息无效,不需要处理,消息内容如下:"); 376 loger.warn("消息是自己发送的或者是消息无效,不需要处理,消息内容如下:");
377 loger.log(unpackChannelInfo); 377 loger.log(unpackChannelInfo);
378 - 378 + if(unpackChannelInfo.status==ApeConsts.CHANNEL_STATUS_OPENING){
  379 + GlobalConfig.openMicrophones=EngineUtils.creatTimestamp();
  380 + GlobalConfig.openCamera=0;
  381 + }else {
  382 + GlobalConfig.openCamera=0;
  383 + GlobalConfig.openMicrophones=0;
  384 + }
  385 + this._emit(MessageTypes.USER_DEVICE_STATUS_CHAANGE,{
  386 + nodeId:GlobalConfig.nodeId,
  387 + userRole:GlobalConfig.userRole,
  388 + userName:GlobalConfig.userName,
  389 + userId:GlobalConfig.userId,
  390 + openCamera:GlobalConfig.openCamera,
  391 + openMicrophones:GlobalConfig.openMicrophones
  392 + });
379 } 393 }
380 this._emit(MessageTypes.AUDIO_UPDATE, unpackChannelInfo); 394 this._emit(MessageTypes.AUDIO_UPDATE, unpackChannelInfo);
381 } 395 }
@@ -697,12 +697,12 @@ class ConferApe extends Ape { @@ -697,12 +697,12 @@ class ConferApe extends Ape {
697 updaterRosterStatus(_param) { 697 updaterRosterStatus(_param) {
698 //loger.log("媒体模块发生更新,人员状态需要更新,fromNodeId->",_param); 698 //loger.log("媒体模块发生更新,人员状态需要更新,fromNodeId->",_param);
699 //如果视频消息中channel的占用人 fromNodeId在人员列表中不存在,需要释放这channel,因为这个有可能是之前没释放成功的 699 //如果视频消息中channel的占用人 fromNodeId在人员列表中不存在,需要释放这channel,因为这个有可能是之前没释放成功的
700 - /* if (_param && _param.status == ApeConsts.CHANNEL_STATUS_OPENING && this.rosters[_param.fromNodeId] == null) {  
701 - loger.log("媒体模块被占用,占有人已经不存在课堂中,释放Channel,_param->", _param); 700 + if (_param && _param.status == ApeConsts.CHANNEL_STATUS_OPENING && this.rosters[_param.fromNodeId] == null) {
  701 + loger.log("媒体模块被占用->占有人已经不存在课堂中->释放->", _param);
702 this._emit(MessageTypes.CLASS_NONENTITY_ROSTER, {"nodeId": _param.fromNodeId}); 702 this._emit(MessageTypes.CLASS_NONENTITY_ROSTER, {"nodeId": _param.fromNodeId});
703 - }*/ 703 + }
704 704
705 - if (_param && _param.status == ApeConsts.CHANNEL_STATUS_OPENING) { 705 + /* if (_param && _param.status == ApeConsts.CHANNEL_STATUS_OPENING) {
706 if(this.rosters[_param.fromNodeId] == null){ 706 if(this.rosters[_param.fromNodeId] == null){
707 loger.log("媒体模块被占用,占有人已经不存在课堂中,释放Channel,_param->", _param); 707 loger.log("媒体模块被占用,占有人已经不存在课堂中,释放Channel,_param->", _param);
708 this._emit(MessageTypes.CLASS_NONENTITY_ROSTER, {"nodeId": _param.fromNodeId}); 708 this._emit(MessageTypes.CLASS_NONENTITY_ROSTER, {"nodeId": _param.fromNodeId});
@@ -727,7 +727,12 @@ class ConferApe extends Ape { @@ -727,7 +727,12 @@ class ConferApe extends Ape {
727 GlobalConfig.openMicrophones=0; 727 GlobalConfig.openMicrophones=0;
728 this.updateUserInfo(); 728 this.updateUserInfo();
729 } 729 }
730 - } 730 + }*/
  731 + }
  732 + //设备状态更新
  733 + updaterUserDeviecStatusChange(_data){
  734 + loger.log("音视频设备状态更新->",_data);
  735 + this.updateUserInfo();
731 } 736 }
732 737
733 //删除用户 738 //删除用户
@@ -379,6 +379,21 @@ class VideoApe extends Ape { @@ -379,6 +379,21 @@ class VideoApe extends Ape {
379 }else { 379 }else {
380 loger.warn("视频消息是自己发送的或者是视频消息无效,不需要处理,消息内容如下:"); 380 loger.warn("视频消息是自己发送的或者是视频消息无效,不需要处理,消息内容如下:");
381 loger.log(unpackChannelInfo); 381 loger.log(unpackChannelInfo);
  382 + if(unpackChannelInfo.status==ApeConsts.CHANNEL_STATUS_OPENING){
  383 + GlobalConfig.openCamera=EngineUtils.creatTimestamp();
  384 + GlobalConfig.openMicrophones=GlobalConfig.openCamera;
  385 + }else {
  386 + GlobalConfig.openCamera=0;
  387 + GlobalConfig.openMicrophones=0;
  388 + }
  389 + this._emit(MessageTypes.USER_DEVICE_STATUS_CHAANGE,{
  390 + nodeId:GlobalConfig.nodeId,
  391 + userRole:GlobalConfig.userRole,
  392 + userName:GlobalConfig.userName,
  393 + userId:GlobalConfig.userId,
  394 + openCamera:GlobalConfig.openCamera,
  395 + openMicrophones:GlobalConfig.openMicrophones
  396 + });
382 } 397 }
383 398
384 this._emit(MessageTypes.VIDEO_UPDATE, unpackChannelInfo); 399 this._emit(MessageTypes.VIDEO_UPDATE, unpackChannelInfo);