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
李勇
8 years ago
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
4df03a795b6bb1427b179fdd44b0dcf8f6f9fe83
4df03a79
1 parent
a11f5f2e
增加监课的推流地址获取接口,单独使用音视频通道,不占用课堂内的通道
隐藏空白字符变更
内嵌
并排对比
正在显示
5 个修改的文件
包含
56 行增加
和
1 行删除
dist/McuClient.js
src/EngineEntrance.js
src/apes/AudioApe.js
src/apes/MediaModule.js
src/apes/VideoApe.js
dist/McuClient.js
查看文件 @
4df03a7
此 diff 太大无法显示。
src/EngineEntrance.js
查看文件 @
4df03a7
...
...
@@ -28,7 +28,7 @@ import MediaModule from 'apes/MediaModule';
import
UTF8
from
'utf-8'
;
let
loger
=
Loger
.
getLoger
(
'McuClient'
);
let
_sdkInfo
=
{
"version"
:
"v1.2
0.1.201705015
"
,
"author"
:
"www.3mang.com"
};
let
_sdkInfo
=
{
"version"
:
"v1.2
1.1.201705017
"
,
"author"
:
"www.3mang.com"
};
//APE
let
_sass
;
...
...
src/apes/AudioApe.js
查看文件 @
4df03a7
...
...
@@ -53,6 +53,14 @@ class AudioApe extends Ape {
loger
.
warn
(
GlobalConfig
.
getCurrentStatus
());
return
{
"code"
:
ApeConsts
.
RETURN_FAILED
,
"data"
:
"已经断开连接"
};;
}
//监课比较特殊,不占用课堂内的音视频路数,额外创建
if
(
GlobalConfig
.
userRole
==
ApeConsts
.
invisible
){
let
result
=
this
.
mediaModule
.
getMediaPublishPathForInVisible
(
_param
);
this
.
_emit
(
MessageTypes
.
AUDIO_GET_PUBLISH_PATH
,
result
);
return
result
;
}
//非监课的身份,需要判断是否可以继续推流
//需要判断当前已经使用的流路数
let
openChannel
=
0
;
let
allChannels
=
MediaModule
.
allMediaChannelsList
;
...
...
src/apes/MediaModule.js
查看文件 @
4df03a7
...
...
@@ -124,6 +124,45 @@ class MediaModule {
"publishUrl"
:
publishUrl
};
}
//监课获取推流地址
getMediaPublishPathForInVisible
(
_param
)
{
let
mediaLen
=
Object
.
keys
(
MediaModule
.
allMediaChannelsList
=
{}).
length
;
let
freeChannel
=
(
this
.
MEDIA_OBJ_TABLE_ID
-
20
-
mediaLen
)
||
GlobalConfig
.
nodeId
;
loger
.
log
(
'getMediaPublishPathForInVisible->'
+
freeChannel
+
" mediaLen:"
+
mediaLen
);
//默认方式推流
let
pubType
=
"live"
;
//flash推流
if
(
_param
&&
_param
.
type
==
"flash"
){
pubType
=
"flash"
;
}
//端口,有端口就显示 ":xxx",没有端口就是""
let
port
=
(
GlobalConfig
.
MS_PUBLISH_PORT
==
""
||
GlobalConfig
.
MS_PUBLISH_PORT
==
null
)
?
""
:
":"
+
GlobalConfig
.
MS_PUBLISH_PORT
;
//时间戳
let
timestamp
=
EngineUtils
.
creatTimestamp
();
let
streamId
=
GlobalConfig
.
siteId
+
"_"
+
GlobalConfig
.
classId
+
"_"
+
GlobalConfig
.
userId
+
"_"
+
freeChannel
+
"_"
+
timestamp
;
//生成推流地址和推流数据(同步数据的时候用)
let
publishUrl
=
"rtmp://"
+
GlobalConfig
.
MS_PUBLISH_IP
+
port
+
"/"
+
pubType
+
"/"
+
streamId
;
publishUrl
=
publishUrl
.
replace
(
"::"
,
":"
);
//如果ip和port之间有多的:需要去掉
this
.
needPublishMediaChannel
[
publishUrl
]
=
{
"channelId"
:
freeChannel
,
"publishUrl"
:
publishUrl
,
"streamId"
:
streamId
,
"timestamp"
:
timestamp
,
"nodeId"
:
GlobalConfig
.
nodeId
};
return
{
"code"
:
ApeConsts
.
RETURN_SUCCESS
,
"data"
:
""
,
"mediaId"
:
freeChannel
,
"publishUrl"
:
publishUrl
};
}
//获取当前空闲的channel,返回值为0代表没有空闲的,否则返回的就是空闲的channelId
getFreeMediaChannel
()
{
...
...
src/apes/VideoApe.js
查看文件 @
4df03a7
...
...
@@ -53,6 +53,14 @@ class VideoApe extends Ape {
loger
.
warn
(
GlobalConfig
.
getCurrentStatus
());
return
{
"code"
:
ApeConsts
.
RETURN_FAILED
,
"data"
:
"已经断开连接"
};
}
//监课比较特殊,不占用课堂内的音视频路数,额外创建
if
(
GlobalConfig
.
userRole
==
ApeConsts
.
invisible
){
let
result
=
this
.
mediaModule
.
getMediaPublishPathForInVisible
(
_param
);
this
.
_emit
(
MessageTypes
.
VIDEO_GET_PUBLISH_PATH
,
result
);
return
result
;
}
//非监课的身份,需要判断是否可以继续推流
//需要判断当前已经使用的流路数
let
openChannel
=
0
;
let
allChannels
=
MediaModule
.
allMediaChannelsList
;
...
...
请
注册
或
登录
后发表评论