Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
李勇
/
McuClient
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
李勇
2017-04-14 09:47:09 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
a9e7866b5237c54f746ca78158320049feff194c
a9e7866b
1 parent
e8fba8f8
音视频模块新增获取推流地址和推流结果4个事件监听消息
隐藏空白字符变更
内嵌
并排对比
正在显示
5 个修改的文件
包含
27 行增加
和
22 行删除
dist/McuClient.js
src/EngineEntrance.js
src/MessageTypes.js
src/apes/AudioApe.js
src/apes/VideoApe.js
dist/McuClient.js
查看文件 @
a9e7866
此 diff 太大无法显示。
src/EngineEntrance.js
查看文件 @
a9e7866
...
...
@@ -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
;
...
...
src/MessageTypes.js
查看文件 @
a9e7866
...
...
@@ -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';//删除文档
...
...
src/apes/AudioApe.js
查看文件 @
a9e7866
...
...
@@ -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
};
}
...
...
src/apes/VideoApe.js
查看文件 @
a9e7866
...
...
@@ -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
};
}
...
...
请
注册
或
登录
后发表评论