李勇

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

此 diff 太大无法显示。
... ... @@ -28,7 +28,7 @@ import MediaModule from 'apes/MediaModule';
import UTF8 from 'utf-8';
let loger = Loger.getLoger('McuClient');
let _sdkInfo = {"version": "v1.24.0.201705024", "author": "www.3mang.com"};
let _sdkInfo = {"version": "v1.25.2.201705025", "author": "www.3mang.com"};
//APE
let _sass;
... ... @@ -197,7 +197,7 @@ export default class MessageEntrance extends Emiter {
_setDebugInfo(_data){
loger.log("设置debug信息-->", _data);
if(_data){
Loger.IS_DEBUG=_data.isDebug;
Loger.setLogDebug(_data.isDebug);
}
}
//设置设备信息
... ... @@ -422,7 +422,7 @@ export default class MessageEntrance extends Emiter {
GlobalConfig.md5 = _data.md5 || "";//这个暂时用假数据,后台接口写完就有数据了
GlobalConfig.msType = _data.msType || 1;
GlobalConfig.siteId = _data.siteId || "";
GlobalConfig.classType = _data.meetingType || 0;
GlobalConfig.classType = _data.meetingType || ApeConsts.CLASS_TYPE_1;
//host默认需要密码,Sass服务器只判断学生是否需要密码,没有判断老师的
GlobalConfig.passwordRequired = _data.passwordRequired || false;//md5验证的时候需要Sass返回的值,不能更改
... ... @@ -488,7 +488,7 @@ export default class MessageEntrance extends Emiter {
GlobalConfig.setMcuList(_data.mcuList);//mcu
GlobalConfig.setMusicList(_data.musicList);//
GlobalConfig.setMusicListPrepare(_data.musicListPrepare);//提前上传的声音文件列表
GlobalConfig.setVideoCDNAddr(_data.videoCDNAddr);//cdn加速的拉流地址,直播的时候才使用
//MCU地址
if (_data.mcuList && _data.mcuList.length > 0) {
... ... @@ -526,6 +526,7 @@ export default class MessageEntrance extends Emiter {
GlobalConfig.MS_PLAY_RTMP_IP= GlobalConfig.MS_PUBLISH_IP;
GlobalConfig.MS_PLAY_RTMP_PORT =GlobalConfig.MS_PUBLISH_PORT;
}
loger.log('初始->MSPull->.', GlobalConfig.MS_PLAY_RTMP_IP, GlobalConfig.MS_PLAY_RTMP_PORT);
//播流的地址和推流地址需要分开的时候,单独设置拉流的地址 hls(目前乐视使用)
... ... @@ -542,6 +543,32 @@ export default class MessageEntrance extends Emiter {
loger.log('初始->MSHls->.', GlobalConfig.MS_PLAY_HLS_IP, GlobalConfig.MS_PLAY_HLS_PORT);
//直播的时候,拉流(rtmp和hls)需要从 videoCDNAddr中获取
if(GlobalConfig.classType==ApeConsts.CLASS_TYPE_2&&GlobalConfig.videoCDNAddrList.length>0){
//videoCDNAddrList中rtmppush和hls是混在一起的,需要分离开;
let listLen=GlobalConfig.videoCDNAddrList.length;
for(let i=0;i<listLen;i++){
let ipItem=GlobalConfig.videoCDNAddrList[i];
if(ipItem){
if(ipItem.indexOf('hls')>=0){
//直播的时候m3u8拉流地址
GlobalConfig.MS_PLAY_HLS_IP =ipItem;//ip包含了端口
GlobalConfig.MS_PLAY_HLS_PORT ="";
loger.log('videoCDNAddr>初始->MSHls', GlobalConfig.MS_PLAY_HLS_IP );
}else if(ipItem.indexOf('rtmppush')>=0){
//直播的时候rtmp拉流地址
GlobalConfig.MS_PLAY_RTMP_IP=ipItem;//ip包含了端口
GlobalConfig.MS_PLAY_RTMP_PORT ='';
loger.log('videoCDNAddr->初始->MSPull', GlobalConfig.MS_PLAY_RTMP_IP );
}
}
}
}else{
loger.log('不需要videoCDNAddr->');
}
//文档地址
if (_data.docList && _data.docList.length > 0) {
//doc上传地址,随机获取一个
... ... @@ -801,7 +828,7 @@ export default class MessageEntrance extends Emiter {
joinClassSuccessCallBackData.userRole = GlobalConfig.userRole;
joinClassSuccessCallBackData.userId = GlobalConfig.userId;
joinClassSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;
joinClassSuccessCallBackData.classType = GlobalConfig.classType || ApeConsts.CLASS_TYPE_INTERACT;
joinClassSuccessCallBackData.classType = GlobalConfig.classType || ApeConsts.CLASS_TYPE_1;
joinClassSuccessCallBackData.country = GlobalConfig.country;//国家
joinClassSuccessCallBackData.city = GlobalConfig.city;//城市
... ... @@ -1516,7 +1543,7 @@ export default class MessageEntrance extends Emiter {
joinClassSuccessCallBackData.userRole = GlobalConfig.userRole;
joinClassSuccessCallBackData.userId = GlobalConfig.userId;
joinClassSuccessCallBackData.passwordRequired = GlobalConfig.passwordRequired;
joinClassSuccessCallBackData.classType = GlobalConfig.classType || ApeConsts.CLASS_TYPE_INTERACT;
joinClassSuccessCallBackData.classType = GlobalConfig.classType || ApeConsts.CLASS_TYPE_1;
joinClassSuccessCallBackData.country = GlobalConfig.country;//国家
joinClassSuccessCallBackData.city = GlobalConfig.city;//城市
... ...
... ... @@ -269,6 +269,17 @@ class GlobalConfig {
static getRsList(){
return this.rsList;
}
//CDN加速的 拉流地址 rtmp 和hls(m3u8)
static setVideoCDNAddr(_data){
if(_data==null) return;
//ideoCDNAddr中的地址需要进行筛选,里面包含hls开头和rtmppush开头的地址
this.videoCDNAddr=_data||'';
if(this.videoCDNAddr){
this.videoCDNAddrList=this.videoCDNAddr.split(';');
}
loger.log("videoCDNAddrList->",this.videoCDNAddrList);
}
}
GlobalConfig.statusCode_0={"code":0,message:"SDK 未初始化"};
... ... @@ -365,7 +376,7 @@ GlobalConfig.topNodeID=101;//现在固定值,还不知道是做什么用
GlobalConfig.siteId="";//站点号
GlobalConfig.className= ""; // 课程名称
GlobalConfig.classId=0;//课堂号=classId=meetingNumber 之后统一修改为classId
GlobalConfig.classType=ApeConsts.CLASS_TYPE_INTERACT;//课堂类型 1:互动课堂,2:直播课堂
GlobalConfig.classType=ApeConsts.CLASS_TYPE_1;//课堂类型
GlobalConfig.classStatus=ApeConsts.CLASS_STATUS_WAIT;// 0;//课堂还未开始 1;//直播中 2 //课间休息 3已经停止
GlobalConfig.classStartTime="";//课堂点击开始时间
GlobalConfig.classStopTime="";//最后一次停止的时间(点暂停或结束),每次发送数据都获取当前时间戳
... ... @@ -403,7 +414,8 @@ GlobalConfig.msList=[];//ms服务器地址集合
GlobalConfig.musicList=[];//music服务器地址集合
GlobalConfig.musicListPrepare=[];//提提前上传的music集合
GlobalConfig.rsList=[];//录制回放中视频点播地址
GlobalConfig.videoCDNAddr='';
GlobalConfig.videoCDNAddrList=[];//从videoCDNAddr转换来的,videoCDNAddr字符串用分号隔开了多个ip
//乐视的推流和播放需要分开
GlobalConfig.pullRtmpList=[];//rtmp播流地址集合(推流和播流地址需要区分的站点使用)
... ...
... ... @@ -95,10 +95,14 @@ export default {
setLogLevel: function setLogLevel(logLevel) {
Loger.logLevel = logLevel;
},
setLogDebug: function setLogDebug(isDebug) {
Loger.IS_DEBUG = isDebug;
},
LOG: Loger.LOG,
WARN: Loger.WARN,
ERROR: Loger.ERROR,
NO: Loger.NO,
DATA: Loger.DATA,
IS_DEBUG:Loger.IS_DEBUG,
};
... ...
... ... @@ -25,10 +25,10 @@ ApeConsts.CLASS_PAUSING = "class.update";//更新当前的状态信息
ApeConsts.CLASS_ACTION_CLOSE_ALL=1;//所有人关闭课堂
ApeConsts.CLASS_ACTION_HANDUP_STATUS_CHANGE=2;//更改用户的举手状态
//课堂类型
ApeConsts.CLASS_TYPE_INTERACT= 1; // 互动课堂,通过MS转发音视频,不能进行H5观看
ApeConsts.CLASS_TYPE_LIVE= 2; // 直播课堂,通过CDN转发音视频,不能进行音视频互动
//课堂类型 1:1v1(2路流) 2:直播(1路流) 3:小班课(可以多路流)
ApeConsts.CLASS_TYPE_1= 1; // 互动课堂,通过MS转发音视频,不能进行H5观看 1v1(2路流)
ApeConsts.CLASS_TYPE_2= 2; // 直播课堂,通过CDN转发音视频,不能进行音视频互动 :直播(1路流)
ApeConsts.CLASS_TYPE_3= 2; // 直播课堂,通过CDN转发音视频,不能进行音视频互动 ::小班课(可以多路流)
//角色身份
//ApeConsts.NR_GUEST = 0; // 客人
... ...
... ... @@ -39,7 +39,8 @@ class MediaModule {
//乐视的hls地址规则
fileName='desc.m3u8';
}else {
fileName='index.m3u8';
//fileName='index.m3u8';
fileName='playlist.m3u8';
}
port = (GlobalConfig.MS_PLAY_HLS_PORT == "" || GlobalConfig.MS_PLAY_HLS_PORT == null) ? "":":" + GlobalConfig.MS_PLAY_HLS_PORT;
path = "http://" + GlobalConfig.MS_PLAY_HLS_IP
... ...