李勇

1.修改视频音频模块接口调用的返回值结构

... ... @@ -102,12 +102,16 @@ ApeConsts.MEDIA_TYPE_DEFAULT=0;//没有类型
ApeConsts.MEDIA_TYPE_VIDEO=1;//视频流(包含音频)
ApeConsts.MEDIA_TYPE_AUDIO=2;//音频流
//FLASH中使用下面4个
ApeConsts.CGS_RELEASED = 0;///< 无人占用状态
ApeConsts.CGS_PENDING = 1;///< 占用成功,等待打开
ApeConsts.CGS_OPENNED = 2;///< 打开成功
ApeConsts.CGS_GRABBING = 3; ///< 准备占用中, 属于本地状态机需要用的状态,在多点数据库中不存在。
//return返回值状态
ApeConsts.RETURN_SUCCESS=0;//成功
ApeConsts.RETURN_FAILED=1;//失败
////FLASH中使用下面4个
//ApeConsts.CGS_RELEASED = 0;///< 无人占用状态
//ApeConsts.CGS_PENDING = 1;///< 占用成功,等待打开
//ApeConsts.CGS_OPENNED = 2;///< 打开成功
//ApeConsts.CGS_GRABBING = 3; ///< 准备占用中, 属于本地状态机需要用的状态,在多点数据库中不存在。
//
ApeConsts.INVALIDATE_CHANNEL_ID = -1;
... ...
... ... @@ -58,7 +58,7 @@ class AudioApe extends Ape {
{
loger.warn('publishAudio,参数错误', _param);
this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG);
return {"code": 1, "data": ""};
return {"code": ApeConsts.RETURN_FAILED, "data": "参数错误"};
}
//同一个nodeId只允许推一个流,如果已经推了就不能再推
... ... @@ -71,13 +71,13 @@ class AudioApe extends Ape {
let freeChannel = this.mediaModule.getFreeMediaChannel();
if (freeChannel == 0) {
loger.warn("publishAudio,没有空闲的channel ");
return {"code": 1, "data": "不能再打开更多的设备"};
return {"code": ApeConsts.RETURN_FAILED, "data": "不能再打开更多的设备"};
}
//判断当前的频道是否已经占用
if(this.mediaModule.checkChannelIsOpening(_param.channelId)){
loger.warn(_param.channelId,"频道已经被占用");
return {"code":1,"data":"频道已经被占用!"};
return {"code": ApeConsts.RETURN_FAILED, "data":"频道已经被占用!"};
}
let channelInfo={};
... ... @@ -90,7 +90,7 @@ class AudioApe extends Ape {
channelInfo.toNodeId=0;
channelInfo.mediaType=ApeConsts.MEDIA_TYPE_AUDIO;
this.sendTableUpdateHandler(channelInfo);
return {"code":0,"data":"推流成功!"}
return {"code": ApeConsts.RETURN_SUCCESS, "data":"推流成功!"}
}
//停止推流,
... ... @@ -106,8 +106,8 @@ class AudioApe extends Ape {
let openingChannel = this.mediaModule.getOpeningMediaChannel(nodeId);
if (openingChannel == 0) {
loger.warn(nodeId,"stopPublishAudio,没有打开的channel,不需要关闭");
return {"code": 1, "data": "没有打开的channel,不需要关闭"};
loger.warn(nodeId,"stopPublishAudio,没有占用channel,不需要关闭");
return {"code": ApeConsts.RETURN_FAILED, "data": "没有占用channel,不需要关闭"};
}
let channelInfo={};
... ... @@ -126,15 +126,14 @@ class AudioApe extends Ape {
loger.log('sendAudioBroadcastMsg.McuClient还未初始化数据!');
if (GlobalConfig.getCurrentStatus().code == 0 || GlobalConfig.getCurrentStatus().code == 1) {
this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_APE_SEND_FAILED_NO_JOIN);
return {"code": 1, "data": "sendAudioBroadcastMsg.McuClient还未初始化数据"};
return {"code": ApeConsts.RETURN_FAILED, "data": "sendAudioBroadcastMsg.McuClient还未初始化数据"};
}
return {"code": 1, "data": "sendAudioBroadcastMsg.McuClient还未初始化数据"};
return {"code": ApeConsts.RETURN_FAILED, "data": "sendAudioBroadcastMsg.McuClient还未初始化数据"};
}
if (_param == null) {
loger.warn('sendAudioBroadcastMsg,参数错误', _param);
this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG);
return {"code": 1, "data": "sendAudioBroadcastMsg,参数错误"};
;
return {"code": ApeConsts.RETURN_FAILED, "data": "sendAudioBroadcastMsg,参数错误"};
}
// to, message
loger.log('发送Audio消息.', _param);
... ... @@ -144,7 +143,7 @@ class AudioApe extends Ape {
let freeChannel = this.mediaModule.getFreeMediaChannel();
if (freeChannel == 0) {
loger.warn('sendAudioBroadcastMsg,不能再打开更多的设备', _param);
return {"code": 1, "data": "不能再打开更多的设备"};
return {"code": ApeConsts.RETURN_FAILED, "data": "不能再打开更多的设备"};
}
}
/* message RCVideoSendDataRequestPdu {
... ... @@ -173,7 +172,7 @@ class AudioApe extends Ape {
loger.log('发送公聊消息.');
this.sendChatUniform(audioSendPdu);
}
return {"code": 0, "data": ""};
return {"code": ApeConsts.RETURN_SUCCESS, "data": ""};
}
sendTableUpdateHandler(_channelInfo) {
... ...
... ... @@ -455,7 +455,7 @@ class ConferApe extends Ape {
updaterRosterStatus(_param){
if(_param){
loger.log("媒体模块发生更新,人员状态需要更新,fromNodeId->",_param.fromNodeId);
loger.log(_param.status,_param.fromNodeId,this.rosters[_param.fromNodeId]);
loger.log(_param.status,_param.fromNodeId);
//console.log(_param.fromNodeId);
//如果是自己。改变自己的状态同步到MCU
//if(_param.fromNodeId==GlobalConfig.nodeId){
... ...
... ... @@ -26,7 +26,7 @@ class MediaModule {
{
loger.warn('getMediaPlayPath,参数错误', _param);
this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG);
return {"code": 1, "data": ""};
return {"code": ApeConsts.RETURN_FAILED, "data": ""};
}
let path = "";
... ... @@ -53,7 +53,7 @@ class MediaModule {
+ "_" + _param.channelId
+ "_" + _param.timestamp;
}
return {"code": 0, "data": path};
return {"code": ApeConsts.RETURN_SUCCESS, "data": "","playUrl": path};
}
//获取推流地址
... ... @@ -62,7 +62,7 @@ class MediaModule {
//判断当前开启的视频数量是否已经是最大值,如果已经是最大值,不能再开启
let freeChannel = this.getFreeMediaChannel();
if (freeChannel == 0) {
return {"code": 1, "data": "不能再打开更多的设备"};
return {"code":ApeConsts.RETURN_FAILED, "data": "不能再打开更多的设备"};
}
//默认方式推流
... ... @@ -82,15 +82,14 @@ class MediaModule {
+ port + "/"+pubType+"/" +GlobalConfig.siteId+"_"
+ GlobalConfig.classId + "_"+GlobalConfig.userId
+"_" + freeChannel + "_" + timestamp;
return {"code": 0,
"data":
{ "siteId":GlobalConfig.siteId,
"classId":GlobalConfig.classId,
"userId":GlobalConfig.userId,
"channelId": freeChannel,
"timestamp": timestamp,
"publishUrl": publishUrl
}
return {"code": ApeConsts.RETURN_SUCCESS,
"data":"",
"siteId":GlobalConfig.siteId,
"classId":GlobalConfig.classId,
"userId":GlobalConfig.userId,
"channelId": freeChannel,
"timestamp": timestamp,
"publishUrl": publishUrl
};
}
... ...
... ... @@ -59,7 +59,7 @@ class VideoApe extends Ape {
{
loger.warn('publishVideo,参数错误', _param);
this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG);
return {"code": 1, "data": ""};
return {"code": ApeConsts.RETURN_FAILED, "data": "参数错误"};
}
loger.log('publishVideo -> maxVideoChannels', GlobalConfig.maxVideoChannels);
... ... @@ -74,13 +74,13 @@ class VideoApe extends Ape {
let freeChannel = this.mediaModule.getFreeMediaChannel();
if (freeChannel == 0) {
loger.warn("publishVideo,没有空闲的channel ");
return {"code": 1, "data": "不能再打开更多的设备"};
return {"code": ApeConsts.RETURN_FAILED, "data": "不能再打开更多的设备"};
}
//判断当前的频道是否已经占用
if(this.mediaModule.checkChannelIsOpening(_param.channelId)){
loger.warn(_param.channelId,"频道已经被占用");
return {"code":1,"data":"频道已经被占用!"};
return {"code": ApeConsts.RETURN_FAILED, "data":"频道已经被占用!"};
}
let channelInfo={};
... ... @@ -93,7 +93,7 @@ class VideoApe extends Ape {
channelInfo.toNodeId=0;
channelInfo.mediaType=ApeConsts.MEDIA_TYPE_VIDEO;
this.sendTableUpdateHandler(channelInfo);
return {"code":0,"data":"推流成功!"}
return {"code": ApeConsts.RETURN_SUCCESS, "data":"推流成功!"}
}
//停止推流,
... ... @@ -109,8 +109,8 @@ class VideoApe extends Ape {
let openingChannel = this.mediaModule.getOpeningMediaChannel(nodeId);
if (openingChannel == 0) {
loger.warn(nodeId,"stopPublishVideo,没有打开的channel,不需要关闭");
return {"code": 1, "data": "没有打开的channel,不需要关闭"};
loger.warn(nodeId,"stopPublishVideo,没有占用channel,不需要关闭");
return {"code": ApeConsts.RETURN_FAILED, "data": "没有占用channel,不需要关闭"};
}
let channelInfo={};
... ... @@ -131,13 +131,12 @@ class VideoApe extends Ape {
this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_APE_SEND_FAILED_NO_JOIN);
return {"code": 1, "data": "不能发送Video消息.McuClient还未初始化数据"};
}
return {"code": 1, "data": "不能发送Video消息.McuClient还未初始化数据"};
return {"code": ApeConsts.RETURN_FAILED, "data": "不能发送Video消息.McuClient还未初始化数据"};
}
if (_param == null) {
loger.warn('sendVideoCommandMsg失败,参数错误', _param);
this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG);
return {"code": 1, "data": "sendVideoCommandMsg失败,参数错误"};
;
return {"code": ApeConsts.RETURN_FAILED, "data": "sendVideoCommandMsg失败,参数错误"};
}
// to, message
loger.log('发送Video消息.', _param);
... ... @@ -147,7 +146,7 @@ class VideoApe extends Ape {
let freeChannel = this.mediaModule.getFreeMediaChannel();
if (freeChannel == 0) {
loger.warn('sendVideoCommandMsg,不能再打开更多的设备', _param);
return {"code": 1, "data": "不能再打开更多的设备"};
return {"code": ApeConsts.RETURN_FAILED, "data": "不能再打开更多的设备"};
}
}
/* message RCVideoSendDataRequestPdu {
... ... @@ -176,7 +175,7 @@ class VideoApe extends Ape {
loger.log('发送公聊Video消息.');
this.sendChatUniform(videoSendPdu);
}
return {"code": 0, "data": ""};
return {"code": ApeConsts.RETURN_SUCCESS, "data": ""};
}
sendTableUpdateHandler(_channelInfo) {
... ...
... ... @@ -924,6 +924,7 @@ message RCClassStatusInfoPdu {
optional uint32 active_doc_cur_page=21;//当前激活的文档的当前页
}
//end
`;
... ...