diff --git a/src/EngineEntrance.js b/src/EngineEntrance.js
index ff5c27f..82f5f49 100644
--- a/src/EngineEntrance.js
+++ b/src/EngineEntrance.js
@@ -59,7 +59,7 @@ export default class MessageEntrance extends Emiter {
constructor() {
super();
//sdk 信息
- GlobalConfig.sdkVersion = "v2.1.17.20170902";
+ GlobalConfig.sdkVersion = "v2.1.22.20170904";
loger.warn("sdkVersion:" + GlobalConfig.sdkVersion);
//设置
@@ -1048,6 +1048,12 @@ export default class MessageEntrance extends Emiter {
GlobalConfig.screenWidth = window.screen.width;
GlobalConfig.screenHeight = window.screen.height;
+
+ GlobalConfig.channelId = ""+GlobalConfig.siteId+"_"+GlobalConfig.classId;
+ GlobalConfig.userUid = GlobalConfig.nodeId;
+ GlobalConfig.channelKey=null;
+
+
//返回给客户端初始化成功的数据
let joinClassSuccessCallBackData = {};
@@ -1110,6 +1116,14 @@ export default class MessageEntrance extends Emiter {
joinClassSuccessCallBackData.explorerVersion = GlobalConfig.explorerVersion;
joinClassSuccessCallBackData.os = GlobalConfig.os;
+
+ joinClassSuccessCallBackData.channelId =GlobalConfig.channelId ;
+ joinClassSuccessCallBackData.channelKey =GlobalConfig.channelKey ;
+ joinClassSuccessCallBackData.userUid = GlobalConfig.userUid;
+ joinClassSuccessCallBackData.appId = GlobalConfig.appId;
+ joinClassSuccessCallBackData.appCertificate = GlobalConfig.appCertificate;
+ joinClassSuccessCallBackData.appRecordingKey = GlobalConfig.appRecordingKey;
+
//设置日志上报所需的信息
LogManager.serverAndLoacTimeDistanc = GlobalConfig.serverAndLoacTimeDistanc;//本地时间和服务器时间的差值(秒)
LogManager.classId = GlobalConfig.classId;//课堂号
@@ -1126,7 +1140,7 @@ export default class MessageEntrance extends Emiter {
this._emit(MessageTypes.CLASS_JOIN_SUCCESS, joinClassSuccessCallBackData);
//加入音视频通话模块
- this._joinChannel({channelId:GlobalConfig.siteId+"_"+GlobalConfig.classId,uid:GlobalConfig.nodeId,info:""+GlobalConfig.userRole});
+ this._joinChannel({channelId:GlobalConfig.channelId,channelKey:GlobalConfig.channelKey ,uid:GlobalConfig.userUid,info:""+GlobalConfig.userRole});
}
//切换MCU ->_param->{reConnect:false} //reConnect(是否立即替换当前的ip并且重新连接)
@@ -1613,6 +1627,10 @@ export default class MessageEntrance extends Emiter {
GlobalConfig.setMediaShareList(_data.sharedMediaList); //提前上传的媒体共享文件列表
+ GlobalConfig.appId = 'eb253cc7b40c4a8b82f0a5b6f93c2ce0';
+ GlobalConfig.appCertificate = "";
+ GlobalConfig.appRecordingKey = "";
+
//文档服务器地址
if (GlobalConfig.docList && GlobalConfig.docList.length > 0) {
//doc上传地址,随机获取一个
@@ -1688,7 +1706,6 @@ export default class MessageEntrance extends Emiter {
} else {
//根据用户的userIp获取信息,获取服务列表选点,选点测速完成后才加入MCU
this.loadServerJsonAndgetUserIpInfo();
-
//初始化音视频通话sdk
this._initWebRtcSdk();
}
@@ -2565,6 +2582,10 @@ export default class MessageEntrance extends Emiter {
* 初始化webRtc
* */
_initWebRtcSdk(_params){
+ if(GlobalConfig.deviceType==1||GlobalConfig.deviceType==2){
+ loger.warn("移动端不需要处理初始化webRtc");
+ return ;
+ }
if(_webRtc){
_webRtc.initApp(_params)
}
@@ -2573,6 +2594,10 @@ export default class MessageEntrance extends Emiter {
* 加入视频通话
* */
_joinChannel(_params){
+ if(GlobalConfig.deviceType==1||GlobalConfig.deviceType==2){
+ loger.warn("移动端不需要处理加入视频房间");
+ return ;
+ }
if(_webRtc){
_webRtc.joinChannel(_params);
}
@@ -2581,6 +2606,9 @@ export default class MessageEntrance extends Emiter {
* 离开视频通话频道
* */
_leaveChannel(_params){
+ if(GlobalConfig.deviceType==1||GlobalConfig.deviceType==2){
+ return ;
+ }
if(_webRtc){
_webRtc.leaveChannel(_params);
}
@@ -2589,6 +2617,22 @@ export default class MessageEntrance extends Emiter {
* 发布流
* */
_publishMedia(_params){
+ //ios和安卓的只需要更新数据即可
+ if(GlobalConfig.deviceType==1||GlobalConfig.deviceType==2){
+ loger.log("调用webRtc推流");
+ GlobalConfig.openCamera = EngineUtils.creatTimestamp();
+ GlobalConfig.openMicrophones = GlobalConfig.openCamera;
+ this.userDeviecStatusChange({
+ nodeId: GlobalConfig.nodeId,
+ userRole: GlobalConfig.userRole,
+ userName: GlobalConfig.userName,
+ userId: GlobalConfig.userId,
+ openCamera: GlobalConfig.openCamera,
+ openMicrophones: GlobalConfig.openMicrophones
+ });
+ return ;
+ }
+
if(_webRtc){
_webRtc.publish(_params);
}
@@ -2597,6 +2641,22 @@ export default class MessageEntrance extends Emiter {
* 停止发布流
* */
_unpublishMedia(_params){
+ //ios和安卓的只需要更新数据即可
+ if(GlobalConfig.deviceType==1||GlobalConfig.deviceType==2){
+ loger.log("调用webRtc停止推流");
+ GlobalConfig.openCamera =0;
+ GlobalConfig.openMicrophones =0;
+ this.userDeviecStatusChange({
+ nodeId: GlobalConfig.nodeId,
+ userRole: GlobalConfig.userRole,
+ userName: GlobalConfig.userName,
+ userId: GlobalConfig.userId,
+ openCamera: GlobalConfig.openCamera,
+ openMicrophones: GlobalConfig.openMicrophones
+ });
+ return ;
+ }
+
if(_webRtc){
_webRtc.unpublish(_params);
}
diff --git a/src/GlobalConfig.js b/src/GlobalConfig.js
index 417f2ca..7de3d7d 100644
--- a/src/GlobalConfig.js
+++ b/src/GlobalConfig.js
@@ -58,6 +58,12 @@ class GlobalConfig {
classInfo.ssTunnelAppURL = this.ssTunnelAppURL;
classInfo.currentSceneTableId = this.currentSceneTableId; //文档区域的模块显示
classInfo.serverAndLoacTimeDistanc = this.serverAndLoacTimeDistanc;
+ classInfo.appId = this.appId;
+ classInfo.appCertificate = this.appCertificate;
+ classInfo.appRecordingKey = this.appRecordingKey;
+ classInfo.channelId =this.channelId ;
+ classInfo.channelKey =this.channelKey ;
+ classInfo.userUid = this.userUid;
return classInfo;
}
@@ -548,5 +554,15 @@ GlobalConfig.os="未知";//系统
GlobalConfig.locationProtocol="http://";//https;或http:
GlobalConfig.websocketProtocol="ws://";//wss或ws
GlobalConfig.isHttps=false;//是否是https
+
+
+//webRtc
+GlobalConfig.appId = 'eb253cc7b40c4a8b82f0a5b6f93c2ce0';
+GlobalConfig.appCertificate = "";
+GlobalConfig.appRecordingKey = "";
+GlobalConfig.channelId = "";
+GlobalConfig.channelKey = null;
+GlobalConfig.userUid = 0;
+
export default GlobalConfig;
diff --git a/src/apes/WebRtcApe.js b/src/apes/WebRtcApe.js
index 486d643..8c3a9f1 100644
--- a/src/apes/WebRtcApe.js
+++ b/src/apes/WebRtcApe.js
@@ -18,6 +18,7 @@ class WebRtcApe extends Emiter {
this.appCertificate = "";
this.appRecordingKey = "";
+ this.channelKey=null;
this.channelId = "";
this.uid = 0;
this.info = ""
@@ -48,29 +49,30 @@ class WebRtcApe extends Emiter {
}
initApp(_params) {
- loger.log("AgoraRTC client init");
+ loger.log("初始化WebRtc");
if (_params) {
this.appId = _params.appId;
}
if (this.client) {
this.client.init(this.appId, () => {
- loger.log("AgoraRTC client init success");
+ loger.log("初始化WebRtc->成功");
}, (err)=> {
- loger.error("AgoraRTC client init failed", err);
+ loger.error("初始化WebRtc->失败", err);
+
});
this.addEvent();
}
}
addEvent() {
- loger.log("AgoraRTC addEvent");
+ loger.log("监听webRtc消息");
if (!this.client) {
loger.log("addEvent error:client is null");
return;
}
this.channelKey = "";
this.client.on('error', (err) => {
- loger.log("Got error msg:", err.reason);
+ loger.log("WebRtc异常:", err.reason);
if (err.reason === 'DYNAMIC_KEY_TIMEOUT') {
this.client.renewChannelKey(this.channelKey, ()=> {
loger.log("Renew channel key successfully");
@@ -113,12 +115,12 @@ class WebRtcApe extends Emiter {
if (stream) {
stream.stop();
$('#' + this.xdyRemote + stream.getId()).remove();
- loger.log(evt.uid + " leaved from this channel");
+ loger.log(evt.uid + " ->离开视频通话频道");
}
});
this.client.on("active-speaker", (evt)=> {
let uid = evt.uid;
- loger.log("update active speaker: client" + uid);
+ loger.log("当前正在讲话的uid:" + uid);
});
}
@@ -126,15 +128,15 @@ class WebRtcApe extends Emiter {
this.channelId = _params.channelId||"";
this.uid = parseInt(_params.uid)||0;
this.info =_params.info || "";
- let dynamic_key = null;
+ this.channelKey = _params.channelKey||null;
- loger.log("AgoraRTC joinChannel","channelId:"+this.channelId,"uid:"+this.uid);
- this.client.join(dynamic_key, ""+this.channelId, this.uid, (uid)=> {
+ loger.log("加入视频通话频道->channelId:"+this.channelId,"uid:"+this.uid);
+ this.client.join(this.channelKey , ""+this.channelId, this.uid, (uid)=> {
this.uid = uid;
- loger.log("User " + uid + " join channel successfully");
+ loger.log("加入视频通话频道->成功->channelId:"+this.channelId,"uid:"+this.uid);
this.openLoaclStream();
}, (err)=> {
- loger.log("Join channel failed", err);
+ loger.log("加入视频通话频道->失败->", err);
});
}
@@ -156,7 +158,7 @@ class WebRtcApe extends Emiter {
}
leaveChannel() {
- loger.log("AgoraRTC joinChannel");
+ loger.log("离开视频通话频道");
if (!this.client) {
return;
}
@@ -172,11 +174,11 @@ class WebRtcApe extends Emiter {
return;
}
this.localStream.init(()=> {
+ loger.log("webRtc->推流: ");
let viewName = this.localViewId.replace("#", "");
- loger.log("getUserMedia successfully", this.localViewId);
this.localStream.play(viewName);
this.client.publish(this.localStream, (err)=> {
- loger.log("Publish local stream error: " + err);
+ loger.log("webRtc->推流失败: " + err);
GlobalConfig.openCamera =0;
GlobalConfig.openMicrophones =0;
});
@@ -193,16 +195,17 @@ class WebRtcApe extends Emiter {
});
}, (err)=> {
- loger.log("getUserMedia failed", err);
+ loger.log("webRtc->推流->本地流开启失败", err);
});
}
unpublish() {
+ loger.log("webRtc->停止推流 ");
if (!this.client||!this.localStream) {
return;
}
this.client.unpublish(this.localStream, (err)=> {
- loger.log("Unpublish local stream failed" + err);
+ loger.log("webRtc->停止推流->失败" + err);
});
this.localStream.close();
$(this.localViewId).html("");