diff --git a/src/EngineEntrance.js b/src/EngineEntrance.js
index 5303326..79c488d 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.5.20171012";
+    GlobalConfig.sdkVersion = "v2.16.8.20171012";
     loger.warn("sdkVersion:" + GlobalConfig.sdkVersion);
 
     //设置
diff --git a/src/apes/WebRtcApe.js b/src/apes/WebRtcApe.js
index 9cdc92c..0bc11b4 100644
--- a/src/apes/WebRtcApe.js
+++ b/src/apes/WebRtcApe.js
@@ -194,19 +194,28 @@ class WebRtcApe extends Emiter {
         userName = user.name || "unknow";
         userRole = user.userRole;
       }
-      let nameDiv = `<div style="width:98%;height:20px; position: absolute;bottom: 0; z-index: 1;left: 4px;overflow:hidden;font-size: 14px;text-align: right; color: #cccccc;display:${this.nameDisplay}">${userName}</div>`;
+
+      //添加之前先删除之前存在的重复视图
+      let len=$("#"+this.xdyRemote + uid+" #player_" + uid).length;
+      if(len<1){
+        loger.log("添加之前先删除之前存在的重复视图",uid);
+        $("#"+this.xdyRemote + uid).remove();
+      }
 
       if (userRole == ApeConsts.invisible) {
+        let nameDiv = `<div style=${this.invisibleVideoWidth}px;height:20px; position: absolute;bottom: 0; z-index: 1;overflow:hidden;font-size: 14px;text-align: right; color: #cccccc;display:${this.nameDisplay}">${userName}</div>`;
         //把远程视频添加到监课列表
         loger.log("获取远程视频流成功->监课:" + userName + "->" + uid, new Date().getTime());
         let viewDiv = `<div id="${this.xdyRemote + uid}" class="${this.invisibleWebRtcVideoClass}" style="width:${this.invisibleVideoWidth*this.videoScale}px;height:${this.invisibleVideoHeight*this.videoScale}px;float: left;margin-right: 1px;pointer-events: none;">${nameDiv}</div>`;
         $(this.invisibleViewId).append(viewDiv);
       } else if (userRole == ApeConsts.host||userRole == ApeConsts.assistant||userRole == ApeConsts.presenter) {
+        let nameDiv = `<div style="width:${this.hostRemoteVideoWidth}px;height:20px; position: absolute;bottom: 0; z-index: 1;overflow:hidden;font-size: 14px;text-align: right; color: #cccccc;display:${this.nameDisplay}">${userName}</div>`;
         //把远程视图添加到老师列表
         loger.log("获取远程视频流成功->userRole:"+userRole+":" + userName + "->" + uid, new Date().getTime());
         let viewDiv = `<div id="${this.xdyRemote + uid}" class="${this.hostWebRtcVideoClass}" style="width:${this.hostRemoteVideoWidth*this.videoScale}px;height:${this.hostRemoteVideoHeight*this.videoScale}px;float: left;margin-right: 1px;pointer-events: none;">${nameDiv}</div>`;
         $(this.hostRemoteViewId).prepend(viewDiv);
       } else {
+        let nameDiv = `<div style="width:${this.normalRemoteVideoWidth}px;height:20px; position: absolute;bottom: 0; z-index: 1;overflow:hidden;font-size: 14px;text-align: right; color: #cccccc;display:${this.nameDisplay}">${userName}</div>`;
         //把视图添加到学生列表
         loger.log("获取远程视频流成功->学生:" + userName + "->" + uid, new Date().getTime());
         let viewDiv = `<div id="${this.xdyRemote + uid}" class="${this.normalWebRtcVideoClass}" style="width:${this.normalRemoteVideoWidth*this.videoScale}px;height:${this.normalRemoteVideoHeight*this.videoScale}px;float: left;margin-right: 1px;pointer-events: none;">${nameDiv}</div>`;
@@ -217,12 +226,59 @@ class WebRtcApe extends Emiter {
         $("bar_" + stream.getId()).hide();
         stream.play(this.xdyRemote + stream.getId());
       } catch (err) {
+        //添加之前先删除之前存在的重复视图
+        let len=$("#"+this.xdyRemote + uid+" #player_" + uid).length;
+        if(len<1){
+          lloger.log("流播放失败->删除视图",uid);
+          $("#"+this.xdyRemote + uid).remove();
+        }
       }
       if (user && (user.deviceType == 1 || user.deviceType == 2)) {
         this.remoteVideoList[user.nodeId] = stream;
       }
     }
+
+    this.clearInvalidVideoView();
   }
+  //清除无效的视图
+  clearInvalidVideoView(){
+    let normalList=document.getElementsByClassName(this.normalWebRtcVideoClass);
+    let hostList=document.getElementsByClassName(this.hostWebRtcVideoClass);
+    let localList=document.getElementsByClassName(this.localWebRtcVideoClass);
+
+    let divItem=null;
+    if(normalList){
+      for (let i=normalList.length-1;i>=0;i--){
+        divItem=normalList[i];
+        if(divItem&&divItem.children.length<2){
+          console.log("删除无效的视图",divItem);
+          divItem.remove();
+        }
+      }
+    }
+    divItem=null;
+    if(hostList){
+      for (let i=hostList.length-1;i>=0;i--){
+        divItem=hostList[i];
+        if(divItem&&divItem.children.length<2){
+          console.log("删除无效的视图",divItem);
+          divItem.remove();
+        }
+      }
+    }
+    divItem=null;
+    if(localList){
+      for (let i=localList.length-1;i>=0;i--){
+        divItem=localList[i];
+        if(divItem&&divItem.children.length<2){
+          console.log("删除无效的视图",divItem);
+          divItem.remove();
+        }
+      }
+    }
+    divItem=null;
+  }
+
 
   //重新添加远程视频
   reAddRemoteStream(_stream) {
@@ -263,7 +319,8 @@ class WebRtcApe extends Emiter {
     //console.log("remoteView->", remoteView)
     if (remoteView) {
       let player = document.getElementById("player_" + nodeId);
-      if (player) {
+      let len=$("#"+this.xdyRemote + nodeId+" #player_" + nodeId).length;
+      if (len>0) {
         loger.log(nodeId + " 流已经添加显示,不需要再处理");
         return;
       } else {