李勇

音视频模块推流逻辑处理,调用接口需要判断是否还能推流

此 diff 太大无法显示。
... ... @@ -27,7 +27,7 @@ import Server from "config/Server";
import UTF8 from 'utf-8';
let loger = Loger.getLoger('McuClient');
let _sdkInfo = {"version": "v1.16.1.201705010", "author": "www.3mang.com"};
let _sdkInfo = {"version": "v1.17.0.201705010", "author": "www.3mang.com"};
//APE
let _sass;
... ... @@ -189,8 +189,14 @@ export default class MessageEntrance extends Emiter {
this.setMessageDelay = this._setMessageDelay.bind(this);//设置是否延迟消息
this.switchServer = this._switchMcuIpHandler.bind(this);//切换mcu服务器
this.switchMediaServer = this._switchMsIpHandler.bind(this);//切换ms服务器
this.setDebugInfo= this._setDebugInfo.bind(this);//设置debug信息
}
_setDebugInfo(_data){
loger.log("设置debug信息-->", _data);
if(_data){
Loger.IS_DEBUG=_data.isDebug;
}
}
//设置设备信息
_setDeviceInfo(_data) {
loger.log("设置设备信息-->", _data);
... ...
... ... @@ -58,8 +58,10 @@ class Loger {
this._log(Loger.DATA, msg);
}
_log(type, msg) {
if(!Loger.IS_DEBUG){
return;
}
msg = JSON.stringify(msg);
let logMsg = `${this.id} -> ${msg}`;
if (type >= Loger.logLevel) {
switch (type) {
... ... @@ -79,7 +81,7 @@ class Loger {
}
}
}
Loger.IS_DEBUG=true;
Loger.LOG = 0;
Loger.WARN = 1;
Loger.ERROR = 2;
... ...
... ... @@ -53,6 +53,21 @@ class AudioApe extends Ape {
loger.warn(GlobalConfig.getCurrentStatus());
return {"code": ApeConsts.RETURN_FAILED, "data": "已经断开连接"};;
}
//需要判断当前已经使用的流路数
let openChannel=0;
let allChannels= MediaModule.allMediaChannelsList;
for(let i in allChannels){
let channel=allChannels[i];
if(channel&&channel.status==ApeConsts.CHANNEL_STATUS_OPENING){
openChannel++;
}
}
//如果已经开启的数量大于等于最大允许开启的数量,不允许再推流
if(openChannel>=GlobalConfig.maxMediaChannels){
loger.warn('不能再打开设备->当前开启的设备数量->',openChannel);
return {"code": ApeConsts.RETURN_FAILED, "data": "不能再打开设备,当前开启的设备数量"};
}
let result=this.mediaModule.getMediaPublishPath(_param);
this._emit( MessageTypes.AUDIO_GET_PUBLISH_PATH,result);
return result;
... ...
... ... @@ -209,6 +209,6 @@ class MediaModule {
return channelInfo;
}
}
MediaModule.allMediaChannelsList={};//当前已经创建的所有音视频通道(包含释放或未未释放的)
export default MediaModule;
... ...
... ... @@ -51,8 +51,23 @@ class VideoApe extends Ape {
loger.log('获取推流地址->');
if(!this.mcu.connected){
loger.warn(GlobalConfig.getCurrentStatus());
return {"code": ApeConsts.RETURN_FAILED, "data": "已经断开连接"};;
return {"code": ApeConsts.RETURN_FAILED, "data": "已经断开连接"};
}
//需要判断当前已经使用的流路数
let openChannel=0;
let allChannels= MediaModule.allMediaChannelsList;
for(let i in allChannels){
let channel=allChannels[i];
if(channel&&channel.status==ApeConsts.CHANNEL_STATUS_OPENING){
openChannel++;
}
}
//如果已经开启的数量大于等于最大允许开启的数量,不允许再推流
if(openChannel>=GlobalConfig.maxMediaChannels){
loger.warn('不能再打开设备->当前开启的设备数量->',openChannel);
return {"code": ApeConsts.RETURN_FAILED, "data": "不能再打开设备,当前开启的设备数量"};
}
let result=this.mediaModule.getMediaPublishPath(_param);
this._emit( MessageTypes.VIDEO_GET_PUBLISH_PATH,result);
return result;
... ... @@ -396,6 +411,8 @@ class VideoApe extends Ape {
});
}
MediaModule.allMediaChannelsList[itemIdx]=unpackChannelInfo;
console.log('MediaModule.allMediaChannelsList',MediaModule.allMediaChannelsList);
this._emit(MessageTypes.VIDEO_UPDATE, unpackChannelInfo);
}
... ...