正在显示
5 个修改的文件
包含
30 行增加
和
56 行删除
此 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 |
-
请 注册 或 登录 后发表评论