李勇

增加屏幕共享插件的下载地址,从Sass中获取

此 diff 太大无法显示。
... ... @@ -28,7 +28,7 @@ import MediaModule from 'apes/MediaModule';
import UTF8 from 'utf-8';
let loger = Loger.getLoger('McuClient');
let _sdkInfo = {"version": "v1.27.10.201705026", "author": "www.3mang.com"};
let _sdkInfo = {"version": "v1.27.14.201705027", "author": "www.3mang.com"};
//APE
let _sass;
... ... @@ -477,6 +477,9 @@ export default class MessageEntrance extends Emiter {
GlobalConfig.maxVideoChannels = _data.maxVideoChannels;
GlobalConfig.maxAudioChannels = _data.maxAudioChannels;
GlobalConfig.maxMediaChannels=Math.max(GlobalConfig.maxVideoChannels,GlobalConfig.maxAudioChannels);
GlobalConfig.ssTunnelAppURL=_data.ssTunnelAppURL||'';//屏幕共享插件的地址
//视频质量相关设置
GlobalConfig.fps = _data.fps || 15;
GlobalConfig.gop = _data.gop || 3;
... ... @@ -848,6 +851,9 @@ export default class MessageEntrance extends Emiter {
joinClassSuccessCallBackData.gop = GlobalConfig.gop;
joinClassSuccessCallBackData.videoQuality = GlobalConfig.videoQuality;
joinClassSuccessCallBackData.ssTunnelAppURL = GlobalConfig.ssTunnelAppURL;
loger.log('加入课堂成功->');
loger.log(joinClassSuccessCallBackData);
... ... @@ -899,8 +905,8 @@ export default class MessageEntrance extends Emiter {
//课堂状态发生改变,需要停止当前的所有推流
_stopAllMediaPublishHandler(_data){
loger.log('课堂状态发生改变,需要停止当前的所有推流');
MessageTypes.STOP_ALL_MEDIA_PUBLISH
let allChannels=MediaModule.allMediaChannelsList;
this._emit(MessageTypes.MEDIA_STOP_PUBLISH);
/* let allChannels=MediaModule.allMediaChannelsList;
let channl=null;
for(let i in allChannels){
channl=allChannels[i];
... ... @@ -908,7 +914,7 @@ export default class MessageEntrance extends Emiter {
this._emit(MessageTypes.MEDIA_STOP_PUBLISH);
return;
}
}
}*/
}
//切换MS ->_param->{reConnect:false} //reConnect(是否立即替换当前的ip并且重新连接)
... ... @@ -1577,6 +1583,8 @@ export default class MessageEntrance extends Emiter {
joinClassSuccessCallBackData.gop = GlobalConfig.gop;
joinClassSuccessCallBackData.videoQuality = GlobalConfig.videoQuality;
joinClassSuccessCallBackData.ssTunnelAppURL = GlobalConfig.ssTunnelAppURL;
loger.log(joinClassSuccessCallBackData);
//和加入课堂成功使用同样的消息处理
this._emit(MessageTypes.CLASS_JOIN_SUCCESS, joinClassSuccessCallBackData);
... ...
... ... @@ -56,7 +56,7 @@ class GlobalConfig {
classInfo.fps=this.fps;
classInfo.gop=this.gop;
classInfo.videoQuality=this.videoQuality;
classInfo.ssTunnelAppURL = this.ssTunnelAppURL;
return classInfo;
}
... ... @@ -437,7 +437,7 @@ GlobalConfig.isRecordPlayBack=false;//是否是录制回放,默认是否
GlobalConfig.allowRecordMaxTime=14400;//(秒)允许录制的最长时间,默认是4小时
GlobalConfig.siteId_letv='shchuanbao';//乐视,MS不需要动态选点的站点
GlobalConfig.ssTunnelAppURL='';//屏幕共享插件的地址
... ...
... ... @@ -76,6 +76,8 @@ MessageTypes.PUBLISH_SCREEN_SHARE_CLOSE= "publish_screen_share_close";//灞忓箷鍏
MessageTypes.PUBLISH_SCREEN_SHARE_DISCONNECT= "publish_screen_share_disconnect";//屏幕共享服务器没有连接
MessageTypes.PUBLISH_SCREEN_SHARE_CONNECTED= "publish_screen_share_connected";//获取屏幕共享服务器已经连接
MessageTypes.PUBLISH_SCREEN_MOVIE_INFO_CHANGE= "publish_screen_movie_info_change";//媒体信息
MessageTypes.PUBLISH_SCREEN_VIDEO_INFO_CHANGE= "publish_screen_video_info_change";//视频信息
//文档模块事件定义
MessageTypes.DOC_DELETE="document_delete";//'document.delete';//删除文档
... ...
... ... @@ -31,7 +31,8 @@ class VideoApe extends Ape {
this.shareApe.on(MessageTypes.PUBLISH_SCREEN_SHARE_CLOSE,this.onPublishScreenShareClose.bind(this));
this.shareApe.on(MessageTypes.PUBLISH_SCREEN_SHARE_DISCONNECT,this.onPublishScreenShareDisconnect.bind(this));
this.shareApe.on(MessageTypes.PUBLISH_SCREEN_SHARE_CONNECTED,this.onPublishScreenShareConnected.bind(this));
this.shareApe.on( MessageTypes.PUBLISH_SCREEN_MOVIE_INFO_CHANGE,this.onPublishScreenMovieInfoChange.bind(this));
this.shareApe.on(MessageTypes.PUBLISH_SCREEN_VIDEO_INFO_CHANGE,this.onPublishScreenVideoInfoChange.bind(this));
// Ape Models
this.registerKey(this._session_id, this._session_name, this._session_tag, new ArrayBuffer);
... ... @@ -214,6 +215,15 @@ class VideoApe extends Ape {
loger.log('屏幕共享服务器连接成功->');
this._emit(MessageTypes.PUBLISH_SCREEN_SHARE_CONNECTED);
}
onPublishScreenMovieInfoChange(data){
loger.log('屏幕共享MOVIE信息发生改变->');
this._emit(MessageTypes.PUBLISH_SCREEN_MOVIE_INFO_CHANGE,data);
}
onPublishScreenVideoInfoChange(data){
loger.log('屏幕共享视频信息发生改变->');
this._emit(MessageTypes.PUBLISH_SCREEN_VIDEO_INFO_CHANGE,data);
}
//桌面共享推流
publishScreenShare(_param) {
if(!this.mcu.connected){
... ... @@ -221,53 +231,6 @@ class VideoApe extends Ape {
this._emit( MessageTypes.VIDEO_PUBLISH_RESULT,{"code": ApeConsts.RETURN_FAILED, "data":"已经断开连接!","mediaId":0});
return {"code": ApeConsts.RETURN_FAILED, "data": "已经断开连接"};
}
/* if (_param == null||_param.publishUrl == null)
{
loger.warn('桌面共享推流->参数错误', _param);
this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG);
this._emit( MessageTypes.VIDEO_PUBLISH_RESULT,{"code": ApeConsts.RETURN_FAILED, "data":"桌面共享推流参数错误!","mediaId":0});
return {"code": ApeConsts.RETURN_FAILED, "data": "桌面共享推流参数错误"};
}*/
/*
//根据推流的地址获取对应的频道信息
let needPublishChannelInfo=this.mediaModule.getNeedPublishMediaChannel(_param.publishUrl);
if(needPublishChannelInfo==null){
loger.warn('桌面共享推流->推流数据已经无效', _param);
this._emit( MessageTypes.VIDEO_PUBLISH_RESULT,{"code": ApeConsts.RETURN_FAILED, "data":"推流数据已经无效!","mediaId":0});
return {"code": ApeConsts.RETURN_FAILED, "data": "推流数据已经无效"};
}*/
/*//判断当前是否还有空闲的channle
let freeChannel = this.mediaModule.getFreeMediaChannel();
if (freeChannel == 0) {
loger.warn("推流->不能再打开更多的设备 ");
this._emit( MessageTypes.VIDEO_PUBLISH_RESULT,{"code": ApeConsts.RETURN_FAILED, "data":"不能再打开更多的设备!","mediaId":0});
return {"code": ApeConsts.RETURN_FAILED, "data": "不能再打开更多的设备","mediaChannels":this.mediaModule.mediaChannels};
}
//判断当前的频道是否已经占用
if(this.mediaModule.checkChannelIsOpening(needPublishChannelInfo.channelId)){
if(needPublishChannelInfo.nodeId==GlobalConfig.nodeId){
loger.warn(needPublishChannelInfo.channelId,"已经推送过消息,不需要再次推送");
this._emit( MessageTypes.VIDEO_PUBLISH_RESULT,{"code": ApeConsts.RETURN_SUCCESS, "data":"已经推送过消息,不需要再次推送!","mediaId":needPublishChannelInfo.channelId});
return {"code": ApeConsts.RETURN_SUCCESS, "data":"已经推送过消息,不需要再次推送!","mediaId":needPublishChannelInfo.channelId};
}else {
loger.warn(needPublishChannelInfo.channelId,"频道已经被占用");
this._emit( MessageTypes.VIDEO_PUBLISH_RESULT,{"code": ApeConsts.RETURN_FAILED, "data":"频道已经被占用!","mediaId":0});
return {"code": ApeConsts.RETURN_FAILED, "data":"频道已经被占用!","mediaChannels":this.mediaModule.mediaChannels};
}
}*/
/* let channelInfo=this.mediaModule.getDefaultChannelInfo();
channelInfo.owner=GlobalConfig.nodeId;
channelInfo.status=ApeConsts.CHANNEL_STATUS_OPENING;
channelInfo.channelId=needPublishChannelInfo.channelId;
channelInfo.streamId=needPublishChannelInfo.streamId;//按规则拼接的流名称
channelInfo.timestamp=needPublishChannelInfo.timestamp;//时间戳
channelInfo.mediaType=ApeConsts.MEDIA_TYPE_SHARE;//类型为屏幕共享*/
let publishType='flash';
if(_param&&_param.type=='live'){
publishType='live';
... ... @@ -519,9 +482,10 @@ class VideoApe extends Ape {
loger.log("VIDEO_PLAY",receiveChannelInfo);
this._emit(MessageTypes.VIDEO_PLAY, receiveChannelInfo);
}else{
//停止播放屏幕共享
//播放屏幕共享
loger.log("SCREEN_SHARE_PLAY",receiveChannelInfo);
this._emit(MessageTypes.SCREEN_SHARE_PLAY, receiveChannelInfo);
}
}else {
if(unpackChannelInfo.mediaType!=ApeConsts.MEDIA_TYPE_SHARE){
... ... @@ -530,7 +494,7 @@ class VideoApe extends Ape {
this._emit(MessageTypes.VIDEO_STOP, receiveChannelInfo);
}else{
//停止播放屏幕共享
loger.log("SCREEN_SHARE_STOP",receiveChannelInfo);
loger.log("SCREEN_SHARE_STOP", receiveChannelInfo);
this._emit(MessageTypes.SCREEN_SHARE_STOP, receiveChannelInfo);
}
... ...