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
李勇
7 years ago
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
d85386b15a9a55aa6c644365becdbd3e43415761
d85386b1
1 parent
519bc0a5
webRtc-dev
...
20171120-1w
ly20171113-1w
ly20171204-1w
ly20171208-1w
ly20171211-1w
ly20171211-2w
ly20171214-1w
v2.38.13.20171216
v2.38.11.20171214
v2.38.3.201712011
v2.38.1.201712011
v2.36.11.20171204
v2.36.8.20171206
v2.36.4.20171201
v2.35.11.20171130
v2.34.16.20171128
v2.34.5.20171127
v2.33.6.20171123
v2.32.1.20171123
v2.31.12.20171122
v2.31.10.20171122
v2.30.5.20171117
v2.30.2.20171117
v2.29.5.20171114
1.直播模式下H5不再处理用户数据更新的消息和频道释放的递归
隐藏空白字符变更
内嵌
并排对比
正在显示
3 个修改的文件
包含
27 行增加
和
14 行删除
src/EngineEntrance.js
src/apes/ConferApe.js
src/apes/VideoApe.js
src/EngineEntrance.js
查看文件 @
d85386b
...
...
@@ -63,7 +63,7 @@ export default class MessageEntrance extends Emiter {
super
();
this
.
lastClassActiveTime
=
0
;
//最后一次课堂激活的时间戳
//sdk 信息
GlobalConfig
.
sdkVersion
=
"v2.2
8.2.20171111
"
;
GlobalConfig
.
sdkVersion
=
"v2.2
9.5.20171114
"
;
loger
.
warn
(
"sdkVersion:"
+
GlobalConfig
.
sdkVersion
);
console
.
log
(
"sdkVersion:"
+
GlobalConfig
.
sdkVersion
);
//设置
...
...
@@ -2034,9 +2034,9 @@ export default class MessageEntrance extends Emiter {
if
(
GlobalConfig
.
mcuListFinal
&&
GlobalConfig
.
mcuListFinal
.
length
>
0
)
{
//还未开始选点之前随机选择一个
let
index
=
parseInt
(
Math
.
random
()
*
GlobalConfig
.
mcuListFinal
.
length
);
if
(
!
GlobalConfig
.
MCUServerIP
)
{
/*
if (!GlobalConfig.MCUServerIP) {
index = 0;
}
}
*/
GlobalConfig
.
MCUServerIP
=
GlobalConfig
.
mcuListFinal
[
index
].
ip
||
""
;
GlobalConfig
.
MCUServerPort
=
GlobalConfig
.
mcuListFinal
[
index
].
port
||
""
;
}
...
...
@@ -2548,6 +2548,8 @@ export default class MessageEntrance extends Emiter {
loger
.
log
(
"最后一次记录的时间->"
+
this
.
lastClassActiveTime
,
"当前时间:"
+
new
Date
().
getTime
(),
"间隔:"
+
interval
+
"秒"
);
loger
.
log
(
"文档加入频道成功->isHost="
,
GlobalConfig
.
isHost
,
"当前总人数:"
,
GlobalConfig
.
rosterNumber
,
"sassDoclength="
,
GlobalConfig
.
docListPrepare
.
length
);
/* //20171114 服务端已经做了处理,客户端不需要再做判断
//如果当前课堂内只有自己或者离开上次课堂的时间大于8分钟,需要停止服务端的视频录制,设备不是H5
if(GlobalConfig.rosterNumber<=1&&interval>=(6*60)&&GlobalConfig.deviceType!=3){
setTimeout(()=>{
...
...
@@ -2558,8 +2560,7 @@ export default class MessageEntrance extends Emiter {
this._mediaRecordControl({"status": WebRtcApe.RECORD_STATUS_2});
}
},3000);
}
}*/
//如果是主持人,那么需要判断一下文档模块同步的数据和从sass获取的文档数据是否相同,如果mcu服务器不存在的,需要上传
if
(
GlobalConfig
.
docListPrepare
&&
GlobalConfig
.
docListPrepare
.
length
>
0
)
{
...
...
@@ -2755,10 +2756,10 @@ export default class MessageEntrance extends Emiter {
//音乐共享模块加入频道成功,同步到MCU服务器上的数据
musicShareApeJoinChannelSuccess
()
{
loger
.
log
(
"伴音MUSIC模块加入频道成功->isHost="
,
GlobalConfig
.
isHost
,
"length="
,
GlobalConfig
.
musicListPrepare
.
length
);
//
loger.log("伴音MUSIC模块加入频道成功->isHost=", GlobalConfig.isHost, "length=", GlobalConfig.musicListPrepare.length);
//console.log("伴音MUSIC模块共享模数据->", GlobalConfig.musicListPrepare);
//如果是主持人,那么需要判断一下文档模块同步的数据和从sass获取的文档数据是否相同,如果mcu服务器不存在的,需要上传
if
(
GlobalConfig
.
isHost
&&
GlobalConfig
.
musicListPrepare
.
length
>
0
)
{
if
(
GlobalConfig
.
isHost
&&
GlobalConfig
.
musicListPrepare
.
length
>
0
&&
GlobalConfig
.
deviceType
!=
3
)
{
for
(
let
i
=
0
;
i
<
GlobalConfig
.
musicListPrepare
.
length
;
i
++
)
{
let
value
=
GlobalConfig
.
musicListPrepare
[
i
];
if
(
value
)
{
...
...
@@ -2786,10 +2787,10 @@ export default class MessageEntrance extends Emiter {
//媒体共享模块加入频道成功,同步到MCU服务器上的数据
mediaShareApeJoinChannelSuccess
()
{
loger
.
log
(
"媒体共享模块加入频道成功->isHost="
,
GlobalConfig
.
isHost
,
"length="
,
GlobalConfig
.
sharedMediaList
.
length
);
//
loger.log("媒体共享模块加入频道成功->isHost=", GlobalConfig.isHost, "length=", GlobalConfig.sharedMediaList.length);
//console.log("媒体共享模数据->", GlobalConfig.sharedMediaList);
//如果是主持人,那么需要判断一下文档模块同步的数据和从sass获取的文档数据是否相同,如果mcu服务器不存在的,需要上传
if
(
GlobalConfig
.
isHost
&&
GlobalConfig
.
sharedMediaList
.
length
>
0
)
{
if
(
GlobalConfig
.
isHost
&&
GlobalConfig
.
sharedMediaList
.
length
>
0
&&
GlobalConfig
.
deviceType
!=
3
)
{
for
(
let
i
=
0
;
i
<
GlobalConfig
.
sharedMediaList
.
length
;
i
++
)
{
let
value
=
GlobalConfig
.
sharedMediaList
[
i
];
if
(
value
)
{
...
...
@@ -3028,7 +3029,7 @@ export default class MessageEntrance extends Emiter {
* 初始化webRtc
* */
_initWebRtcSdk
(
_params
,
_callback
)
{
if
(
GlobalConfig
.
deviceType
==
1
||
GlobalConfig
.
deviceType
==
2
)
{
if
(
GlobalConfig
.
deviceType
==
1
||
GlobalConfig
.
deviceType
==
2
||
GlobalConfig
.
deviceType
==
3
)
{
loger
.
warn
(
"移动端不需要处理初始化webRtc"
);
if
(
_callback
)
{
_callback
();
...
...
src/apes/ConferApe.js
查看文件 @
d85386b
...
...
@@ -73,7 +73,7 @@ class ConferApe extends Ape {
item
.
nodeId
=
nodeInfoRecordPdu
.
nodeId
;
item
.
nodeData
=
nodeInfoRecordPdu
.
toArrayBuffer
();
let
rosterUpdateItem
=
new
pdu
[
'RCRegistryRoster
Update
ItemPdu'
];
let
rosterUpdateItem
=
new
pdu
[
'RCRegistryRoster
Insert
ItemPdu'
];
rosterUpdateItem
.
type
=
pdu
.
RCPDU_REG_ROSTER_UPDATE_PDU
;
rosterUpdateItem
.
items
.
push
(
item
);
...
...
@@ -160,6 +160,11 @@ class ConferApe extends Ape {
//更新角色数据
updateUserInfo
()
{
if
(
GlobalConfig
.
classType
==
ApeConsts
.
CLASS_TYPE_2
&&
GlobalConfig
.
isH5
==
true
){
//直播模式下H5不处理更新信息
console
.
log
(
"直播模式下H5不处理用户更新信息"
);
return
;
}
let
nodeInfoRecordPdu
=
this
.
getNodeInfo
();
//loger.log('更新用户信息->', nodeInfoRecordPdu);
let
userDataPdu
=
new
pdu
[
'RCNodeInfoUserDataPdu'
];
...
...
@@ -202,7 +207,10 @@ class ConferApe extends Ape {
}
return
;
}
if
(
GlobalConfig
.
classType
==
ApeConsts
.
CLASS_TYPE_2
&&
GlobalConfig
.
isH5
){
loger
.
warn
(
"直播模式H5不能发送课堂控制消息"
);
return
;
}
// to, message
loger
.
log
(
'发送课堂控制消息.'
,
_messageInfo
);
...
...
@@ -300,7 +308,7 @@ class ConferApe extends Ape {
checkHasRecordControl
()
{
//loger.warn('检测是否有控制录制操作的权限', "isHost", GlobalConfig.isHost, "recordStatus", GlobalConfig.recordStatus,"当前人数:"+this.rosterLen);
//1.如果自己是老师或者当前课堂只有一个人
if
(
GlobalConfig
.
isHost
||
this
.
rosterLen
<=
1
&&
GlobalConfig
.
deviceType
!=
3
)
{
if
(
GlobalConfig
.
isHost
||
(
this
.
rosterLen
<=
1
&&
GlobalConfig
.
deviceType
!=
3
)
)
{
return
true
;
}
//2.如果自己不是老师,需要判断当前课堂内是否有老师,如果有老师就不做操作
...
...
@@ -610,7 +618,7 @@ class ConferApe extends Ape {
//更新课堂信息
sendUpdaterClassStatusInfo
(
_param
)
{
//{"actionType": 1,isStopAllPublishMedia:false} //actionType课堂状态 isStopAllPublishMedia是否停止当前的所有推流
//
loger
.log('发送更新课堂信息->');
//
console
.log('发送更新课堂信息->');
if
(
_param
==
null
||
EngineUtils
.
isEmptyObject
(
_param
))
{
loger
.
log
(
'发送更新课堂信息->参数错误'
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
...
...
src/apes/VideoApe.js
查看文件 @
d85386b
...
...
@@ -424,6 +424,10 @@ class VideoApe extends Ape {
this
.
sendTableUpdateHandler
(
channelInfo
);
//递归检查,800毫秒之后执行
clearTimeout
(
this
.
releaseTimeId
);
if
(
GlobalConfig
.
classType
==
ApeConsts
.
CLASS_TYPE_2
&&
GlobalConfig
.
isH5
){
return
;
}
this
.
releaseTimeId
=
setTimeout
(
function
()
{
loger
.
warn
(
nodeId
,
"检查频道是否占用"
);
this
.
_releaseNodeIdAllChannel
(
nodeId
);
...
...
请
注册
或
登录
后发表评论