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-07-23 19:33:13 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
6ba26c4e250c9c86ef896e45a6e224d310551b95
6ba26c4e
1 parent
d0589068
1.课堂初始化接口增加是否是H5的字段;2.伴音和媒体共享模块SDK增加seek间隔处理,定期5秒同步一次数据,如果两次更新的数据中seek差值和两次消息的时间差 小于5秒不需要同步
显示空白字符变更
内嵌
并排对比
正在显示
3 个修改的文件
包含
153 行增加
和
83 行删除
src/EngineEntrance.js
src/apes/MediaSharedApe.js
src/apes/MusicSharedApe.js
src/EngineEntrance.js
查看文件 @
6ba26c4
...
...
@@ -35,7 +35,7 @@ import QuestionApe from 'apes/QuestionApe';
import
UTF8
from
'utf-8'
;
let
loger
=
Loger
.
getLoger
(
'McuClient'
);
let
_sdkInfo
=
{
"version"
:
"v1.4
6.1.20170722
"
,
"author"
:
"www.3mang.com"
};
let
_sdkInfo
=
{
"version"
:
"v1.4
8.2.20170723
"
,
"author"
:
"www.3mang.com"
};
//APE
let
_sass
;
...
...
@@ -412,7 +412,7 @@ export default class MessageEntrance extends Emiter {
//Sass
//初始化
_init
(
_param
)
{
//{"classId":"1653304953","portal":"112.126.80.182:80","userRole":"normal","userId":0}
//{"classId":"1653304953","portal":"112.126.80.182:80","userRole":"normal","userId":0
,isH5:false
}
//判断传入的参数是否存在
if
(
_param
==
null
||
EngineUtils
.
isEmptyObject
(
_param
))
{
loger
.
error
(
'初始化课堂失败->参数错误'
,
_param
);
...
...
@@ -431,6 +431,11 @@ export default class MessageEntrance extends Emiter {
GlobalConfig
.
isRecordPlayBack
=
false
;
//设置为非录制回放状态
GlobalConfig
.
classId
=
parseInt
(
_param
.
classId
);
GlobalConfig
.
portal
=
_param
.
portal
;
GlobalConfig
.
isH5
=
_param
.
isH5
||
false
;
//外部传入的参数,是否是H5
if
(
GlobalConfig
.
isH5
==
true
){
GlobalConfig
.
platform
=
3
;
//3是H5
loger
.
warn
(
"设备类型是H5"
);
}
//GlobalConfig.userId = _param.userId || "0";
//如果没有名字,随机起一个名字
GlobalConfig
.
userName
=
_param
.
userName
||
"user_"
+
(
new
Date
().
getTime
()
%
1000000
);
...
...
src/apes/MediaSharedApe.js
查看文件 @
6ba26c4
...
...
@@ -20,7 +20,7 @@ class MediaSharedApe extends Ape {
ApeConsts
.
MEDIA_SESSION_NAME
,
ApeConsts
.
MEDIA_SESSION_TAG
);
this
.
lastActiveData
=
null
;
//记录最后一次收到的激活的数据
this
.
mediaSharedList
=
{};
//记录媒体数据
// Ape Models
this
.
registerKey
(
this
.
_session_id
,
this
.
_session_name
,
this
.
_session_tag
,
new
ArrayBuffer
);
...
...
@@ -166,6 +166,7 @@ class MediaSharedApe extends Ape {
//清除当前媒体文件模块的数据
clearData
(){
loger
.
log
(
"clearData->"
)
this
.
lastActiveData
=
null
;
this
.
mediaSharedList
=
{};
GlobalConfig
.
activeMediaId
=
0
;
GlobalConfig
.
activeMediaSeek
=
1
;
...
...
@@ -344,6 +345,8 @@ class MediaSharedApe extends Ape {
loger
.
log
(
'添加媒体文件->设置当前激活的媒体文件id'
);
}
let
getMediaPackFullInfo
=
this
.
_mediaSharedPackFullInfo
(
itemDataInfo
);
//更新数据,发送给应用层
this
.
_emit
(
MessageTypes
.
MEDIA_SHARED_UPDATE
,
getMediaPackFullInfo
);
}
}
...
...
@@ -364,6 +367,9 @@ class MediaSharedApe extends Ape {
GlobalConfig
.
activeMediaSeek
=
1
;
//当前激活的媒体文件的当前页
loger
.
log
(
'删除媒体文件数据->清除当前显示的媒体文件'
);
}
if
(
this
.
lastActiveData
&&
this
.
lastActiveData
.
itemIdx
==
itemIdxs
[
i
]){
this
.
lastActiveData
=
null
;
}
this
.
_emit
(
MessageTypes
.
MEDIA_SHARED_DELETE
,
{
"itemIdx"
:
itemIdxs
[
i
]});
delete
this
.
mediaSharedList
[
itemIdxs
[
i
]];
}
...
...
@@ -389,9 +395,39 @@ class MediaSharedApe extends Ape {
loger
.
log
(
'更新媒体文件->设置当前激活的媒体文件id->'
,
GlobalConfig
.
activeMediaId
,
"curPageNum->"
,
GlobalConfig
.
activeMediaSeek
);
}
let
getMediaPackFullInfo
=
this
.
_mediaSharedPackFullInfo
(
itemDataInfo
);
//如果上一次播放的文件和当前播放的文件是同一个,判断一下seek的间隔,如果间隔小于5就不需要再更新数据
//首先判断音量值是否发生改变
if
(
this
.
lastActiveData
&&
this
.
lastActiveData
.
status
==
1
){
if
(
getMediaPackFullInfo
&&
getMediaPackFullInfo
.
status
==
1
&&
getMediaPackFullInfo
.
mediaVolume
==
this
.
lastActiveData
.
mediaVolume
){
let
timeDistance
=
Math
.
abs
(
new
Date
().
getTime
()
-
parseInt
(
this
.
lastActiveData
.
time
))
/
1000
;
let
seekDistance
=
Math
.
abs
(
getMediaPackFullInfo
.
seek
-
this
.
lastActiveData
.
seek
)
-
timeDistance
;
if
(
seekDistance
<=
5
){
//记录最后一次的数据
loger
.
warn
(
"媒体共享更新数据->数据只有SEEK发生改变,低于5秒不需要再更新->timeDistance:"
+
timeDistance
+
"->seekDistance"
+
seekDistance
);
//记录最后一次激活的数据
this
.
lastActiveData
=
getMediaPackFullInfo
||
{};
this
.
lastActiveData
.
time
=
new
Date
().
getTime
();
return
;
}
}
}
this
.
_emit
(
MessageTypes
.
MEDIA_SHARED_UPDATE
,
getMediaPackFullInfo
);
if
(
getMediaPackFullInfo
.
status
==
1
){
this
.
lastActiveData
=
getMediaPackFullInfo
;
this
.
lastActiveData
.
time
=
new
Date
().
getTime
();
}
else
{
//如果状态发生改变就清除最后一次的记录
if
(
this
.
lastActiveData
&&
this
.
lastActiveData
.
itemIdx
==
getMediaPackFullInfo
.
itemIdx
){
this
.
lastActiveData
=
null
;
}
}
}
else
{
loger
.
log
(
'更新媒体文件-> 数据无效--> itemIdx'
,
itemIdx
);
loger
.
log
(
'更新媒体文件-> 数据无效--> itemIdx'
);
}
}
this
.
_showDefaultMeida
();
...
...
src/apes/MusicSharedApe.js
查看文件 @
6ba26c4
// //////////////////////////////////////////////////////////////////////////////
//
//
媒体
共享模块
//
伴音
共享模块
// //////////////////////////////////////////////////////////////////////////////
import
Ape
from
'./Ape'
;
...
...
@@ -20,8 +20,8 @@ class MusicSharedApe extends Ape {
ApeConsts
.
MUSIC_SESSION_NAME
,
ApeConsts
.
MUSIC_SESSION_TAG
);
this
.
musicSharedList
=
{};
//记录媒体数据
this
.
lastActiveData
=
null
;
this
.
musicSharedList
=
{};
//记录伴音数据
// Ape Models
this
.
registerKey
(
this
.
_session_id
,
this
.
_session_name
,
this
.
_session_tag
,
new
ArrayBuffer
);
...
...
@@ -29,24 +29,24 @@ class MusicSharedApe extends Ape {
}
/////////////发送数据操作//////////////////////////////////////////////////////
//上传
媒体
文件
//上传
伴音
文件
musicSharedUpload
(
paramInfo
)
{
if
(
paramInfo
==
null
||
EngineUtils
.
isEmptyObject
(
paramInfo
))
{
loger
.
warn
(
'上传
媒体
文件->失败->参数错误->'
,
paramInfo
);
loger
.
warn
(
'上传
伴音
文件->失败->参数错误->'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
//判断
媒体文件是否已经存在,每个媒体文件都有唯一的fileId,如果已经同步的媒体
文件中存在相同的fileId就不需要再同步
//判断
伴音文件是否已经存在,每个伴音文件都有唯一的fileId,如果已经同步的伴音
文件中存在相同的fileId就不需要再同步
if
(
this
.
checkMusicSharedId
(
paramInfo
.
fileId
))
{
//媒体文件已经存在相同的fileId,不需要同步上传
loger
.
warn
(
'上传媒体文件->失败->媒体文件档的fileId无效或已经存在相同的fileId不需要上传'
);
//伴音文件已经存在相同的fileId,不需要同步上传
loger
.
warn
(
'上传伴音文件->失败->伴音文件档的fileId无效或已经存在相同的fileId不需要上传'
);
return
;
}
let
itemIdx
=
EngineUtils
.
creatSoleNumberFromTimestamp
();
//
let
pduDataModel
=
this
.
packPdu
(
paramInfo
,
itemIdx
);
if
(
pduDataModel
==
null
)
{
loger
.
log
(
'上传
媒体
文件->失败->数据无效'
);
loger
.
log
(
'上传
伴音
文件->失败->数据无效'
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
...
...
@@ -78,11 +78,11 @@ class MusicSharedApe extends Ape {
adapterPdu
.
type
=
pdu
.
RCPDU_REG_ADAPTER
;
adapterPdu
.
item
.
push
(
adapterItemPdu
);
loger
.
log
(
"上传
媒体
文件->发送->itemIdx="
+
tableItemPdu
.
itemIdx
);
loger
.
log
(
"上传
伴音
文件->发送->itemIdx="
+
tableItemPdu
.
itemIdx
);
this
.
sendUniform
(
adapterPdu
,
true
);
}
//删除
媒体
文件
//删除
伴音
文件
musicSharedDelete
(
paramInfo
)
{
let
tableDeleteItemPdu
=
new
pdu
[
'RCRegistryTableDeleteItemPdu'
];
tableDeleteItemPdu
.
type
=
pdu
.
RCPDU_REG_TABLE_DELETE_PDU
;
//
...
...
@@ -113,7 +113,7 @@ class MusicSharedApe extends Ape {
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
null
;
}
loger
.
log
(
"
媒体
文件->更新 "
,
_pduDataModel
);
loger
.
log
(
"
伴音
文件->更新 "
,
_pduDataModel
);
let
pduDataModel
=
this
.
packPdu
(
_pduDataModel
,
_itemIdx
);
let
tableItemPdu
=
new
pdu
[
'RCRegistryTableItemPdu'
];
...
...
@@ -142,11 +142,11 @@ class MusicSharedApe extends Ape {
adapterPdu
.
type
=
pdu
.
RCPDU_REG_ADAPTER
;
adapterPdu
.
item
.
push
(
adapterItemPdu
);
loger
.
log
(
"发送更新
媒体
文件.itemIdx="
+
tableItemPdu
.
itemIdx
);
loger
.
log
(
"发送更新
伴音
文件.itemIdx="
+
tableItemPdu
.
itemIdx
);
this
.
sendUniform
(
adapterPdu
,
true
);
}
//组织完整的
媒体
文件信息,包含上传时的信息和转换后的完整地址信息
//组织完整的
伴音
文件信息,包含上传时的信息和转换后的完整地址信息
_musicSharedPackFullInfo
(
_itemDataInfo
)
{
let
itemDataInfo
=
_itemDataInfo
;
if
(
!
itemDataInfo
.
seek
)
{
...
...
@@ -156,27 +156,28 @@ class MusicSharedApe extends Ape {
return
itemDataInfo
;
}
//更新
媒体文件模块的录制信息,每次开启录制的时候需要把当前媒体
文件的信息更新一次
//更新
伴音文件模块的录制信息,每次开启录制的时候需要把当前伴音
文件的信息更新一次
updaterRecordApeStatus
(
_param
)
{
loger
.
warn
(
"录制状态发送改变->更新当前的
媒体
文件数据->fileId:"
,
GlobalConfig
.
activeMusicId
,
'page:'
,
GlobalConfig
.
activeMusicSeek
);
loger
.
warn
(
"录制状态发送改变->更新当前的
伴音
文件数据->fileId:"
,
GlobalConfig
.
activeMusicId
,
'page:'
,
GlobalConfig
.
activeMusicSeek
);
this
.
musicSharedSeek
({
"itemIdx"
:
GlobalConfig
.
activeMusicId
,
"seek"
:
GlobalConfig
.
activeMusicSeek
});
}
//清除当前
媒体
文件模块的数据
//清除当前
伴音
文件模块的数据
clearData
()
{
loger
.
log
(
"clearData->"
)
this
.
lastActiveData
=
null
;
this
.
musicSharedList
=
{};
GlobalConfig
.
activeMusicId
=
0
;
GlobalConfig
.
activeMusicSeek
=
1
;
}
//更新
媒体
文件(播放,暂停,停止,seek)
//更新
伴音
文件(播放,暂停,停止,seek)
musicSharedUpdate
(
_param
)
{
if
(
_param
==
null
||
_param
.
itemIdx
==
null
)
{
loger
.
warn
(
'
媒体
文件更新失败->参数错误'
,
_param
);
loger
.
warn
(
'
伴音
文件更新失败->参数错误'
,
_param
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
...
...
@@ -184,39 +185,39 @@ class MusicSharedApe extends Ape {
//获取已经存在的数据
let
pduDataModel
=
this
.
musicSharedList
[
_param
.
itemIdx
];
if
(
pduDataModel
==
null
)
{
loger
.
warn
(
'更新
媒体文件->媒体
文件不存在'
,
_param
);
loger
.
warn
(
'更新
伴音文件->伴音
文件不存在'
,
_param
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
//更新当前选择的
媒体
文件数据的字段
//更新当前选择的
伴音
文件数据的字段
pduDataModel
.
status
=
parseInt
(
_param
.
status
)
||
0
;
//默认是0
pduDataModel
.
seek
=
parseInt
(
_param
.
seek
)
||
1
;
pduDataModel
.
musicVolume
=
parseInt
(
_param
.
musicVolume
)
||
0
;
//更新当前选择的
媒体
文件
//更新当前选择的
伴音
文件
this
.
updaterMusicShared
(
pduDataModel
,
pduDataModel
.
itemIdx
);
}
//播放
媒体
文件
//播放
伴音
文件
musicSharedPlay
(
paramInfo
)
{
loger
.
log
(
'切换
媒体
文件->'
,
paramInfo
);
loger
.
log
(
'切换
伴音
文件->'
,
paramInfo
);
if
(
GlobalConfig
.
isRecordPlayBack
)
{
loger
.
warn
(
'录制回放状态不允许切换
媒体
文件'
);
loger
.
warn
(
'录制回放状态不允许切换
伴音
文件'
);
return
;
}
if
(
paramInfo
==
null
||
paramInfo
.
itemIdx
==
null
)
{
loger
.
warn
(
'切换
媒体
文件失败,参数错误'
,
paramInfo
);
loger
.
warn
(
'切换
伴音
文件失败,参数错误'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
/* if (paramInfo.itemIdx == GlobalConfig.activeMusicId && GlobalConfig.activeMusicId != 0) {
loger.warn('
媒体
文件已经显示', paramInfo.itemIdx, GlobalConfig.activeMusicId);
loger.warn('
伴音
文件已经显示', paramInfo.itemIdx, GlobalConfig.activeMusicId);
return;
}*/
//更新切换之前的
媒体文件的数据,要显示当前切换的媒体文件,上一个媒体
文件需要隐藏
//更新切换之前的
伴音文件的数据,要显示当前切换的伴音文件,上一个伴音
文件需要隐藏
let
oldPduDataModel
;
if
(
GlobalConfig
.
activeMusicId
!=
0
)
{
oldPduDataModel
=
this
.
musicSharedList
[
GlobalConfig
.
activeMusicId
];
...
...
@@ -229,36 +230,36 @@ class MusicSharedApe extends Ape {
//获取已经存在的数据
let
pduDataModel
=
this
.
musicSharedList
[
paramInfo
.
itemIdx
];
if
(
pduDataModel
==
null
)
{
loger
.
warn
(
'切换
媒体文件失败,媒体
文件不存在'
,
paramInfo
);
loger
.
warn
(
'切换
伴音文件失败,伴音
文件不存在'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
//更新当前选择的
媒体
文件数据的字段
//更新当前选择的
伴音
文件数据的字段
pduDataModel
.
status
=
paramInfo
.
status
||
0
;
//默认是0
pduDataModel
.
seek
=
paramInfo
.
seek
||
1
;
pduDataModel
.
musicVolume
=
parseInt
(
paramInfo
.
musicVolume
)
||
0
;
//loger.log('切换
媒体文件,当前媒体文件和上一个显示的媒体
文件都需要更新状态');
//loger.log('切换
伴音文件,当前伴音文件和上一个显示的伴音
文件都需要更新状态');
loger
.
log
({
"oldDoc"
:
oldPduDataModel
,
"nowDoc"
:
pduDataModel
});
//更新当前选择的
媒体
文件
//更新当前选择的
伴音
文件
this
.
updaterMusicShared
(
pduDataModel
,
pduDataModel
.
itemIdx
);
//更新上一个
媒体
文件 隐藏
//更新上一个
伴音
文件 隐藏
if
(
oldPduDataModel
&&
oldPduDataModel
.
itemIdx
!=
pduDataModel
.
itemIdx
)
{
this
.
updaterMusicShared
(
oldPduDataModel
,
oldPduDataModel
.
itemIdx
);
}
}
//停止
媒体
文件
//停止
伴音
文件
musicSharedStop
(
paramInfo
)
{
loger
.
log
(
'停止
媒体
文件->'
,
paramInfo
);
loger
.
log
(
'停止
伴音
文件->'
,
paramInfo
);
if
(
GlobalConfig
.
isRecordPlayBack
)
{
loger
.
warn
(
'录制回放状态不允许停止
媒体
文件'
);
loger
.
warn
(
'录制回放状态不允许停止
伴音
文件'
);
return
;
}
if
(
paramInfo
==
null
||
paramInfo
.
itemIdx
==
null
)
{
loger
.
warn
(
'停止
媒体
文件,参数错误'
,
paramInfo
);
loger
.
warn
(
'停止
伴音
文件,参数错误'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
...
...
@@ -266,29 +267,29 @@ class MusicSharedApe extends Ape {
//获取已经存在的数据
let
pduDataModel
=
this
.
musicSharedList
[
paramInfo
.
itemIdx
];
if
(
pduDataModel
==
null
)
{
loger
.
warn
(
'停止
媒体文件,媒体
文件不存在'
,
paramInfo
);
loger
.
warn
(
'停止
伴音文件,伴音
文件不存在'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
//更新当前选择的
媒体
文件数据的字段
//更新当前选择的
伴音
文件数据的字段
pduDataModel
.
status
=
0
;
//默认是0
pduDataModel
.
seek
=
0
;
pduDataModel
.
musicVolume
=
60
;
//更新当前选择的
媒体
文件
//更新当前选择的
伴音
文件
this
.
updaterMusicShared
(
pduDataModel
,
pduDataModel
.
itemIdx
);
}
//暂停
媒体
文件
//暂停
伴音
文件
musicSharedPause
(
paramInfo
)
{
loger
.
log
(
'暂停
媒体
文件->'
,
paramInfo
);
loger
.
log
(
'暂停
伴音
文件->'
,
paramInfo
);
if
(
GlobalConfig
.
isRecordPlayBack
)
{
loger
.
warn
(
'录制回放-》暂停
媒体
文件'
);
loger
.
warn
(
'录制回放-》暂停
伴音
文件'
);
return
;
}
if
(
paramInfo
==
null
||
paramInfo
.
itemIdx
==
null
)
{
loger
.
warn
(
'暂停
媒体
文件,参数错误'
,
paramInfo
);
loger
.
warn
(
'暂停
伴音
文件,参数错误'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
...
...
@@ -296,24 +297,24 @@ class MusicSharedApe extends Ape {
//获取已经存在的数据
let
pduDataModel
=
this
.
musicSharedList
[
paramInfo
.
itemIdx
];
if
(
pduDataModel
==
null
)
{
loger
.
warn
(
'暂停
媒体文件,媒体
文件不存在'
,
paramInfo
);
loger
.
warn
(
'暂停
伴音文件,伴音
文件不存在'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
//更新当前选择的
媒体
文件数据的字段
//更新当前选择的
伴音
文件数据的字段
pduDataModel
.
status
=
2
;
//默认是0
//更新当前选择的
媒体
文件
//更新当前选择的
伴音
文件
this
.
updaterMusicShared
(
pduDataModel
,
pduDataModel
.
itemIdx
);
}
//
媒体
文件SEEK
//
伴音
文件SEEK
musicSharedSeek
(
paramInfo
)
{
loger
.
log
(
'
媒体
文件SEEK->'
,
paramInfo
);
loger
.
log
(
'
伴音
文件SEEK->'
,
paramInfo
);
//获取已经存在的数据
let
pduDataModel
=
this
.
musicSharedList
[
paramInfo
.
itemIdx
];
if
(
pduDataModel
==
null
)
{
loger
.
log
(
'
媒体文件SEEK->媒体
文件不存在'
,
paramInfo
);
loger
.
log
(
'
伴音文件SEEK->伴音
文件不存在'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
...
...
@@ -330,43 +331,43 @@ class MusicSharedApe extends Ape {
}
//添加
媒体
文件
//添加
伴音
文件
tableInsertApeHandler
(
_tableUpdateItems
,
_seekTime
)
{
let
tableInsertItems
=
_tableUpdateItems
;
let
tableInsertItemsLen
=
tableInsertItems
.
length
;
loger
.
log
(
'添加
媒体
文件->_seekTime:'
+
_seekTime
,
"activeMusicId->"
,
GlobalConfig
.
activeMusicId
,
"tableUpdateItemsLen->"
,
tableInsertItemsLen
);
loger
.
log
(
'添加
伴音
文件->_seekTime:'
+
_seekTime
,
"activeMusicId->"
,
GlobalConfig
.
activeMusicId
,
"tableUpdateItemsLen->"
,
tableInsertItemsLen
);
for
(
let
i
=
0
;
i
<
tableInsertItemsLen
;
++
i
)
{
let
insertItem
=
tableInsertItems
[
i
];
//this.tableInsertHandler(insertItem.owner, insertItem.itemIdx, insertItem.itemData);
let
itemDataInfo
=
this
.
unPackPdu
(
insertItem
.
owner
,
insertItem
.
itemIdx
,
insertItem
.
itemData
);
if
(
itemDataInfo
)
{
itemDataInfo
.
seek
=
itemDataInfo
.
seek
+
parseInt
(
_seekTime
);
//seek是
媒体
文件自己的,_seekTime是录制回放时进度条换算的
itemDataInfo
.
seek
=
itemDataInfo
.
seek
+
parseInt
(
_seekTime
);
//seek是
伴音
文件自己的,_seekTime是录制回放时进度条换算的
this
.
musicSharedList
[
insertItem
.
itemIdx
]
=
itemDataInfo
;
if
(
itemDataInfo
.
status
==
1
)
{
GlobalConfig
.
activeMusicId
=
itemDataInfo
.
itemIdx
;
//当前激活的
媒体
文件ID
GlobalConfig
.
activeMusicId
=
itemDataInfo
.
itemIdx
;
//当前激活的
伴音
文件ID
GlobalConfig
.
activeMusicSeek
=
itemDataInfo
.
seek
;
loger
.
log
(
'添加
媒体文件->设置当前激活的媒体
文件id'
);
loger
.
log
(
'添加
伴音文件->设置当前激活的伴音
文件id'
);
}
let
getMusicPackFullInfo
=
this
.
_musicSharedPackFullInfo
(
itemDataInfo
);
this
.
_emit
(
MessageTypes
.
MUSIC_SHARED_UPDATE
,
getMusicPackFullInfo
);
}
}
//
媒体文件数据更新完毕,如果当前没有显示的媒体
文件,默认选择一个显示
//
伴音文件数据更新完毕,如果当前没有显示的伴音
文件,默认选择一个显示
this
.
_showDefaultMeida
();
}
tableDeleteHandler
(
object_id
,
tableDeleteData
)
{
loger
.
log
(
'删除
媒体
文件数据->'
,
object_id
,
tableDeleteData
);
//["tableDeleteHandler",1179649,{"type":231,"itemIdx":[1486301768]}]
loger
.
log
(
'删除
伴音
文件数据->'
,
object_id
,
tableDeleteData
);
//["tableDeleteHandler",1179649,{"type":231,"itemIdx":[1486301768]}]
if
(
tableDeleteData
&&
tableDeleteData
.
itemIdx
)
{
let
len
=
tableDeleteData
.
itemIdx
.
length
;
let
itemIdxs
=
tableDeleteData
.
itemIdx
;
for
(
let
i
=
0
;
i
<
len
;
i
++
)
{
if
(
this
.
musicSharedList
[
itemIdxs
[
i
]])
{
loger
.
log
(
"删除
媒体
文件数据:"
,
itemIdxs
[
i
]);
loger
.
log
(
"删除
伴音
文件数据:"
,
itemIdxs
[
i
]);
let
itemDataInfo
=
this
.
musicSharedList
[
itemIdxs
[
i
]];
if
(
itemDataInfo
&&
itemDataInfo
.
status
==
1
)
{
GlobalConfig
.
activeMusicId
=
0
;
//当前激活的媒体文件ID
GlobalConfig
.
activeMusicSeek
=
1
;
//当前激活的媒体文件的当前页
loger
.
log
(
'删除媒体文件数据->清除当前显示的媒体文件'
);
GlobalConfig
.
activeMusicId
=
0
;
//当前激活的伴音文件ID
GlobalConfig
.
activeMusicSeek
=
1
;
//当前激活的伴音文件的当前页
loger
.
log
(
'删除伴音文件数据->清除当前显示的伴音文件'
);
}
this
.
_emit
(
MessageTypes
.
MUSIC_SHARED_DELETE
,
{
"itemIdx"
:
itemIdxs
[
i
]
});
delete
this
.
musicSharedList
[
itemIdxs
[
i
]];
...
...
@@ -381,7 +382,7 @@ class MusicSharedApe extends Ape {
tableUpdateApeHandler
(
_tableUpdateItems
,
_seekTime
)
{
let
tableUpdateItemsLen
=
_tableUpdateItems
.
length
;
loger
.
log
(
'更新
媒体
文件->_seekTime:'
+
_seekTime
,
"activeDocId->"
,
GlobalConfig
.
activeMusicId
,
"更新的数量->"
,
tableUpdateItemsLen
);
loger
.
log
(
'更新
伴音
文件->_seekTime:'
+
_seekTime
,
"activeDocId->"
,
GlobalConfig
.
activeMusicId
,
"更新的数量->"
,
tableUpdateItemsLen
);
for
(
let
i
=
0
;
i
<
tableUpdateItemsLen
;
++
i
)
{
let
tableItem
=
_tableUpdateItems
[
i
];
let
itemDataInfo
=
this
.
unPackPdu
(
tableItem
.
owner
,
tableItem
.
itemIdx
,
tableItem
.
itemData
);
...
...
@@ -389,31 +390,59 @@ class MusicSharedApe extends Ape {
itemDataInfo
.
seek
=
itemDataInfo
.
seek
+
parseInt
(
_seekTime
);
this
.
musicSharedList
[
tableItem
.
itemIdx
]
=
itemDataInfo
;
if
(
itemDataInfo
&&
itemDataInfo
.
status
==
1
)
{
GlobalConfig
.
activeMusicId
=
itemDataInfo
.
itemIdx
;
//当前激活的
媒体
文件ID
GlobalConfig
.
activeMusicId
=
itemDataInfo
.
itemIdx
;
//当前激活的
伴音
文件ID
GlobalConfig
.
activeMusicSeek
=
itemDataInfo
.
seek
;
loger
.
log
(
'更新
媒体文件->设置当前激活的媒体
文件id->'
,
GlobalConfig
.
activeMusicId
,
"curPageNum->"
,
GlobalConfig
.
activeMusicSeek
);
loger
.
log
(
'更新
伴音文件->设置当前激活的伴音
文件id->'
,
GlobalConfig
.
activeMusicId
,
"curPageNum->"
,
GlobalConfig
.
activeMusicSeek
);
}
let
getMusicPackFullInfo
=
this
.
_musicSharedPackFullInfo
(
itemDataInfo
);
if
(
this
.
lastActiveData
&&
this
.
lastActiveData
.
status
==
1
){
if
(
getMusicPackFullInfo
&&
getMusicPackFullInfo
.
status
==
1
&&
getMusicPackFullInfo
.
mediaVolume
==
this
.
lastActiveData
.
mediaVolume
){
let
timeDistance
=
Math
.
abs
(
new
Date
().
getTime
()
-
parseInt
(
this
.
lastActiveData
.
time
))
/
1000
;
let
seekDistance
=
Math
.
abs
(
getMusicPackFullInfo
.
seek
-
this
.
lastActiveData
.
seek
)
-
timeDistance
;
if
(
seekDistance
<
5
){
//记录最后一次的数据
loger
.
warn
(
"伴音更新数据->数据只有SEEK发生改变,低于5秒不需要再更新->timeDistance:"
+
timeDistance
+
"->seekDistance"
+
seekDistance
);
//记录最后一次激活的数据
this
.
lastActiveData
=
getMusicPackFullInfo
;
this
.
lastActiveData
.
time
=
new
Date
().
getTime
();
return
;
}
}
}
this
.
_emit
(
MessageTypes
.
MUSIC_SHARED_UPDATE
,
getMusicPackFullInfo
);
if
(
getMusicPackFullInfo
.
status
==
1
){
this
.
lastActiveData
=
getMusicPackFullInfo
;
this
.
lastActiveData
.
time
=
new
Date
().
getTime
();
}
else
{
//如果状态发生改变就清除最后一次的记录
if
(
this
.
lastActiveData
&&
this
.
lastActiveData
.
itemIdx
==
getMusicPackFullInfo
.
itemIdx
){
this
.
lastActiveData
=
null
;
}
}
}
else
{
loger
.
log
(
'更新
媒体
文件-> 数据无效--> itemIdx'
,
itemIdx
);
loger
.
log
(
'更新
伴音
文件-> 数据无效--> itemIdx'
,
itemIdx
);
}
}
this
.
_showDefaultMeida
();
}
//果当前没有显示的
媒体文件,默认选择一个显示媒体
文件
//果当前没有显示的
伴音文件,默认选择一个显示伴音
文件
_showDefaultMeida
()
{
//显示默认
媒体文件条件->1.非录制回放状态下 2.只有host有权限操作 3.当前激活的媒体
文件id不为0
//显示默认
伴音文件条件->1.非录制回放状态下 2.只有host有权限操作 3.当前激活的伴音
文件id不为0
if
(
GlobalConfig
.
isRecordPlayBack
||
!
GlobalConfig
.
isHost
||
GlobalConfig
.
activeMusicId
>
0
)
{
return
;
}
/*
let tempDocItemIdx;//临时记录
媒体文件数据,用于显示默认媒体
文件
let tempDocItemIdx;//临时记录
伴音文件数据,用于显示默认伴音
文件
for (let key in this.musicSharedList) {
tempDocItemIdx= this.musicSharedList[key];
if (tempDocItemIdx) {
loger.log("选择一个
媒体文件作为默认媒体
文件显示->", tempDocItemIdx);
loger.log("选择一个
伴音文件作为默认伴音
文件显示->", tempDocItemIdx);
let paramInfo = {
"itemIdx": tempDocItemIdx.itemIdx,
"status": 1
...
...
@@ -426,7 +455,7 @@ class MusicSharedApe extends Ape {
}
onJoinChannelHandlerSuccess
()
{
loger
.
log
(
this
.
_session_name
+
'
媒体
共享加入频道成功'
);
loger
.
log
(
this
.
_session_name
+
'
伴音模块
共享加入频道成功'
);
if
(
this
.
_apeDelayed
)
{
setTimeout
(()
=>
{
this
.
_emit
(
MusicSharedApe
.
MUSICSHARED_JOIN_CHANNEL_SUCCESS
);
...
...
@@ -438,28 +467,28 @@ class MusicSharedApe extends Ape {
}
}
//检查
媒体
文件是否已经存在,如果存在 返回true,否则返回false
//检查
伴音
文件是否已经存在,如果存在 返回true,否则返回false
checkMusicSharedId
(
_fileId
)
{
if
(
_fileId
==
null
)
{
loger
.
warn
(
'查找
媒体
文件->失败->参数为null'
);
loger
.
warn
(
'查找
伴音伴音
文件->失败->参数为null'
);
return
true
;
}
//遍历查找
for
(
let
key
in
this
.
musicSharedList
)
{
let
item
=
this
.
musicSharedList
[
key
];
if
(
item
&&
item
.
fileId
==
_fileId
)
{
loger
.
log
(
'查找
媒体
文件->已经存在->'
,
_fileId
);
loger
.
log
(
'查找
伴音伴音
文件->已经存在->'
,
_fileId
);
return
true
;
}
}
loger
.
log
(
'查找
媒体文件->没有查找到媒体
文件->'
,
_fileId
);
loger
.
log
(
'查找
伴音文件->没有查找到伴音
文件->'
,
_fileId
);
//储存的数据中没有查找到
return
false
;
}
///////数据的封包和解包/////////////////////////////////////////
packPdu
(
_param
,
_itemIdx
)
{
loger
.
log
(
"
媒体
文件->packPdu"
);
loger
.
log
(
"
伴音伴音
文件->packPdu"
);
//验证坐标点集合数组是否合法
if
(
_param
==
null
||
_itemIdx
==
null
)
{
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
...
...
@@ -485,8 +514,8 @@ class MusicSharedApe extends Ape {
pduDataModel
.
creatUserId
=
_param
.
creatUserId
||
"0"
;
pduDataModel
.
url
=
_param
.
url
||
""
;
//这个地址没用到,数据太长占用资源 暂停使用//"http://101.200.150.192/DocSharing/data/h5test/20170206-171100025/7e9c4178cac1133e0dd9d5b583439122.jpg";
pduDataModel
.
status
=
_param
.
status
||
0
;
pduDataModel
.
fileId
=
_param
.
fileId
||
""
;
//媒体文件在服务器数据库中的唯一id,必须有
pduDataModel
.
fileName
=
_param
.
fileName
||
"music_"
+
_itemIdx
;
//媒体文件的名字
pduDataModel
.
fileId
=
_param
.
fileId
||
""
;
//伴音文件在服务器数据库中的唯一id,必须有
pduDataModel
.
fileName
=
_param
.
fileName
||
"music_"
+
_itemIdx
;
//伴音文件的名字
pduDataModel
.
seek
=
parseInt
(
_param
.
seek
)
||
1
;
pduDataModel
.
musicVolume
=
parseInt
(
_param
.
musicVolume
);
if
(
!
pduDataModel
.
musicVolume
)
{
...
...
@@ -502,10 +531,10 @@ class MusicSharedApe extends Ape {
}
try
{
let
pduDataModel
=
pdu
[
'RCMusicSharedSendDataModelPdu'
].
decode
(
itemData
);
loger
.
log
(
"
媒体
文件===>unPackPdu"
);
loger
.
log
(
"
伴音
文件===>unPackPdu"
);
return
pduDataModel
;
}
catch
(
err
)
{
loger
.
log
(
"
媒体
文件===>unPackPdu->Pdu解析错误->itemIdx="
+
itemIdx
+
"->err:"
+
err
.
message
);
loger
.
log
(
"
伴音
文件===>unPackPdu->Pdu解析错误->itemIdx="
+
itemIdx
+
"->err:"
+
err
.
message
);
}
return
null
;
}
...
...
请
注册
或
登录
后发表评论