李勇

新增webRtc刷新重加频道之后自动开启视频的功能,如果刷新之前是正在开启的就会自动开启

@@ -63,7 +63,7 @@ export default class MessageEntrance extends Emiter { @@ -63,7 +63,7 @@ export default class MessageEntrance extends Emiter {
63 super(); 63 super();
64 this.lastClassActiveTime=0;//最后一次课堂激活的时间戳 64 this.lastClassActiveTime=0;//最后一次课堂激活的时间戳
65 //sdk 信息 65 //sdk 信息
66 - GlobalConfig.sdkVersion = "v2.24.2.20171030"; 66 + GlobalConfig.sdkVersion = "v2.25.0.20171030";
67 loger.warn("sdkVersion:" + GlobalConfig.sdkVersion); 67 loger.warn("sdkVersion:" + GlobalConfig.sdkVersion);
68 console.log("sdkVersion:" + GlobalConfig.sdkVersion); 68 console.log("sdkVersion:" + GlobalConfig.sdkVersion);
69 //设置 69 //设置
@@ -3011,6 +3011,12 @@ export default class MessageEntrance extends Emiter { @@ -3011,6 +3011,12 @@ export default class MessageEntrance extends Emiter {
3011 * */ 3011 * */
3012 _reJoinChannel(_params) { 3012 _reJoinChannel(_params) {
3013 if (GlobalConfig.appId && !GlobalConfig.openFlash) { 3013 if (GlobalConfig.appId && !GlobalConfig.openFlash) {
  3014 + //获取当前用户的推流状态,重新加入频道之后如果之前正在推流,重连后需要自动重推
  3015 + let isPublish=false;
  3016 + if(_webRtc){
  3017 + isPublish=_webRtc.isPublish||false;
  3018 + }
  3019 + loger.log("离开视频通话频道时的推流状态->"+isPublish);
3014 //先离开频道 3020 //先离开频道
3015 this._leaveChannel(); 3021 this._leaveChannel();
3016 //主讲人和老师可以设置旁录 3022 //主讲人和老师可以设置旁录
@@ -3036,7 +3042,8 @@ export default class MessageEntrance extends Emiter { @@ -3036,7 +3042,8 @@ export default class MessageEntrance extends Emiter {
3036 channelId: GlobalConfig.channelId, 3042 channelId: GlobalConfig.channelId,
3037 channelKey: GlobalConfig.channelKey, 3043 channelKey: GlobalConfig.channelKey,
3038 uid: GlobalConfig.userUid, 3044 uid: GlobalConfig.userUid,
3039 - info: "" + GlobalConfig.userRole 3045 + info: "" + GlobalConfig.userRole,
  3046 + immediatePublish:isPublish
3040 }); 3047 });
3041 }, 1600); 3048 }, 1600);
3042 } 3049 }
@@ -352,6 +352,10 @@ class WebRtcApe extends Emiter { @@ -352,6 +352,10 @@ class WebRtcApe extends Emiter {
352 this.info = _params.info || ""; 352 this.info = _params.info || "";
353 this.channelKey = _params.channelKey || null; 353 this.channelKey = _params.channelKey || null;
354 354
  355 + //记录加入频道成功之后是否立即推流,默认false
  356 + //一般只有在刷新重进频道的时候会用到
  357 + this.immediatePublish=_params.immediatePublish||false;
  358 +
355 //根据不同身份设置不同的分辨率 359 //根据不同身份设置不同的分辨率
356 if(GlobalConfig.isTeachOrAssistant){ 360 if(GlobalConfig.isTeachOrAssistant){
357 if(GlobalConfig.maxMediaChannels==1){ 361 if(GlobalConfig.maxMediaChannels==1){
@@ -378,6 +382,15 @@ class WebRtcApe extends Emiter { @@ -378,6 +382,15 @@ class WebRtcApe extends Emiter {
378 loger.log("加入视频通话频道->成功->channelId:" + this.channelId, "uid:" + this.uid); 382 loger.log("加入视频通话频道->成功->channelId:" + this.channelId, "uid:" + this.uid);
379 this._emit(MessageTypes.WEB_RTC_JOIN_SUCCESS); 383 this._emit(MessageTypes.WEB_RTC_JOIN_SUCCESS);
380 this.openLoaclStream(); 384 this.openLoaclStream();
  385 +
  386 + //加入频道成功之后需要判断是否立即开启推流
  387 + if(this.immediatePublish==true){
  388 + loger.log("加入音视频频道成功->立刻开始推流->"+this.immediatePublish);
  389 + clearTimeout(this.rePublishDelay);
  390 + this.rePublishDelay=setTimeout(()=>{
  391 + this.publish();
  392 + },600);
  393 + }
381 }, (err)=> { 394 }, (err)=> {
382 loger.error("加入视频通话频道->失败->", err); 395 loger.error("加入视频通话频道->失败->", err);
383 this._emit(MessageTypes.WEB_RTC_JOIN_FAILED); 396 this._emit(MessageTypes.WEB_RTC_JOIN_FAILED);