李勇

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

此 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.23.0.201705018", "author": "www.3mang.com"}; 31 +let _sdkInfo = {"version": "v1.23.2.201705018", "author": "www.3mang.com"};
32 32
33 //APE 33 //APE
34 let _sass; 34 let _sass;
@@ -400,7 +400,7 @@ class RecordPlayBackParse extends Emiter { @@ -400,7 +400,7 @@ class RecordPlayBackParse extends Emiter {
400 //this._searchApeMessageKeyfram(this._videoApeMssages, ApeConsts.VIDEO_SESSION_ID); 400 //this._searchApeMessageKeyfram(this._videoApeMssages, ApeConsts.VIDEO_SESSION_ID);
401 //this._searchApeMessageKeyfram(this._audioApeMssages, ApeConsts.AUDIO_SESSION_ID); 401 //this._searchApeMessageKeyfram(this._audioApeMssages, ApeConsts.AUDIO_SESSION_ID);
402 402
403 - this._searchMediaApeMessageKeyfram(this.mediaChannleList); 403 + this.searchMediaApeMessageKeyfram(this.mediaChannleList);
404 404
405 //聊天模块、白板标注模块的比较特殊,消息是累计的,默认最多30条 405 //聊天模块、白板标注模块的比较特殊,消息是累计的,默认最多30条
406 this._searchChatHistoryMessageKeyfram(this._chatApeMssages, ApeConsts.CHAT_SESSION_ID); 406 this._searchChatHistoryMessageKeyfram(this._chatApeMssages, ApeConsts.CHAT_SESSION_ID);
@@ -434,8 +434,10 @@ class RecordPlayBackParse extends Emiter { @@ -434,8 +434,10 @@ class RecordPlayBackParse extends Emiter {
434 } 434 }
435 loger.log("SEEK->APE", ApeConsts(_apeId), this._recordPlaybackTimestamp, "没有查找到相连的数据"); 435 loger.log("SEEK->APE", ApeConsts(_apeId), this._recordPlaybackTimestamp, "没有查找到相连的数据");
436 } 436 }
437 - _searchMediaApeMessageKeyfram(_apeMessages){  
438 - loger.log("_searchMediaApeMessageKeyfram->SEEK->APE") 437 +
  438 + //音视频模块seek的时候,查找当前seek点的关键帧数据
  439 + searchMediaApeMessageKeyfram(_apeMessages){
  440 + loger.log("searchMediaApeMessageKeyfram->SEEK->APE")
439 if(_apeMessages) { 441 if(_apeMessages) {
440 for (let k in _apeMessages) { 442 for (let k in _apeMessages) {
441 let channelInfos = _apeMessages[k]; 443 let channelInfos = _apeMessages[k];
@@ -443,21 +445,11 @@ class RecordPlayBackParse extends Emiter { @@ -443,21 +445,11 @@ class RecordPlayBackParse extends Emiter {
443 let keyFrameSeekTime = 0; 445 let keyFrameSeekTime = 0;
444 for (let i = this._recordPlaybackTimestamp; i > 0; i--) { 446 for (let i = this._recordPlaybackTimestamp; i > 0; i--) {
445 messageItem = channelInfos[i]; 447 messageItem = channelInfos[i];
446 -  
447 if (messageItem) { 448 if (messageItem) {
448 keyFrameSeekTime = (this._recordPlaybackTimestamp - i); 449 keyFrameSeekTime = (this._recordPlaybackTimestamp - i);
449 - loger.log("_searchMediaApeMessageKeyfram->SEEK->APE->messageItem",messageItem,'keyFrameSeekTime->',keyFrameSeekTime) 450 + loger.log("searchMediaApeMessageKeyfram->SEEK->APE->messageItem",messageItem,'keyFrameSeekTime->',keyFrameSeekTime)
450 this._everSocketMsgReceivedHandler(messageItem.byteData, keyFrameSeekTime); 451 this._everSocketMsgReceivedHandler(messageItem.byteData, keyFrameSeekTime);
451 - /*for (let k = 0; k < messageItem.length; k++) {  
452 - this._everSocketMsgReceivedHandler(messageItem[k].byteData, keyFrameSeekTime);  
453 - }  
454 - if (_apeId == ApeConsts.AUDIO_SESSION_ID || _apeId == ApeConsts.VIDEO_SESSION_ID) {  
455 - this._emit(MessageTypes.RECORD_PLAYBACK_UPDATE, {  
456 - "status": SEEK,  
457 - "keyFrameSeekTime": keyFrameSeekTime  
458 - });  
459 - }  
460 - return;*/ 452 + break;
461 } 453 }
462 } 454 }
463 } 455 }
@@ -515,17 +507,18 @@ class RecordPlayBackParse extends Emiter { @@ -515,17 +507,18 @@ class RecordPlayBackParse extends Emiter {
515 } 507 }
516 // 数据同步处理 regBuffer已经解开的数据,timestamp 时间戳,data原始数据 ApeConsts.VIDEO_SESSION_ID 508 // 数据同步处理 regBuffer已经解开的数据,timestamp 时间戳,data原始数据 ApeConsts.VIDEO_SESSION_ID
517 _pduRegAdapterHandler(regBuffer,timestamp,data,sessionId) { 509 _pduRegAdapterHandler(regBuffer,timestamp,data,sessionId) {
518 - console.log('RCAdapterPdu--->') 510 +
519 let regPdu; 511 let regPdu;
520 let regItems ; 512 let regItems ;
521 let regItemSize ; 513 let regItemSize ;
522 try{ 514 try{
  515 + console.log('RCAdapterPdu--->')
523 regPdu = pdu['RCAdapterPdu'].decode(regBuffer); 516 regPdu = pdu['RCAdapterPdu'].decode(regBuffer);
524 regItems = regPdu.item; 517 regItems = regPdu.item;
525 regItemSize = regItems.length; 518 regItemSize = regItems.length;
526 519
527 }catch (err){ 520 }catch (err){
528 - console.warn('RCAdapterPdu->unpack-error',err) 521 + console.warn('RCAdapterPdu->unpack-error->type类型不对')
529 return; 522 return;
530 } 523 }
531 524
@@ -600,7 +593,6 @@ class RecordPlayBackParse extends Emiter { @@ -600,7 +593,6 @@ class RecordPlayBackParse extends Emiter {
600 for (let i = 0; i < tableInsertItemsLen; ++i) { 593 for (let i = 0; i < tableInsertItemsLen; ++i) {
601 let insertItem = tableInsertItems[i]; 594 let insertItem = tableInsertItems[i];
602 //loger.log("insertItem",insertItem); 595 //loger.log("insertItem",insertItem);
603 -  
604 //this.tableInsertHandler(insertItem.owner, insertItem.itemIdx, insertItem.itemData); 596 //this.tableInsertHandler(insertItem.owner, insertItem.itemIdx, insertItem.itemData);
605 } 597 }
606 598
@@ -617,14 +609,10 @@ class RecordPlayBackParse extends Emiter { @@ -617,14 +609,10 @@ class RecordPlayBackParse extends Emiter {
617 let tableUpdateData = pdu['RCRegistryTableUpdateItemPdu'].decode(user_data); 609 let tableUpdateData = pdu['RCRegistryTableUpdateItemPdu'].decode(user_data);
618 let tableUpdateItems = tableUpdateData.items; 610 let tableUpdateItems = tableUpdateData.items;
619 let tableUpdateItemsLen = tableUpdateItems.length; 611 let tableUpdateItemsLen = tableUpdateItems.length;
620 - //loger.log("RCRegistryTableUpdateItemPdu " + tableUpdateItemsLen);  
621 - //loger.log(tableUpdateData);  
622 - //console.log('RCRegistryTableUpdateItemPdu',tableUpdateData);  
623 -  
624 -  
625 for (let i = 0; i < tableUpdateItemsLen; ++i) { 612 for (let i = 0; i < tableUpdateItemsLen; ++i) {
626 let tableItem = tableUpdateItems[i]; 613 let tableItem = tableUpdateItems[i];
627 - // this.tableUpdateHandler(tableItem.owner, tableItem.itemIdx, tableItem.itemData,seekTime); 614 +
  615 + //只处理音视频模块的消息
628 if(sessionId==ApeConsts.VIDEO_SESSION_ID){ 616 if(sessionId==ApeConsts.VIDEO_SESSION_ID){
629 try { 617 try {
630 let videoChannelInfo = pdu['RCVideoChannelInfoPdu'].decode(tableItem.itemData); 618 let videoChannelInfo = pdu['RCVideoChannelInfoPdu'].decode(tableItem.itemData);
@@ -635,7 +623,7 @@ class RecordPlayBackParse extends Emiter { @@ -635,7 +623,7 @@ class RecordPlayBackParse extends Emiter {
635 } 623 }
636 this.mediaChannleList[videoChannelInfo.channelId][timestamp]={parseData:videoChannelInfo,byteData:data,timestamp: timestamp }; 624 this.mediaChannleList[videoChannelInfo.channelId][timestamp]={parseData:videoChannelInfo,byteData:data,timestamp: timestamp };
637 } catch (err) { 625 } catch (err) {
638 - loger.log("RCVideoChannelInfoPdu->unPackPdu error,itemIdx=" + tableItem.itemIdx + " err:" + err.message); 626 + loger.log("RCVideoChannelInfoPdu->unPackPdu->error->" + tableItem.itemIdx + " err:" + err.message);
639 } 627 }
640 }else if(sessionId==ApeConsts.AUDIO_SESSION_ID){ 628 }else if(sessionId==ApeConsts.AUDIO_SESSION_ID){
641 try { 629 try {
@@ -647,11 +635,10 @@ class RecordPlayBackParse extends Emiter { @@ -647,11 +635,10 @@ class RecordPlayBackParse extends Emiter {
647 } 635 }
648 this.mediaChannleList[audioChannelInfo.channelId][timestamp]={parseData:audioChannelInfo,byteData:data,timestamp: timestamp }; 636 this.mediaChannleList[audioChannelInfo.channelId][timestamp]={parseData:audioChannelInfo,byteData:data,timestamp: timestamp };
649 } catch (err) { 637 } catch (err) {
650 - loger.log("RCAudioChannelInfoPdu->unPackPdu error,itemIdx=" + tableItem.itemIdx + " err:" + err.message); 638 + loger.log("RCAudioChannelInfoPdu->unPackPdu->error->" + tableItem.itemIdx + " err:" + err.message);
651 } 639 }
652 } 640 }
653 641
654 -  
655 } 642 }
656 break; 643 break;
657 case pdu.RCPDU_REG_QUEUE_UPDATE_PDU: 644 case pdu.RCPDU_REG_QUEUE_UPDATE_PDU: