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
46581e2c3604d506e09bd1ae287d6734c3deb542
46581e2c
1 parent
d85386b1
修改录制文件和录制消息匹配规则,录制消息的来源来自MCU录制的rec文件,不再从nodeJs获取,有些数据丢失;更换了录制回放的文件地址
显示空白字符变更
内嵌
并排对比
正在显示
3 个修改的文件
包含
66 行增加
和
13 行删除
src/EngineEntrance.js
src/RecordInfoMatch.js
src/RecordPlayBackParse.js
src/EngineEntrance.js
查看文件 @
46581e2
...
...
@@ -63,7 +63,7 @@ export default class MessageEntrance extends Emiter {
super
();
this
.
lastClassActiveTime
=
0
;
//最后一次课堂激活的时间戳
//sdk 信息
GlobalConfig
.
sdkVersion
=
"v2.
29.5.20171114
"
;
GlobalConfig
.
sdkVersion
=
"v2.
30.2.20171117
"
;
loger
.
warn
(
"sdkVersion:"
+
GlobalConfig
.
sdkVersion
);
console
.
log
(
"sdkVersion:"
+
GlobalConfig
.
sdkVersion
);
//设置
...
...
src/RecordInfoMatch.js
查看文件 @
46581e2
...
...
@@ -10,7 +10,7 @@ import EngineUtils from 'EngineUtils';
// 日志对象
const
loger
=
Loger
.
getLoger
(
'RecordInfo
Parse
'
);
const
loger
=
Loger
.
getLoger
(
'RecordInfo
Match
'
);
class
RecordInfoMatch
extends
Emiter
{
constructor
()
{
super
();
...
...
@@ -24,10 +24,18 @@ class RecordInfoMatch extends Emiter {
this
.
unMatchUid
=
{};
//没有匹配到的uid
}
start
()
{
let
serverIp
=
GlobalConfig
.
recordFileSever
||
"123.56.73.119:8080"
;
start
(
_recordMessagesList
)
{
this
.
recordMessagesList
=
_recordMessagesList
;
let
serverIp
=
GlobalConfig
.
recordFileSever
||
"playbak.xuedianyun.com:8080"
;
this
.
filePath
=
`
$
{
GlobalConfig
.
locationProtocol
+
serverIp
}
`
;
this
.
getRecordInfo
(()
=>
{
if
(
GlobalConfig
.
locationProtocol
==
"https://"
){
this
.
filePath
=
this
.
filePath
.
replace
(
":8080"
,
""
);
}
//this.getRecordInfo(()=> {
this
.
parseRecordMessage
(
_recordMessagesList
,()
=>
{
console
.
log
(
"JSON数据列表"
,
this
.
jsonPathList
);
let
requestLen
=
Object
.
keys
(
this
.
jsonPathList
).
length
;
let
currentLen
=
0
;
let
fileNameArr
;
...
...
@@ -53,7 +61,7 @@ class RecordInfoMatch extends Emiter {
}
//筛除一些重复流地址,会出现多录制的情况,保留一个即可
this
.
m3u8jsonDataList
[
fileNameArr
[
0
]][
stream
]
=
{
video_url
:
this
.
filePath
+
"/"
+
i
+
"/"
+
k
+
"/"
+
j
,
video_url
:
this
.
filePath
+
"/
samples/
"
+
i
+
"/"
+
k
+
"/"
+
j
,
creatDate
:
i
,
folder
:
k
,
stream
:
j
,
...
...
@@ -102,7 +110,8 @@ class RecordInfoMatch extends Emiter {
})
.
then
(
ret
=>
{
loger
.
log
(
'AG-获取媒体录制信息-完成'
);
for
(
let
i
=
0
;
i
<
ret
.
returnData
.
data
.
length
;
i
++
)
{
this
.
parseRecordMessage
(
ret
.
returnData
.
data
,
_callback
);
/* for (let i = 0; i < ret.returnData.data.length; i++) {
let item = ret.returnData.data[i];
if (item.status == 1) {
this.streamInfoLen++;
...
...
@@ -126,7 +135,7 @@ class RecordInfoMatch extends Emiter {
}
if (_callback) {
_callback();
}
}
*/
})
.
catch
(
err
=>
{
loger
.
error
(
`
AG
-
获取媒体录制信息
-
异常
.
状态码
:
$
{
err
}
`
);
...
...
@@ -136,6 +145,38 @@ class RecordInfoMatch extends Emiter {
});
}
parseRecordMessage
(
_data
,
_callback
){
if
(
!
_data
||
_data
.
length
<
1
){
console
.
log
(
"录制消息数据无效"
,
_data
)
return
;
}
for
(
let
i
=
0
;
i
<
_data
.
length
;
i
++
)
{
let
item
=
_data
[
i
];
if
(
item
.
status
==
1
)
{
this
.
streamInfoLen
++
;
//console.log(JSON.stringify(item));
delete
item
.
appId
;
delete
item
.
id
;
let
time
=
parseInt
(
item
.
createTime
);
let
timeInfo
=
this
.
timestampToUTCTime
(
time
);
//return {yymmddhhmmss:yymmddhhmmss,yymmdd:yymmdd}
item
.
seek
=
0
;
item
.
createTimeUTC
=
timeInfo
.
yymmddhhmmss
;
item
.
creatDate
=
timeInfo
.
yymmdd
;
this
.
jsonPathList
[
timeInfo
.
yymmdd
]
=
this
.
filePath
+
"/samples/"
+
timeInfo
.
yymmdd
+
"/json/"
+
item
.
channel
+
".json"
;
item
.
stream_id
=
item
.
channel
+
"_"
+
item
.
userId
+
"_"
+
item
.
timestamp
;
if
(
!
this
.
recordMessages
[
item
.
uid
])
{
this
.
recordMessages
[
item
.
uid
]
=
{};
}
this
.
recordMessages
[
item
.
uid
][
item
.
timestamp
]
=
item
;
}
}
if
(
_callback
)
{
_callback
();
}
}
getRecordFileJSON
(
path
,
_callback
)
{
let
url
=
path
+
"?t="
+
new
Date
().
getTime
();
/* $.ajax(
...
...
src/RecordPlayBackParse.js
查看文件 @
46581e2
...
...
@@ -39,6 +39,7 @@ class RecordPlayBackParse extends Emiter {
this
.
isgetRecordFileURLFromAgo
=
false
;
//是否已经加载AGO的录制文件地址数据
this
.
_apes
=
{};
this
.
videoPublishMessages
=
[];
//记录推流控制的消息
this
.
_videoApeBroadcastMssages
=
{};
//视频模块的广播消息
this
.
mediaChannleList
=
{};
this
.
_conferApeMssages
=
{};
//会议数据
...
...
@@ -229,8 +230,9 @@ class RecordPlayBackParse extends Emiter {
}
}
console
.
warn
(
"最终匹配完成的视频流数据"
,
MediaModule
.
streams
);
//解析课堂录制的rec文件
this
.
parseArrayBuf
();
this
.
_emit
(
RecordPlayBackParse
.
CLASS_JOIN_RECORD_PLAYBACK_SUCCESS
,
{
"recordPlaybackMaxTime"
:
this
.
_recordPlaybackMaxTime
});
////解析课堂录制的rec文件
//this.parseArrayBuf();
}
//保存各个模块的MCU原始数据
...
...
@@ -353,8 +355,9 @@ class RecordPlayBackParse extends Emiter {
}
})*/
this
.
getMediaRecrodInfoFromTx
(()
=>
{
//AGO启动录制消息和文件匹配
this
.
recordInfoMatch
.
start
();
/*//AGO启动录制消息和文件匹配
this.recordInfoMatch.start();*/
this
.
parseArrayBuf
();
});
}
...
...
@@ -771,7 +774,12 @@ class RecordPlayBackParse extends Emiter {
console
.
log
(
'聊天数据'
,
this
.
_chatApeMssages
);
console
.
log
(
'视频模块广播消息'
,
this
.
_videoApeBroadcastMssages
);
loger
.
log
(
"录制回放数据解析完成,录制回放的总时间长为->"
,
this
.
_recordPlaybackMaxTime
,
"recordTimestamp:"
+
GlobalConfig
.
recordTimestamp
);
this
.
_emit
(
RecordPlayBackParse
.
CLASS_JOIN_RECORD_PLAYBACK_SUCCESS
,
{
"recordPlaybackMaxTime"
:
this
.
_recordPlaybackMaxTime
});
console
.
log
(
'videoPublishMessages'
,
this
.
videoPublishMessages
);
//AGO启动录制消息和文件匹配
this
.
recordInfoMatch
.
start
(
this
.
videoPublishMessages
);
//this._emit(RecordPlayBackParse.CLASS_JOIN_RECORD_PLAYBACK_SUCCESS, {"recordPlaybackMaxTime": this._recordPlaybackMaxTime});
}
//根据时间查找数据
...
...
@@ -1078,6 +1086,10 @@ class RecordPlayBackParse extends Emiter {
timestamp
:
timestamp
};
//this._videoApeBroadcastMssages[timestamp]={parseData:videoReceivePdu,byteData:data,timestamp: timestamp};
if
(
videoReceivePdu
&&
videoReceivePdu
.
data
){
videoReceivePdu
.
data
.
createTime
=
videoReceivePdu
.
data
.
timestamp
;
}
this
.
videoPublishMessages
.
push
(
videoReceivePdu
.
data
);
}
}
catch
(
err
)
{
...
...
请
注册
或
登录
后发表评论