李勇

1.增加重新加入视频通道模块的接口;点击外部刷新的时候会重新加入

... ... @@ -62,9 +62,9 @@ export default class MessageEntrance extends Emiter {
constructor() {
super();
//sdk 信息
GlobalConfig.sdkVersion = "v2.20.5.20171023";
GlobalConfig.sdkVersion = "v2.21.3.20171024";
loger.warn("sdkVersion:" + GlobalConfig.sdkVersion);
console.log("sdkVersion:" + GlobalConfig.sdkVersion);
//设置
let locationProtocol= location.protocol;
if(locationProtocol=="https:"){
... ... @@ -92,6 +92,7 @@ export default class MessageEntrance extends Emiter {
this.isGetFastestHlsPullCallback = false; //是否HLS拉流地址测试结束
this.isGetFastestRsCallback = false; //是否录制回放HLS拉流地址测试结束
this.saveClassStatusTimer=0;//保存课堂数据的计时器间隔,防止同一瞬间多次提交
this.joinChannelTimer=0;//加入音视频通道的间隔
//全局的Error处理
this.on(MessageTypes.MCU_ERROR, this._mcuErrorHandler.bind(this));
... ... @@ -307,6 +308,8 @@ export default class MessageEntrance extends Emiter {
this.setDebugInfo = this._setDebugInfo.bind(this); //设置debug信息
this.setOpenSendLogToServer = this._setOpenSendLogToServer.bind(this); //设置是否上报日志
this.reJoinChannel = this._reJoinChannel.bind(this); //重新加入频道
this.addLog = this._addLog.bind(this);
this.addWarn = this._addWarn.bind(this);
this.addError = this._addError.bind(this);
... ... @@ -1677,11 +1680,11 @@ export default class MessageEntrance extends Emiter {
}
//离开视频通话频道
if(GlobalConfig.deviceType==0||GlobalConfig.deviceType==3){
/* if(GlobalConfig.deviceType==0||GlobalConfig.deviceType==3){
if(_webRtc){
_webRtc.leaveChannel();;
_webRtc.leaveChannel();
}
}
}*/
//停止推流
if (_video_ape) {
... ... @@ -1712,6 +1715,8 @@ export default class MessageEntrance extends Emiter {
_mcu.leaveMCU();
GlobalConfig.setCurrentStatus(GlobalConfig.statusCode_3);
}
//离开视频通话模块
this._leaveChannel();
}
//获取课堂所有参数(20170727新规则) api/meeting/detail.do? flash中的接口文件是 getClassParam.do
... ... @@ -2830,7 +2835,36 @@ export default class MessageEntrance extends Emiter {
});
}
}
/*
* 重新加入频道
* */
_reJoinChannel(_params){
if(GlobalConfig.appId&&!GlobalConfig.openFlash){
//先离开频道
this._leaveChannel();
//主讲人和老师可以设置旁录
//加入之前先设置旁录地址,只有直播支持旁路(1路流)
if(_webRtc&&GlobalConfig.isTeachOrAssistant&&GlobalConfig.maxMediaChannels==1){
let curTimestamp = new Date().getTime();
let streamId=GlobalConfig.siteId+"_"+GlobalConfig.classId+"_"+GlobalConfig.userId+"_"+curTimestamp;
//传入固定的流Id
let publishData=this._getVideoPublishPath({streamId:streamId});
loger.log("加入之前先设置旁录地址",publishData);
if(publishData&&publishData.code==0){
_webRtc.setConfigPublisherUrl(publishData.publishUrl);
let m3u8Stream = _video_ape.getPlayVideoPath({"type": "m3u8", "streamId":streamId});
let rtmpStream = _video_ape.getPlayVideoPath({"type": "rtmp", "streamId":streamId});
_webRtc.setRtmpM3u8Path({m3u8Url:m3u8Stream.playUrl,rtmpUrl:rtmpStream.playUrl});
}
}
clearTimeout(this.joinChannelTimer);
this.joinChannelTimer=setTimeout(()=>{
//加入音视频通话模块,延迟一秒处理,因为视频需要根据用户列表信息来判断放的位置,太早的话用户列表没有数据
this._joinChannel({channelId:GlobalConfig.channelId,channelKey:GlobalConfig.channelKey ,uid:GlobalConfig.userUid,info:""+GlobalConfig.userRole});
},1600);
}
}
/*
* 加入视频通话
* */
... ...
... ... @@ -416,10 +416,11 @@ class WebRtcApe extends Emiter {
}
leaveChannel() {
loger.log("离开视频通话频道");
loger.log("调用离开视频通话频道->isPublish"+this.isPublish);
if (!this.client) {
return;
}
this.unpublish();
this.client.leave(() => {
loger.log("离开视频通话频道->成功");
}, (err)=> {
... ...