李勇

1.增加了直播的时候使用videoCDN地址,2.m3u8拉流的时候名称修改为playlist.m3u8;3.LOG增加debug状态的设置

此 diff 太大无法显示。
@@ -28,7 +28,7 @@ import MediaModule from 'apes/MediaModule'; @@ -28,7 +28,7 @@ import MediaModule from 'apes/MediaModule';
28 import UTF8 from 'utf-8'; 28 import UTF8 from 'utf-8';
29 29
30 let loger = Loger.getLoger('McuClient'); 30 let loger = Loger.getLoger('McuClient');
31 -let _sdkInfo = {"version": "v1.24.0.201705024", "author": "www.3mang.com"}; 31 +let _sdkInfo = {"version": "v1.25.2.201705025", "author": "www.3mang.com"};
32 32
33 //APE 33 //APE
34 let _sass; 34 let _sass;
@@ -197,7 +197,7 @@ export default class MessageEntrance extends Emiter { @@ -197,7 +197,7 @@ export default class MessageEntrance extends Emiter {
197 _setDebugInfo(_data){ 197 _setDebugInfo(_data){
198 loger.log("设置debug信息-->", _data); 198 loger.log("设置debug信息-->", _data);
199 if(_data){ 199 if(_data){
200 - Loger.IS_DEBUG=_data.isDebug; 200 + Loger.setLogDebug(_data.isDebug);
201 } 201 }
202 } 202 }
203 //设置设备信息 203 //设置设备信息
@@ -422,7 +422,7 @@ export default class MessageEntrance extends Emiter { @@ -422,7 +422,7 @@ export default class MessageEntrance extends Emiter {
422 GlobalConfig.md5 = _data.md5 || "";//这个暂时用假数据,后台接口写完就有数据了 422 GlobalConfig.md5 = _data.md5 || "";//这个暂时用假数据,后台接口写完就有数据了
423 GlobalConfig.msType = _data.msType || 1; 423 GlobalConfig.msType = _data.msType || 1;
424 GlobalConfig.siteId = _data.siteId || ""; 424 GlobalConfig.siteId = _data.siteId || "";
425 - GlobalConfig.classType = _data.meetingType || 0; 425 + GlobalConfig.classType = _data.meetingType || ApeConsts.CLASS_TYPE_1;
426 426
427 //host默认需要密码,Sass服务器只判断学生是否需要密码,没有判断老师的 427 //host默认需要密码,Sass服务器只判断学生是否需要密码,没有判断老师的
428 GlobalConfig.passwordRequired = _data.passwordRequired || false;//md5验证的时候需要Sass返回的值,不能更改 428 GlobalConfig.passwordRequired = _data.passwordRequired || false;//md5验证的时候需要Sass返回的值,不能更改
@@ -488,7 +488,7 @@ export default class MessageEntrance extends Emiter { @@ -488,7 +488,7 @@ export default class MessageEntrance extends Emiter {
488 GlobalConfig.setMcuList(_data.mcuList);//mcu 488 GlobalConfig.setMcuList(_data.mcuList);//mcu
489 GlobalConfig.setMusicList(_data.musicList);// 489 GlobalConfig.setMusicList(_data.musicList);//
490 GlobalConfig.setMusicListPrepare(_data.musicListPrepare);//提前上传的声音文件列表 490 GlobalConfig.setMusicListPrepare(_data.musicListPrepare);//提前上传的声音文件列表
491 - 491 + GlobalConfig.setVideoCDNAddr(_data.videoCDNAddr);//cdn加速的拉流地址,直播的时候才使用
492 492
493 //MCU地址 493 //MCU地址
494 if (_data.mcuList && _data.mcuList.length > 0) { 494 if (_data.mcuList && _data.mcuList.length > 0) {
@@ -526,6 +526,7 @@ export default class MessageEntrance extends Emiter { @@ -526,6 +526,7 @@ export default class MessageEntrance extends Emiter {
526 GlobalConfig.MS_PLAY_RTMP_IP= GlobalConfig.MS_PUBLISH_IP; 526 GlobalConfig.MS_PLAY_RTMP_IP= GlobalConfig.MS_PUBLISH_IP;
527 GlobalConfig.MS_PLAY_RTMP_PORT =GlobalConfig.MS_PUBLISH_PORT; 527 GlobalConfig.MS_PLAY_RTMP_PORT =GlobalConfig.MS_PUBLISH_PORT;
528 } 528 }
  529 +
529 loger.log('初始->MSPull->.', GlobalConfig.MS_PLAY_RTMP_IP, GlobalConfig.MS_PLAY_RTMP_PORT); 530 loger.log('初始->MSPull->.', GlobalConfig.MS_PLAY_RTMP_IP, GlobalConfig.MS_PLAY_RTMP_PORT);
530 531
531 //播流的地址和推流地址需要分开的时候,单独设置拉流的地址 hls(目前乐视使用) 532 //播流的地址和推流地址需要分开的时候,单独设置拉流的地址 hls(目前乐视使用)
@@ -542,6 +543,32 @@ export default class MessageEntrance extends Emiter { @@ -542,6 +543,32 @@ export default class MessageEntrance extends Emiter {
542 loger.log('初始->MSHls->.', GlobalConfig.MS_PLAY_HLS_IP, GlobalConfig.MS_PLAY_HLS_PORT); 543 loger.log('初始->MSHls->.', GlobalConfig.MS_PLAY_HLS_IP, GlobalConfig.MS_PLAY_HLS_PORT);
543 544
544 545
  546 + //直播的时候,拉流(rtmp和hls)需要从 videoCDNAddr中获取
  547 + if(GlobalConfig.classType==ApeConsts.CLASS_TYPE_2&&GlobalConfig.videoCDNAddrList.length>0){
  548 + //videoCDNAddrList中rtmppush和hls是混在一起的,需要分离开;
  549 + let listLen=GlobalConfig.videoCDNAddrList.length;
  550 + for(let i=0;i<listLen;i++){
  551 + let ipItem=GlobalConfig.videoCDNAddrList[i];
  552 + if(ipItem){
  553 + if(ipItem.indexOf('hls')>=0){
  554 + //直播的时候m3u8拉流地址
  555 + GlobalConfig.MS_PLAY_HLS_IP =ipItem;//ip包含了端口
  556 + GlobalConfig.MS_PLAY_HLS_PORT ="";
  557 + loger.log('videoCDNAddr>初始->MSHls', GlobalConfig.MS_PLAY_HLS_IP );
  558 + }else if(ipItem.indexOf('rtmppush')>=0){
  559 + //直播的时候rtmp拉流地址
  560 + GlobalConfig.MS_PLAY_RTMP_IP=ipItem;//ip包含了端口
  561 + GlobalConfig.MS_PLAY_RTMP_PORT ='';
  562 + loger.log('videoCDNAddr->初始->MSPull', GlobalConfig.MS_PLAY_RTMP_IP );
  563 + }
  564 + }
  565 + }
  566 +
  567 + }else{
  568 + loger.log('不需要videoCDNAddr->');
  569 + }
  570 +
  571 +
545 //文档地址 572 //文档地址
546 if (_data.docList && _data.docList.length > 0) { 573 if (_data.docList && _data.docList.length > 0) {
547 //doc上传地址,随机获取一个 574 //doc上传地址,随机获取一个
@@ -801,7 +828,7 @@ export default class MessageEntrance extends Emiter { @@ -801,7 +828,7 @@ export default class MessageEntrance extends Emiter {
801 joinClassSuccessCallBackData.userRole = GlobalConfig.userRole; 828 joinClassSuccessCallBackData.userRole = GlobalConfig.userRole;
802 joinClassSuccessCallBackData.userId = GlobalConfig.userId; 829 joinClassSuccessCallBackData.userId = GlobalConfig.userId;
803 joinClassSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired; 830 joinClassSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;
804 - joinClassSuccessCallBackData.classType = GlobalConfig.classType || ApeConsts.CLASS_TYPE_INTERACT; 831 + joinClassSuccessCallBackData.classType = GlobalConfig.classType || ApeConsts.CLASS_TYPE_1;
805 832
806 joinClassSuccessCallBackData.country = GlobalConfig.country;//国家 833 joinClassSuccessCallBackData.country = GlobalConfig.country;//国家
807 joinClassSuccessCallBackData.city = GlobalConfig.city;//城市 834 joinClassSuccessCallBackData.city = GlobalConfig.city;//城市
@@ -1516,7 +1543,7 @@ export default class MessageEntrance extends Emiter { @@ -1516,7 +1543,7 @@ export default class MessageEntrance extends Emiter {
1516 joinClassSuccessCallBackData.userRole = GlobalConfig.userRole; 1543 joinClassSuccessCallBackData.userRole = GlobalConfig.userRole;
1517 joinClassSuccessCallBackData.userId = GlobalConfig.userId; 1544 joinClassSuccessCallBackData.userId = GlobalConfig.userId;
1518 joinClassSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired; 1545 joinClassSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;
1519 - joinClassSuccessCallBackData.classType = GlobalConfig.classType || ApeConsts.CLASS_TYPE_INTERACT; 1546 + joinClassSuccessCallBackData.classType = GlobalConfig.classType || ApeConsts.CLASS_TYPE_1;
1520 1547
1521 joinClassSuccessCallBackData.country = GlobalConfig.country;//国家 1548 joinClassSuccessCallBackData.country = GlobalConfig.country;//国家
1522 joinClassSuccessCallBackData.city = GlobalConfig.city;//城市 1549 joinClassSuccessCallBackData.city = GlobalConfig.city;//城市
@@ -269,6 +269,17 @@ class GlobalConfig { @@ -269,6 +269,17 @@ class GlobalConfig {
269 static getRsList(){ 269 static getRsList(){
270 return this.rsList; 270 return this.rsList;
271 } 271 }
  272 +
  273 + //CDN加速的 拉流地址 rtmp 和hls(m3u8)
  274 + static setVideoCDNAddr(_data){
  275 + if(_data==null) return;
  276 + //ideoCDNAddr中的地址需要进行筛选,里面包含hls开头和rtmppush开头的地址
  277 + this.videoCDNAddr=_data||'';
  278 + if(this.videoCDNAddr){
  279 + this.videoCDNAddrList=this.videoCDNAddr.split(';');
  280 + }
  281 + loger.log("videoCDNAddrList->",this.videoCDNAddrList);
  282 + }
272 } 283 }
273 284
274 GlobalConfig.statusCode_0={"code":0,message:"SDK 未初始化"}; 285 GlobalConfig.statusCode_0={"code":0,message:"SDK 未初始化"};
@@ -365,7 +376,7 @@ GlobalConfig.topNodeID=101;//现在固定值,还不知道是做什么用 @@ -365,7 +376,7 @@ GlobalConfig.topNodeID=101;//现在固定值,还不知道是做什么用
365 GlobalConfig.siteId="";//站点号 376 GlobalConfig.siteId="";//站点号
366 GlobalConfig.className= ""; // 课程名称 377 GlobalConfig.className= ""; // 课程名称
367 GlobalConfig.classId=0;//课堂号=classId=meetingNumber 之后统一修改为classId 378 GlobalConfig.classId=0;//课堂号=classId=meetingNumber 之后统一修改为classId
368 -GlobalConfig.classType=ApeConsts.CLASS_TYPE_INTERACT;//课堂类型 1:互动课堂,2:直播课堂 379 +GlobalConfig.classType=ApeConsts.CLASS_TYPE_1;//课堂类型
369 GlobalConfig.classStatus=ApeConsts.CLASS_STATUS_WAIT;// 0;//课堂还未开始 1;//直播中 2 //课间休息 3已经停止 380 GlobalConfig.classStatus=ApeConsts.CLASS_STATUS_WAIT;// 0;//课堂还未开始 1;//直播中 2 //课间休息 3已经停止
370 GlobalConfig.classStartTime="";//课堂点击开始时间 381 GlobalConfig.classStartTime="";//课堂点击开始时间
371 GlobalConfig.classStopTime="";//最后一次停止的时间(点暂停或结束),每次发送数据都获取当前时间戳 382 GlobalConfig.classStopTime="";//最后一次停止的时间(点暂停或结束),每次发送数据都获取当前时间戳
@@ -403,7 +414,8 @@ GlobalConfig.msList=[];//ms服务器地址集合 @@ -403,7 +414,8 @@ GlobalConfig.msList=[];//ms服务器地址集合
403 GlobalConfig.musicList=[];//music服务器地址集合 414 GlobalConfig.musicList=[];//music服务器地址集合
404 GlobalConfig.musicListPrepare=[];//提提前上传的music集合 415 GlobalConfig.musicListPrepare=[];//提提前上传的music集合
405 GlobalConfig.rsList=[];//录制回放中视频点播地址 416 GlobalConfig.rsList=[];//录制回放中视频点播地址
406 - 417 +GlobalConfig.videoCDNAddr='';
  418 +GlobalConfig.videoCDNAddrList=[];//从videoCDNAddr转换来的,videoCDNAddr字符串用分号隔开了多个ip
407 419
408 //乐视的推流和播放需要分开 420 //乐视的推流和播放需要分开
409 GlobalConfig.pullRtmpList=[];//rtmp播流地址集合(推流和播流地址需要区分的站点使用) 421 GlobalConfig.pullRtmpList=[];//rtmp播流地址集合(推流和播流地址需要区分的站点使用)
@@ -95,10 +95,14 @@ export default { @@ -95,10 +95,14 @@ export default {
95 setLogLevel: function setLogLevel(logLevel) { 95 setLogLevel: function setLogLevel(logLevel) {
96 Loger.logLevel = logLevel; 96 Loger.logLevel = logLevel;
97 }, 97 },
  98 + setLogDebug: function setLogDebug(isDebug) {
  99 + Loger.IS_DEBUG = isDebug;
  100 + },
98 LOG: Loger.LOG, 101 LOG: Loger.LOG,
99 WARN: Loger.WARN, 102 WARN: Loger.WARN,
100 ERROR: Loger.ERROR, 103 ERROR: Loger.ERROR,
101 NO: Loger.NO, 104 NO: Loger.NO,
102 DATA: Loger.DATA, 105 DATA: Loger.DATA,
  106 + IS_DEBUG:Loger.IS_DEBUG,
103 }; 107 };
104 108
@@ -25,10 +25,10 @@ ApeConsts.CLASS_PAUSING = "class.update";//更新当前的状态信息 @@ -25,10 +25,10 @@ ApeConsts.CLASS_PAUSING = "class.update";//更新当前的状态信息
25 ApeConsts.CLASS_ACTION_CLOSE_ALL=1;//所有人关闭课堂 25 ApeConsts.CLASS_ACTION_CLOSE_ALL=1;//所有人关闭课堂
26 ApeConsts.CLASS_ACTION_HANDUP_STATUS_CHANGE=2;//更改用户的举手状态 26 ApeConsts.CLASS_ACTION_HANDUP_STATUS_CHANGE=2;//更改用户的举手状态
27 27
28 -//课堂类型  
29 -ApeConsts.CLASS_TYPE_INTERACT= 1; // 互动课堂,通过MS转发音视频,不能进行H5观看  
30 -ApeConsts.CLASS_TYPE_LIVE= 2; // 直播课堂,通过CDN转发音视频,不能进行音视频互动  
31 - 28 +//课堂类型 1:1v1(2路流) 2:直播(1路流) 3:小班课(可以多路流)
  29 +ApeConsts.CLASS_TYPE_1= 1; // 互动课堂,通过MS转发音视频,不能进行H5观看 1v1(2路流)
  30 +ApeConsts.CLASS_TYPE_2= 2; // 直播课堂,通过CDN转发音视频,不能进行音视频互动 :直播(1路流)
  31 +ApeConsts.CLASS_TYPE_3= 2; // 直播课堂,通过CDN转发音视频,不能进行音视频互动 ::小班课(可以多路流)
32 32
33 //角色身份 33 //角色身份
34 //ApeConsts.NR_GUEST = 0; // 客人 34 //ApeConsts.NR_GUEST = 0; // 客人
@@ -39,7 +39,8 @@ class MediaModule { @@ -39,7 +39,8 @@ class MediaModule {
39 //乐视的hls地址规则 39 //乐视的hls地址规则
40 fileName='desc.m3u8'; 40 fileName='desc.m3u8';
41 }else { 41 }else {
42 - fileName='index.m3u8'; 42 + //fileName='index.m3u8';
  43 + fileName='playlist.m3u8';
43 } 44 }
44 port = (GlobalConfig.MS_PLAY_HLS_PORT == "" || GlobalConfig.MS_PLAY_HLS_PORT == null) ? "":":" + GlobalConfig.MS_PLAY_HLS_PORT; 45 port = (GlobalConfig.MS_PLAY_HLS_PORT == "" || GlobalConfig.MS_PLAY_HLS_PORT == null) ? "":":" + GlobalConfig.MS_PLAY_HLS_PORT;
45 path = "http://" + GlobalConfig.MS_PLAY_HLS_IP 46 path = "http://" + GlobalConfig.MS_PLAY_HLS_IP