diff --git a/src/EngineEntrance.js b/src/EngineEntrance.js
index e1eaf3d..5774bc0 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.29.5.20171114";
+    GlobalConfig.sdkVersion = "v2.30.2.20171117";
     loger.warn("sdkVersion:" + GlobalConfig.sdkVersion);
     console.log("sdkVersion:" + GlobalConfig.sdkVersion);
     //设置
diff --git a/src/RecordInfoMatch.js b/src/RecordInfoMatch.js
index 23a366a..331f549 100644
--- a/src/RecordInfoMatch.js
+++ b/src/RecordInfoMatch.js
@@ -10,7 +10,7 @@ import EngineUtils from 'EngineUtils';
 
 
 // 日志对象
-const loger = Loger.getLoger('RecordInfoParse');
+const loger = Loger.getLoger('RecordInfoMatch');
 class RecordInfoMatch extends Emiter {
   constructor() {
     super();
@@ -24,10 +24,18 @@ class RecordInfoMatch extends Emiter {
     this.unMatchUid = {};//没有匹配到的uid
   }
 
-  start() {
-    let serverIp = GlobalConfig.recordFileSever || "123.56.73.119:8080";
+  start(_recordMessagesList) {
+    this.recordMessagesList=_recordMessagesList;
+    let serverIp = GlobalConfig.recordFileSever || "playbak.xuedianyun.com:8080";
     this.filePath = `${GlobalConfig.locationProtocol + serverIp}`;
-    this.getRecordInfo(()=> {
+
+    if(GlobalConfig.locationProtocol=="https://"){
+      this.filePath=this.filePath.replace(":8080","");
+    }
+
+    //this.getRecordInfo(()=> {
+    this.parseRecordMessage(_recordMessagesList,()=> {
+      console.log("JSON数据列表",this.jsonPathList);
       let requestLen = Object.keys(this.jsonPathList).length;
       let currentLen = 0;
       let fileNameArr;
@@ -53,7 +61,7 @@ class RecordInfoMatch extends Emiter {
                     }
                     //筛除一些重复流地址,会出现多录制的情况,保留一个即可
                     this.m3u8jsonDataList[fileNameArr[0]][stream] = {
-                      video_url: this.filePath + "/" + i + "/" + k + "/" + j,
+                      video_url: this.filePath + "/samples/" + i + "/" + k + "/" + j,
                       creatDate: i,
                       folder: k,
                       stream: j,
@@ -102,7 +110,8 @@ class RecordInfoMatch extends Emiter {
       })
       .then(ret => {
         loger.log('AG-获取媒体录制信息-完成');
-        for (let i = 0; i < ret.returnData.data.length; i++) {
+        this.parseRecordMessage(ret.returnData.data,_callback);
+    /*    for (let i = 0; i < ret.returnData.data.length; i++) {
           let item = ret.returnData.data[i];
           if (item.status == 1) {
             this.streamInfoLen++;
@@ -126,7 +135,7 @@ class RecordInfoMatch extends Emiter {
         }
         if (_callback) {
           _callback();
-        }
+        }*/
       })
       .catch(err => {
         loger.error(`AG-获取媒体录制信息-异常.状态码:${err}`);
@@ -136,6 +145,38 @@ class RecordInfoMatch extends Emiter {
       });
   }
 
+  parseRecordMessage(_data,_callback){
+    if(!_data||_data.length<1){
+      console.log("录制消息数据无效",_data)
+      return;
+    }
+    for (let i = 0; i <_data.length; i++) {
+      let item =_data[i];
+      if (item.status == 1) {
+        this.streamInfoLen++;
+        //console.log(JSON.stringify(item));
+        delete item.appId;
+        delete  item.id;
+        let time = parseInt(item.createTime);
+        let timeInfo = this.timestampToUTCTime(time);
+        //return {yymmddhhmmss:yymmddhhmmss,yymmdd:yymmdd}
+        item.seek = 0;
+        item.createTimeUTC = 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;
+
+        if (!this.recordMessages[item.uid]) {
+          this.recordMessages[item.uid] = {};
+        }
+        this.recordMessages[item.uid][item.timestamp] = item;
+      }
+    }
+    if (_callback) {
+      _callback();
+    }
+  }
+
   getRecordFileJSON(path, _callback) {
     let url = path + "?t=" + new Date().getTime();
     /* $.ajax(
diff --git a/src/RecordPlayBackParse.js b/src/RecordPlayBackParse.js
index 7f3ed62..6e6a5dd 100644
--- a/src/RecordPlayBackParse.js
+++ b/src/RecordPlayBackParse.js
@@ -39,6 +39,7 @@ class RecordPlayBackParse extends Emiter {
     this.isgetRecordFileURLFromAgo = false;//是否已经加载AGO的录制文件地址数据
 
     this._apes = {};
+    this.videoPublishMessages=[];//记录推流控制的消息
     this._videoApeBroadcastMssages = {};//视频模块的广播消息
     this.mediaChannleList = {};
     this._conferApeMssages = {};//会议数据
@@ -229,8 +230,9 @@ class RecordPlayBackParse extends Emiter {
       }
     }
     console.warn("最终匹配完成的视频流数据", MediaModule.streams);
-    //解析课堂录制的rec文件
-    this.parseArrayBuf();
+    this._emit(RecordPlayBackParse.CLASS_JOIN_RECORD_PLAYBACK_SUCCESS, {"recordPlaybackMaxTime": this._recordPlaybackMaxTime});
+    ////解析课堂录制的rec文件
+    //this.parseArrayBuf();
   }
 
   //保存各个模块的MCU原始数据
@@ -353,8 +355,9 @@ class RecordPlayBackParse extends Emiter {
        }
        })*/
       this.getMediaRecrodInfoFromTx(()=> {
-        //AGO启动录制消息和文件匹配
-        this.recordInfoMatch.start();
+        /*//AGO启动录制消息和文件匹配
+        this.recordInfoMatch.start();*/
+        this.parseArrayBuf();
       });
 
     }
@@ -771,7 +774,12 @@ class RecordPlayBackParse extends Emiter {
     console.log('聊天数据', this._chatApeMssages);
     console.log('视频模块广播消息', this._videoApeBroadcastMssages);
     loger.log("录制回放数据解析完成,录制回放的总时间长为->", this._recordPlaybackMaxTime, "recordTimestamp:" + GlobalConfig.recordTimestamp);
-    this._emit(RecordPlayBackParse.CLASS_JOIN_RECORD_PLAYBACK_SUCCESS, {"recordPlaybackMaxTime": this._recordPlaybackMaxTime});
+    console.log('videoPublishMessages', this.videoPublishMessages);
+
+    //AGO启动录制消息和文件匹配
+    this.recordInfoMatch.start(this.videoPublishMessages);
+
+    //this._emit(RecordPlayBackParse.CLASS_JOIN_RECORD_PLAYBACK_SUCCESS, {"recordPlaybackMaxTime": this._recordPlaybackMaxTime});
   }
 
   //根据时间查找数据
@@ -1078,6 +1086,10 @@ class RecordPlayBackParse extends Emiter {
           timestamp: timestamp
         };
         //this._videoApeBroadcastMssages[timestamp]={parseData:videoReceivePdu,byteData:data,timestamp: timestamp};
+        if(videoReceivePdu&&videoReceivePdu.data){
+          videoReceivePdu.data.createTime=videoReceivePdu.data.timestamp;
+        }
+        this.videoPublishMessages.push(videoReceivePdu.data);
       }
 
     } catch (err) {