正在显示
2 个修改的文件
包含
14 行增加
和
93 行删除
| @@ -63,8 +63,8 @@ class AudioApe extends Ape { | @@ -63,8 +63,8 @@ class AudioApe extends Ape { | ||
| 63 | 63 | ||
| 64 | //同一个nodeId只允许推一个流,如果已经推了就不能再推 | 64 | //同一个nodeId只允许推一个流,如果已经推了就不能再推 |
| 65 | if(this.mediaModule.getOpeningMediaChannel(GlobalConfig.nodeId)!=0){ | 65 | if(this.mediaModule.getOpeningMediaChannel(GlobalConfig.nodeId)!=0){ |
| 66 | - loger.warn("publishVideo,已经存在一个流,不能再推"); | ||
| 67 | - return; | 66 | + loger.warn("publishAudio,已经存在一个流,不能再推"); |
| 67 | + return {"code": ApeConsts.RETURN_FAILED, "data": "已经存在一个流,不能再推"}; | ||
| 68 | } | 68 | } |
| 69 | 69 | ||
| 70 | //判断当前是否还有空闲的channle | 70 | //判断当前是否还有空闲的channle |
| @@ -146,12 +146,7 @@ class AudioApe extends Ape { | @@ -146,12 +146,7 @@ class AudioApe extends Ape { | ||
| 146 | return {"code": ApeConsts.RETURN_FAILED, "data": "不能再打开更多的设备"}; | 146 | return {"code": ApeConsts.RETURN_FAILED, "data": "不能再打开更多的设备"}; |
| 147 | } | 147 | } |
| 148 | } | 148 | } |
| 149 | - /* message RCVideoSendDataRequestPdu { | ||
| 150 | - required uint32 from_node_id = 1;//发起人 | ||
| 151 | - optional uint32 to_node_id = 2;//接收人,如果是0就是所有人都接收 | ||
| 152 | - optional uint32 actionType = 3;//消息指令类型; | ||
| 153 | - optional bytes data = 4;//其他数据,这个根据actionType来确定数据的结构 | ||
| 154 | - }*/ | 149 | + |
| 155 | 150 | ||
| 156 | let audioSendPdu = new pdu['RCAudioSendDataRequestPdu']; | 151 | let audioSendPdu = new pdu['RCAudioSendDataRequestPdu']; |
| 157 | audioSendPdu.type = pdu.RCPDU_AUDIO_SEND_DATA_REQUEST; | 152 | audioSendPdu.type = pdu.RCPDU_AUDIO_SEND_DATA_REQUEST; |
| @@ -177,14 +172,14 @@ class AudioApe extends Ape { | @@ -177,14 +172,14 @@ class AudioApe extends Ape { | ||
| 177 | 172 | ||
| 178 | sendTableUpdateHandler(_channelInfo) { | 173 | sendTableUpdateHandler(_channelInfo) { |
| 179 | loger.log("audio,sendTableUpdateHandler "); | 174 | loger.log("audio,sendTableUpdateHandler "); |
| 180 | - let updateModelPdu = this.packPdu(_channelInfo, _channelInfo.channelId);//let updateModelPdu=this.packPdu({},ApeConsts.VIDEO_OBJ_TABLE_ID+2); | 175 | + let updateModelPdu = this.packPdu(_channelInfo, _channelInfo.channelId); |
| 181 | if(updateModelPdu==null){ | 176 | if(updateModelPdu==null){ |
| 182 | loger.warn("sendTableUpdateHandler error,updateModelPdu=null"); | 177 | loger.warn("sendTableUpdateHandler error,updateModelPdu=null"); |
| 183 | return; | 178 | return; |
| 184 | } | 179 | } |
| 185 | 180 | ||
| 186 | let tableItemPdu = new pdu['RCRegistryTableItemPdu']; | 181 | let tableItemPdu = new pdu['RCRegistryTableItemPdu']; |
| 187 | - tableItemPdu.itemIdx = _channelInfo.channelId;//tableItemPdu.itemIdx=ApeConsts.VIDEO_OBJ_TABLE_ID+2; | 182 | + tableItemPdu.itemIdx = _channelInfo.channelId; |
| 188 | tableItemPdu.owner = 0;//收到flash的是这个值,不清楚先写固定 | 183 | tableItemPdu.owner = 0;//收到flash的是这个值,不清楚先写固定 |
| 189 | tableItemPdu.itemData = updateModelPdu.toArrayBuffer(); | 184 | tableItemPdu.itemData = updateModelPdu.toArrayBuffer(); |
| 190 | 185 | ||
| @@ -235,39 +230,11 @@ class AudioApe extends Ape { | @@ -235,39 +230,11 @@ class AudioApe extends Ape { | ||
| 235 | 230 | ||
| 236 | tableUpdateHandler(owner, itemIdx, itemData) { | 231 | tableUpdateHandler(owner, itemIdx, itemData) { |
| 237 | // debugger; | 232 | // debugger; |
| 238 | - let videoChannelInfo = this.unPackPdu(owner, itemIdx, itemData); | ||
| 239 | - //videoChannelInfo.owner = owner; | ||
| 240 | - //videoChannelInfo.channelId = itemIdx; | ||
| 241 | - //videoChannelInfo.status = owner === 0 ? ApeConsts.CHANNEL_STATUS_RELEASED : videoChannelInfo.status; | ||
| 242 | - //loger.log('视频消息处理 tableUpdateHandler.',videoChannelInfo); | ||
| 243 | - this.mediaModule.mediaChannels[itemIdx] = videoChannelInfo; | ||
| 244 | - | ||
| 245 | - this._emit(MessageTypes.AUDIO_UPDATE, videoChannelInfo); | ||
| 246 | - /* switch (videoChannelInfo.status) { | ||
| 247 | - case ApeConsts.CHANNEL_STATUS_RELEASED: | ||
| 248 | - // 只能关闭自己的流 | ||
| 249 | - if (this.activeChannelId === videoChannelInfo.channelId) { | ||
| 250 | - this.activeChannelId = 0; | ||
| 251 | - this.activeURL = ''; | ||
| 252 | - this.emitVideoChange(); | ||
| 253 | - } | ||
| 254 | - break; | ||
| 255 | - case ApeConsts.CHANNEL_STATUS_OPENING: | ||
| 256 | - //_playUrl = "rtmfp://" + Config.mediaServerAddr + ":" + Config.mediaServerPort + "/message/" + _streamName; | ||
| 257 | - //_cdnUrl = "rtmp://" + Config.mediaCDNServerAddr + ":" + Config.mediaCDNServerPort + "/message/" + _streamName; | ||
| 258 | - //this.activeChannelId = videoChannelInfo.channelId; | ||
| 259 | - //// AMS/FMS | ||
| 260 | - //if (this._classInfo.msType ==ApeConsts.MS_TYPE_FMS) { | ||
| 261 | - // this.activeURL = `http://dazhi.3mang.com/live/${this._classInfo.classId}/${this._classInfo.classId}_${videoChannelInfo.channelId}_flash_cam_mic_aac/playlist.m3u8`; | ||
| 262 | - //}else { | ||
| 263 | - // this.activeURL = `http://hls.3mang.com/live/${this._classInfo.classId}_${videoChannelInfo.channelId}_flash_cam_mic_aac/playlist.m3u8`; | ||
| 264 | - //} | ||
| 265 | - // 任何人都可以打开流 | ||
| 266 | - this.emitVideoChange(); | ||
| 267 | - break; | ||
| 268 | - default: | ||
| 269 | - break; | ||
| 270 | - }*/ | 233 | + let updateChannelInfo = this.unPackPdu(owner, itemIdx, itemData); |
| 234 | + | ||
| 235 | + this.mediaModule.mediaChannels[itemIdx] = updateChannelInfo; | ||
| 236 | + | ||
| 237 | + this._emit(MessageTypes.AUDIO_UPDATE, updateChannelInfo); | ||
| 271 | } | 238 | } |
| 272 | 239 | ||
| 273 | ///////数据的封包和解包///////////////////////////////////////// | 240 | ///////数据的封包和解包///////////////////////////////////////// |
| @@ -279,14 +246,6 @@ class AudioApe extends Ape { | @@ -279,14 +246,6 @@ class AudioApe extends Ape { | ||
| 279 | return null; | 246 | return null; |
| 280 | } | 247 | } |
| 281 | 248 | ||
| 282 | - /* message RCVideoChannelInfoPdu { | ||
| 283 | - optional uint32 status = 1;//开启的状态 | ||
| 284 | - optional uint32 channel_id = 2;//唯一的频道id | ||
| 285 | - optional uint32 timestamp = 3;//更新的时间戳 | ||
| 286 | - optional uint32 from_node_id = 4;//发起者的id | ||
| 287 | - optional uint32 to_node_id = 5;//接收者的id,(如果是0,所有人都接收) | ||
| 288 | - }*/ | ||
| 289 | - | ||
| 290 | //判断type类型,根据type设置不同的参数 | 249 | //判断type类型,根据type设置不同的参数 |
| 291 | let packPduModel = new pdu['RCAudioChannelInfoPdu']; | 250 | let packPduModel = new pdu['RCAudioChannelInfoPdu']; |
| 292 | packPduModel.status = _param.status||ApeConsts.CHANNEL_STATUS_RELEASED; | 251 | packPduModel.status = _param.status||ApeConsts.CHANNEL_STATUS_RELEASED; |
| @@ -309,9 +268,9 @@ class AudioApe extends Ape { | @@ -309,9 +268,9 @@ class AudioApe extends Ape { | ||
| 309 | return null; | 268 | return null; |
| 310 | } | 269 | } |
| 311 | try { | 270 | try { |
| 312 | - let videoChannelInfo = pdu['RCAudioChannelInfoPdu'].decode(itemData); | ||
| 313 | - loger.log("unPackPdu",videoChannelInfo); | ||
| 314 | - return videoChannelInfo; | 271 | + let packChannelInfo = pdu['RCAudioChannelInfoPdu'].decode(itemData); |
| 272 | + loger.log("unPackPdu",packChannelInfo); | ||
| 273 | + return packChannelInfo; | ||
| 315 | } catch (err) { | 274 | } catch (err) { |
| 316 | loger.log("unPackPdu error,itemIdx=" + itemIdx + " err:" + err.message); | 275 | loger.log("unPackPdu error,itemIdx=" + itemIdx + " err:" + err.message); |
| 317 | } | 276 | } |
| @@ -67,7 +67,7 @@ class VideoApe extends Ape { | @@ -67,7 +67,7 @@ class VideoApe extends Ape { | ||
| 67 | //同一个nodeId只允许推一个流,如果已经推了就不能再推 | 67 | //同一个nodeId只允许推一个流,如果已经推了就不能再推 |
| 68 | if(this.mediaModule.getOpeningMediaChannel(GlobalConfig.nodeId)!=0){ | 68 | if(this.mediaModule.getOpeningMediaChannel(GlobalConfig.nodeId)!=0){ |
| 69 | loger.warn("publishVideo,已经存在一个流,不能再推"); | 69 | loger.warn("publishVideo,已经存在一个流,不能再推"); |
| 70 | - return; | 70 | + return {"code": ApeConsts.RETURN_FAILED, "data": "已经存在一个流,不能再推"}; |
| 71 | } | 71 | } |
| 72 | 72 | ||
| 73 | //判断当前是否还有空闲的channle | 73 | //判断当前是否还有空闲的channle |
| @@ -250,38 +250,8 @@ class VideoApe extends Ape { | @@ -250,38 +250,8 @@ class VideoApe extends Ape { | ||
| 250 | tableUpdateHandler(owner, itemIdx, itemData) { | 250 | tableUpdateHandler(owner, itemIdx, itemData) { |
| 251 | // debugger; | 251 | // debugger; |
| 252 | let videoChannelInfo = this.unPackPdu(owner, itemIdx, itemData); | 252 | let videoChannelInfo = this.unPackPdu(owner, itemIdx, itemData); |
| 253 | - //videoChannelInfo.owner = owner; | ||
| 254 | - //videoChannelInfo.channelId = itemIdx; | ||
| 255 | - //videoChannelInfo.status = owner === 0 ? ApeConsts.CHANNEL_STATUS_RELEASED : videoChannelInfo.status; | ||
| 256 | - //loger.log('视频消息处理 tableUpdateHandler.',videoChannelInfo); | ||
| 257 | this.mediaModule.mediaChannels[itemIdx] = videoChannelInfo; | 253 | this.mediaModule.mediaChannels[itemIdx] = videoChannelInfo; |
| 258 | - | ||
| 259 | this._emit(MessageTypes.VIDEO_UPDATE, videoChannelInfo); | 254 | this._emit(MessageTypes.VIDEO_UPDATE, videoChannelInfo); |
| 260 | - /* switch (videoChannelInfo.status) { | ||
| 261 | - case ApeConsts.CHANNEL_STATUS_RELEASED: | ||
| 262 | - // 只能关闭自己的流 | ||
| 263 | - if (this.activeChannelId === videoChannelInfo.channelId) { | ||
| 264 | - this.activeChannelId = 0; | ||
| 265 | - this.activeURL = ''; | ||
| 266 | - this.emitVideoChange(); | ||
| 267 | - } | ||
| 268 | - break; | ||
| 269 | - case ApeConsts.CHANNEL_STATUS_OPENING: | ||
| 270 | - //_playUrl = "rtmfp://" + Config.mediaServerAddr + ":" + Config.mediaServerPort + "/message/" + _streamName; | ||
| 271 | - //_cdnUrl = "rtmp://" + Config.mediaCDNServerAddr + ":" + Config.mediaCDNServerPort + "/message/" + _streamName; | ||
| 272 | - //this.activeChannelId = videoChannelInfo.channelId; | ||
| 273 | - //// AMS/FMS | ||
| 274 | - //if (this._classInfo.msType ==ApeConsts.MS_TYPE_FMS) { | ||
| 275 | - // this.activeURL = `http://dazhi.3mang.com/live/${this._classInfo.classId}/${this._classInfo.classId}_${videoChannelInfo.channelId}_flash_cam_mic_aac/playlist.m3u8`; | ||
| 276 | - //}else { | ||
| 277 | - // this.activeURL = `http://hls.3mang.com/live/${this._classInfo.classId}_${videoChannelInfo.channelId}_flash_cam_mic_aac/playlist.m3u8`; | ||
| 278 | - //} | ||
| 279 | - // 任何人都可以打开流 | ||
| 280 | - this.emitVideoChange(); | ||
| 281 | - break; | ||
| 282 | - default: | ||
| 283 | - break; | ||
| 284 | - }*/ | ||
| 285 | } | 255 | } |
| 286 | 256 | ||
| 287 | ///////数据的封包和解包///////////////////////////////////////// | 257 | ///////数据的封包和解包///////////////////////////////////////// |
| @@ -293,14 +263,6 @@ class VideoApe extends Ape { | @@ -293,14 +263,6 @@ class VideoApe extends Ape { | ||
| 293 | return null; | 263 | return null; |
| 294 | } | 264 | } |
| 295 | 265 | ||
| 296 | - /* message RCVideoChannelInfoPdu { | ||
| 297 | - optional uint32 status = 1;//开启的状态 | ||
| 298 | - optional uint32 channel_id = 2;//唯一的频道id | ||
| 299 | - optional uint32 timestamp = 3;//更新的时间戳 | ||
| 300 | - optional uint32 from_node_id = 4;//发起者的id | ||
| 301 | - optional uint32 to_node_id = 5;//接收者的id,(如果是0,所有人都接收) | ||
| 302 | - }*/ | ||
| 303 | - | ||
| 304 | //判断type类型,根据type设置不同的参数 | 266 | //判断type类型,根据type设置不同的参数 |
| 305 | let packPduModel = new pdu['RCVideoChannelInfoPdu']; | 267 | let packPduModel = new pdu['RCVideoChannelInfoPdu']; |
| 306 | packPduModel.status = _param.status||ApeConsts.CHANNEL_STATUS_RELEASED; | 268 | packPduModel.status = _param.status||ApeConsts.CHANNEL_STATUS_RELEASED; |
-
请 注册 或 登录 后发表评论