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
e7cdad77ca9b0cb4b5949468121787fe8d409b45
e7cdad77
1 parent
5dec6df6
1.修复录制回放消息和视频对应;2.默认禁用底层日志输出
隐藏空白字符变更
内嵌
并排对比
正在显示
4 个修改的文件
包含
109 行增加
和
6 行删除
src/EngineEntrance.js
src/Loger.js
src/RecordPlayBackParse.js
src/apes/ConferApe.js
src/EngineEntrance.js
查看文件 @
e7cdad7
...
...
@@ -62,7 +62,7 @@ export default class MessageEntrance extends Emiter {
constructor
()
{
super
();
//sdk 信息
GlobalConfig
.
sdkVersion
=
"v2.20.
0.20171021
"
;
GlobalConfig
.
sdkVersion
=
"v2.20.
5.20171023
"
;
loger
.
warn
(
"sdkVersion:"
+
GlobalConfig
.
sdkVersion
);
//设置
...
...
@@ -2010,6 +2010,7 @@ export default class MessageEntrance extends Emiter {
}
if
(
_video_ape
)
{
//if(_data.status==WebRtcApe.RECORD_STATUS_1&&!_data.publishUrl){
loger
.
log
(
"webRtc推流状态发生改变->发送同步消息"
,
_data
);
if
(
_data
.
status
==
WebRtcApe
.
RECORD_STATUS_1
){
let
publishData
=
this
.
_getVideoPublishPath
();
let
publishUrl
=
""
;
...
...
src/Loger.js
查看文件 @
e7cdad7
...
...
@@ -89,7 +89,7 @@ class Loger {
}
}
Loger
.
IS_DEBUG
=
tru
e
;
Loger
.
IS_DEBUG
=
fals
e
;
Loger
.
LOG
=
3
;
Loger
.
WARN
=
2
;
Loger
.
ERROR
=
1
;
...
...
src/RecordPlayBackParse.js
查看文件 @
e7cdad7
...
...
@@ -50,6 +50,9 @@ class RecordPlayBackParse extends Emiter {
this
.
_musicShareApeMssages
=
{};
//伴音媒体共享
this
.
_timerCounter
=
new
TimerCounter
();
//计时器
this
.
_timerCounter
.
addTimerCallBack
(
this
.
_timerCounterUptate
.
bind
(
this
),
1
);
this
.
agoTiemstampMessages
=
{};
//ago推流时间戳消息数据集合
this
.
agoAllMedias
=
{};
//ago录制的文件集合
}
//method--------------------内部---------------------------------------------
...
...
@@ -303,6 +306,7 @@ class RecordPlayBackParse extends Emiter {
//解析录制的rec数据
this
.
isLoadTxRecordInfo
=
true
;
if
(
this
.
isLoadTxRecordInfo
&&
this
.
isLoadAgoRecordInfo
&&
this
.
isgetRecordFileURLFromAgo
){
this
.
matchingVideoUrlFromTime
(
this
.
agoTiemstampMessages
,
this
.
agoAllMedias
);
this
.
parseArrayBuf
();
}
});
...
...
@@ -310,6 +314,7 @@ class RecordPlayBackParse extends Emiter {
this
.
isLoadAgoRecordInfo
=
true
;
//解析录制的rec数据
if
(
this
.
isLoadTxRecordInfo
&&
this
.
isLoadAgoRecordInfo
&&
this
.
isgetRecordFileURLFromAgo
){
this
.
matchingVideoUrlFromTime
(
this
.
agoTiemstampMessages
,
this
.
agoAllMedias
);
this
.
parseArrayBuf
();
}
});
...
...
@@ -317,11 +322,70 @@ class RecordPlayBackParse extends Emiter {
this
.
isgetRecordFileURLFromAgo
=
true
;
//解析录制的rec数据
if
(
this
.
isLoadTxRecordInfo
&&
this
.
isLoadAgoRecordInfo
&&
this
.
isgetRecordFileURLFromAgo
){
this
.
matchingVideoUrlFromTime
(
this
.
agoTiemstampMessages
,
this
.
agoAllMedias
);
this
.
parseArrayBuf
();
}
})
}
}
//时间戳转换为UTC 时间字符串
timestampToUTCTime
(
_timestamp
){
var
date
=
new
Date
(
_timestamp
);
var
y
=
""
+
date
.
getFullYear
();
var
month
=
""
+
(
date
.
getMonth
()
+
1
);
var
d
=
""
+
date
.
getDate
();
var
h
=
""
+
(
date
.
getHours
()
-
8
);
//GMT 转UTC 减8
var
minutes
=
""
+
date
.
getMinutes
();
var
s
=
""
+
date
.
getSeconds
();
if
(
month
.
length
<
2
){
month
=
"0"
+
month
;
}
if
(
d
.
length
<
2
){
d
=
"0"
+
d
;
}
if
(
h
.
length
<
2
){
h
=
"0"
+
h
;
}
if
(
minutes
.
length
<
2
){
minutes
=
"0"
+
minutes
;
}
if
(
s
.
length
<
2
){
s
=
"0"
+
s
;
}
var
tiemStr
=
y
+
month
+
d
+
h
+
minutes
+
s
;
//console.log(_timestamp,tiemStr,date);
return
tiemStr
}
//匹配时间戳和录制的视频地址
matchingVideoUrlFromTime
(
_tiemstampMessages
,
_allMedias
){
if
(
!
_tiemstampMessages
||!
_allMedias
){
console
.
log
(
"没有数据无法解析匹配"
,
_tiemstampMessages
,
_allMedias
)
return
;
}
let
finelMediaInfo
=
{};
let
tItem
;
for
(
let
j
in
_tiemstampMessages
){
tItem
=
_tiemstampMessages
[
j
];
let
videoUrl
=
""
;
if
(
_allMedias
[
tItem
.
uid
+
"_"
+
tItem
.
createTimeUTC
]){
videoUrl
=
_allMedias
[
tItem
.
uid
+
"_"
+
tItem
.
createTimeUTC
];
//console.log(tItem.uid+"_"+tItem.createTimeUTC,videoUrl);
}
else
{
let
t
=
parseInt
(
tItem
.
createTimeUTC
);
console
.
log
(
tItem
.
uid
+
"_"
+
t
,
"没有数据->查找最近的数据"
);
videoUrl
=
_allMedias
[
tItem
.
uid
+
"_"
+
(
t
-
1
)];
if
(
!
videoUrl
){
videoUrl
=
_allMedias
[
tItem
.
uid
+
"_"
+
(
t
+
1
)];
}
}
//console.log(tItem.uid+"_"+t+" "+videoUrl);
tItem
.
video_url
=
videoUrl
;
finelMediaInfo
[
tItem
.
timestamp
]
=
tItem
;
MediaModule
.
streams
[
tItem
.
stream_id
]
=
tItem
.
video_url
;
}
console
.
log
(
"finelMediaInfo"
,
finelMediaInfo
);
}
//获取媒体录制的地址信息-时间戳流名称和文件地址对应
getRecordFileURLFromAgo
(
_callback
){
if
(
!
GlobalConfig
.
getRecordFileURLAgoInterfaces
){
...
...
@@ -354,7 +418,7 @@ class RecordPlayBackParse extends Emiter {
}
})
.
then
(
ret
=>
{
loger
.
log
(
'AGOR-获取媒体录制地址信息-完成'
,
ret
);
loger
.
log
(
'AGOR-获取媒体录制地址信息-完成'
);
/* {"code": 200,
"returnData":{
"data":{
...
...
@@ -408,6 +472,21 @@ class RecordPlayBackParse extends Emiter {
})
.
then
(
ret
=>
{
loger
.
log
(
'AG-获取媒体录制信息-完成'
,
ret
);
//console.log("getRecordInfo success",ret);
if
(
ret
&&
ret
.
returnData
&&
ret
.
returnData
.
data
){
let
dataArr
=
ret
.
returnData
.
data
;
for
(
let
i
=
0
;
i
<
dataArr
.
length
;
i
++
){
let
item
=
dataArr
[
i
];
if
(
item
.
status
==
1
){
//console.log(JSON.stringify(item));
let
time
=
parseInt
(
item
.
createTime
);
item
.
createTimeUTC
=
this
.
timestampToUTCTime
(
time
);
item
.
stream_id
=
item
.
channel
+
"_"
+
item
.
userId
+
"_"
+
item
.
timestamp
;
this
.
agoTiemstampMessages
[
item
.
timestamp
]
=
item
;
}
}
}
console
.
log
(
"agoTiemstampMessages"
,
this
.
agoTiemstampMessages
);
if
(
_callback
){
_callback
();
}
...
...
@@ -497,7 +576,7 @@ class RecordPlayBackParse extends Emiter {
loger
.
log
(
"AGOR-外部录制的视频数据无效"
);
return
;
}
let
backFile
=
_data
.
backFile
;
/*
let backFile=_data.backFile;
if(!backFile){
loger.log("AGOR-外部录制的视频数据无效->backFile");
return;
...
...
@@ -518,7 +597,30 @@ class RecordPlayBackParse extends Emiter {
}
}
}
console
.
log
(
"AGO MediaModule.streams"
,
MediaModule
.
streams
);
console.log("AGO MediaModule.streams", MediaModule.streams);*/
if
(
!
_data
.
fschannefiles
)
return
;
let
items
=
_data
.
fschannefiles
;
//console.log(JSON.stringify(items));
for
(
let
k
=
0
;
k
<
items
.
length
;
k
++
)
{
let
item
=
items
[
k
];
// if(item.indexOf(".aac")>=0||item.indexOf(".webm")>=0){
// console.log(item)
// }
//console.log("item.indexOf ts",item.indexOf(".ts"))
// if(item.indexOf(".m3u8")>=0&&item.indexOf(".ts")<0&&item.indexOf(".m3u8.swp")<0){
let
indexStr
=
".m3u8"
;
if
(
item
.
lastIndexOf
(
indexStr
)
+
indexStr
.
length
==
item
.
length
){
//http://networkschool.xuedianyun.com:8899/20171021/markettest_188409305_030739/555257911_20171021031224730.mp4
//http://networkschool.xuedianyun.com:8899/20171021/markettest_1785982263_080003/572805001_20171021080041402_av.m3u8
let
itemUrl
=
_data
.
channefiles
+
"/"
+
item
;
//console.log(item,itemUrl);
item
=
item
.
substr
(
0
,
item
.
length
-
11
);
this
.
agoAllMedias
[
item
]
=
itemUrl
;
}
}
console
.
log
(
"agoAllMedias"
,
this
.
agoAllMedias
);
}
//解析TXY录制的视频数据,数组[]
...
...
src/apes/ConferApe.js
查看文件 @
e7cdad7
...
...
@@ -647,7 +647,7 @@ class ConferApe extends Ape {
let
adapterPdu
=
new
pdu
[
'RCAdapterPdu'
];
adapterPdu
.
type
=
pdu
.
RCPDU_REG_ADAPTER
;
adapterPdu
.
item
.
push
(
adapterItemPdu
);
loger
.
log
(
'发送更新课堂信息->'
);
//
loger.log('发送更新课堂信息->');
this
.
sendUniform
(
adapterPdu
,
true
);
}
...
...
请
注册
或
登录
后发表评论