李勇

优化录制回放时音视频数据查找的代码

此 diff 太大无法显示。
... ... @@ -28,7 +28,7 @@ import MediaModule from 'apes/MediaModule';
import UTF8 from 'utf-8';
let loger = Loger.getLoger('McuClient');
let _sdkInfo = {"version": "v1.23.0.201705018", "author": "www.3mang.com"};
let _sdkInfo = {"version": "v1.23.2.201705018", "author": "www.3mang.com"};
//APE
let _sass;
... ...
... ... @@ -400,7 +400,7 @@ class RecordPlayBackParse extends Emiter {
//this._searchApeMessageKeyfram(this._videoApeMssages, ApeConsts.VIDEO_SESSION_ID);
//this._searchApeMessageKeyfram(this._audioApeMssages, ApeConsts.AUDIO_SESSION_ID);
this._searchMediaApeMessageKeyfram(this.mediaChannleList);
this.searchMediaApeMessageKeyfram(this.mediaChannleList);
//聊天模块、白板标注模块的比较特殊,消息是累计的,默认最多30条
this._searchChatHistoryMessageKeyfram(this._chatApeMssages, ApeConsts.CHAT_SESSION_ID);
... ... @@ -434,8 +434,10 @@ class RecordPlayBackParse extends Emiter {
}
loger.log("SEEK->APE", ApeConsts(_apeId), this._recordPlaybackTimestamp, "没有查找到相连的数据");
}
_searchMediaApeMessageKeyfram(_apeMessages){
loger.log("_searchMediaApeMessageKeyfram->SEEK->APE")
//音视频模块seek的时候,查找当前seek点的关键帧数据
searchMediaApeMessageKeyfram(_apeMessages){
loger.log("searchMediaApeMessageKeyfram->SEEK->APE")
if(_apeMessages) {
for (let k in _apeMessages) {
let channelInfos = _apeMessages[k];
... ... @@ -443,21 +445,11 @@ class RecordPlayBackParse extends Emiter {
let keyFrameSeekTime = 0;
for (let i = this._recordPlaybackTimestamp; i > 0; i--) {
messageItem = channelInfos[i];
if (messageItem) {
keyFrameSeekTime = (this._recordPlaybackTimestamp - i);
loger.log("_searchMediaApeMessageKeyfram->SEEK->APE->messageItem",messageItem,'keyFrameSeekTime->',keyFrameSeekTime)
loger.log("searchMediaApeMessageKeyfram->SEEK->APE->messageItem",messageItem,'keyFrameSeekTime->',keyFrameSeekTime)
this._everSocketMsgReceivedHandler(messageItem.byteData, keyFrameSeekTime);
/*for (let k = 0; k < messageItem.length; k++) {
this._everSocketMsgReceivedHandler(messageItem[k].byteData, keyFrameSeekTime);
}
if (_apeId == ApeConsts.AUDIO_SESSION_ID || _apeId == ApeConsts.VIDEO_SESSION_ID) {
this._emit(MessageTypes.RECORD_PLAYBACK_UPDATE, {
"status": SEEK,
"keyFrameSeekTime": keyFrameSeekTime
});
}
return;*/
break;
}
}
}
... ... @@ -515,17 +507,18 @@ class RecordPlayBackParse extends Emiter {
}
// 数据同步处理 regBuffer已经解开的数据,timestamp 时间戳,data原始数据 ApeConsts.VIDEO_SESSION_ID
_pduRegAdapterHandler(regBuffer,timestamp,data,sessionId) {
console.log('RCAdapterPdu--->')
let regPdu;
let regItems ;
let regItemSize ;
try{
console.log('RCAdapterPdu--->')
regPdu = pdu['RCAdapterPdu'].decode(regBuffer);
regItems = regPdu.item;
regItemSize = regItems.length;
}catch (err){
console.warn('RCAdapterPdu->unpack-error',err)
console.warn('RCAdapterPdu->unpack-error->type类型不对')
return;
}
... ... @@ -600,7 +593,6 @@ class RecordPlayBackParse extends Emiter {
for (let i = 0; i < tableInsertItemsLen; ++i) {
let insertItem = tableInsertItems[i];
//loger.log("insertItem",insertItem);
//this.tableInsertHandler(insertItem.owner, insertItem.itemIdx, insertItem.itemData);
}
... ... @@ -617,14 +609,10 @@ class RecordPlayBackParse extends Emiter {
let tableUpdateData = pdu['RCRegistryTableUpdateItemPdu'].decode(user_data);
let tableUpdateItems = tableUpdateData.items;
let tableUpdateItemsLen = tableUpdateItems.length;
//loger.log("RCRegistryTableUpdateItemPdu " + tableUpdateItemsLen);
//loger.log(tableUpdateData);
//console.log('RCRegistryTableUpdateItemPdu',tableUpdateData);
for (let i = 0; i < tableUpdateItemsLen; ++i) {
let tableItem = tableUpdateItems[i];
// this.tableUpdateHandler(tableItem.owner, tableItem.itemIdx, tableItem.itemData,seekTime);
//只处理音视频模块的消息
if(sessionId==ApeConsts.VIDEO_SESSION_ID){
try {
let videoChannelInfo = pdu['RCVideoChannelInfoPdu'].decode(tableItem.itemData);
... ... @@ -635,7 +623,7 @@ class RecordPlayBackParse extends Emiter {
}
this.mediaChannleList[videoChannelInfo.channelId][timestamp]={parseData:videoChannelInfo,byteData:data,timestamp: timestamp };
} catch (err) {
loger.log("RCVideoChannelInfoPdu->unPackPdu error,itemIdx=" + tableItem.itemIdx + " err:" + err.message);
loger.log("RCVideoChannelInfoPdu->unPackPdu->error->" + tableItem.itemIdx + " err:" + err.message);
}
}else if(sessionId==ApeConsts.AUDIO_SESSION_ID){
try {
... ... @@ -647,11 +635,10 @@ class RecordPlayBackParse extends Emiter {
}
this.mediaChannleList[audioChannelInfo.channelId][timestamp]={parseData:audioChannelInfo,byteData:data,timestamp: timestamp };
} catch (err) {
loger.log("RCAudioChannelInfoPdu->unPackPdu error,itemIdx=" + tableItem.itemIdx + " err:" + err.message);
loger.log("RCAudioChannelInfoPdu->unPackPdu->error->" + tableItem.itemIdx + " err:" + err.message);
}
}
}
break;
case pdu.RCPDU_REG_QUEUE_UPDATE_PDU:
... ...