正在显示
7 个修改的文件
包含
42 行增加
和
7 行删除
此 diff 太大无法显示。
| @@ -27,7 +27,7 @@ import Server from "config/Server"; | @@ -27,7 +27,7 @@ import Server from "config/Server"; | ||
| 27 | import UTF8 from 'utf-8'; | 27 | import UTF8 from 'utf-8'; |
| 28 | 28 | ||
| 29 | let loger = Loger.getLoger('McuClient'); | 29 | let loger = Loger.getLoger('McuClient'); |
| 30 | -let _sdkInfo = {"version": "v1.14.1.20170505", "author": "www.3mang.com"}; | 30 | +let _sdkInfo = {"version": "v1.15.2.20170507", "author": "www.3mang.com"}; |
| 31 | 31 | ||
| 32 | //APE | 32 | //APE |
| 33 | let _sass; | 33 | let _sass; |
| @@ -337,7 +337,10 @@ GlobalConfig.speakerVolume=50;//扬声器音量(0-80) | @@ -337,7 +337,10 @@ GlobalConfig.speakerVolume=50;//扬声器音量(0-80) | ||
| 337 | GlobalConfig.micCode=0;//麦克风模式 | 337 | GlobalConfig.micCode=0;//麦克风模式 |
| 338 | 338 | ||
| 339 | 339 | ||
| 340 | - | 340 | +GlobalConfig.audioRecords=[]; |
| 341 | +GlobalConfig.videoRecords=[]; | ||
| 342 | +GlobalConfig.status=0 | ||
| 343 | +GlobalConfig.mobileDirection=0; | ||
| 341 | 344 | ||
| 342 | 345 | ||
| 343 | GlobalConfig.nodeId=0;//随机生成 mcu中的唯一ID | 346 | GlobalConfig.nodeId=0;//随机生成 mcu中的唯一ID |
| @@ -25,6 +25,7 @@ class AudioApe extends Ape { | @@ -25,6 +25,7 @@ class AudioApe extends Ape { | ||
| 25 | this.mediaModule=new MediaModule(); | 25 | this.mediaModule=new MediaModule(); |
| 26 | this.mediaModule.MEDIA_OBJ_TABLE_ID=ApeConsts.AUDIO_OBJ_TABLE_ID; | 26 | this.mediaModule.MEDIA_OBJ_TABLE_ID=ApeConsts.AUDIO_OBJ_TABLE_ID; |
| 27 | this.mediaModule.mediaChannels={}; | 27 | this.mediaModule.mediaChannels={}; |
| 28 | + this.mediaModule.mediaType=ApeConsts.MEDIA_TYPE_AUDIO; | ||
| 28 | // Ape Models | 29 | // Ape Models |
| 29 | this.registerKey(this._session_id, this._session_name, this._session_tag, new ArrayBuffer); | 30 | this.registerKey(this._session_id, this._session_name, this._session_tag, new ArrayBuffer); |
| 30 | this.registerObj(pdu.RCPDU_REG_REGISTER_TABLE, ApeConsts.AUDIO_OBJ_TABLE_ID, ApeConsts.AUDIO_OBJ_TABLE_NAME, ApeConsts.AUDIO_OBJ_TABLE_TAG, 0, new ArrayBuffer); | 31 | this.registerObj(pdu.RCPDU_REG_REGISTER_TABLE, ApeConsts.AUDIO_OBJ_TABLE_ID, ApeConsts.AUDIO_OBJ_TABLE_NAME, ApeConsts.AUDIO_OBJ_TABLE_TAG, 0, new ArrayBuffer); |
| @@ -122,6 +122,7 @@ class ConferApe extends Ape { | @@ -122,6 +122,7 @@ class ConferApe extends Ape { | ||
| 122 | 122 | ||
| 123 | return nodeInfoRecordPdu; | 123 | return nodeInfoRecordPdu; |
| 124 | } | 124 | } |
| 125 | + | ||
| 125 | //更新角色数据 | 126 | //更新角色数据 |
| 126 | updateUserInfo(){ | 127 | updateUserInfo(){ |
| 127 | let nodeInfoRecordPdu = this.getNodeInfo(); | 128 | let nodeInfoRecordPdu = this.getNodeInfo(); |
| @@ -669,16 +670,18 @@ class ConferApe extends Ape { | @@ -669,16 +670,18 @@ class ConferApe extends Ape { | ||
| 669 | let newNodeData = nodeData; | 670 | let newNodeData = nodeData; |
| 670 | newNodeData.userData = userDataObj; | 671 | newNodeData.userData = userDataObj; |
| 671 | //如果是监课,不告诉其他人 | 672 | //如果是监课,不告诉其他人 |
| 672 | - if (nodeData.role == ApeConsts.NR_INVISIBLE) { | 673 | + if (nodeData.role == ApeConsts.NR_INVISIBLE&&GlobalConfig.userRole!=ApeConsts.invisible) { |
| 673 | loger.log("NR_INVISIBLE"); | 674 | loger.log("NR_INVISIBLE"); |
| 674 | return; | 675 | return; |
| 675 | } | 676 | } |
| 676 | if (!rosterExists) { | 677 | if (!rosterExists) { |
| 678 | + loger.log("人员加入->",newNodeData); | ||
| 677 | this._emit(MessageTypes.CLASS_INSERT_ROSTER, {"nodeId": nodeId, "nodeData": newNodeData}); | 679 | this._emit(MessageTypes.CLASS_INSERT_ROSTER, {"nodeId": nodeId, "nodeData": newNodeData}); |
| 678 | this.emitRosterChange(); | 680 | this.emitRosterChange(); |
| 679 | 681 | ||
| 680 | } else { | 682 | } else { |
| 681 | //loger.log("更新人员列表数据,rosterExists已经存在",rosterExists); | 683 | //loger.log("更新人员列表数据,rosterExists已经存在",rosterExists); |
| 684 | + loger.log("人员更新信息->",newNodeData); | ||
| 682 | this._emit(MessageTypes.CLASS_UPDATE_ROSTER, {"nodeId": nodeId, "nodeData": newNodeData}); | 685 | this._emit(MessageTypes.CLASS_UPDATE_ROSTER, {"nodeId": nodeId, "nodeData": newNodeData}); |
| 683 | } | 686 | } |
| 684 | 687 | ||
| @@ -692,11 +695,38 @@ class ConferApe extends Ape { | @@ -692,11 +695,38 @@ class ConferApe extends Ape { | ||
| 692 | 695 | ||
| 693 | //视频模块发生更新,人员状态需要更新 | 696 | //视频模块发生更新,人员状态需要更新 |
| 694 | updaterRosterStatus(_param) { | 697 | updaterRosterStatus(_param) { |
| 695 | - //loger.log("媒体模块发生更新,人员状态需要更新,fromNodeId->",_param.fromNodeId); | 698 | + //loger.log("媒体模块发生更新,人员状态需要更新,fromNodeId->",_param); |
| 696 | //如果视频消息中channel的占用人 fromNodeId在人员列表中不存在,需要释放这channel,因为这个有可能是之前没释放成功的 | 699 | //如果视频消息中channel的占用人 fromNodeId在人员列表中不存在,需要释放这channel,因为这个有可能是之前没释放成功的 |
| 697 | - if (_param && _param.status == ApeConsts.CHANNEL_STATUS_OPENING && this.rosters[_param.fromNodeId] == null) { | 700 | + /* if (_param && _param.status == ApeConsts.CHANNEL_STATUS_OPENING && this.rosters[_param.fromNodeId] == null) { |
| 698 | loger.log("媒体模块被占用,占有人已经不存在课堂中,释放Channel,_param->", _param); | 701 | loger.log("媒体模块被占用,占有人已经不存在课堂中,释放Channel,_param->", _param); |
| 699 | this._emit(MessageTypes.CLASS_NONENTITY_ROSTER, {"nodeId": _param.fromNodeId}); | 702 | this._emit(MessageTypes.CLASS_NONENTITY_ROSTER, {"nodeId": _param.fromNodeId}); |
| 703 | + }*/ | ||
| 704 | + | ||
| 705 | + if (_param && _param.status == ApeConsts.CHANNEL_STATUS_OPENING) { | ||
| 706 | + if(this.rosters[_param.fromNodeId] == null){ | ||
| 707 | + loger.log("媒体模块被占用,占有人已经不存在课堂中,释放Channel,_param->", _param); | ||
| 708 | + this._emit(MessageTypes.CLASS_NONENTITY_ROSTER, {"nodeId": _param.fromNodeId}); | ||
| 709 | + } | ||
| 710 | + | ||
| 711 | + //如果音视频消息是自己的,需要设置麦克风和摄像头状态 | ||
| 712 | + if(_param.fromNodeId==GlobalConfig.nodeId){ | ||
| 713 | + if(_param.mediaId==ApeConsts.MEDIA_TYPE_AUDIO){ | ||
| 714 | + GlobalConfig.openMicrophones=EngineUtils.creatTimestamp(); | ||
| 715 | + GlobalConfig.openCamera=0; | ||
| 716 | + }else { | ||
| 717 | + GlobalConfig.openCamera=EngineUtils.creatTimestamp(); | ||
| 718 | + GlobalConfig.openMicrophones=GlobalConfig.openCamera; | ||
| 719 | + } | ||
| 720 | + this.updateUserInfo(); | ||
| 721 | + } | ||
| 722 | + | ||
| 723 | + }else if (_param && _param.status == ApeConsts.CHANNEL_STATUS_RELEASED) { | ||
| 724 | + //如果音视频消息是自己的,需要设置麦克风和摄像头状态 | ||
| 725 | + if(_param.fromNodeId==GlobalConfig.nodeId){ | ||
| 726 | + GlobalConfig.openCamera=0; | ||
| 727 | + GlobalConfig.openMicrophones=0; | ||
| 728 | + this.updateUserInfo(); | ||
| 729 | + } | ||
| 700 | } | 730 | } |
| 701 | } | 731 | } |
| 702 | 732 |
| @@ -15,6 +15,7 @@ class MediaModule { | @@ -15,6 +15,7 @@ class MediaModule { | ||
| 15 | this.needPublishMediaChannel={};//记录准备推流的频道信息 | 15 | this.needPublishMediaChannel={};//记录准备推流的频道信息 |
| 16 | this.mediaChannels = {}; | 16 | this.mediaChannels = {}; |
| 17 | this.maxMediaChannel=0; | 17 | this.maxMediaChannel=0; |
| 18 | + this.mediaType=ApeConsts.MEDIA_TYPE_DEFAULT; | ||
| 18 | this.MEDIA_OBJ_TABLE_ID=0; | 19 | this.MEDIA_OBJ_TABLE_ID=0; |
| 19 | } | 20 | } |
| 20 | 21 | ||
| @@ -204,7 +205,7 @@ class MediaModule { | @@ -204,7 +205,7 @@ class MediaModule { | ||
| 204 | channelInfo.siteId=GlobalConfig.siteId; | 205 | channelInfo.siteId=GlobalConfig.siteId; |
| 205 | channelInfo.toNodeId=0; | 206 | channelInfo.toNodeId=0; |
| 206 | channelInfo.userId=GlobalConfig.userId; | 207 | channelInfo.userId=GlobalConfig.userId; |
| 207 | - channelInfo.mediaType=ApeConsts.MEDIA_TYPE_DEFAULT; | 208 | + channelInfo.mediaType=this.mediaType||ApeConsts.MEDIA_TYPE_DEFAULT; |
| 208 | return channelInfo; | 209 | return channelInfo; |
| 209 | } | 210 | } |
| 210 | } | 211 | } |
| @@ -24,6 +24,7 @@ class VideoApe extends Ape { | @@ -24,6 +24,7 @@ class VideoApe extends Ape { | ||
| 24 | this.mediaModule=new MediaModule(); | 24 | this.mediaModule=new MediaModule(); |
| 25 | this.mediaModule.MEDIA_OBJ_TABLE_ID=ApeConsts.VIDEO_OBJ_TABLE_ID; | 25 | this.mediaModule.MEDIA_OBJ_TABLE_ID=ApeConsts.VIDEO_OBJ_TABLE_ID; |
| 26 | this.mediaModule.mediaChannels={}; | 26 | this.mediaModule.mediaChannels={}; |
| 27 | + this.mediaModule.mediaType=ApeConsts.MEDIA_TYPE_VIDEO; | ||
| 27 | 28 | ||
| 28 | // Ape Models | 29 | // Ape Models |
| 29 | this.registerKey(this._session_id, this._session_name, this._session_tag, new ArrayBuffer); | 30 | this.registerKey(this._session_id, this._session_name, this._session_tag, new ArrayBuffer); |
| @@ -378,7 +379,6 @@ class VideoApe extends Ape { | @@ -378,7 +379,6 @@ class VideoApe extends Ape { | ||
| 378 | }else { | 379 | }else { |
| 379 | loger.warn("视频消息是自己发送的或者是视频消息无效,不需要处理,消息内容如下:"); | 380 | loger.warn("视频消息是自己发送的或者是视频消息无效,不需要处理,消息内容如下:"); |
| 380 | loger.log(unpackChannelInfo); | 381 | loger.log(unpackChannelInfo); |
| 381 | - | ||
| 382 | } | 382 | } |
| 383 | 383 | ||
| 384 | this._emit(MessageTypes.VIDEO_UPDATE, unpackChannelInfo); | 384 | this._emit(MessageTypes.VIDEO_UPDATE, unpackChannelInfo); |
-
请 注册 或 登录 后发表评论