李勇

音视频模块新增获取推流地址和推流结果4个事件监听消息

此 diff 太大无法显示。
... ... @@ -26,7 +26,7 @@ import ArrayBufferUtil from 'libs/ArrayBufferUtil';
import UTF8 from 'utf-8';
let loger = Loger.getLoger('MessageEntrance');
let _sdkInfo = {"version": "v.1.9.2.20170413", "author": "www.3mang.com"};
let _sdkInfo = {"version": "v.1.9.3.20170414", "author": "www.3mang.com"};
//APE
let _sass;
... ...
... ... @@ -38,14 +38,19 @@ MessageTypes.CHAT_RECEIVE ="chat_receive_message";// 'chat.receive';
MessageTypes.VIDEO_PLAY ="video_play";// 'video.play';//播放视频
MessageTypes.VIDEO_STOP ="video_stop"; //'video.stop';//停止视频
MessageTypes.VIDEO_UPDATE ="video_update";// //这个监听事件不能删除,需要通知课堂模块,检查channel占用(内部使用)
MessageTypes.VIDEO_BROADCAST= "video_broadcast";//'video.broadcast';
MessageTypes.VIDEO_BROADCAST= "video_broadcast";//'视频控制广播消息;
MessageTypes.VIDEO_GET_PUBLISH_PATH= "video_get_publish_path";//获取视频推流地址
MessageTypes.VIDEO_PUBLISH_RESULT= "video_publish_result";//获取视频推流结果
//音频模块事件定义
MessageTypes.AUDIO_PLAY ="audio_play";// 'audio.play';//播放
MessageTypes.AUDIO_STOP = "audio_stop";//'audio.stop';//停止
MessageTypes.AUDIO_UPDATE = "audio_update";//这个监听事件不能删除,需要通知课堂模块,检查channel占用(内部使用)
MessageTypes.AUDIO_BROADCAST= "audio_broadcast";//'audio.broadcast';
MessageTypes.AUDIO_GET_PUBLISH_PATH= "audio_get_publish_path";//获取音频推流地址
MessageTypes.AUDIO_PUBLISH_RESULT= "audio_publish_result";//获取音频推流结果
//文档模块事件定义
MessageTypes.DOC_DELETE="document_delete";//'document.delete';//删除文档
... ...
... ... @@ -52,7 +52,9 @@ class AudioApe extends Ape {
loger.warn(GlobalConfig.getCurrentStatus());
return {"code": ApeConsts.RETURN_FAILED, "data": "已经断开连接"};;
}
return this.mediaModule.getMediaPublishPath(_param);
let result=this.mediaModule.getMediaPublishPath(_param);
this._emit( MessageTypes.AUDIO_GET_PUBLISH_PATH,result);
return result;
}
//获取当前所有频道信息
... ... @@ -65,13 +67,15 @@ class AudioApe extends Ape {
publishAudio(_param) {
if(!this.mcu.connected){
loger.warn(GlobalConfig.getCurrentStatus());
return {"code": ApeConsts.RETURN_FAILED, "data": "已经断开连接"};
this._emit( MessageTypes.AUDIO_PUBLISH_RESULT,{"code": ApeConsts.RETURN_FAILED, "data":"已经断开连接!","mediaId":0});
return {"code": ApeConsts.RETURN_FAILED, "data": "已经断开连接","mediaId":0};
}
if (_param == null||_param.publishUrl == null)
{
loger.warn('推流->参数错误', _param);
this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG);
this._emit( MessageTypes.AUDIO_PUBLISH_RESULT,{"code": ApeConsts.RETURN_FAILED, "data":"参数错误!","mediaId":0});
return {"code": ApeConsts.RETURN_FAILED, "data": "参数错误"};
}
... ... @@ -79,27 +83,22 @@ class AudioApe extends Ape {
let needPublishChannelInfo=this.mediaModule.getNeedPublishMediaChannel(_param.publishUrl);
if(needPublishChannelInfo==null){
loger.warn('推流->推流数据已经无效', _param);
this._emit( MessageTypes.AUDIO_PUBLISH_RESULT,{"code": ApeConsts.RETURN_FAILED, "data":"推流数据已经无效!","mediaId":0});
return {"code": ApeConsts.RETURN_FAILED, "data": "推流数据已经无效"};
}
/* //20170302 修改频道占用规则,同一个人可以推多路流,暂停下面的限制
//同一个nodeId只允许推一个流,如果已经推了就不能再推
if(this.mediaModule.getOpeningMediaChannel(GlobalConfig.nodeId)!=0){
loger.warn("publishAudio,已经存在一个流,不能再推");
return {"code": ApeConsts.RETURN_FAILED, "data": "已经存在一个流,不能再推","mediaChannels":this.mediaModule.mediaChannels};
}*/
//判断当前是否还有空闲的channle
let freeChannel = this.mediaModule.getFreeMediaChannel();
if (freeChannel == 0) {
loger.warn("推流->不能再打开更多的设备");
this._emit( MessageTypes.AUDIO_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)){
loger.warn(needPublishChannelInfo.channelId,"频道已经被占用");
this._emit( MessageTypes.AUDIO_PUBLISH_RESULT,{"code": ApeConsts.RETURN_FAILED, "data":"频道已经被占用!","mediaId":0});
return {"code": ApeConsts.RETURN_FAILED, "data":"频道已经被占用!"};
}
... ... @@ -111,6 +110,7 @@ class AudioApe extends Ape {
channelInfo.timestamp=needPublishChannelInfo.timestamp;//EngineUtils.creatTimestamp();
channelInfo.mediaType=ApeConsts.MEDIA_TYPE_AUDIO;
this.sendTableUpdateHandler(channelInfo);
this._emit( MessageTypes.AUDIO_PUBLISH_RESULT,{"code": ApeConsts.RETURN_SUCCESS, "data":"推流成功!","mediaId":needPublishChannelInfo.channelId});
return {"code": ApeConsts.RETURN_SUCCESS, "data":"推流成功!","mediaId":needPublishChannelInfo.channelId};
}
... ...
... ... @@ -52,7 +52,9 @@ class VideoApe extends Ape {
loger.warn(GlobalConfig.getCurrentStatus());
return {"code": ApeConsts.RETURN_FAILED, "data": "已经断开连接"};;
}
return this.mediaModule.getMediaPublishPath(_param);
let result=this.mediaModule.getMediaPublishPath(_param);
this._emit( MessageTypes.VIDEO_GET_PUBLISH_PATH,result);
return result;
}
//获取当前所有频道信息
... ... @@ -65,6 +67,7 @@ class VideoApe extends Ape {
publishVideo(_param) {
if(!this.mcu.connected){
loger.warn(GlobalConfig.getCurrentStatus());
this._emit( MessageTypes.VIDEO_PUBLISH_RESULT,{"code": ApeConsts.RETURN_FAILED, "data":"已经断开连接!","mediaId":0});
return {"code": ApeConsts.RETURN_FAILED, "data": "已经断开连接"};
}
... ... @@ -72,6 +75,7 @@ class VideoApe extends Ape {
{
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": "参数错误"};
}
... ... @@ -79,21 +83,15 @@ class VideoApe extends Ape {
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": "推流数据已经无效"};
}
/* //20170302 修改频道占用规则,同一个人可以推多路流,暂停下面的限制
//同一个nodeId只允许推一个流,如果已经推了就不能再推
if(this.mediaModule.getOpeningMediaChannel(GlobalConfig.nodeId)!=0){
loger.warn("publishVideo,已经存在一个流,不能再推");
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};
}
... ... @@ -101,6 +99,7 @@ class VideoApe extends Ape {
//判断当前的频道是否已经占用
if(this.mediaModule.checkChannelIsOpening(needPublishChannelInfo.channelId)){
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};
}
... ... @@ -113,6 +112,7 @@ class VideoApe extends Ape {
channelInfo.mediaType=ApeConsts.MEDIA_TYPE_VIDEO;
this.sendTableUpdateHandler(channelInfo);
this._emit( MessageTypes.VIDEO_PUBLISH_RESULT,{"code": ApeConsts.RETURN_SUCCESS, "data":"推流成功!","mediaId":needPublishChannelInfo.channelId});
return {"code": ApeConsts.RETURN_SUCCESS, "data":"推流成功!","mediaId":needPublishChannelInfo.channelId};
}
... ...