李勇

增加屏幕共享插件的下载地址,从Sass中获取

此 diff 太大无法显示。
@@ -28,7 +28,7 @@ import MediaModule from 'apes/MediaModule'; @@ -28,7 +28,7 @@ import MediaModule from 'apes/MediaModule';
28 import UTF8 from 'utf-8'; 28 import UTF8 from 'utf-8';
29 29
30 let loger = Loger.getLoger('McuClient'); 30 let loger = Loger.getLoger('McuClient');
31 -let _sdkInfo = {"version": "v1.27.10.201705026", "author": "www.3mang.com"}; 31 +let _sdkInfo = {"version": "v1.27.14.201705027", "author": "www.3mang.com"};
32 32
33 //APE 33 //APE
34 let _sass; 34 let _sass;
@@ -477,6 +477,9 @@ export default class MessageEntrance extends Emiter { @@ -477,6 +477,9 @@ export default class MessageEntrance extends Emiter {
477 GlobalConfig.maxVideoChannels = _data.maxVideoChannels; 477 GlobalConfig.maxVideoChannels = _data.maxVideoChannels;
478 GlobalConfig.maxAudioChannels = _data.maxAudioChannels; 478 GlobalConfig.maxAudioChannels = _data.maxAudioChannels;
479 GlobalConfig.maxMediaChannels=Math.max(GlobalConfig.maxVideoChannels,GlobalConfig.maxAudioChannels); 479 GlobalConfig.maxMediaChannels=Math.max(GlobalConfig.maxVideoChannels,GlobalConfig.maxAudioChannels);
  480 +
  481 + GlobalConfig.ssTunnelAppURL=_data.ssTunnelAppURL||'';//屏幕共享插件的地址
  482 +
480 //视频质量相关设置 483 //视频质量相关设置
481 GlobalConfig.fps = _data.fps || 15; 484 GlobalConfig.fps = _data.fps || 15;
482 GlobalConfig.gop = _data.gop || 3; 485 GlobalConfig.gop = _data.gop || 3;
@@ -848,6 +851,9 @@ export default class MessageEntrance extends Emiter { @@ -848,6 +851,9 @@ export default class MessageEntrance extends Emiter {
848 joinClassSuccessCallBackData.gop = GlobalConfig.gop; 851 joinClassSuccessCallBackData.gop = GlobalConfig.gop;
849 joinClassSuccessCallBackData.videoQuality = GlobalConfig.videoQuality; 852 joinClassSuccessCallBackData.videoQuality = GlobalConfig.videoQuality;
850 853
  854 +
  855 + joinClassSuccessCallBackData.ssTunnelAppURL = GlobalConfig.ssTunnelAppURL;
  856 +
851 loger.log('加入课堂成功->'); 857 loger.log('加入课堂成功->');
852 loger.log(joinClassSuccessCallBackData); 858 loger.log(joinClassSuccessCallBackData);
853 859
@@ -899,8 +905,8 @@ export default class MessageEntrance extends Emiter { @@ -899,8 +905,8 @@ export default class MessageEntrance extends Emiter {
899 //课堂状态发生改变,需要停止当前的所有推流 905 //课堂状态发生改变,需要停止当前的所有推流
900 _stopAllMediaPublishHandler(_data){ 906 _stopAllMediaPublishHandler(_data){
901 loger.log('课堂状态发生改变,需要停止当前的所有推流'); 907 loger.log('课堂状态发生改变,需要停止当前的所有推流');
902 - MessageTypes.STOP_ALL_MEDIA_PUBLISH  
903 - let allChannels=MediaModule.allMediaChannelsList; 908 + this._emit(MessageTypes.MEDIA_STOP_PUBLISH);
  909 + /* let allChannels=MediaModule.allMediaChannelsList;
904 let channl=null; 910 let channl=null;
905 for(let i in allChannels){ 911 for(let i in allChannels){
906 channl=allChannels[i]; 912 channl=allChannels[i];
@@ -908,7 +914,7 @@ export default class MessageEntrance extends Emiter { @@ -908,7 +914,7 @@ export default class MessageEntrance extends Emiter {
908 this._emit(MessageTypes.MEDIA_STOP_PUBLISH); 914 this._emit(MessageTypes.MEDIA_STOP_PUBLISH);
909 return; 915 return;
910 } 916 }
911 - } 917 + }*/
912 } 918 }
913 919
914 //切换MS ->_param->{reConnect:false} //reConnect(是否立即替换当前的ip并且重新连接) 920 //切换MS ->_param->{reConnect:false} //reConnect(是否立即替换当前的ip并且重新连接)
@@ -1577,6 +1583,8 @@ export default class MessageEntrance extends Emiter { @@ -1577,6 +1583,8 @@ export default class MessageEntrance extends Emiter {
1577 joinClassSuccessCallBackData.gop = GlobalConfig.gop; 1583 joinClassSuccessCallBackData.gop = GlobalConfig.gop;
1578 joinClassSuccessCallBackData.videoQuality = GlobalConfig.videoQuality; 1584 joinClassSuccessCallBackData.videoQuality = GlobalConfig.videoQuality;
1579 1585
  1586 + joinClassSuccessCallBackData.ssTunnelAppURL = GlobalConfig.ssTunnelAppURL;
  1587 +
1580 loger.log(joinClassSuccessCallBackData); 1588 loger.log(joinClassSuccessCallBackData);
1581 //和加入课堂成功使用同样的消息处理 1589 //和加入课堂成功使用同样的消息处理
1582 this._emit(MessageTypes.CLASS_JOIN_SUCCESS, joinClassSuccessCallBackData); 1590 this._emit(MessageTypes.CLASS_JOIN_SUCCESS, joinClassSuccessCallBackData);
@@ -56,7 +56,7 @@ class GlobalConfig { @@ -56,7 +56,7 @@ class GlobalConfig {
56 classInfo.fps=this.fps; 56 classInfo.fps=this.fps;
57 classInfo.gop=this.gop; 57 classInfo.gop=this.gop;
58 classInfo.videoQuality=this.videoQuality; 58 classInfo.videoQuality=this.videoQuality;
59 - 59 + classInfo.ssTunnelAppURL = this.ssTunnelAppURL;
60 return classInfo; 60 return classInfo;
61 61
62 } 62 }
@@ -437,7 +437,7 @@ GlobalConfig.isRecordPlayBack=false;//是否是录制回放,默认是否 @@ -437,7 +437,7 @@ GlobalConfig.isRecordPlayBack=false;//是否是录制回放,默认是否
437 GlobalConfig.allowRecordMaxTime=14400;//(秒)允许录制的最长时间,默认是4小时 437 GlobalConfig.allowRecordMaxTime=14400;//(秒)允许录制的最长时间,默认是4小时
438 438
439 GlobalConfig.siteId_letv='shchuanbao';//乐视,MS不需要动态选点的站点 439 GlobalConfig.siteId_letv='shchuanbao';//乐视,MS不需要动态选点的站点
440 - 440 +GlobalConfig.ssTunnelAppURL='';//屏幕共享插件的地址
441 441
442 442
443 443
@@ -76,6 +76,8 @@ MessageTypes.PUBLISH_SCREEN_SHARE_CLOSE= "publish_screen_share_close";//灞忓箷鍏 @@ -76,6 +76,8 @@ MessageTypes.PUBLISH_SCREEN_SHARE_CLOSE= "publish_screen_share_close";//灞忓箷鍏
76 MessageTypes.PUBLISH_SCREEN_SHARE_DISCONNECT= "publish_screen_share_disconnect";//屏幕共享服务器没有连接 76 MessageTypes.PUBLISH_SCREEN_SHARE_DISCONNECT= "publish_screen_share_disconnect";//屏幕共享服务器没有连接
77 MessageTypes.PUBLISH_SCREEN_SHARE_CONNECTED= "publish_screen_share_connected";//获取屏幕共享服务器已经连接 77 MessageTypes.PUBLISH_SCREEN_SHARE_CONNECTED= "publish_screen_share_connected";//获取屏幕共享服务器已经连接
78 78
  79 +MessageTypes.PUBLISH_SCREEN_MOVIE_INFO_CHANGE= "publish_screen_movie_info_change";//媒体信息
  80 +MessageTypes.PUBLISH_SCREEN_VIDEO_INFO_CHANGE= "publish_screen_video_info_change";//视频信息
79 81
80 //文档模块事件定义 82 //文档模块事件定义
81 MessageTypes.DOC_DELETE="document_delete";//'document.delete';//删除文档 83 MessageTypes.DOC_DELETE="document_delete";//'document.delete';//删除文档
@@ -31,7 +31,8 @@ class VideoApe extends Ape { @@ -31,7 +31,8 @@ class VideoApe extends Ape {
31 this.shareApe.on(MessageTypes.PUBLISH_SCREEN_SHARE_CLOSE,this.onPublishScreenShareClose.bind(this)); 31 this.shareApe.on(MessageTypes.PUBLISH_SCREEN_SHARE_CLOSE,this.onPublishScreenShareClose.bind(this));
32 this.shareApe.on(MessageTypes.PUBLISH_SCREEN_SHARE_DISCONNECT,this.onPublishScreenShareDisconnect.bind(this)); 32 this.shareApe.on(MessageTypes.PUBLISH_SCREEN_SHARE_DISCONNECT,this.onPublishScreenShareDisconnect.bind(this));
33 this.shareApe.on(MessageTypes.PUBLISH_SCREEN_SHARE_CONNECTED,this.onPublishScreenShareConnected.bind(this)); 33 this.shareApe.on(MessageTypes.PUBLISH_SCREEN_SHARE_CONNECTED,this.onPublishScreenShareConnected.bind(this));
34 - 34 + this.shareApe.on( MessageTypes.PUBLISH_SCREEN_MOVIE_INFO_CHANGE,this.onPublishScreenMovieInfoChange.bind(this));
  35 + this.shareApe.on(MessageTypes.PUBLISH_SCREEN_VIDEO_INFO_CHANGE,this.onPublishScreenVideoInfoChange.bind(this));
35 36
36 // Ape Models 37 // Ape Models
37 this.registerKey(this._session_id, this._session_name, this._session_tag, new ArrayBuffer); 38 this.registerKey(this._session_id, this._session_name, this._session_tag, new ArrayBuffer);
@@ -214,6 +215,15 @@ class VideoApe extends Ape { @@ -214,6 +215,15 @@ class VideoApe extends Ape {
214 loger.log('屏幕共享服务器连接成功->'); 215 loger.log('屏幕共享服务器连接成功->');
215 this._emit(MessageTypes.PUBLISH_SCREEN_SHARE_CONNECTED); 216 this._emit(MessageTypes.PUBLISH_SCREEN_SHARE_CONNECTED);
216 } 217 }
  218 + onPublishScreenMovieInfoChange(data){
  219 + loger.log('屏幕共享MOVIE信息发生改变->');
  220 + this._emit(MessageTypes.PUBLISH_SCREEN_MOVIE_INFO_CHANGE,data);
  221 + }
  222 + onPublishScreenVideoInfoChange(data){
  223 + loger.log('屏幕共享视频信息发生改变->');
  224 + this._emit(MessageTypes.PUBLISH_SCREEN_VIDEO_INFO_CHANGE,data);
  225 + }
  226 +
217 //桌面共享推流 227 //桌面共享推流
218 publishScreenShare(_param) { 228 publishScreenShare(_param) {
219 if(!this.mcu.connected){ 229 if(!this.mcu.connected){
@@ -221,53 +231,6 @@ class VideoApe extends Ape { @@ -221,53 +231,6 @@ class VideoApe extends Ape {
221 this._emit( MessageTypes.VIDEO_PUBLISH_RESULT,{"code": ApeConsts.RETURN_FAILED, "data":"已经断开连接!","mediaId":0}); 231 this._emit( MessageTypes.VIDEO_PUBLISH_RESULT,{"code": ApeConsts.RETURN_FAILED, "data":"已经断开连接!","mediaId":0});
222 return {"code": ApeConsts.RETURN_FAILED, "data": "已经断开连接"}; 232 return {"code": ApeConsts.RETURN_FAILED, "data": "已经断开连接"};
223 } 233 }
224 -  
225 - /* if (_param == null||_param.publishUrl == null)  
226 - {  
227 - loger.warn('桌面共享推流->参数错误', _param);  
228 - this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG);  
229 - this._emit( MessageTypes.VIDEO_PUBLISH_RESULT,{"code": ApeConsts.RETURN_FAILED, "data":"桌面共享推流参数错误!","mediaId":0});  
230 - return {"code": ApeConsts.RETURN_FAILED, "data": "桌面共享推流参数错误"};  
231 - }*/  
232 - /*  
233 - //根据推流的地址获取对应的频道信息  
234 - let needPublishChannelInfo=this.mediaModule.getNeedPublishMediaChannel(_param.publishUrl);  
235 - if(needPublishChannelInfo==null){  
236 - loger.warn('桌面共享推流->推流数据已经无效', _param);  
237 - this._emit( MessageTypes.VIDEO_PUBLISH_RESULT,{"code": ApeConsts.RETURN_FAILED, "data":"推流数据已经无效!","mediaId":0});  
238 - return {"code": ApeConsts.RETURN_FAILED, "data": "推流数据已经无效"};  
239 - }*/  
240 -  
241 - /*//判断当前是否还有空闲的channle  
242 - let freeChannel = this.mediaModule.getFreeMediaChannel();  
243 - if (freeChannel == 0) {  
244 - loger.warn("推流->不能再打开更多的设备 ");  
245 - this._emit( MessageTypes.VIDEO_PUBLISH_RESULT,{"code": ApeConsts.RETURN_FAILED, "data":"不能再打开更多的设备!","mediaId":0});  
246 - return {"code": ApeConsts.RETURN_FAILED, "data": "不能再打开更多的设备","mediaChannels":this.mediaModule.mediaChannels};  
247 - }  
248 -  
249 -  
250 - //判断当前的频道是否已经占用  
251 - if(this.mediaModule.checkChannelIsOpening(needPublishChannelInfo.channelId)){  
252 - if(needPublishChannelInfo.nodeId==GlobalConfig.nodeId){  
253 - loger.warn(needPublishChannelInfo.channelId,"已经推送过消息,不需要再次推送");  
254 - this._emit( MessageTypes.VIDEO_PUBLISH_RESULT,{"code": ApeConsts.RETURN_SUCCESS, "data":"已经推送过消息,不需要再次推送!","mediaId":needPublishChannelInfo.channelId});  
255 - return {"code": ApeConsts.RETURN_SUCCESS, "data":"已经推送过消息,不需要再次推送!","mediaId":needPublishChannelInfo.channelId};  
256 - }else {  
257 - loger.warn(needPublishChannelInfo.channelId,"频道已经被占用");  
258 - this._emit( MessageTypes.VIDEO_PUBLISH_RESULT,{"code": ApeConsts.RETURN_FAILED, "data":"频道已经被占用!","mediaId":0});  
259 - return {"code": ApeConsts.RETURN_FAILED, "data":"频道已经被占用!","mediaChannels":this.mediaModule.mediaChannels};  
260 - }  
261 - }*/  
262 -  
263 - /* let channelInfo=this.mediaModule.getDefaultChannelInfo();  
264 - channelInfo.owner=GlobalConfig.nodeId;  
265 - channelInfo.status=ApeConsts.CHANNEL_STATUS_OPENING;  
266 - channelInfo.channelId=needPublishChannelInfo.channelId;  
267 - channelInfo.streamId=needPublishChannelInfo.streamId;//按规则拼接的流名称  
268 - channelInfo.timestamp=needPublishChannelInfo.timestamp;//时间戳  
269 - channelInfo.mediaType=ApeConsts.MEDIA_TYPE_SHARE;//类型为屏幕共享*/  
270 -  
271 let publishType='flash'; 234 let publishType='flash';
272 if(_param&&_param.type=='live'){ 235 if(_param&&_param.type=='live'){
273 publishType='live'; 236 publishType='live';
@@ -519,9 +482,10 @@ class VideoApe extends Ape { @@ -519,9 +482,10 @@ class VideoApe extends Ape {
519 loger.log("VIDEO_PLAY",receiveChannelInfo); 482 loger.log("VIDEO_PLAY",receiveChannelInfo);
520 this._emit(MessageTypes.VIDEO_PLAY, receiveChannelInfo); 483 this._emit(MessageTypes.VIDEO_PLAY, receiveChannelInfo);
521 }else{ 484 }else{
522 - //停止播放屏幕共享 485 + //播放屏幕共享
523 loger.log("SCREEN_SHARE_PLAY",receiveChannelInfo); 486 loger.log("SCREEN_SHARE_PLAY",receiveChannelInfo);
524 this._emit(MessageTypes.SCREEN_SHARE_PLAY, receiveChannelInfo); 487 this._emit(MessageTypes.SCREEN_SHARE_PLAY, receiveChannelInfo);
  488 +
525 } 489 }
526 }else { 490 }else {
527 if(unpackChannelInfo.mediaType!=ApeConsts.MEDIA_TYPE_SHARE){ 491 if(unpackChannelInfo.mediaType!=ApeConsts.MEDIA_TYPE_SHARE){
@@ -530,7 +494,7 @@ class VideoApe extends Ape { @@ -530,7 +494,7 @@ class VideoApe extends Ape {
530 this._emit(MessageTypes.VIDEO_STOP, receiveChannelInfo); 494 this._emit(MessageTypes.VIDEO_STOP, receiveChannelInfo);
531 }else{ 495 }else{
532 //停止播放屏幕共享 496 //停止播放屏幕共享
533 - loger.log("SCREEN_SHARE_STOP",receiveChannelInfo); 497 + loger.log("SCREEN_SHARE_STOP", receiveChannelInfo);
534 this._emit(MessageTypes.SCREEN_SHARE_STOP, receiveChannelInfo); 498 this._emit(MessageTypes.SCREEN_SHARE_STOP, receiveChannelInfo);
535 } 499 }
536 500