diff --git a/src/EngineEntrance.js b/src/EngineEntrance.js
index 79c488d..05a82f8 100644
--- a/src/EngineEntrance.js
+++ b/src/EngineEntrance.js
@@ -62,7 +62,7 @@ export default class MessageEntrance extends Emiter {
   constructor() {
     super();
     //sdk 信息
-    GlobalConfig.sdkVersion = "v2.16.8.20171012";
+    GlobalConfig.sdkVersion = "v2.17.11.20171014";
     loger.warn("sdkVersion:" + GlobalConfig.sdkVersion);
 
     //设置
@@ -1225,15 +1225,15 @@ export default class MessageEntrance extends Emiter {
 
     //主讲人和老师可以设置旁录
     if(GlobalConfig.appId&&!GlobalConfig.openFlash){
+      //加入之前先设置旁录地址,只有直播支持旁路
+      if(_webRtc&&GlobalConfig.isTeachOrAssistant){
+        let publishData=this._getVideoPublishPath();
+        loger.log("加入之前先设置旁录地址",publishData);
+        if(publishData&&publishData.code==0){
+          _webRtc.setConfigPublisherUrl(publishData.publishUrl);
+        }
+      }
       setTimeout(()=>{
-       /*//加入之前先设置旁录地址,只有直播支持旁路
-        if(_webRtc&&GlobalConfig.isTeachOrAssistant){
-          let publishData=this._getVideoPublishPath();
-          loger.log("加入之前先设置旁录地址",publishData);
-          if(publishData&&publishData.code==0){
-            _webRtc.setConfigPublisherUrl(publishData.publishUrl);
-          }
-        }*/
         //加入音视频通话模块,延迟一秒处理,因为视频需要根据用户列表信息来判断放的位置,太早的话用户列表没有数据
         this._joinChannel({channelId:GlobalConfig.channelId,channelKey:GlobalConfig.channelKey ,uid:GlobalConfig.userUid,info:""+GlobalConfig.userRole});
       },1600);
diff --git a/src/apes/VideoApe.js b/src/apes/VideoApe.js
index 6f279c3..41fbf76 100644
--- a/src/apes/VideoApe.js
+++ b/src/apes/VideoApe.js
@@ -121,6 +121,7 @@ class VideoApe extends Ape {
 
     //根据推流的地址获取对应的频道信息
     let needPublishChannelInfo = this.mediaModule.getNeedPublishMediaChannel(_param.publishUrl);
+    console.log("needPublishChannelInfo",needPublishChannelInfo);
     if (needPublishChannelInfo == null) {
       loger.warn('推流->推流数据已经无效', _param);
       this._emit(MessageTypes.VIDEO_PUBLISH_RESULT, {
@@ -223,6 +224,18 @@ class VideoApe extends Ape {
       "toNodeId": 0,
       "data":_data|| ""
     });
+
+    //如果是老师或主讲人助教,推流需要同步
+    if(GlobalConfig.isTeachOrAssistant){
+      _data.nodeId=GlobalConfig.nodeId;
+      if(_data.status==1){
+        this.publishVideo(_data);
+      }else if(_data.status==0){
+        _data.nodeId=GlobalConfig.nodeId;
+        this.stopPublishVideo(_data)
+      }
+    }
+
   }
   //==========================屏幕共享=========================================================================
 
@@ -482,6 +495,7 @@ class VideoApe extends Ape {
       dataObj = videoReceivePdu.data;
     }
     videoReceivePdu.data = dataObj;
+    //录制回放和H5需要处理
     if(GlobalConfig.isRecordPlayBack){
       //录制回放的处理
       if (videoReceivePdu.toNodeId!=0){
@@ -502,7 +516,7 @@ class VideoApe extends Ape {
           "timestamp": 1505886364100,
           "recordTimestamp": 27
       }*/
-      switch (videoReceivePdu.actionType){
+     /* switch (videoReceivePdu.actionType){
         case ApeConsts.MEDIA_ACTION_PUBLISH_STATUS:
           //webRtc的推流和停止推流的消息
           let videoInfo={};
@@ -520,7 +534,7 @@ class VideoApe extends Ape {
           break;
         default:
           break
-      }
+      }*/
 
     }else {
       //判断接收者的id,如果不是0,并且也不是自己的nodeId,那么消息不做处理
@@ -529,6 +543,35 @@ class VideoApe extends Ape {
       } else {
         loger.log('视频控制消息处理 .', videoReceivePdu);
         this._emit(MessageTypes.VIDEO_BROADCAST, videoReceivePdu);
+
+        let data=videoReceivePdu.data;
+        if(data){
+          switch (videoReceivePdu.actionType){
+            case ApeConsts.MEDIA_ACTION_PUBLISH_STATUS:
+              //webRtc的推流和停止推流的消息
+              let videoInfo={};
+              let videoData=data;
+            /*  videoData.streamId=data.channel+"_"+data.userId+"_"+data.uid+"_"+(parseInt(parseInt(data.timestamp)/1000));
+              if(data.status==1){
+                loger.log("播放文件->", "userName",data.userName,"uid",data.uid,"时间:"+new Date(1505886364100).toString());
+                videoInfo=this.packVideoInfoAndSendToClient(videoData,seek);
+                this._emit(MessageTypes.VIDEO_PLAY, videoInfo);
+              }else if(data.status==0){
+                loger.log("停止播放文件->", "userName",data.userName,"uid",data.uid,"时间:"+new Date(1505886364100).toString());
+                videoInfo=this.packVideoInfoAndSendToClient(videoData,seek);
+                this._emit(MessageTypes.VIDEO_STOP, videoInfo);
+              }*/
+            /*  if(data.status==1){
+                this.publishVideo(data);
+              }else if(data.status==0){
+                data.nodeId=videoReceivePdu.toNodeId;
+                this.stopPublishVideo(data)
+              }*/
+              break;
+            default:
+              break
+          }
+        }
       }
     }
 
diff --git a/src/apes/WebRtcApe.js b/src/apes/WebRtcApe.js
index 0bc11b4..5108b81 100644
--- a/src/apes/WebRtcApe.js
+++ b/src/apes/WebRtcApe.js
@@ -45,8 +45,8 @@ class WebRtcApe extends Emiter {
     this.pFrameRate=30;
     this.pBitrate=500;
 
-    //this.videoResolution = "360P_8";//480x360	30	490
-    this.videoResolution = "240P";//
+    this.videoResolution = "360P_8";//480x360	30	490
+    //this.videoResolution = "240P";//
     this.isOpenVideo = true;
 
     this.isPublish = false;//当前是否正在推流
@@ -251,7 +251,7 @@ class WebRtcApe extends Emiter {
       for (let i=normalList.length-1;i>=0;i--){
         divItem=normalList[i];
         if(divItem&&divItem.children.length<2){
-          console.log("删除无效的视图",divItem);
+          console.log("删除无效的学生视图");
           divItem.remove();
         }
       }
@@ -261,7 +261,7 @@ class WebRtcApe extends Emiter {
       for (let i=hostList.length-1;i>=0;i--){
         divItem=hostList[i];
         if(divItem&&divItem.children.length<2){
-          console.log("删除无效的视图",divItem);
+          console.log("删除无效的老师视图");
           divItem.remove();
         }
       }
@@ -271,7 +271,7 @@ class WebRtcApe extends Emiter {
       for (let i=localList.length-1;i>=0;i--){
         divItem=localList[i];
         if(divItem&&divItem.children.length<2){
-          console.log("删除无效的视图",divItem);
+          console.log("删除无效的本地视图");
           divItem.remove();
         }
       }
@@ -423,12 +423,13 @@ class WebRtcApe extends Emiter {
    * 设置旁录地址
    * */
   setConfigPublisherUrl(_publishUrl){
-    loger.warn("设置旁路地址->",_publishUrl);
     this.configPublisherUrl=_publishUrl;
     if(this.client&& this.configPublisherUrl){
-      this.client.configPublisher(
-        {width: this.pWidth, height: this.pHeight, framerate: this.pFrameRate, bitrate: this.pBitrate, publishUrl: this.configPublisherUrl}
-      );
+      let configObj={width: parseInt(this.pWidth), height: parseInt(this.pHeight), framerate: parseInt(this.pFrameRate), bitrate: parseInt(this.pBitrate), publishUrl:""+this.configPublisherUrl};
+      //let configObj={width: 480, height:360, framerate:30, bitrate:500, publishUrl:_publishUrl};
+      //let configObj={width: 480, height:360, framerate:30, bitrate:500, publishUrl:'rtmp://txlivepush.xuedianyun.com/live/markettest_395312484_T8440_983041_1507888360?bizid=11220&txSecret=15cc50d93f86f9e1a2a76a10db2b09a8&txTime=59e135a8&record=hls|flv&record_interval=5400'};
+      loger.warn("设置旁路地址->",configObj);
+      this.client.configPublisher(configObj);
     }else {
       loger.warn("设置旁路地址->失败->为初始化或旁路地址无效",_publishUrl);
     }
@@ -556,9 +557,6 @@ class WebRtcApe extends Emiter {
     $("."+this.normalWebRtcVideoClass).css("width",this.normalRemoteVideoWidth*this.videoScale);
     $("."+this.normalWebRtcVideoClass).css("height",this.normalRemoteVideoHeight*this.videoScale);
 
-    //监课的不需要设置
-    //$("."+this.invisibleWebRtcVideoClass).css("width",this.localVideoWidth);
-    //$("."+this.invisibleWebRtcVideoClass).css("height",this.localVideoHeight);
   }
 
   /*
@@ -575,14 +573,6 @@ class WebRtcApe extends Emiter {
     }
     this.videoScale=scale;
     loger.log("更新视频视图大小->videoScale:"+this.videoScale);
-  /*  this.localVideoWidth=this.localVideoWidth*this.videoScale;
-    this.localVideoHeight=this.localVideoHeight*this.videoScale;
-
-    this.hostRemoteVideoWidth=this.hostRemoteVideoWidth*this.videoScale;
-    this.hostRemoteVideoHeight=this.hostRemoteVideoHeight*this.videoScale;
-
-    this.normalRemoteVideoWidth=this.normalRemoteVideoWidth*this.videoScale;
-    this.normalRemoteVideoHeight=this.normalRemoteVideoHeight*this.videoScale;*/
     this.updateAllVideoSize();
     
   }
@@ -751,7 +741,8 @@ class WebRtcApe extends Emiter {
       userName: GlobalConfig.userName,
       userRole: GlobalConfig.userRole,
       timestamp: curTimestamp,
-      recordTimestamp: GlobalConfig.recordTimestamp
+      recordTimestamp: GlobalConfig.recordTimestamp,
+      publishUrl:this.configPublisherUrl
     });
     return data;
   }