李勇

1.在录制回放的时候不做频道释放的检测

2.音视频模块,在获取推流信息的时候,增加时间戳字段信息
... ... @@ -254,6 +254,11 @@ export default class MessageEntrance extends Emiter {
//当前课堂中视频或音频占用channel的nodeId ,在人员列表中不存在,这种情况是占用channel的人员掉线或离开的时候没有释放channel
//的占用状态导致,对于这种情况,需要释放掉
_onClassNonentityRoster(_param) {
if(GlobalConfig.isRecordPlayBack){
loger.warn("录制回放中,不处理")
return;
}
if (_param == null || _param.nodeId == null) {
loger.warn("onClassNonentityRoster.参数错误")
return;
... ...
... ... @@ -96,7 +96,8 @@ class MediaModule {
this.needPublishMediaChannel[publishUrl]={
"channelId":freeChannel,
"publishUrl":publishUrl,
"streamId":streamId
"streamId":streamId,
"timestamp":timestamp
};
return {"code": ApeConsts.RETURN_SUCCESS,
"data":"",
... ...
... ... @@ -109,6 +109,7 @@ class VideoApe extends Ape {
channelInfo.status=ApeConsts.CHANNEL_STATUS_OPENING;
channelInfo.channelId=needPublishChannelInfo.channelId;
channelInfo.streamId=needPublishChannelInfo.streamId;//按规则拼接的流名称
channelInfo.timestamp=needPublishChannelInfo.timestamp;//时间戳
channelInfo.mediaType=ApeConsts.MEDIA_TYPE_VIDEO;
this.sendTableUpdateHandler(channelInfo);
... ... @@ -326,6 +327,7 @@ class VideoApe extends Ape {
receiveChannelInfo.m3u8Url="";
receiveChannelInfo.rtmpUrl="";
receiveChannelInfo.replay="";
let m3u8Stream=this.mediaModule.getMediaPlayPath({"type":"m3u8","streamId": unpackChannelInfo.streamId});
let rtmpStream=this.mediaModule.getMediaPlayPath({"type":"rtmp","streamId": unpackChannelInfo.streamId});
let replay=this.mediaModule.getMediaRecordPlaybackPath({"type":"m3u8","streamId": unpackChannelInfo.streamId});
... ... @@ -374,7 +376,7 @@ class VideoApe extends Ape {
packPduModel.classId =parseInt(_param.classId)||parseInt(GlobalConfig.classId);
packPduModel.userId =_param.userId||"0";
packPduModel.mediaType =_param.mediaType|| ApeConsts.MEDIA_TYPE_VIDEO;
packPduModel.timestamp =_param.timestamp||EngineUtils.creatTimestamp();
packPduModel.timestamp =_param.timestamp||0;
packPduModel.fromNodeId = GlobalConfig.nodeId;
packPduModel.toNodeId = 0;
console.log(packPduModel);
... ...