diff --git a/src/EngineEntrance.js b/src/EngineEntrance.js index 5774bc0..a51c0e0 100644 --- a/src/EngineEntrance.js +++ b/src/EngineEntrance.js @@ -63,7 +63,7 @@ export default class MessageEntrance extends Emiter { super(); this.lastClassActiveTime=0;//最后一次课堂激活的时间戳 //sdk 信息 - GlobalConfig.sdkVersion = "v2.30.2.20171117"; + GlobalConfig.sdkVersion = "v2.30.5.20171117"; loger.warn("sdkVersion:" + GlobalConfig.sdkVersion); console.log("sdkVersion:" + GlobalConfig.sdkVersion); //设置 diff --git a/src/RecordInfoMatch.js b/src/RecordInfoMatch.js index 331f549..c192f04 100644 --- a/src/RecordInfoMatch.js +++ b/src/RecordInfoMatch.js @@ -33,6 +33,11 @@ class RecordInfoMatch extends Emiter { this.filePath=this.filePath.replace(":8080",""); } + if (!_recordMessagesList||_recordMessagesList.length<1) { + console.log("没有视频消息", _recordMessagesList); + this.matchRecordFile(this.recordMessages, this.m3u8jsonDataList); + } + //this.getRecordInfo(()=> { this.parseRecordMessage(_recordMessagesList,()=> { console.log("JSON数据列表",this.jsonPathList); @@ -65,7 +70,7 @@ class RecordInfoMatch extends Emiter { creatDate: i, folder: k, stream: j, - createTimeUTC: stream + creatTimeUTC: stream }; } @@ -118,11 +123,11 @@ class RecordInfoMatch extends Emiter { //console.log(JSON.stringify(item)); delete item.appId; delete item.id; - let time = parseInt(item.createTime); + let time = parseInt(item.creatTime); let timeInfo = this.timestampToUTCTime(time); //return {yymmddhhmmss:yymmddhhmmss,yymmdd:yymmdd} item.seek = 0; - item.createTimeUTC = timeInfo.yymmddhhmmss; + item.creatTimeUTC = timeInfo.yymmddhhmmss; item.creatDate = timeInfo.yymmdd; this.jsonPathList [timeInfo.yymmdd] = this.filePath + "/" + timeInfo.yymmdd + "/json/" + item.channel + ".json"; item.stream_id = item.channel + "_" + item.userId + "_" + item.timestamp; @@ -157,19 +162,19 @@ class RecordInfoMatch extends Emiter { //console.log(JSON.stringify(item)); delete item.appId; delete item.id; - let time = parseInt(item.createTime); + let time = parseInt(item.creatTime); let timeInfo = this.timestampToUTCTime(time); //return {yymmddhhmmss:yymmddhhmmss,yymmdd:yymmdd} item.seek = 0; - item.createTimeUTC = timeInfo.yymmddhhmmss; + item.creatTimeUTC = timeInfo.yymmddhhmmss; item.creatDate = timeInfo.yymmdd; this.jsonPathList [timeInfo.yymmdd] = this.filePath + "/samples/" + timeInfo.yymmdd + "/json/" + item.channel + ".json"; - item.stream_id = item.channel + "_" + item.userId + "_" + item.timestamp; + item.stream_id = item.channel + "_" + item.userId + "_" + item.creatTime; if (!this.recordMessages[item.uid]) { this.recordMessages[item.uid] = {}; } - this.recordMessages[item.uid][item.timestamp] = item; + this.recordMessages[item.uid][item.creatTime] = item; } } if (_callback) { @@ -260,10 +265,10 @@ class RecordInfoMatch extends Emiter { let uidRecordInfoArr = Object.values(uidRecordInfo); let uidRecordFileArr = Object.values(uidRecordFile); uidRecordInfoArr = uidRecordInfoArr.sort(function (a, b) { - return parseInt(a.createTimeUTC) - parseInt(b.createTimeUTC); + return parseInt(a.creatTimeUTC) - parseInt(b.creatTimeUTC); }); uidRecordFileArr = uidRecordFileArr.sort(function (a, b) { - return parseInt(a.createTimeUTC) - parseInt(b.createTimeUTC); + return parseInt(a.creatTimeUTC) - parseInt(b.creatTimeUTC); }); if (uidRecordInfoArr.length == uidRecordFileArr.length && uidRecordFileArr.length > 0) { @@ -278,7 +283,7 @@ class RecordInfoMatch extends Emiter { } else { //2.通过时间戳匹配 for (let f in uidRecordInfo) { - let time = parseInt(uidRecordInfo[f].createTimeUTC); + let time = parseInt(uidRecordInfo[f].creatTimeUTC); let video_url = ""; let video_urlObj = uidRecordFile[k + "_" + time]; if (video_urlObj && video_urlObj.video_url) { @@ -327,7 +332,7 @@ class RecordInfoMatch extends Emiter { } else { if (lastFileItem) { infoItem.video_url = lastFileItem.video_url; - infoItem.seek = parseInt(infoItem.createTimeUTC) - parseInt(lastFileItem.createTimeUTC); + infoItem.seek = parseInt(infoItem.creatTimeUTC) - parseInt(lastFileItem.creatTimeUTC); if (!this.matchStreams[infoItem.stream_id]) { this.matchStreams[infoItem.stream_id] = infoItem; } @@ -350,7 +355,7 @@ class RecordInfoMatch extends Emiter { for (let h in uidRecordInfo) { item2 = uidRecordInfo[h]; if (item2 && item2.video_url) { - let interval = parseInt((item.createTime) * 0.001 - parseInt(item2.createTime) * 0.001); + let interval = parseInt((item.creatTime) * 0.001 - parseInt(item2.creatTime) * 0.001); if (minInterval > interval) { nearItem = item2; minInterval = interval; diff --git a/src/RecordPlayBackParse.js b/src/RecordPlayBackParse.js index 6e6a5dd..6b27c55 100644 --- a/src/RecordPlayBackParse.js +++ b/src/RecordPlayBackParse.js @@ -1086,10 +1086,10 @@ class RecordPlayBackParse extends Emiter { timestamp: timestamp }; //this._videoApeBroadcastMssages[timestamp]={parseData:videoReceivePdu,byteData:data,timestamp: timestamp}; - if(videoReceivePdu&&videoReceivePdu.data){ + /* if(videoReceivePdu&&videoReceivePdu.data){ videoReceivePdu.data.createTime=videoReceivePdu.data.timestamp; } - this.videoPublishMessages.push(videoReceivePdu.data); + this.videoPublishMessages.push(videoReceivePdu.data);*/ } } catch (err) { @@ -1228,6 +1228,19 @@ class RecordPlayBackParse extends Emiter { statusStr = "开"; this.allStreams[videoChannelInfo.streamId] = videoChannelInfo; console.log("视频流" + videoChannelInfo.streamId); + if(videoChannelInfo){ + videoChannelInfo.channel=videoChannelInfo.siteId+"_"+videoChannelInfo.classId; + videoChannelInfo.uid=videoChannelInfo.fromNodeId; + let streamInfo=videoChannelInfo.streamId.split("_"); + //kaifangwebrtc_1092942818_S8908_1510741823354 + if(streamInfo&&streamInfo.length>1){ + videoChannelInfo.creatTime=streamInfo[streamInfo.length-1];//获取最后的毫秒时间戳 + }else { + videoChannelInfo.creatTime=parseInt(videoChannelInfo.timestamp)*1000;//秒转换为毫秒 + } + + } + this.videoPublishMessages.push(videoChannelInfo); } this.mediaChannleList[videoChannelInfo.channelId][timestamp] = { parseData: videoChannelInfo,