正在显示
5 个修改的文件
包含
56 行增加
和
1 行删除
此 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.20.1.201705015", "author": "www.3mang.com"}; | 31 | +let _sdkInfo = {"version": "v1.21.1.201705017", "author": "www.3mang.com"}; |
| 32 | 32 | ||
| 33 | //APE | 33 | //APE |
| 34 | let _sass; | 34 | let _sass; |
| @@ -53,6 +53,14 @@ class AudioApe extends Ape { | @@ -53,6 +53,14 @@ class AudioApe extends Ape { | ||
| 53 | loger.warn(GlobalConfig.getCurrentStatus()); | 53 | loger.warn(GlobalConfig.getCurrentStatus()); |
| 54 | return {"code": ApeConsts.RETURN_FAILED, "data": "已经断开连接"};; | 54 | return {"code": ApeConsts.RETURN_FAILED, "data": "已经断开连接"};; |
| 55 | } | 55 | } |
| 56 | + //监课比较特殊,不占用课堂内的音视频路数,额外创建 | ||
| 57 | + if(GlobalConfig.userRole==ApeConsts.invisible){ | ||
| 58 | + let result=this.mediaModule.getMediaPublishPathForInVisible(_param); | ||
| 59 | + this._emit( MessageTypes.AUDIO_GET_PUBLISH_PATH,result); | ||
| 60 | + return result; | ||
| 61 | + } | ||
| 62 | + | ||
| 63 | + //非监课的身份,需要判断是否可以继续推流 | ||
| 56 | //需要判断当前已经使用的流路数 | 64 | //需要判断当前已经使用的流路数 |
| 57 | let openChannel=0; | 65 | let openChannel=0; |
| 58 | let allChannels= MediaModule.allMediaChannelsList; | 66 | let allChannels= MediaModule.allMediaChannelsList; |
| @@ -124,6 +124,45 @@ class MediaModule { | @@ -124,6 +124,45 @@ class MediaModule { | ||
| 124 | "publishUrl": publishUrl | 124 | "publishUrl": publishUrl |
| 125 | }; | 125 | }; |
| 126 | } | 126 | } |
| 127 | + //监课获取推流地址 | ||
| 128 | + getMediaPublishPathForInVisible(_param) { | ||
| 129 | + let mediaLen=Object.keys(MediaModule.allMediaChannelsList={}).length; | ||
| 130 | + let freeChannel=(this.MEDIA_OBJ_TABLE_ID-20-mediaLen)||GlobalConfig.nodeId; | ||
| 131 | + loger.log('getMediaPublishPathForInVisible->'+freeChannel+" mediaLen:"+mediaLen); | ||
| 132 | + //默认方式推流 | ||
| 133 | + let pubType="live"; | ||
| 134 | + //flash推流 | ||
| 135 | + if(_param&&_param.type=="flash"){ | ||
| 136 | + pubType ="flash"; | ||
| 137 | + } | ||
| 138 | + | ||
| 139 | + //端口,有端口就显示 ":xxx",没有端口就是"" | ||
| 140 | + let port = (GlobalConfig.MS_PUBLISH_PORT == "" || GlobalConfig.MS_PUBLISH_PORT == null) ? "":":" + GlobalConfig.MS_PUBLISH_PORT; | ||
| 141 | + //时间戳 | ||
| 142 | + let timestamp = EngineUtils.creatTimestamp(); | ||
| 143 | + | ||
| 144 | + let streamId=GlobalConfig.siteId+"_" | ||
| 145 | + + GlobalConfig.classId + "_"+GlobalConfig.userId | ||
| 146 | + +"_" + freeChannel + "_" + timestamp; | ||
| 147 | + | ||
| 148 | + //生成推流地址和推流数据(同步数据的时候用) | ||
| 149 | + let publishUrl = "rtmp://" + GlobalConfig.MS_PUBLISH_IP | ||
| 150 | + + port + "/"+pubType+"/" +streamId; | ||
| 151 | + | ||
| 152 | + publishUrl=publishUrl.replace("::",":");//如果ip和port之间有多的:需要去掉 | ||
| 153 | + this.needPublishMediaChannel[publishUrl]={ | ||
| 154 | + "channelId":freeChannel, | ||
| 155 | + "publishUrl":publishUrl, | ||
| 156 | + "streamId":streamId, | ||
| 157 | + "timestamp":timestamp, | ||
| 158 | + "nodeId":GlobalConfig.nodeId | ||
| 159 | + }; | ||
| 160 | + return {"code": ApeConsts.RETURN_SUCCESS, | ||
| 161 | + "data":"", | ||
| 162 | + "mediaId":freeChannel, | ||
| 163 | + "publishUrl": publishUrl | ||
| 164 | + }; | ||
| 165 | + } | ||
| 127 | 166 | ||
| 128 | //获取当前空闲的channel,返回值为0代表没有空闲的,否则返回的就是空闲的channelId | 167 | //获取当前空闲的channel,返回值为0代表没有空闲的,否则返回的就是空闲的channelId |
| 129 | getFreeMediaChannel() { | 168 | getFreeMediaChannel() { |
| @@ -53,6 +53,14 @@ class VideoApe extends Ape { | @@ -53,6 +53,14 @@ class VideoApe extends Ape { | ||
| 53 | loger.warn(GlobalConfig.getCurrentStatus()); | 53 | loger.warn(GlobalConfig.getCurrentStatus()); |
| 54 | return {"code": ApeConsts.RETURN_FAILED, "data": "已经断开连接"}; | 54 | return {"code": ApeConsts.RETURN_FAILED, "data": "已经断开连接"}; |
| 55 | } | 55 | } |
| 56 | + //监课比较特殊,不占用课堂内的音视频路数,额外创建 | ||
| 57 | + if(GlobalConfig.userRole==ApeConsts.invisible){ | ||
| 58 | + let result=this.mediaModule.getMediaPublishPathForInVisible(_param); | ||
| 59 | + this._emit( MessageTypes.VIDEO_GET_PUBLISH_PATH,result); | ||
| 60 | + return result; | ||
| 61 | + } | ||
| 62 | + | ||
| 63 | + //非监课的身份,需要判断是否可以继续推流 | ||
| 56 | //需要判断当前已经使用的流路数 | 64 | //需要判断当前已经使用的流路数 |
| 57 | let openChannel=0; | 65 | let openChannel=0; |
| 58 | let allChannels= MediaModule.allMediaChannelsList; | 66 | let allChannels= MediaModule.allMediaChannelsList; |
-
请 注册 或 登录 后发表评论