正在显示
3 个修改的文件
包含
99 行增加
和
20 行删除
| @@ -59,7 +59,7 @@ export default class MessageEntrance extends Emiter { | @@ -59,7 +59,7 @@ export default class MessageEntrance extends Emiter { | ||
| 59 | constructor() { | 59 | constructor() { |
| 60 | super(); | 60 | super(); |
| 61 | //sdk 信息 | 61 | //sdk 信息 |
| 62 | - GlobalConfig.sdkVersion = "v2.1.17.20170902"; | 62 | + GlobalConfig.sdkVersion = "v2.1.22.20170904"; |
| 63 | loger.warn("sdkVersion:" + GlobalConfig.sdkVersion); | 63 | loger.warn("sdkVersion:" + GlobalConfig.sdkVersion); |
| 64 | 64 | ||
| 65 | //设置 | 65 | //设置 |
| @@ -1048,6 +1048,12 @@ export default class MessageEntrance extends Emiter { | @@ -1048,6 +1048,12 @@ export default class MessageEntrance extends Emiter { | ||
| 1048 | GlobalConfig.screenWidth = window.screen.width; | 1048 | GlobalConfig.screenWidth = window.screen.width; |
| 1049 | GlobalConfig.screenHeight = window.screen.height; | 1049 | GlobalConfig.screenHeight = window.screen.height; |
| 1050 | 1050 | ||
| 1051 | + | ||
| 1052 | + GlobalConfig.channelId = ""+GlobalConfig.siteId+"_"+GlobalConfig.classId; | ||
| 1053 | + GlobalConfig.userUid = GlobalConfig.nodeId; | ||
| 1054 | + GlobalConfig.channelKey=null; | ||
| 1055 | + | ||
| 1056 | + | ||
| 1051 | //返回给客户端初始化成功的数据 | 1057 | //返回给客户端初始化成功的数据 |
| 1052 | let joinClassSuccessCallBackData = {}; | 1058 | let joinClassSuccessCallBackData = {}; |
| 1053 | 1059 | ||
| @@ -1110,6 +1116,14 @@ export default class MessageEntrance extends Emiter { | @@ -1110,6 +1116,14 @@ export default class MessageEntrance extends Emiter { | ||
| 1110 | joinClassSuccessCallBackData.explorerVersion = GlobalConfig.explorerVersion; | 1116 | joinClassSuccessCallBackData.explorerVersion = GlobalConfig.explorerVersion; |
| 1111 | joinClassSuccessCallBackData.os = GlobalConfig.os; | 1117 | joinClassSuccessCallBackData.os = GlobalConfig.os; |
| 1112 | 1118 | ||
| 1119 | + | ||
| 1120 | + joinClassSuccessCallBackData.channelId =GlobalConfig.channelId ; | ||
| 1121 | + joinClassSuccessCallBackData.channelKey =GlobalConfig.channelKey ; | ||
| 1122 | + joinClassSuccessCallBackData.userUid = GlobalConfig.userUid; | ||
| 1123 | + joinClassSuccessCallBackData.appId = GlobalConfig.appId; | ||
| 1124 | + joinClassSuccessCallBackData.appCertificate = GlobalConfig.appCertificate; | ||
| 1125 | + joinClassSuccessCallBackData.appRecordingKey = GlobalConfig.appRecordingKey; | ||
| 1126 | + | ||
| 1113 | //设置日志上报所需的信息 | 1127 | //设置日志上报所需的信息 |
| 1114 | LogManager.serverAndLoacTimeDistanc = GlobalConfig.serverAndLoacTimeDistanc;//本地时间和服务器时间的差值(秒) | 1128 | LogManager.serverAndLoacTimeDistanc = GlobalConfig.serverAndLoacTimeDistanc;//本地时间和服务器时间的差值(秒) |
| 1115 | LogManager.classId = GlobalConfig.classId;//课堂号 | 1129 | LogManager.classId = GlobalConfig.classId;//课堂号 |
| @@ -1126,7 +1140,7 @@ export default class MessageEntrance extends Emiter { | @@ -1126,7 +1140,7 @@ export default class MessageEntrance extends Emiter { | ||
| 1126 | this._emit(MessageTypes.CLASS_JOIN_SUCCESS, joinClassSuccessCallBackData); | 1140 | this._emit(MessageTypes.CLASS_JOIN_SUCCESS, joinClassSuccessCallBackData); |
| 1127 | 1141 | ||
| 1128 | //加入音视频通话模块 | 1142 | //加入音视频通话模块 |
| 1129 | - this._joinChannel({channelId:GlobalConfig.siteId+"_"+GlobalConfig.classId,uid:GlobalConfig.nodeId,info:""+GlobalConfig.userRole}); | 1143 | + this._joinChannel({channelId:GlobalConfig.channelId,channelKey:GlobalConfig.channelKey ,uid:GlobalConfig.userUid,info:""+GlobalConfig.userRole}); |
| 1130 | } | 1144 | } |
| 1131 | 1145 | ||
| 1132 | //切换MCU ->_param->{reConnect:false} //reConnect(是否立即替换当前的ip并且重新连接) | 1146 | //切换MCU ->_param->{reConnect:false} //reConnect(是否立即替换当前的ip并且重新连接) |
| @@ -1613,6 +1627,10 @@ export default class MessageEntrance extends Emiter { | @@ -1613,6 +1627,10 @@ export default class MessageEntrance extends Emiter { | ||
| 1613 | GlobalConfig.setMediaShareList(_data.sharedMediaList); //提前上传的媒体共享文件列表 | 1627 | GlobalConfig.setMediaShareList(_data.sharedMediaList); //提前上传的媒体共享文件列表 |
| 1614 | 1628 | ||
| 1615 | 1629 | ||
| 1630 | + GlobalConfig.appId = 'eb253cc7b40c4a8b82f0a5b6f93c2ce0'; | ||
| 1631 | + GlobalConfig.appCertificate = ""; | ||
| 1632 | + GlobalConfig.appRecordingKey = ""; | ||
| 1633 | + | ||
| 1616 | //文档服务器地址 | 1634 | //文档服务器地址 |
| 1617 | if (GlobalConfig.docList && GlobalConfig.docList.length > 0) { | 1635 | if (GlobalConfig.docList && GlobalConfig.docList.length > 0) { |
| 1618 | //doc上传地址,随机获取一个 | 1636 | //doc上传地址,随机获取一个 |
| @@ -1688,7 +1706,6 @@ export default class MessageEntrance extends Emiter { | @@ -1688,7 +1706,6 @@ export default class MessageEntrance extends Emiter { | ||
| 1688 | } else { | 1706 | } else { |
| 1689 | //根据用户的userIp获取信息,获取服务列表选点,选点测速完成后才加入MCU | 1707 | //根据用户的userIp获取信息,获取服务列表选点,选点测速完成后才加入MCU |
| 1690 | this.loadServerJsonAndgetUserIpInfo(); | 1708 | this.loadServerJsonAndgetUserIpInfo(); |
| 1691 | - | ||
| 1692 | //初始化音视频通话sdk | 1709 | //初始化音视频通话sdk |
| 1693 | this._initWebRtcSdk(); | 1710 | this._initWebRtcSdk(); |
| 1694 | } | 1711 | } |
| @@ -2565,6 +2582,10 @@ export default class MessageEntrance extends Emiter { | @@ -2565,6 +2582,10 @@ export default class MessageEntrance extends Emiter { | ||
| 2565 | * 初始化webRtc | 2582 | * 初始化webRtc |
| 2566 | * */ | 2583 | * */ |
| 2567 | _initWebRtcSdk(_params){ | 2584 | _initWebRtcSdk(_params){ |
| 2585 | + if(GlobalConfig.deviceType==1||GlobalConfig.deviceType==2){ | ||
| 2586 | + loger.warn("移动端不需要处理初始化webRtc"); | ||
| 2587 | + return ; | ||
| 2588 | + } | ||
| 2568 | if(_webRtc){ | 2589 | if(_webRtc){ |
| 2569 | _webRtc.initApp(_params) | 2590 | _webRtc.initApp(_params) |
| 2570 | } | 2591 | } |
| @@ -2573,6 +2594,10 @@ export default class MessageEntrance extends Emiter { | @@ -2573,6 +2594,10 @@ export default class MessageEntrance extends Emiter { | ||
| 2573 | * 加入视频通话 | 2594 | * 加入视频通话 |
| 2574 | * */ | 2595 | * */ |
| 2575 | _joinChannel(_params){ | 2596 | _joinChannel(_params){ |
| 2597 | + if(GlobalConfig.deviceType==1||GlobalConfig.deviceType==2){ | ||
| 2598 | + loger.warn("移动端不需要处理加入视频房间"); | ||
| 2599 | + return ; | ||
| 2600 | + } | ||
| 2576 | if(_webRtc){ | 2601 | if(_webRtc){ |
| 2577 | _webRtc.joinChannel(_params); | 2602 | _webRtc.joinChannel(_params); |
| 2578 | } | 2603 | } |
| @@ -2581,6 +2606,9 @@ export default class MessageEntrance extends Emiter { | @@ -2581,6 +2606,9 @@ export default class MessageEntrance extends Emiter { | ||
| 2581 | * 离开视频通话频道 | 2606 | * 离开视频通话频道 |
| 2582 | * */ | 2607 | * */ |
| 2583 | _leaveChannel(_params){ | 2608 | _leaveChannel(_params){ |
| 2609 | + if(GlobalConfig.deviceType==1||GlobalConfig.deviceType==2){ | ||
| 2610 | + return ; | ||
| 2611 | + } | ||
| 2584 | if(_webRtc){ | 2612 | if(_webRtc){ |
| 2585 | _webRtc.leaveChannel(_params); | 2613 | _webRtc.leaveChannel(_params); |
| 2586 | } | 2614 | } |
| @@ -2589,6 +2617,22 @@ export default class MessageEntrance extends Emiter { | @@ -2589,6 +2617,22 @@ export default class MessageEntrance extends Emiter { | ||
| 2589 | * 发布流 | 2617 | * 发布流 |
| 2590 | * */ | 2618 | * */ |
| 2591 | _publishMedia(_params){ | 2619 | _publishMedia(_params){ |
| 2620 | + //ios和安卓的只需要更新数据即可 | ||
| 2621 | + if(GlobalConfig.deviceType==1||GlobalConfig.deviceType==2){ | ||
| 2622 | + loger.log("调用webRtc推流"); | ||
| 2623 | + GlobalConfig.openCamera = EngineUtils.creatTimestamp(); | ||
| 2624 | + GlobalConfig.openMicrophones = GlobalConfig.openCamera; | ||
| 2625 | + this.userDeviecStatusChange({ | ||
| 2626 | + nodeId: GlobalConfig.nodeId, | ||
| 2627 | + userRole: GlobalConfig.userRole, | ||
| 2628 | + userName: GlobalConfig.userName, | ||
| 2629 | + userId: GlobalConfig.userId, | ||
| 2630 | + openCamera: GlobalConfig.openCamera, | ||
| 2631 | + openMicrophones: GlobalConfig.openMicrophones | ||
| 2632 | + }); | ||
| 2633 | + return ; | ||
| 2634 | + } | ||
| 2635 | + | ||
| 2592 | if(_webRtc){ | 2636 | if(_webRtc){ |
| 2593 | _webRtc.publish(_params); | 2637 | _webRtc.publish(_params); |
| 2594 | } | 2638 | } |
| @@ -2597,6 +2641,22 @@ export default class MessageEntrance extends Emiter { | @@ -2597,6 +2641,22 @@ export default class MessageEntrance extends Emiter { | ||
| 2597 | * 停止发布流 | 2641 | * 停止发布流 |
| 2598 | * */ | 2642 | * */ |
| 2599 | _unpublishMedia(_params){ | 2643 | _unpublishMedia(_params){ |
| 2644 | + //ios和安卓的只需要更新数据即可 | ||
| 2645 | + if(GlobalConfig.deviceType==1||GlobalConfig.deviceType==2){ | ||
| 2646 | + loger.log("调用webRtc停止推流"); | ||
| 2647 | + GlobalConfig.openCamera =0; | ||
| 2648 | + GlobalConfig.openMicrophones =0; | ||
| 2649 | + this.userDeviecStatusChange({ | ||
| 2650 | + nodeId: GlobalConfig.nodeId, | ||
| 2651 | + userRole: GlobalConfig.userRole, | ||
| 2652 | + userName: GlobalConfig.userName, | ||
| 2653 | + userId: GlobalConfig.userId, | ||
| 2654 | + openCamera: GlobalConfig.openCamera, | ||
| 2655 | + openMicrophones: GlobalConfig.openMicrophones | ||
| 2656 | + }); | ||
| 2657 | + return ; | ||
| 2658 | + } | ||
| 2659 | + | ||
| 2600 | if(_webRtc){ | 2660 | if(_webRtc){ |
| 2601 | _webRtc.unpublish(_params); | 2661 | _webRtc.unpublish(_params); |
| 2602 | } | 2662 | } |
| @@ -58,6 +58,12 @@ class GlobalConfig { | @@ -58,6 +58,12 @@ class GlobalConfig { | ||
| 58 | classInfo.ssTunnelAppURL = this.ssTunnelAppURL; | 58 | classInfo.ssTunnelAppURL = this.ssTunnelAppURL; |
| 59 | classInfo.currentSceneTableId = this.currentSceneTableId; //文档区域的模块显示 | 59 | classInfo.currentSceneTableId = this.currentSceneTableId; //文档区域的模块显示 |
| 60 | classInfo.serverAndLoacTimeDistanc = this.serverAndLoacTimeDistanc; | 60 | classInfo.serverAndLoacTimeDistanc = this.serverAndLoacTimeDistanc; |
| 61 | + classInfo.appId = this.appId; | ||
| 62 | + classInfo.appCertificate = this.appCertificate; | ||
| 63 | + classInfo.appRecordingKey = this.appRecordingKey; | ||
| 64 | + classInfo.channelId =this.channelId ; | ||
| 65 | + classInfo.channelKey =this.channelKey ; | ||
| 66 | + classInfo.userUid = this.userUid; | ||
| 61 | return classInfo; | 67 | return classInfo; |
| 62 | 68 | ||
| 63 | } | 69 | } |
| @@ -548,5 +554,15 @@ GlobalConfig.os="未知";//系统 | @@ -548,5 +554,15 @@ GlobalConfig.os="未知";//系统 | ||
| 548 | GlobalConfig.locationProtocol="http://";//https;或http: | 554 | GlobalConfig.locationProtocol="http://";//https;或http: |
| 549 | GlobalConfig.websocketProtocol="ws://";//wss或ws | 555 | GlobalConfig.websocketProtocol="ws://";//wss或ws |
| 550 | GlobalConfig.isHttps=false;//是否是https | 556 | GlobalConfig.isHttps=false;//是否是https |
| 557 | + | ||
| 558 | + | ||
| 559 | +//webRtc | ||
| 560 | +GlobalConfig.appId = 'eb253cc7b40c4a8b82f0a5b6f93c2ce0'; | ||
| 561 | +GlobalConfig.appCertificate = ""; | ||
| 562 | +GlobalConfig.appRecordingKey = ""; | ||
| 563 | +GlobalConfig.channelId = ""; | ||
| 564 | +GlobalConfig.channelKey = null; | ||
| 565 | +GlobalConfig.userUid = 0; | ||
| 566 | + | ||
| 551 | export default GlobalConfig; | 567 | export default GlobalConfig; |
| 552 | 568 |
| @@ -18,6 +18,7 @@ class WebRtcApe extends Emiter { | @@ -18,6 +18,7 @@ class WebRtcApe extends Emiter { | ||
| 18 | this.appCertificate = ""; | 18 | this.appCertificate = ""; |
| 19 | this.appRecordingKey = ""; | 19 | this.appRecordingKey = ""; |
| 20 | 20 | ||
| 21 | + this.channelKey=null; | ||
| 21 | this.channelId = ""; | 22 | this.channelId = ""; |
| 22 | this.uid = 0; | 23 | this.uid = 0; |
| 23 | this.info = "" | 24 | this.info = "" |
| @@ -48,29 +49,30 @@ class WebRtcApe extends Emiter { | @@ -48,29 +49,30 @@ class WebRtcApe extends Emiter { | ||
| 48 | } | 49 | } |
| 49 | 50 | ||
| 50 | initApp(_params) { | 51 | initApp(_params) { |
| 51 | - loger.log("AgoraRTC client init"); | 52 | + loger.log("初始化WebRtc"); |
| 52 | if (_params) { | 53 | if (_params) { |
| 53 | this.appId = _params.appId; | 54 | this.appId = _params.appId; |
| 54 | } | 55 | } |
| 55 | if (this.client) { | 56 | if (this.client) { |
| 56 | this.client.init(this.appId, () => { | 57 | this.client.init(this.appId, () => { |
| 57 | - loger.log("AgoraRTC client init success"); | 58 | + loger.log("初始化WebRtc->成功"); |
| 58 | }, (err)=> { | 59 | }, (err)=> { |
| 59 | - loger.error("AgoraRTC client init failed", err); | 60 | + loger.error("初始化WebRtc->失败", err); |
| 61 | + | ||
| 60 | }); | 62 | }); |
| 61 | this.addEvent(); | 63 | this.addEvent(); |
| 62 | } | 64 | } |
| 63 | } | 65 | } |
| 64 | 66 | ||
| 65 | addEvent() { | 67 | addEvent() { |
| 66 | - loger.log("AgoraRTC addEvent"); | 68 | + loger.log("监听webRtc消息"); |
| 67 | if (!this.client) { | 69 | if (!this.client) { |
| 68 | loger.log("addEvent error:client is null"); | 70 | loger.log("addEvent error:client is null"); |
| 69 | return; | 71 | return; |
| 70 | } | 72 | } |
| 71 | this.channelKey = ""; | 73 | this.channelKey = ""; |
| 72 | this.client.on('error', (err) => { | 74 | this.client.on('error', (err) => { |
| 73 | - loger.log("Got error msg:", err.reason); | 75 | + loger.log("WebRtc异常:", err.reason); |
| 74 | if (err.reason === 'DYNAMIC_KEY_TIMEOUT') { | 76 | if (err.reason === 'DYNAMIC_KEY_TIMEOUT') { |
| 75 | this.client.renewChannelKey(this.channelKey, ()=> { | 77 | this.client.renewChannelKey(this.channelKey, ()=> { |
| 76 | loger.log("Renew channel key successfully"); | 78 | loger.log("Renew channel key successfully"); |
| @@ -113,12 +115,12 @@ class WebRtcApe extends Emiter { | @@ -113,12 +115,12 @@ class WebRtcApe extends Emiter { | ||
| 113 | if (stream) { | 115 | if (stream) { |
| 114 | stream.stop(); | 116 | stream.stop(); |
| 115 | $('#' + this.xdyRemote + stream.getId()).remove(); | 117 | $('#' + this.xdyRemote + stream.getId()).remove(); |
| 116 | - loger.log(evt.uid + " leaved from this channel"); | 118 | + loger.log(evt.uid + " ->离开视频通话频道"); |
| 117 | } | 119 | } |
| 118 | }); | 120 | }); |
| 119 | this.client.on("active-speaker", (evt)=> { | 121 | this.client.on("active-speaker", (evt)=> { |
| 120 | let uid = evt.uid; | 122 | let uid = evt.uid; |
| 121 | - loger.log("update active speaker: client" + uid); | 123 | + loger.log("当前正在讲话的uid:" + uid); |
| 122 | }); | 124 | }); |
| 123 | } | 125 | } |
| 124 | 126 | ||
| @@ -126,15 +128,15 @@ class WebRtcApe extends Emiter { | @@ -126,15 +128,15 @@ class WebRtcApe extends Emiter { | ||
| 126 | this.channelId = _params.channelId||""; | 128 | this.channelId = _params.channelId||""; |
| 127 | this.uid = parseInt(_params.uid)||0; | 129 | this.uid = parseInt(_params.uid)||0; |
| 128 | this.info =_params.info || ""; | 130 | this.info =_params.info || ""; |
| 129 | - let dynamic_key = null; | 131 | + this.channelKey = _params.channelKey||null; |
| 130 | 132 | ||
| 131 | - loger.log("AgoraRTC joinChannel","channelId:"+this.channelId,"uid:"+this.uid); | ||
| 132 | - this.client.join(dynamic_key, ""+this.channelId, this.uid, (uid)=> { | 133 | + loger.log("加入视频通话频道->channelId:"+this.channelId,"uid:"+this.uid); |
| 134 | + this.client.join(this.channelKey , ""+this.channelId, this.uid, (uid)=> { | ||
| 133 | this.uid = uid; | 135 | this.uid = uid; |
| 134 | - loger.log("User " + uid + " join channel successfully"); | 136 | + loger.log("加入视频通话频道->成功->channelId:"+this.channelId,"uid:"+this.uid); |
| 135 | this.openLoaclStream(); | 137 | this.openLoaclStream(); |
| 136 | }, (err)=> { | 138 | }, (err)=> { |
| 137 | - loger.log("Join channel failed", err); | 139 | + loger.log("加入视频通话频道->失败->", err); |
| 138 | }); | 140 | }); |
| 139 | } | 141 | } |
| 140 | 142 | ||
| @@ -156,7 +158,7 @@ class WebRtcApe extends Emiter { | @@ -156,7 +158,7 @@ class WebRtcApe extends Emiter { | ||
| 156 | } | 158 | } |
| 157 | 159 | ||
| 158 | leaveChannel() { | 160 | leaveChannel() { |
| 159 | - loger.log("AgoraRTC joinChannel"); | 161 | + loger.log("离开视频通话频道"); |
| 160 | if (!this.client) { | 162 | if (!this.client) { |
| 161 | return; | 163 | return; |
| 162 | } | 164 | } |
| @@ -172,11 +174,11 @@ class WebRtcApe extends Emiter { | @@ -172,11 +174,11 @@ class WebRtcApe extends Emiter { | ||
| 172 | return; | 174 | return; |
| 173 | } | 175 | } |
| 174 | this.localStream.init(()=> { | 176 | this.localStream.init(()=> { |
| 177 | + loger.log("webRtc->推流: "); | ||
| 175 | let viewName = this.localViewId.replace("#", ""); | 178 | let viewName = this.localViewId.replace("#", ""); |
| 176 | - loger.log("getUserMedia successfully", this.localViewId); | ||
| 177 | this.localStream.play(viewName); | 179 | this.localStream.play(viewName); |
| 178 | this.client.publish(this.localStream, (err)=> { | 180 | this.client.publish(this.localStream, (err)=> { |
| 179 | - loger.log("Publish local stream error: " + err); | 181 | + loger.log("webRtc->推流失败: " + err); |
| 180 | GlobalConfig.openCamera =0; | 182 | GlobalConfig.openCamera =0; |
| 181 | GlobalConfig.openMicrophones =0; | 183 | GlobalConfig.openMicrophones =0; |
| 182 | }); | 184 | }); |
| @@ -193,16 +195,17 @@ class WebRtcApe extends Emiter { | @@ -193,16 +195,17 @@ class WebRtcApe extends Emiter { | ||
| 193 | }); | 195 | }); |
| 194 | 196 | ||
| 195 | }, (err)=> { | 197 | }, (err)=> { |
| 196 | - loger.log("getUserMedia failed", err); | 198 | + loger.log("webRtc->推流->本地流开启失败", err); |
| 197 | }); | 199 | }); |
| 198 | } | 200 | } |
| 199 | 201 | ||
| 200 | unpublish() { | 202 | unpublish() { |
| 203 | + loger.log("webRtc->停止推流 "); | ||
| 201 | if (!this.client||!this.localStream) { | 204 | if (!this.client||!this.localStream) { |
| 202 | return; | 205 | return; |
| 203 | } | 206 | } |
| 204 | this.client.unpublish(this.localStream, (err)=> { | 207 | this.client.unpublish(this.localStream, (err)=> { |
| 205 | - loger.log("Unpublish local stream failed" + err); | 208 | + loger.log("webRtc->停止推流->失败" + err); |
| 206 | }); | 209 | }); |
| 207 | this.localStream.close(); | 210 | this.localStream.close(); |
| 208 | $(this.localViewId).html(""); | 211 | $(this.localViewId).html(""); |
-
请 注册 或 登录 后发表评论