AlexWang

对外接口silenceClass controlSilenceStatus

@@ -32,7 +32,7 @@ import QuestionApe from 'apes/QuestionApe'; @@ -32,7 +32,7 @@ import QuestionApe from 'apes/QuestionApe';
32 import UTF8 from 'utf-8'; 32 import UTF8 from 'utf-8';
33 33
34 let loger = Loger.getLoger('McuClient'); 34 let loger = Loger.getLoger('McuClient');
35 -let _sdkInfo = {"version": "v1.36.1.20170619", "author": "www.3mang.com"}; 35 +let _sdkInfo = { "version": "v1.36.1.20170619", "author": "www.3mang.com" };
36 36
37 //APE 37 //APE
38 let _sass; 38 let _sass;
@@ -57,9 +57,9 @@ export default class MessageEntrance extends Emiter { @@ -57,9 +57,9 @@ export default class MessageEntrance extends Emiter {
57 loger.log(this.sdkInfo); 57 loger.log(this.sdkInfo);
58 58
59 //初始化状态 59 //初始化状态
60 - this.isGetUserIpCallback = false;//是否获取IP信息返回  
61 - this.isGetFastestMcuCallback = false;//是否MCU选点结束  
62 - this.isGetFastestMsCallback = false;//是否MS选点结束 60 + this.isGetUserIpCallback = false; //是否获取IP信息返回
  61 + this.isGetFastestMcuCallback = false; //是否MCU选点结束
  62 + this.isGetFastestMsCallback = false; //是否MS选点结束
63 63
64 GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_0); 64 GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_0);
65 65
@@ -69,18 +69,15 @@ export default class MessageEntrance extends Emiter { @@ -69,18 +69,15 @@ export default class MessageEntrance extends Emiter {
69 // Sass平台层 69 // Sass平台层
70 _sass = Sass; 70 _sass = Sass;
71 _sass.on('*', (type, data) => this._emit(type, data)); 71 _sass.on('*', (type, data) => this._emit(type, data));
72 - _sass.on(_sass.SUCCESS, this._sassJoinSuccessHandler.bind(this));//通过SASS平台验证(密码和MD5)  
73 - _sass.on(_sass.CLASS_INIT_SUCCESS, this._sassInitSuccessHandler.bind(this));//获取课堂初始化信息 72 + _sass.on(_sass.SUCCESS, this._sassJoinSuccessHandler.bind(this)); //通过SASS平台验证(密码和MD5)
  73 + _sass.on(_sass.CLASS_INIT_SUCCESS, this._sassInitSuccessHandler.bind(this)); //获取课堂初始化信息
74 //_sass.on(_sass.CLASS_GET_CLASS_DETAIL, this._sassGetClassDetailSuccessHandler.bind(this));//获取课堂的基本信息 74 //_sass.on(_sass.CLASS_GET_CLASS_DETAIL, this._sassGetClassDetailSuccessHandler.bind(this));//获取课堂的基本信息
75 - _sass.on(_sass.CLASS_GET_CLASS_PARAM, this._sassGetClassParamSuccessHandler.bind(this));//获取课堂的最全信息和历史保存的数据  
76 -  
77 - _sass.on(_sass.CLASS_SAVE_STATUS_INFO_SUCCESS, this._sassSaveClassStatusInfoSuccessHandler.bind(this));//保存课堂状态信息  
78 - _sass.on(_sass.CLASS_SAVE_RECORD_INFO_SUCCESS, this._sassSaveClassRecordInfoSuccessHandler.bind(this));//保存课堂录制信息  
79 - _sass.on(_sass.DELETE_DOCUMENT_SUCCESS, this._sassDeleteDocumentSuccess.bind(this));//sass删除文档成功  
80 - _sass.on(_sass.DELETE_MEDIASHARE_SUCCESS, this._sassDeleteMediaShareSuccess.bind(this));//sass删除媒体文件成功  
81 -  
82 - 75 + _sass.on(_sass.CLASS_GET_CLASS_PARAM, this._sassGetClassParamSuccessHandler.bind(this)); //获取课堂的最全信息和历史保存的数据
83 76
  77 + _sass.on(_sass.CLASS_SAVE_STATUS_INFO_SUCCESS, this._sassSaveClassStatusInfoSuccessHandler.bind(this)); //保存课堂状态信息
  78 + _sass.on(_sass.CLASS_SAVE_RECORD_INFO_SUCCESS, this._sassSaveClassRecordInfoSuccessHandler.bind(this)); //保存课堂录制信息
  79 + _sass.on(_sass.DELETE_DOCUMENT_SUCCESS, this._sassDeleteDocumentSuccess.bind(this)); //sass删除文档成功
  80 + _sass.on(_sass.DELETE_MEDIASHARE_SUCCESS, this._sassDeleteMediaShareSuccess.bind(this)); //sass删除媒体文件成功
84 81
85 //选点模块 82 //选点模块
86 _ipManager = new IpManager(); 83 _ipManager = new IpManager();
@@ -88,43 +85,41 @@ export default class MessageEntrance extends Emiter { @@ -88,43 +85,41 @@ export default class MessageEntrance extends Emiter {
88 // 底层MCU消息层 85 // 底层MCU消息层
89 _mcu = Mcu; 86 _mcu = Mcu;
90 _mcu.on('*', (type, data) => this._emit(type, data)); 87 _mcu.on('*', (type, data) => this._emit(type, data));
91 - _mcu.on(MessageTypes.CLASS_JOIN_MCU_SUCCESS, this._mcuJoinMCUClassSuccessHandler.bind(this));//加入MCU课堂完成  
92 - _mcu.on(MessageTypes.SWITCH_MCU_IP, this._switchMcuIpHandler.bind(this));//切换MCU,重新选点 88 + _mcu.on(MessageTypes.CLASS_JOIN_MCU_SUCCESS, this._mcuJoinMCUClassSuccessHandler.bind(this)); //加入MCU课堂完成
  89 + _mcu.on(MessageTypes.SWITCH_MCU_IP, this._switchMcuIpHandler.bind(this)); //切换MCU,重新选点
93 90
94 //录制回放 91 //录制回放
95 _recordPlayback = RecordPlayBackParse; 92 _recordPlayback = RecordPlayBackParse;
96 _recordPlayback.on('*', (type, data) => this._emit(type, data)); 93 _recordPlayback.on('*', (type, data) => this._emit(type, data));
97 - _recordPlayback.on(RecordPlayBackParse.CLASS_JOIN_RECORD_PLAYBACK_SUCCESS, this._joinRecordPlaybackSuccessHandler.bind(this));//加入录制回放完成  
98 - _recordPlayback.on(RecordPlayBackParse.RECORD_PLAYBACK_CLEAR_DATA, this._recordPlaybackClearDataHandler.bind(this));//录制回放状态更新  
99 - 94 + _recordPlayback.on(RecordPlayBackParse.CLASS_JOIN_RECORD_PLAYBACK_SUCCESS, this._joinRecordPlaybackSuccessHandler.bind(this)); //加入录制回放完成
  95 + _recordPlayback.on(RecordPlayBackParse.RECORD_PLAYBACK_CLEAR_DATA, this._recordPlaybackClearDataHandler.bind(this)); //录制回放状态更新
100 96
101 // 注册所有应用Ape 97 // 注册所有应用Ape
102 _confer_ape = new ConferApe(); 98 _confer_ape = new ConferApe();
103 _confer_ape.on('*', (type, data) => this._emit(type, data)); 99 _confer_ape.on('*', (type, data) => this._emit(type, data));
104 - _confer_ape.on(MessageTypes.CLASS_RUN_EXIT, this._runClassExit.bind(this));//监听自己的关闭事件  
105 - _confer_ape.on(MessageTypes.CLASS_STATUS_INFO_CHANGE, this._onClassStatusInfoChange.bind(this));//当前课堂状态信息发生改变  
106 - _confer_ape.on(MessageTypes.CLASS_DELETE_ROSTER, this._onClassDeleteRoster.bind(this));//当前课堂人员离开  
107 - _confer_ape.on(MessageTypes.CLASS_NONENTITY_ROSTER, this._onClassNonentityRoster.bind(this));//当前课堂中视频或音频占用channel的nodeId ,在人员列表中不存在  
108 - _confer_ape.on(MessageTypes.CLASS_RECORD_START, this._onClassRecordStart.bind(this));//课堂开始录制  
109 - _confer_ape.on(MessageTypes.CLASS_RECORD_SUCCESS, this._onClassRecordSuccess.bind(this));//课堂开启录制成功  
110 - _confer_ape.on(MessageTypes.SWITCH_MS_IP, this._switchMsIpHandler.bind(this));//MS动态选点  
111 - _confer_ape.on(MessageTypes.STOP_ALL_MEDIA_PUBLISH, this._stopAllMediaPublishHandler.bind(this));//课堂状态发生改变,需要停止当前的所有推流 100 + _confer_ape.on(MessageTypes.CLASS_RUN_EXIT, this._runClassExit.bind(this)); //监听自己的关闭事件
  101 + _confer_ape.on(MessageTypes.CLASS_STATUS_INFO_CHANGE, this._onClassStatusInfoChange.bind(this)); //当前课堂状态信息发生改变
  102 + _confer_ape.on(MessageTypes.CLASS_DELETE_ROSTER, this._onClassDeleteRoster.bind(this)); //当前课堂人员离开
  103 + _confer_ape.on(MessageTypes.CLASS_NONENTITY_ROSTER, this._onClassNonentityRoster.bind(this)); //当前课堂中视频或音频占用channel的nodeId ,在人员列表中不存在
  104 + _confer_ape.on(MessageTypes.CLASS_RECORD_START, this._onClassRecordStart.bind(this)); //课堂开始录制
  105 + _confer_ape.on(MessageTypes.CLASS_RECORD_SUCCESS, this._onClassRecordSuccess.bind(this)); //课堂开启录制成功
  106 + _confer_ape.on(MessageTypes.SWITCH_MS_IP, this._switchMsIpHandler.bind(this)); //MS动态选点
  107 + _confer_ape.on(MessageTypes.STOP_ALL_MEDIA_PUBLISH, this._stopAllMediaPublishHandler.bind(this)); //课堂状态发生改变,需要停止当前的所有推流
112 108
113 _chat_ape = new ChatApe(); 109 _chat_ape = new ChatApe();
114 _chat_ape.on('*', (type, data) => this._emit(type, data)); 110 _chat_ape.on('*', (type, data) => this._emit(type, data));
115 111
116 _video_ape = new VideoApe(); 112 _video_ape = new VideoApe();
117 _video_ape.on('*', (type, data) => this._emit(type, data)); 113 _video_ape.on('*', (type, data) => this._emit(type, data));
118 - _video_ape.on(MessageTypes.VIDEO_UPDATE, this.videoUpdate.bind(this));//这个监听事件不能删除,需要通知课堂模块,检查channel占用  
119 - _video_ape.on(MessageTypes.USER_DEVICE_STATUS_CHAANGE, this.userDeviecStatusChange.bind(this));//监听摄像头和麦克风的开启状态  
120 - 114 + _video_ape.on(MessageTypes.VIDEO_UPDATE, this.videoUpdate.bind(this)); //这个监听事件不能删除,需要通知课堂模块,检查channel占用
  115 + _video_ape.on(MessageTypes.USER_DEVICE_STATUS_CHAANGE, this.userDeviecStatusChange.bind(this)); //监听摄像头和麦克风的开启状态
121 116
122 _audio_ape = new AudioApe(); 117 _audio_ape = new AudioApe();
123 _audio_ape.on('*', (type, data) => this._emit(type, data)); 118 _audio_ape.on('*', (type, data) => this._emit(type, data));
124 - _audio_ape.on(MessageTypes.AUDIO_UPDATE, this.audioUpdate.bind(this));//这个监听事件不能删除,需要通知课堂模块,检查channel占用  
125 - _audio_ape.on(MessageTypes.USER_DEVICE_STATUS_CHAANGE, this.userDeviecStatusChange.bind(this));//监听摄像头和麦克风的开启状态 119 + _audio_ape.on(MessageTypes.AUDIO_UPDATE, this.audioUpdate.bind(this)); //这个监听事件不能删除,需要通知课堂模块,检查channel占用
  120 + _audio_ape.on(MessageTypes.USER_DEVICE_STATUS_CHAANGE, this.userDeviecStatusChange.bind(this)); //监听摄像头和麦克风的开启状态
126 121
127 - _mediaShareApe=new MediaSharedApe(); 122 + _mediaShareApe = new MediaSharedApe();
128 _mediaShareApe.on('*', (type, data) => this._emit(type, data)); 123 _mediaShareApe.on('*', (type, data) => this._emit(type, data));
129 _mediaShareApe.on(MediaSharedApe.MEDIASHARED_JOIN_CHANNEL_SUCCESS, this.mediaShareApeJoinChannelSuccess.bind(this)); 124 _mediaShareApe.on(MediaSharedApe.MEDIASHARED_JOIN_CHANNEL_SUCCESS, this.mediaShareApeJoinChannelSuccess.bind(this));
130 125
@@ -137,7 +132,7 @@ export default class MessageEntrance extends Emiter { @@ -137,7 +132,7 @@ export default class MessageEntrance extends Emiter {
137 _doc_ape.on(MessageTypes.DOC_DELETE, this.docDeleteHandler.bind(this)); 132 _doc_ape.on(MessageTypes.DOC_DELETE, this.docDeleteHandler.bind(this));
138 _doc_ape.on(DocApe.DOC_JOIN_CHANNEL_SUCCESS, this.docJoinChannelSuccess.bind(this)); 133 _doc_ape.on(DocApe.DOC_JOIN_CHANNEL_SUCCESS, this.docJoinChannelSuccess.bind(this));
139 134
140 - _questionApe=new QuestionApe(); 135 + _questionApe = new QuestionApe();
141 _questionApe.on('*', (type, data) => this._emit(type, data)); 136 _questionApe.on('*', (type, data) => this._emit(type, data));
142 137
143 //公开外部调用的方法 138 //公开外部调用的方法
@@ -149,12 +144,14 @@ export default class MessageEntrance extends Emiter { @@ -149,12 +144,14 @@ export default class MessageEntrance extends Emiter {
149 //this.getClassDetail = this._getClassDetail;//停用 144 //this.getClassDetail = this._getClassDetail;//停用
150 this.getClassStatusInfo = this._getClassStatusInfo.bind(this); 145 this.getClassStatusInfo = this._getClassStatusInfo.bind(this);
151 this.sendStartClass = this._sendStartClass.bind(this); 146 this.sendStartClass = this._sendStartClass.bind(this);
  147 + this.silenceClass = this._silenceClass.bind(this);
152 this.sendPauseClass = this._sendPauseClass.bind(this); 148 this.sendPauseClass = this._sendPauseClass.bind(this);
153 this.sendCloseClass = this._sendCloseClass.bind(this); 149 this.sendCloseClass = this._sendCloseClass.bind(this);
154 - this.changeHandUpStatus = this._changeHandUpStatus.bind(this);//自己切换举手状态  
155 - this.controlHandUpStatus = this._controlHandUpStatus.bind(this);//控制别人的举手状态 150 + this.changeHandUpStatus = this._changeHandUpStatus.bind(this); //自己切换举手状态
  151 + this.controlHandUpStatus = this._controlHandUpStatus.bind(this); //控制别人的举手状态
  152 + this.controlSilenceStatus = this.controlSilenceStatus.bind(this); //改变禁言状态
156 153
157 - this.sceneTableChange = this._sceneTableChange.bind(this);//控制别人的举手状态 154 + this.sceneTableChange = this._sceneTableChange.bind(this); //控制别人的举手状态
158 155
159 //录制回放 156 //录制回放
160 this.initRecordPlayback = this._initRecordPlayback.bind(this); 157 this.initRecordPlayback = this._initRecordPlayback.bind(this);
@@ -187,16 +184,16 @@ export default class MessageEntrance extends Emiter { @@ -187,16 +184,16 @@ export default class MessageEntrance extends Emiter {
187 this.sendAudioBroadcastMsg = this.sendAudioCommandMsg.bind(this); 184 this.sendAudioBroadcastMsg = this.sendAudioCommandMsg.bind(this);
188 185
189 //whiteBoradApe 186 //whiteBoradApe
190 - this.sendInsertAnnotaion = this._sendInsertAnnotaion.bind(this);//添加标注  
191 - this.sendDeleteAllAnnotation = this._sendDeleteAllAnnotation.bind(this);//删除所有标注  
192 - this.sendDeleteCurPageAnnotation = this._sendDeleteCurPageAnnotation.bind(this);//删除当前页的所有标注  
193 - this.sendGotoPrev = this._sendGotoPrev.bind(this);//当前页撤销上一步 187 + this.sendInsertAnnotaion = this._sendInsertAnnotaion.bind(this); //添加标注
  188 + this.sendDeleteAllAnnotation = this._sendDeleteAllAnnotation.bind(this); //删除所有标注
  189 + this.sendDeleteCurPageAnnotation = this._sendDeleteCurPageAnnotation.bind(this); //删除当前页的所有标注
  190 + this.sendGotoPrev = this._sendGotoPrev.bind(this); //当前页撤销上一步
194 191
195 //DocApe 192 //DocApe
196 - this.sendDocumentUpload = this._sendDocumentUpload.bind(this);//上传文档 193 + this.sendDocumentUpload = this._sendDocumentUpload.bind(this); //上传文档
197 this.sendDocumentSwitchDoc = this._sendDocumentSwitchDoc.bind(this); //切换文档 194 this.sendDocumentSwitchDoc = this._sendDocumentSwitchDoc.bind(this); //切换文档
198 - this.sendDocumentSwitchPage = this._sendDocumentSwitchPage.bind(this);//翻页  
199 - this.sendDocumentSwitchAnimation=this._sendDocumentSwitchAnimation.bind(this);//切换当前页码的动画步骤 195 + this.sendDocumentSwitchPage = this._sendDocumentSwitchPage.bind(this); //翻页
  196 + this.sendDocumentSwitchAnimation = this._sendDocumentSwitchAnimation.bind(this); //切换当前页码的动画步骤
200 this.sendDocumentDelete = this._sassDeleteDocument.bind(this); 197 this.sendDocumentDelete = this._sassDeleteDocument.bind(this);
201 this.sendDocBroadcastMsg = this._sendDocBroadcastMsg.bind(this); 198 this.sendDocBroadcastMsg = this._sendDocBroadcastMsg.bind(this);
202 //删除文档,先通过Sass删除,sass删除成功之后再同步mcu 199 //删除文档,先通过Sass删除,sass删除成功之后再同步mcu
@@ -205,41 +202,40 @@ export default class MessageEntrance extends Emiter { @@ -205,41 +202,40 @@ export default class MessageEntrance extends Emiter {
205 //操作文档(翻页、缩放、滚动...) 202 //操作文档(翻页、缩放、滚动...)
206 this.getDocImageFullPath = this._getDocImageFullPath.bind(this); 203 this.getDocImageFullPath = this._getDocImageFullPath.bind(this);
207 //获取文档图片的完整路径 204 //获取文档图片的完整路径
208 - this.getDocPDFFullPath = this._getDocPDFFullPath.bind(this);//获取文档的完整路径  
209 - this.getDocFullAddress = this._getDocFullAddress.bind(this);//获取文档资源地址  
210 - 205 + this.getDocPDFFullPath = this._getDocPDFFullPath.bind(this); //获取文档的完整路径
  206 + this.getDocFullAddress = this._getDocFullAddress.bind(this); //获取文档资源地址
211 207
212 //媒体共享模块 208 //媒体共享模块
213 - this.mediaSharedUpload = this._sendMediaSharedUpload.bind(this);//上传  
214 - this.mediaSharedDelete = this._sassDeletMediaShare.bind(this);//删除,先通过Sass删除,删除成功之后才删除MCU的 209 + this.mediaSharedUpload = this._sendMediaSharedUpload.bind(this); //上传
  210 + this.mediaSharedDelete = this._sassDeletMediaShare.bind(this); //删除,先通过Sass删除,删除成功之后才删除MCU的
215 211
216 this.mediaSharedPlay = this._sendMediaSharedPlay.bind(this); //播放 212 this.mediaSharedPlay = this._sendMediaSharedPlay.bind(this); //播放
217 - this.mediaSharedStop = this._sendMediaSharedStop.bind(this);//停止  
218 - this.mediaSharedUpdate=this._sendMediaSharedUpdate.bind(this); //更新媒体的状态 213 + this.mediaSharedStop = this._sendMediaSharedStop.bind(this); //停止
  214 + this.mediaSharedUpdate = this._sendMediaSharedUpdate.bind(this); //更新媒体的状态
219 215
220 //答题卡 216 //答题卡
221 - this.creatQuestion=this._creatQuestion.bind(this);  
222 - this.getQuestion=this._getQuestion.bind(this);  
223 - this.getQuestionResult=this._getQuestionResult.bind(this);  
224 - this.sendAnswer=this._sendAnswer.bind(this);  
225 - this.stopQuestion=this._stopQuestion.bind(this);  
226 -  
227 - this.setDeviceInfo = this._setDeviceInfo.bind(this);//设置设备信息(麦克风,摄像头等等.....)  
228 - this.setMessageDelay = this._setMessageDelay.bind(this);//设置是否延迟消息  
229 - this.switchServer = this._switchMcuIpHandler.bind(this);//切换mcu服务器  
230 - this.switchMediaServer = this._switchMsIpHandler.bind(this);//切换ms服务器  
231 - this.setDebugInfo= this._setDebugInfo.bind(this);//设置debug信息  
232 - }  
233 - _setDebugInfo(_data){ 217 + this.creatQuestion = this._creatQuestion.bind(this);
  218 + this.getQuestion = this._getQuestion.bind(this);
  219 + this.getQuestionResult = this._getQuestionResult.bind(this);
  220 + this.sendAnswer = this._sendAnswer.bind(this);
  221 + this.stopQuestion = this._stopQuestion.bind(this);
  222 +
  223 + this.setDeviceInfo = this._setDeviceInfo.bind(this); //设置设备信息(麦克风,摄像头等等.....)
  224 + this.setMessageDelay = this._setMessageDelay.bind(this); //设置是否延迟消息
  225 + this.switchServer = this._switchMcuIpHandler.bind(this); //切换mcu服务器
  226 + this.switchMediaServer = this._switchMsIpHandler.bind(this); //切换ms服务器
  227 + this.setDebugInfo = this._setDebugInfo.bind(this); //设置debug信息
  228 + }
  229 + _setDebugInfo(_data) {
234 loger.log("设置debug信息-->", _data); 230 loger.log("设置debug信息-->", _data);
235 - if(_data){ 231 + if (_data) {
236 Loger.setLogDebug(_data.isDebug); 232 Loger.setLogDebug(_data.isDebug);
237 } 233 }
238 } 234 }
239 //设置设备信息 235 //设置设备信息
240 _setDeviceInfo(_data) { 236 _setDeviceInfo(_data) {
241 loger.log("设置设备信息-->", _data); 237 loger.log("设置设备信息-->", _data);
242 - if(_data){ 238 + if (_data) {
243 /* GlobalConfig.videoQuality=_data.videoQuality||2;//画面质量 0-低;1-中;2-高; 239 /* GlobalConfig.videoQuality=_data.videoQuality||2;//画面质量 0-低;1-中;2-高;
244 GlobalConfig.cameras=_data.cameras||[];//摄像头列表 240 GlobalConfig.cameras=_data.cameras||[];//摄像头列表
245 GlobalConfig.microphones=_data.microphones||[];//麦克风列表 241 GlobalConfig.microphones=_data.microphones||[];//麦克风列表
@@ -248,21 +244,21 @@ export default class MessageEntrance extends Emiter { @@ -248,21 +244,21 @@ export default class MessageEntrance extends Emiter {
248 GlobalConfig.curVideoQuality=_data.curVideoQuality||2;//当前选择的分辨率 244 GlobalConfig.curVideoQuality=_data.curVideoQuality||2;//当前选择的分辨率
249 GlobalConfig.micGain=_data.micGain||50;//音量(0-80)*/ 245 GlobalConfig.micGain=_data.micGain||50;//音量(0-80)*/
250 246
251 - GlobalConfig.cameras=_data.cameras||[];  
252 - GlobalConfig.microphones=_data.microphones||[];  
253 - GlobalConfig.videoQuality=parseInt(_data.videoQuality);  
254 - GlobalConfig.curVideoQuality=parseInt(_data.curVideoQuality);  
255 - GlobalConfig.micGain=_data.micGain||50;  
256 - GlobalConfig.speakerVolume=_data.speakerVolume||50;  
257 - GlobalConfig.micCode=_data.micCode||0;  
258 - GlobalConfig.curCamera=_data.curCamera||'';  
259 - GlobalConfig.curMicrophone=_data.curMicrophone||''; 247 + GlobalConfig.cameras = _data.cameras || [];
  248 + GlobalConfig.microphones = _data.microphones || [];
  249 + GlobalConfig.videoQuality = parseInt(_data.videoQuality);
  250 + GlobalConfig.curVideoQuality = parseInt(_data.curVideoQuality);
  251 + GlobalConfig.micGain = _data.micGain || 50;
  252 + GlobalConfig.speakerVolume = _data.speakerVolume || 50;
  253 + GlobalConfig.micCode = _data.micCode || 0;
  254 + GlobalConfig.curCamera = _data.curCamera || '';
  255 + GlobalConfig.curMicrophone = _data.curMicrophone || '';
260 256
261 - if(!GlobalConfig.curCamera&& GlobalConfig.cameras.length>0){  
262 - GlobalConfig.curCamera= GlobalConfig.cameras[0]; 257 + if (!GlobalConfig.curCamera && GlobalConfig.cameras.length > 0) {
  258 + GlobalConfig.curCamera = GlobalConfig.cameras[0];
263 } 259 }
264 - if(!GlobalConfig.curMicrophone&& GlobalConfig.microphones.length>0){  
265 - GlobalConfig.curMicrophone= GlobalConfig.microphones[0]; 260 + if (!GlobalConfig.curMicrophone && GlobalConfig.microphones.length > 0) {
  261 + GlobalConfig.curMicrophone = GlobalConfig.microphones[0];
266 } 262 }
267 this._updateDeviceInfo(); 263 this._updateDeviceInfo();
268 } 264 }
@@ -279,7 +275,7 @@ export default class MessageEntrance extends Emiter { @@ -279,7 +275,7 @@ export default class MessageEntrance extends Emiter {
279 //mcu异常监听 275 //mcu异常监听
280 _mcuErrorHandler(_data, _option) { 276 _mcuErrorHandler(_data, _option) {
281 let option = _option || ""; 277 let option = _option || "";
282 - let errorMessage = {"code": _data, "reson": MessageTypes.ErrorReson[_data] + " " + option}; 278 + let errorMessage = { "code": _data, "reson": MessageTypes.ErrorReson[_data] + " " + option };
283 this._emit(MessageTypes.ERROR_EVENT, errorMessage); 279 this._emit(MessageTypes.ERROR_EVENT, errorMessage);
284 loger.error("MCU_ERROR", errorMessage); 280 loger.error("MCU_ERROR", errorMessage);
285 } 281 }
@@ -289,7 +285,7 @@ export default class MessageEntrance extends Emiter { @@ -289,7 +285,7 @@ export default class MessageEntrance extends Emiter {
289 return GlobalConfig.getCurrentStatus(); 285 return GlobalConfig.getCurrentStatus();
290 } 286 }
291 287
292 -//获取课堂信息 288 + //获取课堂信息
293 _getClassDetail() { 289 _getClassDetail() {
294 return GlobalConfig.getClassDetail(); 290 return GlobalConfig.getClassDetail();
295 } 291 }
@@ -337,9 +333,9 @@ export default class MessageEntrance extends Emiter { @@ -337,9 +333,9 @@ export default class MessageEntrance extends Emiter {
337 } 333 }
338 334
339 //录制状态发送改变,更新所有模块的当前数据发送到MCU 335 //录制状态发送改变,更新所有模块的当前数据发送到MCU
340 - updaterRecordAllApeStatus(_param){ 336 + updaterRecordAllApeStatus(_param) {
341 //老师身份和非录制回放的时候执行,录制状态发送改变,需要更新当前的数据,否则已有的消息会录制不上 337 //老师身份和非录制回放的时候执行,录制状态发送改变,需要更新当前的数据,否则已有的消息会录制不上
342 - if(GlobalConfig.isHost&&!GlobalConfig.isRecordPlayBack){ 338 + if (GlobalConfig.isHost && !GlobalConfig.isRecordPlayBack) {
343 loger.warn('录制状态发送改变->更新所有模块的当前数据发送到MCU'); 339 loger.warn('录制状态发送改变->更新所有模块的当前数据发送到MCU');
344 //目前录制的模块[文档模块、白板模块、视频模块(包含屏幕共享)、音频模块、媒体共享,聊天模块] 340 //目前录制的模块[文档模块、白板模块、视频模块(包含屏幕共享)、音频模块、媒体共享,聊天模块]
345 if (_doc_ape) { 341 if (_doc_ape) {
@@ -362,8 +358,7 @@ export default class MessageEntrance extends Emiter { @@ -362,8 +358,7 @@ export default class MessageEntrance extends Emiter {
362 } 358 }
363 359
364 //有人员离开 360 //有人员离开
365 - _onClassDeleteRoster(_data) {  
366 - } 361 + _onClassDeleteRoster(_data) {}
367 362
368 //当前课堂中视频或音频占用channel的nodeId ,在人员列表中不存在,这种情况是占用channel的人员掉线或离开的时候没有释放channel 363 //当前课堂中视频或音频占用channel的nodeId ,在人员列表中不存在,这种情况是占用channel的人员掉线或离开的时候没有释放channel
369 //的占用状态导致,对于这种情况,需要释放掉 364 //的占用状态导致,对于这种情况,需要释放掉
@@ -377,12 +372,12 @@ export default class MessageEntrance extends Emiter { @@ -377,12 +372,12 @@ export default class MessageEntrance extends Emiter {
377 loger.warn("onClassNonentityRoster.参数错误") 372 loger.warn("onClassNonentityRoster.参数错误")
378 return; 373 return;
379 } 374 }
380 - let data = {"nodeId": _param.nodeId}; 375 + let data = { "nodeId": _param.nodeId };
381 if (_video_ape) { 376 if (_video_ape) {
382 _video_ape.stopPublishVideo(data); 377 _video_ape.stopPublishVideo(data);
383 378
384 //停止屏幕共享 379 //停止屏幕共享
385 - if(GlobalConfig.nodeId==data.nodeId){ 380 + if (GlobalConfig.nodeId == data.nodeId) {
386 _video_ape.stopPublishScreenShare(data); 381 _video_ape.stopPublishScreenShare(data);
387 } 382 }
388 } 383 }
@@ -391,7 +386,6 @@ export default class MessageEntrance extends Emiter { @@ -391,7 +386,6 @@ export default class MessageEntrance extends Emiter {
391 } 386 }
392 } 387 }
393 388
394 -  
395 //Sass 389 //Sass
396 //初始化 390 //初始化
397 _init(_param) { 391 _init(_param) {
@@ -411,7 +405,7 @@ export default class MessageEntrance extends Emiter { @@ -411,7 +405,7 @@ export default class MessageEntrance extends Emiter {
411 loger.log('初始化课堂->', _param); 405 loger.log('初始化课堂->', _param);
412 406
413 //保存参数 407 //保存参数
414 - GlobalConfig.isRecordPlayBack = false;//设置为非录制回放状态 408 + GlobalConfig.isRecordPlayBack = false; //设置为非录制回放状态
415 GlobalConfig.classId = parseInt(_param.classId); 409 GlobalConfig.classId = parseInt(_param.classId);
416 GlobalConfig.portal = _param.portal; 410 GlobalConfig.portal = _param.portal;
417 GlobalConfig.userId = _param.userId || "0"; 411 GlobalConfig.userId = _param.userId || "0";
@@ -454,7 +448,7 @@ export default class MessageEntrance extends Emiter { @@ -454,7 +448,7 @@ export default class MessageEntrance extends Emiter {
454 return; 448 return;
455 } 449 }
456 //{"userName":"名字","password":"","autoLogin":""} 450 //{"userName":"名字","password":"","autoLogin":""}
457 - GlobalConfig.userName = _param.userName || GlobalConfig.userName;//以登陆时的名字为主,登陆之前可以修改名字 451 + GlobalConfig.userName = _param.userName || GlobalConfig.userName; //以登陆时的名字为主,登陆之前可以修改名字
458 GlobalConfig.autoLogin = _param.autoLogin || ""; 452 GlobalConfig.autoLogin = _param.autoLogin || "";
459 GlobalConfig.password = _param.password || ""; 453 GlobalConfig.password = _param.password || "";
460 GlobalConfig.hasCamera = (typeof _param.hasCamera == "boolean") ? _param.hasCamera : false; 454 GlobalConfig.hasCamera = (typeof _param.hasCamera == "boolean") ? _param.hasCamera : false;
@@ -480,13 +474,13 @@ export default class MessageEntrance extends Emiter { @@ -480,13 +474,13 @@ export default class MessageEntrance extends Emiter {
480 _sassInitSuccessHandler(_data) { 474 _sassInitSuccessHandler(_data) {
481 //{"siteId":"h5test","passwordRequired":true,"md5":"de399d5540b3da2fbc1eb0a770d4fd66","code":0,"msType":1} 475 //{"siteId":"h5test","passwordRequired":true,"md5":"de399d5540b3da2fbc1eb0a770d4fd66","code":0,"msType":1}
482 //储存数据 476 //储存数据
483 - GlobalConfig.md5 = _data.md5 || "";//这个暂时用假数据,后台接口写完就有数据了 477 + GlobalConfig.md5 = _data.md5 || ""; //这个暂时用假数据,后台接口写完就有数据了
484 GlobalConfig.msType = _data.msType || 1; 478 GlobalConfig.msType = _data.msType || 1;
485 GlobalConfig.siteId = _data.siteId || ""; 479 GlobalConfig.siteId = _data.siteId || "";
486 GlobalConfig.classType = _data.meetingType || ApeConsts.CLASS_TYPE_1; 480 GlobalConfig.classType = _data.meetingType || ApeConsts.CLASS_TYPE_1;
487 481
488 //host默认需要密码,Sass服务器只判断学生是否需要密码,没有判断老师的 482 //host默认需要密码,Sass服务器只判断学生是否需要密码,没有判断老师的
489 - GlobalConfig.passwordRequired = _data.passwordRequired || false;//md5验证的时候需要Sass返回的值,不能更改 483 + GlobalConfig.passwordRequired = _data.passwordRequired || false; //md5验证的时候需要Sass返回的值,不能更改
490 484
491 loger.log('初始化课堂验证完成.'); 485 loger.log('初始化课堂验证完成.');
492 486
@@ -524,7 +518,7 @@ export default class MessageEntrance extends Emiter { @@ -524,7 +518,7 @@ export default class MessageEntrance extends Emiter {
524 loger.log('获取课堂课堂信息完成.'); 518 loger.log('获取课堂课堂信息完成.');
525 //包含整个课堂最全的信息,储存数据 519 //包含整个课堂最全的信息,储存数据
526 if (_data) { 520 if (_data) {
527 - GlobalConfig.mcuDelay = _data.h5Delay || 0;//mcu消息延迟的时间间隔,单位(秒),结合客户端传的messageDelay的值使用 521 + GlobalConfig.mcuDelay = _data.h5Delay || 0; //mcu消息延迟的时间间隔,单位(秒),结合客户端传的messageDelay的值使用
528 GlobalConfig.className = _data.meetingName || ""; 522 GlobalConfig.className = _data.meetingName || "";
529 GlobalConfig.classBeginTime = _data.beginTime || ""; 523 GlobalConfig.classBeginTime = _data.beginTime || "";
530 GlobalConfig.classEndTime = _data.endTime || ""; 524 GlobalConfig.classEndTime = _data.endTime || "";
@@ -532,31 +526,30 @@ export default class MessageEntrance extends Emiter { @@ -532,31 +526,30 @@ export default class MessageEntrance extends Emiter {
532 526
533 GlobalConfig.maxVideoChannels = _data.maxVideoChannels; 527 GlobalConfig.maxVideoChannels = _data.maxVideoChannels;
534 GlobalConfig.maxAudioChannels = _data.maxAudioChannels; 528 GlobalConfig.maxAudioChannels = _data.maxAudioChannels;
535 - GlobalConfig.maxMediaChannels=Math.max(GlobalConfig.maxVideoChannels,GlobalConfig.maxAudioChannels); 529 + GlobalConfig.maxMediaChannels = Math.max(GlobalConfig.maxVideoChannels, GlobalConfig.maxAudioChannels);
536 530
537 - GlobalConfig.ssTunnelAppURL=_data.ssTunnelAppURL||'';//屏幕共享插件的地址 531 + GlobalConfig.ssTunnelAppURL = _data.ssTunnelAppURL || ''; //屏幕共享插件的地址
538 532
539 //视频质量相关设置,每次加入课堂都按最新的获取设置 533 //视频质量相关设置,每次加入课堂都按最新的获取设置
540 GlobalConfig.fps = _data.fps || 15; 534 GlobalConfig.fps = _data.fps || 15;
541 GlobalConfig.gop = _data.gop || 3; 535 GlobalConfig.gop = _data.gop || 3;
542 GlobalConfig.videoQuality = parseInt(_data.videoQuality); 536 GlobalConfig.videoQuality = parseInt(_data.videoQuality);
543 - GlobalConfig.curVideoQuality= GlobalConfig.videoQuality; 537 + GlobalConfig.curVideoQuality = GlobalConfig.videoQuality;
544 538
545 //是否自动开始(身份是host的时候才用到的) 539 //是否自动开始(身份是host的时候才用到的)
546 GlobalConfig.isAutoStartClass = _data.autoRecord || 0; 540 GlobalConfig.isAutoStartClass = _data.autoRecord || 0;
547 541
548 GlobalConfig.setDocListPrepare(_data.docListPrepare); //提前上传的文档列表 542 GlobalConfig.setDocListPrepare(_data.docListPrepare); //提前上传的文档列表
549 - GlobalConfig.setRecordList(_data.recordList);//录制回放地址  
550 - GlobalConfig.setDocList(_data.docList);//文档地址  
551 - GlobalConfig.setMsList(_data.msList);//推流播流服务器地址(需要对列表中的地址进行分类,里面包含了推流和拉流的地址,目前主要是乐视的需要区分开)  
552 - GlobalConfig.setRsList(_data.rsList);//播放m3u8格式的地址(录制回放时使用)  
553 - GlobalConfig.setMcuList(_data.mcuList);//mcu  
554 - GlobalConfig.setMusicList(_data.musicList);//  
555 - GlobalConfig.setMusicListPrepare(_data.musicListPrepare);//提前上传的声音文件列表  
556 - GlobalConfig.setVideoCDNAddr(_data.videoCDNAddr);//cdn加速的拉流地址,直播的时候才使用 543 + GlobalConfig.setRecordList(_data.recordList); //录制回放地址
  544 + GlobalConfig.setDocList(_data.docList); //文档地址
  545 + GlobalConfig.setMsList(_data.msList); //推流播流服务器地址(需要对列表中的地址进行分类,里面包含了推流和拉流的地址,目前主要是乐视的需要区分开)
  546 + GlobalConfig.setRsList(_data.rsList); //播放m3u8格式的地址(录制回放时使用)
  547 + GlobalConfig.setMcuList(_data.mcuList); //mcu
  548 + GlobalConfig.setMusicList(_data.musicList); //
  549 + GlobalConfig.setMusicListPrepare(_data.musicListPrepare); //提前上传的声音文件列表
  550 + GlobalConfig.setVideoCDNAddr(_data.videoCDNAddr); //cdn加速的拉流地址,直播的时候才使用
557 GlobalConfig.setMediaShareList(_data.sharedMediaList); //提前上传的媒体共享文件列表 551 GlobalConfig.setMediaShareList(_data.sharedMediaList); //提前上传的媒体共享文件列表
558 552
559 -  
560 //MCU地址 553 //MCU地址
561 if (_data.mcuList && _data.mcuList.length > 0) { 554 if (_data.mcuList && _data.mcuList.length > 0) {
562 //随机选择一个 555 //随机选择一个
@@ -583,61 +576,59 @@ export default class MessageEntrance extends Emiter { @@ -583,61 +576,59 @@ export default class MessageEntrance extends Emiter {
583 loger.log('初始->MS->.', GlobalConfig.MS_PUBLISH_IP, GlobalConfig.MS_PUBLISH_PORT); 576 loger.log('初始->MS->.', GlobalConfig.MS_PUBLISH_IP, GlobalConfig.MS_PUBLISH_PORT);
584 577
585 //播流的地址和推流地址需要分开的时候,单独设置拉流的地址 rtmp(目前乐视使用) 578 //播流的地址和推流地址需要分开的时候,单独设置拉流的地址 rtmp(目前乐视使用)
586 - if (GlobalConfig.pullRtmpList &&GlobalConfig.pullRtmpList.length > 0) { 579 + if (GlobalConfig.pullRtmpList && GlobalConfig.pullRtmpList.length > 0) {
587 //有单独的rtmp拉流地址 580 //有单独的rtmp拉流地址
588 - let index = parseInt(Math.random() *GlobalConfig.pullRtmpList.length);  
589 - GlobalConfig.MS_PLAY_RTMP_IP =GlobalConfig.pullRtmpList[index].ip || "";  
590 - GlobalConfig.MS_PLAY_RTMP_PORT =GlobalConfig.pullRtmpList[index].port || "";  
591 - }else { 581 + let index = parseInt(Math.random() * GlobalConfig.pullRtmpList.length);
  582 + GlobalConfig.MS_PLAY_RTMP_IP = GlobalConfig.pullRtmpList[index].ip || "";
  583 + GlobalConfig.MS_PLAY_RTMP_PORT = GlobalConfig.pullRtmpList[index].port || "";
  584 + } else {
592 //如果没有单独的rtmp拉流地址,和推流地址一样即可 585 //如果没有单独的rtmp拉流地址,和推流地址一样即可
593 - GlobalConfig.MS_PLAY_RTMP_IP= GlobalConfig.MS_PUBLISH_IP;  
594 - GlobalConfig.MS_PLAY_RTMP_PORT =GlobalConfig.MS_PUBLISH_PORT; 586 + GlobalConfig.MS_PLAY_RTMP_IP = GlobalConfig.MS_PUBLISH_IP;
  587 + GlobalConfig.MS_PLAY_RTMP_PORT = GlobalConfig.MS_PUBLISH_PORT;
595 } 588 }
596 589
597 loger.log('初始->MSPull->.', GlobalConfig.MS_PLAY_RTMP_IP, GlobalConfig.MS_PLAY_RTMP_PORT); 590 loger.log('初始->MSPull->.', GlobalConfig.MS_PLAY_RTMP_IP, GlobalConfig.MS_PLAY_RTMP_PORT);
598 591
599 //播流的地址和推流地址需要分开的时候,单独设置拉流的地址 hls(目前乐视使用) 592 //播流的地址和推流地址需要分开的时候,单独设置拉流的地址 hls(目前乐视使用)
600 - if (GlobalConfig.hlsList &&GlobalConfig.hlsList.length > 0) { 593 + if (GlobalConfig.hlsList && GlobalConfig.hlsList.length > 0) {
601 //有单独的hls拉流地址 594 //有单独的hls拉流地址
602 - let index = parseInt(Math.random() *GlobalConfig.hlsList.length);  
603 - GlobalConfig.MS_PLAY_HLS_IP =GlobalConfig.hlsList[index].ip || "";  
604 - GlobalConfig.MS_PLAY_HLS_PORT =GlobalConfig.hlsList[index].port || "";  
605 - }else { 595 + let index = parseInt(Math.random() * GlobalConfig.hlsList.length);
  596 + GlobalConfig.MS_PLAY_HLS_IP = GlobalConfig.hlsList[index].ip || "";
  597 + GlobalConfig.MS_PLAY_HLS_PORT = GlobalConfig.hlsList[index].port || "";
  598 + } else {
606 //没有单独的hls拉流地址,和录制回放地址一样即可 599 //没有单独的hls拉流地址,和录制回放地址一样即可
607 - GlobalConfig.MS_PLAY_HLS_IP =GlobalConfig.RS_RECORD_PLAY_IP;  
608 - GlobalConfig.MS_PLAY_HLS_PORT =GlobalConfig.RS_RECORD_PLAY_PORT ; 600 + GlobalConfig.MS_PLAY_HLS_IP = GlobalConfig.RS_RECORD_PLAY_IP;
  601 + GlobalConfig.MS_PLAY_HLS_PORT = GlobalConfig.RS_RECORD_PLAY_PORT;
609 } 602 }
610 loger.log('初始->MSHls->.', GlobalConfig.MS_PLAY_HLS_IP, GlobalConfig.MS_PLAY_HLS_PORT); 603 loger.log('初始->MSHls->.', GlobalConfig.MS_PLAY_HLS_IP, GlobalConfig.MS_PLAY_HLS_PORT);
611 604
612 -  
613 //直播的时候,拉流(rtmp和hls)需要从 videoCDNAddr中获取 605 //直播的时候,拉流(rtmp和hls)需要从 videoCDNAddr中获取
614 //20170531-新规则,所有课堂类型都支持加速 606 //20170531-新规则,所有课堂类型都支持加速
615 // if(GlobalConfig.classType==ApeConsts.CLASS_TYPE_2&&GlobalConfig.videoCDNAddrList.length>0){ 607 // if(GlobalConfig.classType==ApeConsts.CLASS_TYPE_2&&GlobalConfig.videoCDNAddrList.length>0){
616 - if(GlobalConfig.videoCDNAddrList.length>0){ 608 + if (GlobalConfig.videoCDNAddrList.length > 0) {
617 //videoCDNAddrList中rtmppush和hls是混在一起的,需要分离开; 609 //videoCDNAddrList中rtmppush和hls是混在一起的,需要分离开;
618 - let listLen=GlobalConfig.videoCDNAddrList.length;  
619 - for(let i=0;i<listLen;i++){  
620 - let ipItem=GlobalConfig.videoCDNAddrList[i];  
621 - if(ipItem){  
622 - if(ipItem.indexOf('hls')>=0){ 610 + let listLen = GlobalConfig.videoCDNAddrList.length;
  611 + for (let i = 0; i < listLen; i++) {
  612 + let ipItem = GlobalConfig.videoCDNAddrList[i];
  613 + if (ipItem) {
  614 + if (ipItem.indexOf('hls') >= 0) {
623 //直播的时候m3u8拉流地址 615 //直播的时候m3u8拉流地址
624 - GlobalConfig.MS_PLAY_HLS_IP =ipItem;//ip包含了端口  
625 - GlobalConfig.MS_PLAY_HLS_PORT ="";  
626 - loger.log('videoCDNAddr>初始->MSHls', GlobalConfig.MS_PLAY_HLS_IP );  
627 - }else if(ipItem.indexOf('rtmppull')>=0){ 616 + GlobalConfig.MS_PLAY_HLS_IP = ipItem; //ip包含了端口
  617 + GlobalConfig.MS_PLAY_HLS_PORT = "";
  618 + loger.log('videoCDNAddr>初始->MSHls', GlobalConfig.MS_PLAY_HLS_IP);
  619 + } else if (ipItem.indexOf('rtmppull') >= 0) {
628 //直播的时候rtmp拉流地址 620 //直播的时候rtmp拉流地址
629 - GlobalConfig.MS_PLAY_RTMP_IP=ipItem;//ip包含了端口  
630 - GlobalConfig.MS_PLAY_RTMP_PORT ='';  
631 - loger.log('videoCDNAddr->初始->MSPull', GlobalConfig.MS_PLAY_RTMP_IP ); 621 + GlobalConfig.MS_PLAY_RTMP_IP = ipItem; //ip包含了端口
  622 + GlobalConfig.MS_PLAY_RTMP_PORT = '';
  623 + loger.log('videoCDNAddr->初始->MSPull', GlobalConfig.MS_PLAY_RTMP_IP);
632 } 624 }
633 } 625 }
634 } 626 }
635 627
636 - }else{ 628 + } else {
637 loger.log('不需要videoCDNAddr->'); 629 loger.log('不需要videoCDNAddr->');
638 } 630 }
639 631
640 -  
641 //文档地址 632 //文档地址
642 if (_data.docList && _data.docList.length > 0) { 633 if (_data.docList && _data.docList.length > 0) {
643 //doc上传地址,随机获取一个 634 //doc上传地址,随机获取一个
@@ -658,7 +649,7 @@ export default class MessageEntrance extends Emiter { @@ -658,7 +649,7 @@ export default class MessageEntrance extends Emiter {
658 649
659 } 650 }
660 //这里需要考虑是否加延迟处理,课堂信息刚获取完成,客户端需要根据数据创建界面UI,等创建完成后再加入课堂是最合适的(目前没有加延迟) 651 //这里需要考虑是否加延迟处理,课堂信息刚获取完成,客户端需要根据数据创建界面UI,等创建完成后再加入课堂是最合适的(目前没有加延迟)
661 - this._emit(MessageTypes.CLASS_GET_INFO_SUCCESS,GlobalConfig.getClassInfo()); 652 + this._emit(MessageTypes.CLASS_GET_INFO_SUCCESS, GlobalConfig.getClassInfo());
662 653
663 if (_data.currentInfo) { 654 if (_data.currentInfo) {
664 //根据从Sass获取的数据信息,同步最后一次保存的课堂状态信息 655 //根据从Sass获取的数据信息,同步最后一次保存的课堂状态信息
@@ -673,7 +664,6 @@ export default class MessageEntrance extends Emiter { @@ -673,7 +664,6 @@ export default class MessageEntrance extends Emiter {
673 loger.log("还没有保存过课堂状信息"); 664 loger.log("还没有保存过课堂状信息");
674 } 665 }
675 666
676 -  
677 //录制回放不需要获取ip信息和选点 667 //录制回放不需要获取ip信息和选点
678 if (GlobalConfig.isRecordPlayBack) { 668 if (GlobalConfig.isRecordPlayBack) {
679 if (_recordPlayback) { 669 if (_recordPlayback) {
@@ -691,9 +681,9 @@ export default class MessageEntrance extends Emiter { @@ -691,9 +681,9 @@ export default class MessageEntrance extends Emiter {
691 681
692 //根据UserIp获取ip信息,选点 682 //根据UserIp获取ip信息,选点
693 getUserIpInfo() { 683 getUserIpInfo() {
694 - let _this=this; 684 + let _this = this;
695 if (_ipManager) { 685 if (_ipManager) {
696 - _ipManager.loadServerJosn(function(_data){ 686 + _ipManager.loadServerJosn(function (_data) {
697 _ipManager.getUserIpInfo("", GlobalConfig.userIp, _this._getUserIpCallbackHandler.bind(_this), 2000); 687 _ipManager.getUserIpInfo("", GlobalConfig.userIp, _this._getUserIpCallbackHandler.bind(_this), 2000);
698 }) 688 })
699 } 689 }
@@ -707,10 +697,10 @@ export default class MessageEntrance extends Emiter { @@ -707,10 +697,10 @@ export default class MessageEntrance extends Emiter {
707 } 697 }
708 this.isGetUserIpCallback = true; 698 this.isGetUserIpCallback = true;
709 if (_data && _data.ret == "ok") { 699 if (_data && _data.ret == "ok") {
710 - GlobalConfig.country = _data.country;//国家  
711 - GlobalConfig.city = _data.city;//城市  
712 - GlobalConfig.province = _data.province;//服务商  
713 - GlobalConfig.isp = _data.isp;//服务商 700 + GlobalConfig.country = _data.country; //国家
  701 + GlobalConfig.city = _data.city; //城市
  702 + GlobalConfig.province = _data.province; //服务商
  703 + GlobalConfig.isp = _data.isp; //服务商
714 } 704 }
715 705
716 //合并MCU 、MS的列表 706 //合并MCU 、MS的列表
@@ -720,12 +710,12 @@ export default class MessageEntrance extends Emiter { @@ -720,12 +710,12 @@ export default class MessageEntrance extends Emiter {
720 let _this = this; 710 let _this = this;
721 711
722 //有一些站点不需要进行MS选点,需要先检查一下 712 //有一些站点不需要进行MS选点,需要先检查一下
723 - if(GlobalConfig.siteId_letv==GlobalConfig.siteId){ 713 + if (GlobalConfig.siteId_letv == GlobalConfig.siteId) {
724 //MS不需要选点 714 //MS不需要选点
725 loger.log("MS不需要选点->siteId->", GlobalConfig.siteId); 715 loger.log("MS不需要选点->siteId->", GlobalConfig.siteId);
726 _this.isGetFastestMcuCallback = true; 716 _this.isGetFastestMcuCallback = true;
727 _this._startConnectMCU(); 717 _this._startConnectMCU();
728 - }else { 718 + } else {
729 this._getFastestMsServer(function (_data) { 719 this._getFastestMsServer(function (_data) {
730 loger.log("MS选点结束->", _data); 720 loger.log("MS选点结束->", _data);
731 if (_data && _data.ip) { 721 if (_data && _data.ip) {
@@ -780,7 +770,6 @@ export default class MessageEntrance extends Emiter { @@ -780,7 +770,6 @@ export default class MessageEntrance extends Emiter {
780 console.log(" GlobalConfig.mcuList", GlobalConfig.mcuList); 770 console.log(" GlobalConfig.mcuList", GlobalConfig.mcuList);
781 console.log(" GlobalConfig.msList", GlobalConfig.msList); 771 console.log(" GlobalConfig.msList", GlobalConfig.msList);
782 772
783 -  
784 //********合并所有MCU、MS 列表******** 773 //********合并所有MCU、MS 列表********
785 //****server.json中的数据和从Sass获取的msList mcuList 数据需要分开,不能同时共存**** 774 //****server.json中的数据和从Sass获取的msList mcuList 数据需要分开,不能同时共存****
786 /*GlobalConfig.mcuListAll.length = 0; 775 /*GlobalConfig.mcuListAll.length = 0;
@@ -789,21 +778,21 @@ export default class MessageEntrance extends Emiter { @@ -789,21 +778,21 @@ export default class MessageEntrance extends Emiter {
789 GlobalConfig.msListAll = GlobalConfig.msListAll.concat(GlobalConfig.msList, GlobalConfig.msListFromServer);*/ 778 GlobalConfig.msListAll = GlobalConfig.msListAll.concat(GlobalConfig.msList, GlobalConfig.msListFromServer);*/
790 779
791 GlobalConfig.mcuListAll.length = 0; 780 GlobalConfig.mcuListAll.length = 0;
792 - if(GlobalConfig.mcuListFromServer.length>0){ 781 + if (GlobalConfig.mcuListFromServer.length > 0) {
793 //使用server中的MCU数据 782 //使用server中的MCU数据
794 loger.warn("使用server中的MCU数据") 783 loger.warn("使用server中的MCU数据")
795 GlobalConfig.mcuListAll = GlobalConfig.mcuListFromServer; 784 GlobalConfig.mcuListAll = GlobalConfig.mcuListFromServer;
796 - }else { 785 + } else {
797 //使用Sass中的数据 786 //使用Sass中的数据
798 loger.warn("使用Sass中的MCU数据") 787 loger.warn("使用Sass中的MCU数据")
799 GlobalConfig.mcuListAll = GlobalConfig.mcuList; 788 GlobalConfig.mcuListAll = GlobalConfig.mcuList;
800 } 789 }
801 790
802 GlobalConfig.msListAll.length = 0; 791 GlobalConfig.msListAll.length = 0;
803 - if(GlobalConfig.msListFromServer.length>0){ 792 + if (GlobalConfig.msListFromServer.length > 0) {
804 loger.warn("使用server中的MS数据") 793 loger.warn("使用server中的MS数据")
805 GlobalConfig.msListAll = GlobalConfig.msListFromServer; 794 GlobalConfig.msListAll = GlobalConfig.msListFromServer;
806 - }else { 795 + } else {
807 loger.warn("使用Sass中的MS数据") 796 loger.warn("使用Sass中的MS数据")
808 GlobalConfig.msListAll = GlobalConfig.msList; 797 GlobalConfig.msListAll = GlobalConfig.msList;
809 } 798 }
@@ -818,7 +807,7 @@ export default class MessageEntrance extends Emiter { @@ -818,7 +807,7 @@ export default class MessageEntrance extends Emiter {
818 _ipManager.getFastestMcuServer(GlobalConfig.mcuListAll, _callback); 807 _ipManager.getFastestMcuServer(GlobalConfig.mcuListAll, _callback);
819 } else { 808 } else {
820 if (_callback) { 809 if (_callback) {
821 - _callback({'ip': ""}); 810 + _callback({ 'ip': "" });
822 } 811 }
823 } 812 }
824 } 813 }
@@ -829,7 +818,7 @@ export default class MessageEntrance extends Emiter { @@ -829,7 +818,7 @@ export default class MessageEntrance extends Emiter {
829 _ipManager.getFastestMsServer(GlobalConfig.msListAll, _callback); 818 _ipManager.getFastestMsServer(GlobalConfig.msListAll, _callback);
830 } else { 819 } else {
831 if (_callback) { 820 if (_callback) {
832 - _callback({ip: ""}); 821 + _callback({ ip: "" });
833 } 822 }
834 } 823 }
835 } 824 }
@@ -847,7 +836,7 @@ export default class MessageEntrance extends Emiter { @@ -847,7 +836,7 @@ export default class MessageEntrance extends Emiter {
847 //只有加入课堂之后才能保存数据 836 //只有加入课堂之后才能保存数据
848 if (GlobalConfig.getCurrentStatus().code == GlobalConfig.statusCode_2.code) { 837 if (GlobalConfig.getCurrentStatus().code == GlobalConfig.statusCode_2.code) {
849 //POST 保存数据 838 //POST 保存数据
850 - _sass.saveClassStatusInfo({"classStatusInfo": GlobalConfig.classStatusInfo});//保存课堂状态信息 839 + _sass.saveClassStatusInfo({ "classStatusInfo": GlobalConfig.classStatusInfo }); //保存课堂状态信息
851 } else { 840 } else {
852 loger.error("不能保存课堂数据", GlobalConfig.getCurrentStatus()); 841 loger.error("不能保存课堂数据", GlobalConfig.getCurrentStatus());
853 } 842 }
@@ -886,11 +875,10 @@ export default class MessageEntrance extends Emiter { @@ -886,11 +875,10 @@ export default class MessageEntrance extends Emiter {
886 _mcuJoinMCUClassSuccessHandler(_data) { 875 _mcuJoinMCUClassSuccessHandler(_data) {
887 //loger.log('MCU 课堂成功.'); 876 //loger.log('MCU 课堂成功.');
888 GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_2); 877 GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_2);
889 - GlobalConfig.classJoinSuccess=true;  
890 -  
891 - GlobalConfig.screenWidth=window.screen.width;  
892 - GlobalConfig.screenHeight=window.screen.height; 878 + GlobalConfig.classJoinSuccess = true;
893 879
  880 + GlobalConfig.screenWidth = window.screen.width;
  881 + GlobalConfig.screenHeight = window.screen.height;
894 882
895 //返回给客户端初始化成功的数据 883 //返回给客户端初始化成功的数据
896 let joinClassSuccessCallBackData = {}; 884 let joinClassSuccessCallBackData = {};
@@ -907,13 +895,13 @@ export default class MessageEntrance extends Emiter { @@ -907,13 +895,13 @@ export default class MessageEntrance extends Emiter {
907 joinClassSuccessCallBackData.isHost = GlobalConfig.isHost; 895 joinClassSuccessCallBackData.isHost = GlobalConfig.isHost;
908 joinClassSuccessCallBackData.maxAudioChannels = GlobalConfig.maxAudioChannels; 896 joinClassSuccessCallBackData.maxAudioChannels = GlobalConfig.maxAudioChannels;
909 joinClassSuccessCallBackData.maxVideoChannels = GlobalConfig.maxVideoChannels; 897 joinClassSuccessCallBackData.maxVideoChannels = GlobalConfig.maxVideoChannels;
910 - joinClassSuccessCallBackData.maxMediaChannels= GlobalConfig.maxMediaChannels; 898 + joinClassSuccessCallBackData.maxMediaChannels = GlobalConfig.maxMediaChannels;
911 joinClassSuccessCallBackData.mcuDelay = GlobalConfig.mcuDelay; 899 joinClassSuccessCallBackData.mcuDelay = GlobalConfig.mcuDelay;
912 900
913 joinClassSuccessCallBackData.msType = GlobalConfig.msType; 901 joinClassSuccessCallBackData.msType = GlobalConfig.msType;
914 joinClassSuccessCallBackData.nodeId = GlobalConfig.nodeId; 902 joinClassSuccessCallBackData.nodeId = GlobalConfig.nodeId;
915 joinClassSuccessCallBackData.password = GlobalConfig.password; 903 joinClassSuccessCallBackData.password = GlobalConfig.password;
916 - joinClassSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;// 老师的默认是true 904 + joinClassSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired; // 老师的默认是true
917 //GlobalConfig.passwordRequired 老师的默认是true 905 //GlobalConfig.passwordRequired 老师的默认是true
918 //GlobalConfig.portal=_data.portal; 906 //GlobalConfig.portal=_data.portal;
919 joinClassSuccessCallBackData.role = GlobalConfig.role; 907 joinClassSuccessCallBackData.role = GlobalConfig.role;
@@ -931,22 +919,21 @@ export default class MessageEntrance extends Emiter { @@ -931,22 +919,21 @@ export default class MessageEntrance extends Emiter {
931 joinClassSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired; 919 joinClassSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;
932 joinClassSuccessCallBackData.classType = GlobalConfig.classType || ApeConsts.CLASS_TYPE_1; 920 joinClassSuccessCallBackData.classType = GlobalConfig.classType || ApeConsts.CLASS_TYPE_1;
933 921
934 - joinClassSuccessCallBackData.country = GlobalConfig.country;//国家  
935 - joinClassSuccessCallBackData.city = GlobalConfig.city;//城市  
936 - joinClassSuccessCallBackData.province = GlobalConfig.province;//服务商  
937 - joinClassSuccessCallBackData.isp = GlobalConfig.isp;//服务商 922 + joinClassSuccessCallBackData.country = GlobalConfig.country; //国家
  923 + joinClassSuccessCallBackData.city = GlobalConfig.city; //城市
  924 + joinClassSuccessCallBackData.province = GlobalConfig.province; //服务商
  925 + joinClassSuccessCallBackData.isp = GlobalConfig.isp; //服务商
938 926
939 - joinClassSuccessCallBackData.classTimestamp = GlobalConfig.classTimestamp;//课堂进行的累积时间  
940 - joinClassSuccessCallBackData.recordTimestamp = GlobalConfig.recordTimestamp;//课堂录制的累积时间  
941 - joinClassSuccessCallBackData.recordPlaybackMaxTime = GlobalConfig.recordPlaybackMaxTime;//录制回放的总时间 927 + joinClassSuccessCallBackData.classTimestamp = GlobalConfig.classTimestamp; //课堂进行的累积时间
  928 + joinClassSuccessCallBackData.recordTimestamp = GlobalConfig.recordTimestamp; //课堂录制的累积时间
  929 + joinClassSuccessCallBackData.recordPlaybackMaxTime = GlobalConfig.recordPlaybackMaxTime; //录制回放的总时间
942 930
943 joinClassSuccessCallBackData.fps = GlobalConfig.fps; 931 joinClassSuccessCallBackData.fps = GlobalConfig.fps;
944 joinClassSuccessCallBackData.gop = GlobalConfig.gop; 932 joinClassSuccessCallBackData.gop = GlobalConfig.gop;
945 joinClassSuccessCallBackData.videoQuality = GlobalConfig.videoQuality; 933 joinClassSuccessCallBackData.videoQuality = GlobalConfig.videoQuality;
946 934
947 -  
948 joinClassSuccessCallBackData.ssTunnelAppURL = GlobalConfig.ssTunnelAppURL; 935 joinClassSuccessCallBackData.ssTunnelAppURL = GlobalConfig.ssTunnelAppURL;
949 - joinClassSuccessCallBackData.currentSceneTableId=GlobalConfig.currentSceneTableId;//文档区域的模块显示 936 + joinClassSuccessCallBackData.currentSceneTableId = GlobalConfig.currentSceneTableId; //文档区域的模块显示
950 937
951 loger.log('加入课堂成功->'); 938 loger.log('加入课堂成功->');
952 loger.log(joinClassSuccessCallBackData); 939 loger.log(joinClassSuccessCallBackData);
@@ -966,7 +953,7 @@ export default class MessageEntrance extends Emiter { @@ -966,7 +953,7 @@ export default class MessageEntrance extends Emiter {
966 this._getFastestMcuServer(function (_data) { 953 this._getFastestMcuServer(function (_data) {
967 loger.log("MCU选点结束->", _data); 954 loger.log("MCU选点结束->", _data);
968 //记录当前的IP地址,选点结束后需要判断一下是否是新的IP; 955 //记录当前的IP地址,选点结束后需要判断一下是否是新的IP;
969 - let oldIp= GlobalConfig.MCUServerIP; 956 + let oldIp = GlobalConfig.MCUServerIP;
970 957
971 if (_data && _data.ip) { 958 if (_data && _data.ip) {
972 GlobalConfig.MCUServerIP = _data.ip || ""; 959 GlobalConfig.MCUServerIP = _data.ip || "";
@@ -979,25 +966,25 @@ export default class MessageEntrance extends Emiter { @@ -979,25 +966,25 @@ export default class MessageEntrance extends Emiter {
979 GlobalConfig.MCUServerPort = GlobalConfig.mcuList[index].port || ""; 966 GlobalConfig.MCUServerPort = GlobalConfig.mcuList[index].port || "";
980 } 967 }
981 } 968 }
982 - if(oldIp&&oldIp!=GlobalConfig.MCUServerIP){ 969 + if (oldIp && oldIp != GlobalConfig.MCUServerIP) {
983 loger.log('MCU->最新地址->', GlobalConfig.MCUServerIP, GlobalConfig.MCUServerPort); 970 loger.log('MCU->最新地址->', GlobalConfig.MCUServerIP, GlobalConfig.MCUServerPort);
984 //判断是否需要主动断开当前的连接然后重连新的服务器 971 //判断是否需要主动断开当前的连接然后重连新的服务器
985 if (_param && _param.reConnect == true) { 972 if (_param && _param.reConnect == true) {
986 loger.log('MCU->切换到最新的IP->', GlobalConfig.MCUServerIP, GlobalConfig.MCUServerPort); 973 loger.log('MCU->切换到最新的IP->', GlobalConfig.MCUServerIP, GlobalConfig.MCUServerPort);
987 _this._startConnectMCU(); 974 _this._startConnectMCU();
988 - }else { 975 + } else {
989 //不需要断开当前的连接,更改ip即可 976 //不需要断开当前的连接,更改ip即可
990 _this._switchMcuIp(); 977 _this._switchMcuIp();
991 } 978 }
992 - }else { 979 + } else {
993 //如果选点结束后获得的ip和当前的IP相同,不需要切换 980 //如果选点结束后获得的ip和当前的IP相同,不需要切换
994 - loger.log('MCU不需要切换->之前的IP->',oldIp,"新的IP->",GlobalConfig.MCUServerIP); 981 + loger.log('MCU不需要切换->之前的IP->', oldIp, "新的IP->", GlobalConfig.MCUServerIP);
995 } 982 }
996 }); 983 });
997 } 984 }
998 985
999 //课堂状态发生改变,需要停止当前的所有推流 986 //课堂状态发生改变,需要停止当前的所有推流
1000 - _stopAllMediaPublishHandler(_data){ 987 + _stopAllMediaPublishHandler(_data) {
1001 loger.log('课堂状态发生改变,需要停止当前的所有推流'); 988 loger.log('课堂状态发生改变,需要停止当前的所有推流');
1002 this._emit(MessageTypes.MEDIA_STOP_PUBLISH); 989 this._emit(MessageTypes.MEDIA_STOP_PUBLISH);
1003 /* let allChannels=MediaModule.allMediaChannelsList; 990 /* let allChannels=MediaModule.allMediaChannelsList;
@@ -1023,7 +1010,7 @@ export default class MessageEntrance extends Emiter { @@ -1023,7 +1010,7 @@ export default class MessageEntrance extends Emiter {
1023 this._getFastestMsServer(function (_data) { 1010 this._getFastestMsServer(function (_data) {
1024 loger.log("MS选点结束->", _data); 1011 loger.log("MS选点结束->", _data);
1025 //记录当前的IP地址,选点结束后需要判断一下是否是新的IP; 1012 //记录当前的IP地址,选点结束后需要判断一下是否是新的IP;
1026 - let oldIp= GlobalConfig.MCUServerIP; 1013 + let oldIp = GlobalConfig.MCUServerIP;
1027 1014
1028 if (_data && _data.ip) { 1015 if (_data && _data.ip) {
1029 GlobalConfig.MS_PUBLISH_IP = _data.ip || ""; 1016 GlobalConfig.MS_PUBLISH_IP = _data.ip || "";
@@ -1037,23 +1024,21 @@ export default class MessageEntrance extends Emiter { @@ -1037,23 +1024,21 @@ export default class MessageEntrance extends Emiter {
1037 } 1024 }
1038 } 1025 }
1039 1026
1040 -  
1041 - if(oldIp&&oldIp!=GlobalConfig.MS_PUBLISH_IP){ 1027 + if (oldIp && oldIp != GlobalConfig.MS_PUBLISH_IP) {
1042 /* loger.log('MS->切换地址->', GlobalConfig.MSServerIP, GlobalConfig.MSServerPort); 1028 /* loger.log('MS->切换地址->', GlobalConfig.MSServerIP, GlobalConfig.MSServerPort);
1043 //判断是否需要断开当前的连接重连新的服务器 1029 //判断是否需要断开当前的连接重连新的服务器
1044 if (_param && _param.reConnect == true) { 1030 if (_param && _param.reConnect == true) {
1045 loger.log('MS->最新地址->', GlobalConfig.MSServerIP, GlobalConfig.MSServerPort); 1031 loger.log('MS->最新地址->', GlobalConfig.MSServerIP, GlobalConfig.MSServerPort);
1046 }*/ 1032 }*/
1047 loger.log('MS->最新地址->', GlobalConfig.MS_PUBLISH_IP, GlobalConfig.MS_PUBLISH_PORT); 1033 loger.log('MS->最新地址->', GlobalConfig.MS_PUBLISH_IP, GlobalConfig.MS_PUBLISH_PORT);
1048 - }else { 1034 + } else {
1049 //如果选点结束后获得的ip和当前的IP相同,不需要切换 1035 //如果选点结束后获得的ip和当前的IP相同,不需要切换
1050 - loger.log('MS不需要切换->IP',GlobalConfig.MS_PUBLISH_IP); 1036 + loger.log('MS不需要切换->IP', GlobalConfig.MS_PUBLISH_IP);
1051 } 1037 }
1052 1038
1053 }); 1039 });
1054 } 1040 }
1055 1041
1056 -  
1057 //先通过Sass删除文档数据,删除成功之后才能删除MCU的 1042 //先通过Sass删除文档数据,删除成功之后才能删除MCU的
1058 _sassDeleteDocument(_param) { 1043 _sassDeleteDocument(_param) {
1059 if (!_mcu.connected) { 1044 if (!_mcu.connected) {
@@ -1095,7 +1080,7 @@ export default class MessageEntrance extends Emiter { @@ -1095,7 +1080,7 @@ export default class MessageEntrance extends Emiter {
1095 loger.log('删除文档成功->', _param); 1080 loger.log('删除文档成功->', _param);
1096 this._sendDocumentDelete(_param); 1081 this._sendDocumentDelete(_param);
1097 } 1082 }
1098 - _sassDeleteMediaShareSuccess(_param){ 1083 + _sassDeleteMediaShareSuccess(_param) {
1099 loger.log('删除媒体文件成功->', _param); 1084 loger.log('删除媒体文件成功->', _param);
1100 this._sendMediaSharedDelete(_param); 1085 this._sendMediaSharedDelete(_param);
1101 } 1086 }
@@ -1113,6 +1098,19 @@ export default class MessageEntrance extends Emiter { @@ -1113,6 +1098,19 @@ export default class MessageEntrance extends Emiter {
1113 } 1098 }
1114 } 1099 }
1115 1100
  1101 + //ConferApe
  1102 + //全局禁言
  1103 + _silenceClass(_param) {
  1104 + if (!_mcu.connected) {
  1105 + loger.warn(GlobalConfig.getCurrentStatus());
  1106 + return;
  1107 + }
  1108 +
  1109 + if (_confer_ape) {
  1110 + _confer_ape.silenceClass(_param);
  1111 + }
  1112 + }
  1113 +
1116 //暂停上课 1114 //暂停上课
1117 _sendPauseClass(_param) { 1115 _sendPauseClass(_param) {
1118 if (!_mcu.connected) { 1116 if (!_mcu.connected) {
@@ -1124,43 +1122,56 @@ export default class MessageEntrance extends Emiter { @@ -1124,43 +1122,56 @@ export default class MessageEntrance extends Emiter {
1124 } 1122 }
1125 } 1123 }
1126 //更新设备信息 1124 //更新设备信息
1127 - _updateDeviceInfo(_param){ 1125 + _updateDeviceInfo(_param) {
1128 if (!_mcu.connected) { 1126 if (!_mcu.connected) {
1129 - loger.warn('更新设备信息->失败',GlobalConfig.getCurrentStatus());  
1130 - return {"code": ApeConsts.RETURN_FAILED, "data": ""}; 1127 + loger.warn('更新设备信息->失败', GlobalConfig.getCurrentStatus());
  1128 + return { "code": ApeConsts.RETURN_FAILED, "data": "" };
1131 } 1129 }
1132 - if(!GlobalConfig.classJoinSuccess){  
1133 - loger.warn('更新设备信息->失败->还没有加入课堂成功',GlobalConfig.getCurrentStatus()); 1130 + if (!GlobalConfig.classJoinSuccess) {
  1131 + loger.warn('更新设备信息->失败->还没有加入课堂成功', GlobalConfig.getCurrentStatus());
1134 } 1132 }
1135 if (_confer_ape) { 1133 if (_confer_ape) {
1136 _confer_ape.updateDeviceInfo(_param); 1134 _confer_ape.updateDeviceInfo(_param);
1137 } 1135 }
1138 } 1136 }
1139 //文档-媒体共享-屏幕共享模块切换 1137 //文档-媒体共享-屏幕共享模块切换
1140 - _sceneTableChange(_param){ 1138 + _sceneTableChange(_param) {
1141 if (!_mcu.connected) { 1139 if (!_mcu.connected) {
1142 loger.warn(GlobalConfig.getCurrentStatus()); 1140 loger.warn(GlobalConfig.getCurrentStatus());
1143 - return {"code": ApeConsts.RETURN_FAILED, "data": ""}; 1141 + return { "code": ApeConsts.RETURN_FAILED, "data": "" };
1144 } 1142 }
1145 if (_confer_ape) { 1143 if (_confer_ape) {
1146 _confer_ape.sceneTableChange(_param); 1144 _confer_ape.sceneTableChange(_param);
1147 } 1145 }
1148 } 1146 }
  1147 +
  1148 + // 禁言控制
  1149 + _controlSilenceStatus(_param) {
  1150 + if (!_mcu.connected) {
  1151 + loger.warn(GlobalConfig.getCurrentStatus());
  1152 + return { "code": ApeConsts.RETURN_FAILED, "data": "" };
  1153 + }
  1154 + if (_confer_ape) {
  1155 + _confer_ape.controlSilenceStatus(_param);
  1156 + }
  1157 + }
  1158 +
1149 //举手状态控制 1159 //举手状态控制
1150 - _controlHandUpStatus(_param){ 1160 + _controlHandUpStatus(_param) {
1151 if (!_mcu.connected) { 1161 if (!_mcu.connected) {
1152 loger.warn(GlobalConfig.getCurrentStatus()); 1162 loger.warn(GlobalConfig.getCurrentStatus());
1153 - return {"code": ApeConsts.RETURN_FAILED, "data": ""}; 1163 + return { "code": ApeConsts.RETURN_FAILED, "data": "" };
1154 } 1164 }
1155 if (_confer_ape) { 1165 if (_confer_ape) {
1156 _confer_ape.controlHandUpStatus(_param); 1166 _confer_ape.controlHandUpStatus(_param);
1157 } 1167 }
1158 } 1168 }
  1169 +
1159 //举手状态切换 1170 //举手状态切换
1160 - _changeHandUpStatus(_param){ 1171 + _changeHandUpStatus(_param) {
1161 if (!_mcu.connected) { 1172 if (!_mcu.connected) {
1162 loger.warn(GlobalConfig.getCurrentStatus()); 1173 loger.warn(GlobalConfig.getCurrentStatus());
1163 - return {"code": ApeConsts.RETURN_FAILED, "data": ""}; 1174 + return { "code": ApeConsts.RETURN_FAILED, "data": "" };
1164 } 1175 }
1165 if (_confer_ape) { 1176 if (_confer_ape) {
1166 _confer_ape.changeHandUpStatus(_param); 1177 _confer_ape.changeHandUpStatus(_param);
@@ -1170,7 +1181,7 @@ export default class MessageEntrance extends Emiter { @@ -1170,7 +1181,7 @@ export default class MessageEntrance extends Emiter {
1170 _sendCloseClass(_param) { 1181 _sendCloseClass(_param) {
1171 if (!_mcu.connected) { 1182 if (!_mcu.connected) {
1172 loger.warn(GlobalConfig.getCurrentStatus()); 1183 loger.warn(GlobalConfig.getCurrentStatus());
1173 - return {"code": ApeConsts.RETURN_FAILED, "data": ""}; 1184 + return { "code": ApeConsts.RETURN_FAILED, "data": "" };
1174 } 1185 }
1175 if (_confer_ape) { 1186 if (_confer_ape) {
1176 _confer_ape.closeClass(_param); 1187 _confer_ape.closeClass(_param);
@@ -1181,7 +1192,7 @@ export default class MessageEntrance extends Emiter { @@ -1181,7 +1192,7 @@ export default class MessageEntrance extends Emiter {
1181 _leaveClass(_param) { 1192 _leaveClass(_param) {
1182 if (!_mcu.connected) { 1193 if (!_mcu.connected) {
1183 loger.warn(GlobalConfig.getCurrentStatus()); 1194 loger.warn(GlobalConfig.getCurrentStatus());
1184 - return {"code": ApeConsts.RETURN_FAILED, "data": ""}; 1195 + return { "code": ApeConsts.RETURN_FAILED, "data": "" };
1185 } 1196 }
1186 1197
1187 //停止推流 1198 //停止推流
@@ -1198,14 +1209,14 @@ export default class MessageEntrance extends Emiter { @@ -1198,14 +1209,14 @@ export default class MessageEntrance extends Emiter {
1198 _confer_ape.leaveClass(); 1209 _confer_ape.leaveClass();
1199 } 1210 }
1200 1211
1201 - let callBack={};  
1202 - if(_param&&_param.type){  
1203 - callBack=_param;  
1204 - }else{  
1205 - callBack.type=0; 1212 + let callBack = {};
  1213 + if (_param && _param.type) {
  1214 + callBack = _param;
  1215 + } else {
  1216 + callBack.type = 0;
1206 } 1217 }
1207 - loger.warn('离开课堂->',MessageTypes.CLASS_EXIT,callBack);  
1208 - this._emit(MessageTypes.CLASS_EXIT,callBack); 1218 + loger.warn('离开课堂->', MessageTypes.CLASS_EXIT, callBack);
  1219 + this._emit(MessageTypes.CLASS_EXIT, callBack);
1209 1220
1210 //断开MCU连接 1221 //断开MCU连接
1211 if (_mcu) { 1222 if (_mcu) {
@@ -1214,17 +1225,16 @@ export default class MessageEntrance extends Emiter { @@ -1214,17 +1225,16 @@ export default class MessageEntrance extends Emiter {
1214 } 1225 }
1215 } 1226 }
1216 1227
1217 -  
1218 //ChatApe 1228 //ChatApe
1219 // 发送聊天消息 1229 // 发送聊天消息
1220 _sendChatMsg(_messageInfo) { 1230 _sendChatMsg(_messageInfo) {
1221 if (!_mcu.connected) { 1231 if (!_mcu.connected) {
1222 loger.warn(GlobalConfig.getCurrentStatus()); 1232 loger.warn(GlobalConfig.getCurrentStatus());
1223 - return {"code": ApeConsts.RETURN_FAILED, "data": ""}; 1233 + return { "code": ApeConsts.RETURN_FAILED, "data": "" };
1224 } 1234 }
1225 if (_messageInfo === null || EngineUtils.isEmptyObject(_messageInfo)) { 1235 if (_messageInfo === null || EngineUtils.isEmptyObject(_messageInfo)) {
1226 loger.log('发送聊天消息失败->参数错误', _messageInfo); 1236 loger.log('发送聊天消息失败->参数错误', _messageInfo);
1227 - return {"code": ApeConsts.RETURN_FAILED, "data": ""}; 1237 + return { "code": ApeConsts.RETURN_FAILED, "data": "" };
1228 } 1238 }
1229 if (_chat_ape) { 1239 if (_chat_ape) {
1230 _chat_ape.sendChatMsg(_messageInfo); 1240 _chat_ape.sendChatMsg(_messageInfo);
@@ -1232,7 +1242,7 @@ export default class MessageEntrance extends Emiter { @@ -1232,7 +1242,7 @@ export default class MessageEntrance extends Emiter {
1232 } 1242 }
1233 1243
1234 //监听摄像头麦克风状态 1244 //监听摄像头麦克风状态
1235 - userDeviecStatusChange(_data){ 1245 + userDeviecStatusChange(_data) {
1236 /* nodeId:GlobalConfig.nodeId, 1246 /* nodeId:GlobalConfig.nodeId,
1237 userRole:GlobalConfig.userRole, 1247 userRole:GlobalConfig.userRole,
1238 userName:GlobalConfig.userName, 1248 userName:GlobalConfig.userName,
@@ -1246,14 +1256,14 @@ export default class MessageEntrance extends Emiter { @@ -1246,14 +1256,14 @@ export default class MessageEntrance extends Emiter {
1246 1256
1247 //屏幕共享 1257 //屏幕共享
1248 //开始屏幕共享 1258 //开始屏幕共享
1249 - _publishScreenShare(_param){  
1250 - if(_video_ape){ 1259 + _publishScreenShare(_param) {
  1260 + if (_video_ape) {
1251 _video_ape.publishScreenShare(_param); 1261 _video_ape.publishScreenShare(_param);
1252 } 1262 }
1253 } 1263 }
1254 //停止屏幕共享 1264 //停止屏幕共享
1255 - _stopPublishScreenShare(_param){  
1256 - if(_video_ape){ 1265 + _stopPublishScreenShare(_param) {
  1266 + if (_video_ape) {
1257 _video_ape.stopPublishScreenShare(_param); 1267 _video_ape.stopPublishScreenShare(_param);
1258 } 1268 }
1259 } 1269 }
@@ -1268,7 +1278,7 @@ export default class MessageEntrance extends Emiter { @@ -1268,7 +1278,7 @@ export default class MessageEntrance extends Emiter {
1268 _sendVideoBroadcastMsg(_param) { 1278 _sendVideoBroadcastMsg(_param) {
1269 if (!_mcu.connected) { 1279 if (!_mcu.connected) {
1270 loger.warn(GlobalConfig.getCurrentStatus()); 1280 loger.warn(GlobalConfig.getCurrentStatus());
1271 - return {"code": ApeConsts.RETURN_FAILED, "data": ""}; 1281 + return { "code": ApeConsts.RETURN_FAILED, "data": "" };
1272 } 1282 }
1273 if (_video_ape) { 1283 if (_video_ape) {
1274 return _video_ape.sendVideoBroadcastMsg(_param); 1284 return _video_ape.sendVideoBroadcastMsg(_param);
@@ -1296,7 +1306,7 @@ export default class MessageEntrance extends Emiter { @@ -1296,7 +1306,7 @@ export default class MessageEntrance extends Emiter {
1296 _publishVideo(_param) { 1306 _publishVideo(_param) {
1297 if (!_mcu.connected) { 1307 if (!_mcu.connected) {
1298 loger.warn(GlobalConfig.getCurrentStatus()); 1308 loger.warn(GlobalConfig.getCurrentStatus());
1299 - return {"code": ApeConsts.RETURN_FAILED, "data": ""}; 1309 + return { "code": ApeConsts.RETURN_FAILED, "data": "" };
1300 } 1310 }
1301 if (_video_ape) { 1311 if (_video_ape) {
1302 return _video_ape.publishVideo(_param); 1312 return _video_ape.publishVideo(_param);
@@ -1306,7 +1316,7 @@ export default class MessageEntrance extends Emiter { @@ -1306,7 +1316,7 @@ export default class MessageEntrance extends Emiter {
1306 _stopPublishVideo(_param) { 1316 _stopPublishVideo(_param) {
1307 if (!_mcu.connected) { 1317 if (!_mcu.connected) {
1308 loger.warn(GlobalConfig.getCurrentStatus()); 1318 loger.warn(GlobalConfig.getCurrentStatus());
1309 - return {"code": ApeConsts.RETURN_FAILED, "data": ""}; 1319 + return { "code": ApeConsts.RETURN_FAILED, "data": "" };
1310 } 1320 }
1311 if (_video_ape) { 1321 if (_video_ape) {
1312 return _video_ape.stopPublishVideo(_param); 1322 return _video_ape.stopPublishVideo(_param);
@@ -1324,7 +1334,7 @@ export default class MessageEntrance extends Emiter { @@ -1324,7 +1334,7 @@ export default class MessageEntrance extends Emiter {
1324 sendAudioCommandMsg(_param) { 1334 sendAudioCommandMsg(_param) {
1325 if (!_mcu.connected) { 1335 if (!_mcu.connected) {
1326 loger.warn(GlobalConfig.getCurrentStatus()); 1336 loger.warn(GlobalConfig.getCurrentStatus());
1327 - return {"code": ApeConsts.RETURN_FAILED, "data": ""}; 1337 + return { "code": ApeConsts.RETURN_FAILED, "data": "" };
1328 } 1338 }
1329 if (_audio_ape) { 1339 if (_audio_ape) {
1330 return _audio_ape.sendAudioBroadcastMsg(_param); 1340 return _audio_ape.sendAudioBroadcastMsg(_param);
@@ -1352,7 +1362,7 @@ export default class MessageEntrance extends Emiter { @@ -1352,7 +1362,7 @@ export default class MessageEntrance extends Emiter {
1352 _publishAudio(_param) { 1362 _publishAudio(_param) {
1353 if (!_mcu.connected) { 1363 if (!_mcu.connected) {
1354 loger.warn(GlobalConfig.getCurrentStatus()); 1364 loger.warn(GlobalConfig.getCurrentStatus());
1355 - return {"code": ApeConsts.RETURN_FAILED, "data": ""}; 1365 + return { "code": ApeConsts.RETURN_FAILED, "data": "" };
1356 } 1366 }
1357 if (_audio_ape) { 1367 if (_audio_ape) {
1358 return _audio_ape.publishAudio(_param); 1368 return _audio_ape.publishAudio(_param);
@@ -1362,14 +1372,13 @@ export default class MessageEntrance extends Emiter { @@ -1362,14 +1372,13 @@ export default class MessageEntrance extends Emiter {
1362 _stopPublishAudio(_param) { 1372 _stopPublishAudio(_param) {
1363 if (!_mcu.connected) { 1373 if (!_mcu.connected) {
1364 loger.warn(GlobalConfig.getCurrentStatus()); 1374 loger.warn(GlobalConfig.getCurrentStatus());
1365 - return {"code": ApeConsts.RETURN_FAILED, "data": ""}; 1375 + return { "code": ApeConsts.RETURN_FAILED, "data": "" };
1366 } 1376 }
1367 if (_audio_ape) { 1377 if (_audio_ape) {
1368 return _audio_ape.stopPublishAudio(_param); 1378 return _audio_ape.stopPublishAudio(_param);
1369 } 1379 }
1370 } 1380 }
1371 1381
1372 -  
1373 //WhiteBoardApe 1382 //WhiteBoardApe
1374 // 添加标注,发送信息 1383 // 添加标注,发送信息
1375 _sendInsertAnnotaion(_param) { 1384 _sendInsertAnnotaion(_param) {
@@ -1411,7 +1420,6 @@ export default class MessageEntrance extends Emiter { @@ -1411,7 +1420,6 @@ export default class MessageEntrance extends Emiter {
1411 } 1420 }
1412 } 1421 }
1413 1422
1414 -  
1415 //DocApe 1423 //DocApe
1416 //获取文档的所有资源地址 1424 //获取文档的所有资源地址
1417 _getDocFullAddress(_param) { 1425 _getDocFullAddress(_param) {
@@ -1419,7 +1427,7 @@ export default class MessageEntrance extends Emiter { @@ -1419,7 +1427,7 @@ export default class MessageEntrance extends Emiter {
1419 return _doc_ape.getDocFullAddress(_param); 1427 return _doc_ape.getDocFullAddress(_param);
1420 } else { 1428 } else {
1421 loger.error("文档模块还没有创建无法获取"); 1429 loger.error("文档模块还没有创建无法获取");
1422 - return {"code": ApeConsts.RETURN_FAILED, "data": "文档模块还没有创建无法获取"}; 1430 + return { "code": ApeConsts.RETURN_FAILED, "data": "文档模块还没有创建无法获取" };
1423 } 1431 }
1424 } 1432 }
1425 1433
@@ -1475,7 +1483,7 @@ export default class MessageEntrance extends Emiter { @@ -1475,7 +1483,7 @@ export default class MessageEntrance extends Emiter {
1475 } 1483 }
1476 } 1484 }
1477 //操作文档(页码上的动画步骤操作) 1485 //操作文档(页码上的动画步骤操作)
1478 - _sendDocumentSwitchAnimation(_param){ 1486 + _sendDocumentSwitchAnimation(_param) {
1479 if (!_mcu.connected) { 1487 if (!_mcu.connected) {
1480 loger.warn(GlobalConfig.getCurrentStatus()); 1488 loger.warn(GlobalConfig.getCurrentStatus());
1481 return; 1489 return;
@@ -1566,7 +1574,7 @@ export default class MessageEntrance extends Emiter { @@ -1566,7 +1574,7 @@ export default class MessageEntrance extends Emiter {
1566 1574
1567 //媒体共享模块的接口 1575 //媒体共享模块的接口
1568 //上传 1576 //上传
1569 - _sendMediaSharedUpload(_param){ 1577 + _sendMediaSharedUpload(_param) {
1570 if (!_mcu.connected) { 1578 if (!_mcu.connected) {
1571 loger.warn(GlobalConfig.getCurrentStatus()); 1579 loger.warn(GlobalConfig.getCurrentStatus());
1572 return; 1580 return;
@@ -1576,7 +1584,7 @@ export default class MessageEntrance extends Emiter { @@ -1576,7 +1584,7 @@ export default class MessageEntrance extends Emiter {
1576 } 1584 }
1577 } 1585 }
1578 //Sass删除媒体文件数据 1586 //Sass删除媒体文件数据
1579 - _sassDeletMediaShare(_param){ 1587 + _sassDeletMediaShare(_param) {
1580 if (!_mcu.connected) { 1588 if (!_mcu.connected) {
1581 loger.warn(GlobalConfig.getCurrentStatus()); 1589 loger.warn(GlobalConfig.getCurrentStatus());
1582 return; 1590 return;
@@ -1601,7 +1609,7 @@ export default class MessageEntrance extends Emiter { @@ -1601,7 +1609,7 @@ export default class MessageEntrance extends Emiter {
1601 } 1609 }
1602 } 1610 }
1603 //删除 1611 //删除
1604 - _sendMediaSharedDelete(_param){ 1612 + _sendMediaSharedDelete(_param) {
1605 if (!_mcu.connected) { 1613 if (!_mcu.connected) {
1606 loger.warn(GlobalConfig.getCurrentStatus()); 1614 loger.warn(GlobalConfig.getCurrentStatus());
1607 return; 1615 return;
@@ -1611,7 +1619,7 @@ export default class MessageEntrance extends Emiter { @@ -1611,7 +1619,7 @@ export default class MessageEntrance extends Emiter {
1611 } 1619 }
1612 } 1620 }
1613 //更新媒体文件的状态信息 1621 //更新媒体文件的状态信息
1614 - _sendMediaSharedUpdate(_param){ 1622 + _sendMediaSharedUpdate(_param) {
1615 if (!_mcu.connected) { 1623 if (!_mcu.connected) {
1616 loger.warn(GlobalConfig.getCurrentStatus()); 1624 loger.warn(GlobalConfig.getCurrentStatus());
1617 return; 1625 return;
@@ -1621,7 +1629,7 @@ export default class MessageEntrance extends Emiter { @@ -1621,7 +1629,7 @@ export default class MessageEntrance extends Emiter {
1621 } 1629 }
1622 } 1630 }
1623 //播放 1631 //播放
1624 - _sendMediaSharedPlay(_param){ 1632 + _sendMediaSharedPlay(_param) {
1625 if (!_mcu.connected) { 1633 if (!_mcu.connected) {
1626 loger.warn(GlobalConfig.getCurrentStatus()); 1634 loger.warn(GlobalConfig.getCurrentStatus());
1627 return; 1635 return;
@@ -1631,7 +1639,7 @@ export default class MessageEntrance extends Emiter { @@ -1631,7 +1639,7 @@ export default class MessageEntrance extends Emiter {
1631 } 1639 }
1632 } 1640 }
1633 //停止 1641 //停止
1634 - _sendMediaSharedStop(_param){ 1642 + _sendMediaSharedStop(_param) {
1635 if (!_mcu.connected) { 1643 if (!_mcu.connected) {
1636 loger.warn(GlobalConfig.getCurrentStatus()); 1644 loger.warn(GlobalConfig.getCurrentStatus());
1637 return; 1645 return;
@@ -1656,7 +1664,7 @@ export default class MessageEntrance extends Emiter { @@ -1656,7 +1664,7 @@ export default class MessageEntrance extends Emiter {
1656 "creatUserName": value.createUserName, 1664 "creatUserName": value.createUserName,
1657 "url": value.url, 1665 "url": value.url,
1658 "fileType": value.type, 1666 "fileType": value.type,
1659 - "fileId": ""+value.id, 1667 + "fileId": "" + value.id,
1660 "fileName": value.name, 1668 "fileName": value.name,
1661 "seek": 0 1669 "seek": 0
1662 }; 1670 };
@@ -1684,10 +1692,10 @@ export default class MessageEntrance extends Emiter { @@ -1684,10 +1692,10 @@ export default class MessageEntrance extends Emiter {
1684 loger.log('录制回放初始化->', _param); 1692 loger.log('录制回放初始化->', _param);
1685 1693
1686 //保存参数 1694 //保存参数
1687 - GlobalConfig.isRecordPlayBack = true;//设置为录制回放状态 1695 + GlobalConfig.isRecordPlayBack = true; //设置为录制回放状态
1688 GlobalConfig.classId = parseInt(_param.classId); 1696 GlobalConfig.classId = parseInt(_param.classId);
1689 GlobalConfig.portal = _param.portal; 1697 GlobalConfig.portal = _param.portal;
1690 - GlobalConfig.userRole = ApeConsts.normal;//*************很重要,录制回放的时候,身份模式是普通人******** 1698 + GlobalConfig.userRole = ApeConsts.normal; //*************很重要,录制回放的时候,身份模式是普通人********
1691 GlobalConfig.userId = _param.userId || "0"; 1699 GlobalConfig.userId = _param.userId || "0";
1692 GlobalConfig.userName = _param.userName || ""; 1700 GlobalConfig.userName = _param.userName || "";
1693 1701
@@ -1734,7 +1742,7 @@ export default class MessageEntrance extends Emiter { @@ -1734,7 +1742,7 @@ export default class MessageEntrance extends Emiter {
1734 if (_whiteboard_ape) { 1742 if (_whiteboard_ape) {
1735 _whiteboard_ape.clearData(); 1743 _whiteboard_ape.clearData();
1736 } 1744 }
1737 - if(_video_ape){ 1745 + if (_video_ape) {
1738 _video_ape.clearData(); 1746 _video_ape.clearData();
1739 } 1747 }
1740 } 1748 }
@@ -1756,7 +1764,7 @@ export default class MessageEntrance extends Emiter { @@ -1756,7 +1764,7 @@ export default class MessageEntrance extends Emiter {
1756 joinClassSuccessCallBackData.classId = GlobalConfig.classId; 1764 joinClassSuccessCallBackData.classId = GlobalConfig.classId;
1757 joinClassSuccessCallBackData.className = GlobalConfig.className; 1765 joinClassSuccessCallBackData.className = GlobalConfig.className;
1758 joinClassSuccessCallBackData.h5Module = GlobalConfig.h5Module; 1766 joinClassSuccessCallBackData.h5Module = GlobalConfig.h5Module;
1759 - joinClassSuccessCallBackData.isHost = GlobalConfig.isHost;// 1767 + joinClassSuccessCallBackData.isHost = GlobalConfig.isHost; //
1760 joinClassSuccessCallBackData.maxAudioChannels = GlobalConfig.maxAudioChannels; 1768 joinClassSuccessCallBackData.maxAudioChannels = GlobalConfig.maxAudioChannels;
1761 joinClassSuccessCallBackData.maxVideoChannels = GlobalConfig.maxVideoChannels; 1769 joinClassSuccessCallBackData.maxVideoChannels = GlobalConfig.maxVideoChannels;
1762 joinClassSuccessCallBackData.maxMediaChannels = GlobalConfig.maxMediaChannels; 1770 joinClassSuccessCallBackData.maxMediaChannels = GlobalConfig.maxMediaChannels;
@@ -1766,7 +1774,7 @@ export default class MessageEntrance extends Emiter { @@ -1766,7 +1774,7 @@ export default class MessageEntrance extends Emiter {
1766 joinClassSuccessCallBackData.msType = GlobalConfig.msType; 1774 joinClassSuccessCallBackData.msType = GlobalConfig.msType;
1767 joinClassSuccessCallBackData.nodeId = GlobalConfig.nodeId; 1775 joinClassSuccessCallBackData.nodeId = GlobalConfig.nodeId;
1768 joinClassSuccessCallBackData.password = GlobalConfig.password; 1776 joinClassSuccessCallBackData.password = GlobalConfig.password;
1769 - joinClassSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;// 老师的默认是true 1777 + joinClassSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired; // 老师的默认是true
1770 //GlobalConfig.passwordRequired 老师的默认是true 1778 //GlobalConfig.passwordRequired 老师的默认是true
1771 //GlobalConfig.portal=_data.portal; 1779 //GlobalConfig.portal=_data.portal;
1772 joinClassSuccessCallBackData.role = GlobalConfig.role; 1780 joinClassSuccessCallBackData.role = GlobalConfig.role;
@@ -1784,28 +1792,28 @@ export default class MessageEntrance extends Emiter { @@ -1784,28 +1792,28 @@ export default class MessageEntrance extends Emiter {
1784 joinClassSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired; 1792 joinClassSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;
1785 joinClassSuccessCallBackData.classType = GlobalConfig.classType || ApeConsts.CLASS_TYPE_1; 1793 joinClassSuccessCallBackData.classType = GlobalConfig.classType || ApeConsts.CLASS_TYPE_1;
1786 1794
1787 - joinClassSuccessCallBackData.country = GlobalConfig.country;//国家  
1788 - joinClassSuccessCallBackData.city = GlobalConfig.city;//城市  
1789 - joinClassSuccessCallBackData.province = GlobalConfig.province;//服务商  
1790 - joinClassSuccessCallBackData.isp = GlobalConfig.isp;//服务商 1795 + joinClassSuccessCallBackData.country = GlobalConfig.country; //国家
  1796 + joinClassSuccessCallBackData.city = GlobalConfig.city; //城市
  1797 + joinClassSuccessCallBackData.province = GlobalConfig.province; //服务商
  1798 + joinClassSuccessCallBackData.isp = GlobalConfig.isp; //服务商
1791 1799
1792 - joinClassSuccessCallBackData.classTimestamp = GlobalConfig.classTimestamp;//课堂进行的累积时间  
1793 - joinClassSuccessCallBackData.recordTimestamp = GlobalConfig.recordTimestamp;//录制累积的总时间  
1794 - joinClassSuccessCallBackData.recordPlaybackMaxTime = GlobalConfig.recordPlaybackMaxTime;//录制回放的总时间 1800 + joinClassSuccessCallBackData.classTimestamp = GlobalConfig.classTimestamp; //课堂进行的累积时间
  1801 + joinClassSuccessCallBackData.recordTimestamp = GlobalConfig.recordTimestamp; //录制累积的总时间
  1802 + joinClassSuccessCallBackData.recordPlaybackMaxTime = GlobalConfig.recordPlaybackMaxTime; //录制回放的总时间
1795 1803
1796 joinClassSuccessCallBackData.fps = GlobalConfig.fps; 1804 joinClassSuccessCallBackData.fps = GlobalConfig.fps;
1797 joinClassSuccessCallBackData.gop = GlobalConfig.gop; 1805 joinClassSuccessCallBackData.gop = GlobalConfig.gop;
1798 joinClassSuccessCallBackData.videoQuality = GlobalConfig.videoQuality; 1806 joinClassSuccessCallBackData.videoQuality = GlobalConfig.videoQuality;
1799 1807
1800 joinClassSuccessCallBackData.ssTunnelAppURL = GlobalConfig.ssTunnelAppURL; 1808 joinClassSuccessCallBackData.ssTunnelAppURL = GlobalConfig.ssTunnelAppURL;
1801 - joinClassSuccessCallBackData.currentSceneTableId=GlobalConfig.currentSceneTableId;//文档区域的模块显示 1809 + joinClassSuccessCallBackData.currentSceneTableId = GlobalConfig.currentSceneTableId; //文档区域的模块显示
1802 loger.log(joinClassSuccessCallBackData); 1810 loger.log(joinClassSuccessCallBackData);
1803 //和加入课堂成功使用同样的消息处理 1811 //和加入课堂成功使用同样的消息处理
1804 this._emit(MessageTypes.CLASS_JOIN_SUCCESS, joinClassSuccessCallBackData); 1812 this._emit(MessageTypes.CLASS_JOIN_SUCCESS, joinClassSuccessCallBackData);
1805 } 1813 }
1806 1814
1807 // //答题卡 1815 // //答题卡
1808 - _creatQuestion(_param){ 1816 + _creatQuestion(_param) {
1809 if (!_mcu.connected) { 1817 if (!_mcu.connected) {
1810 loger.warn(GlobalConfig.getCurrentStatus()); 1818 loger.warn(GlobalConfig.getCurrentStatus());
1811 return; 1819 return;
@@ -1814,7 +1822,7 @@ export default class MessageEntrance extends Emiter { @@ -1814,7 +1822,7 @@ export default class MessageEntrance extends Emiter {
1814 _questionApe.creatQuestion(_param); 1822 _questionApe.creatQuestion(_param);
1815 } 1823 }
1816 } 1824 }
1817 - _getQuestion(_param){ 1825 + _getQuestion(_param) {
1818 if (!_mcu.connected) { 1826 if (!_mcu.connected) {
1819 loger.warn(GlobalConfig.getCurrentStatus()); 1827 loger.warn(GlobalConfig.getCurrentStatus());
1820 return; 1828 return;
@@ -1823,7 +1831,7 @@ export default class MessageEntrance extends Emiter { @@ -1823,7 +1831,7 @@ export default class MessageEntrance extends Emiter {
1823 _questionApe.getQuestion(_param); 1831 _questionApe.getQuestion(_param);
1824 } 1832 }
1825 } 1833 }
1826 - _getQuestionResult(_param){ 1834 + _getQuestionResult(_param) {
1827 if (!_mcu.connected) { 1835 if (!_mcu.connected) {
1828 loger.warn(GlobalConfig.getCurrentStatus()); 1836 loger.warn(GlobalConfig.getCurrentStatus());
1829 return; 1837 return;
@@ -1832,7 +1840,7 @@ export default class MessageEntrance extends Emiter { @@ -1832,7 +1840,7 @@ export default class MessageEntrance extends Emiter {
1832 _questionApe.getQuestionResult(_param); 1840 _questionApe.getQuestionResult(_param);
1833 } 1841 }
1834 } 1842 }
1835 - _stopQuestion(_param){ 1843 + _stopQuestion(_param) {
1836 if (!_mcu.connected) { 1844 if (!_mcu.connected) {
1837 loger.warn(GlobalConfig.getCurrentStatus()); 1845 loger.warn(GlobalConfig.getCurrentStatus());
1838 return; 1846 return;
@@ -1841,7 +1849,7 @@ export default class MessageEntrance extends Emiter { @@ -1841,7 +1849,7 @@ export default class MessageEntrance extends Emiter {
1841 _questionApe.stopQuestion(_param); 1849 _questionApe.stopQuestion(_param);
1842 } 1850 }
1843 } 1851 }
1844 - _sendAnswer(_param){ 1852 + _sendAnswer(_param) {
1845 if (!_mcu.connected) { 1853 if (!_mcu.connected) {
1846 loger.warn(GlobalConfig.getCurrentStatus()); 1854 loger.warn(GlobalConfig.getCurrentStatus());
1847 return; 1855 return;
@@ -1852,3 +1860,4 @@ export default class MessageEntrance extends Emiter { @@ -1852,3 +1860,4 @@ export default class MessageEntrance extends Emiter {
1852 } 1860 }
1853 1861
1854 } 1862 }
  1863 +