李勇

v2.8.7.20170916

... ... @@ -62,7 +62,7 @@ export default class MessageEntrance extends Emiter {
constructor() {
super();
//sdk 信息
GlobalConfig.sdkVersion = "v2.8.2.20170916";
GlobalConfig.sdkVersion = "v2.8.7.20170916";
loger.warn("sdkVersion:" + GlobalConfig.sdkVersion);
//设置
... ... @@ -2978,7 +2978,7 @@ export default class MessageEntrance extends Emiter {
case WebRtcApe.RECORD_STATUS_0:
case WebRtcApe.RECORD_STATUS_1:
//推流/停止推流/开启录制 统一使用一个接口
_webRtc.changePublishStatusAndServerRecord(_params.type);
_webRtc.changePublishStatusAndServerRecord(_params.status);
break;
case WebRtcApe.RECORD_STATUS_2:
//停止录制
... ...
... ... @@ -24,6 +24,9 @@ class WebRtcApe extends Emiter {
this.uid = 0;
this.info = ""
this.reAddRemoteStreamDelay=0;//重连远程视频的计时器
this.rePublishDelay=0;//重新推流的间隔
this.mode = "interop";
this.client = null;
this.localStream = null;
... ... @@ -113,10 +116,11 @@ class WebRtcApe extends Emiter {
this.client.on('stream-added', (evt)=> {
let stream = evt.stream;
loger.log("添加一个远程视频流: " + stream.getId(),new Date().getTime());
/* loger.log("添加一个远程视频流: " + stream.getId(),new Date().getTime());
this.client.subscribe(stream, (err)=> {
loger.log("添加一个远程视频流->failed", err);
});
});*/
this.reAddRemoteStream(stream);
});
this.client.on('stream-subscribed', (evt)=> {
... ... @@ -156,7 +160,6 @@ class WebRtcApe extends Emiter {
}catch (err){
}
}
});
this.client.on('stream-removed', (evt)=> {
... ... @@ -179,6 +182,30 @@ class WebRtcApe extends Emiter {
loger.log("当前正在讲话的uid:" + uid);
});
}
//重新添加远程视频
reAddRemoteStream(_stream){
if(!_stream){
return;
}
let user=GlobalConfig.getUserRoleFromeNodeId(_stream.getId());
if(user.openCamera<=0){
loger.log("远程流已经停止,不需要再连接: " + _stream.getId(),new Date().getTime());
return;
}
loger.log("添加一个远程视频流: " + _stream.getId(),new Date().getTime());
this.client.subscribe(_stream, (err)=> {
loger.warn("添加一个远程视频流->失败", err);
clearTimeout(this.reAddRemoteStreamDelay);
if(err=="INVALID_REMOTE_STREAM"){
//流已经无效,不需要再重连
return;
}
this.reAddRemoteStreamDelay=setTimeout(()=>{
loger.warn("连接远程的流失败->尝试重新连接");
this.reAddRemoteStream(_stream);
},1400);
});
}
joinChannel(_params) {
this.channelId = _params.channelId||"";
... ... @@ -291,6 +318,7 @@ class WebRtcApe extends Emiter {
GlobalConfig.openCamera =0;
GlobalConfig.openMicrophones =0;
this.isPublish=false;
this.clearLocalView();
});
this.client.on('stream-published', (evt)=> {
loger.log("webRtc->推流成功->",new Date().getTime());
... ... @@ -305,11 +333,13 @@ class WebRtcApe extends Emiter {
openCamera: GlobalConfig.openCamera,
openMicrophones: GlobalConfig.openMicrophones
});
this.changePublishStatusAndServerRecord(WebRtcApe.RECORD_STATUS_1);
});
}, (err)=> {
loger.warn("webRtc->推流->本地流开启失败", err);
this.isPublish=false;
this.clearLocalView();
this._emit(MessageTypes.WEB_RTC_PUBLISH_FAILED,err);
});
}
... ... @@ -324,9 +354,9 @@ class WebRtcApe extends Emiter {
loger.log("webRtc->停止推流->失败" + err);
});
this.localStream.close();
//$(this.localViewId).html("");
$('#localVideoBox_' + this.uid).remove();
$("#videoOwnerName_"+this.uid).remove();
//$('#localVideoBox_' + this.uid).remove();
//$("#videoOwnerName_"+this.uid).remove();
this.clearLocalView();
this.isPublish=false;
GlobalConfig.openCamera =0;
GlobalConfig.openMicrophones =0;
... ... @@ -338,8 +368,13 @@ class WebRtcApe extends Emiter {
openCamera: GlobalConfig.openCamera,
openMicrophones: GlobalConfig.openMicrophones
});
this.changePublishStatusAndServerRecord(WebRtcApe.RECORD_STATUS_0);
}
//清除本地视图
clearLocalView(){
$('#localVideoBox_' + this.uid).remove();
$("#videoOwnerName_"+this.uid).remove();
}
/*
* 设置本地回显视图
* */
... ...