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
7ea5c9521ce204d510eca8e79db9dbfef39d24e3
7ea5c952
1 parent
f21c7b98
webRtc-dev
...
20170922-1
20171019-1
20171120-1w
ly20170925-1
ly20170926-1
ly20170927-1
ly20170929-1
ly20171011-1
ly20171013-1
ly20171013-2
ly20171016-1
ly20171021-1
ly20171023-1
ly20171024-1w
ly20171025-1w
ly20171026-1w
ly20171027-1w
ly20171030-1
ly20171030-2w
ly20171107-1
ly20171110-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
v2.28.1.20171110
v2.27.11.20171109
v2.26.9.20171107
v2.26.6.20171103
v2.26.2.20171102
v2.25.7.20171031
v2.25.6.20171031
v2.25.0.20171030
v2.24.2.20171030
v2.23.0.20171030
v2.22.7.20171026
v2.20.5.20171023
v2.20.0.20171021
v2.19.8.20171020
v2.18.14.20171020
v2.18.10.20171019
v2.17.11.20171014
v2.16.8.20171012
v2.16.5.20171012
v2.15.5.20171001
v2.15.3.20170929
v2.14.5.20170927
v2.13.5.20170927
v2.12.14.20170927
v2.12.8.20170926
v2.12.6.20170925
v2.11.13.20170925
v2.10.7.20170921
v2.10.6.20170921
v2.10.5.20170920
v2.10.4.20170920
v2.9.3.20170919
v2.8.17.20170918
v2.8.8.20170917
v2.8.2.20170916
v2.6.2.20170915
v2.5.12.20170915
v2.5.6.20170914
v2.5.5.20170914
v2.4.4.20170908
v2.4.2.20170908
v2.4.0.20170907
v2.3.6.20170907
v2.2.16.20170905
v2.1.22.20170904
增加 webRtc 相关的数据返回给客户端;
隐藏空白字符变更
内嵌
并排对比
正在显示
3 个修改的文件
包含
99 行增加
和
20 行删除
src/EngineEntrance.js
src/GlobalConfig.js
src/apes/WebRtcApe.js
src/EngineEntrance.js
查看文件 @
7ea5c95
...
...
@@ -59,7 +59,7 @@ export default class MessageEntrance extends Emiter {
constructor
()
{
super
();
//sdk 信息
GlobalConfig
.
sdkVersion
=
"v2.1.
17.20170902
"
;
GlobalConfig
.
sdkVersion
=
"v2.1.
22.20170904
"
;
loger
.
warn
(
"sdkVersion:"
+
GlobalConfig
.
sdkVersion
);
//设置
...
...
@@ -1048,6 +1048,12 @@ export default class MessageEntrance extends Emiter {
GlobalConfig
.
screenWidth
=
window
.
screen
.
width
;
GlobalConfig
.
screenHeight
=
window
.
screen
.
height
;
GlobalConfig
.
channelId
=
""
+
GlobalConfig
.
siteId
+
"_"
+
GlobalConfig
.
classId
;
GlobalConfig
.
userUid
=
GlobalConfig
.
nodeId
;
GlobalConfig
.
channelKey
=
null
;
//返回给客户端初始化成功的数据
let
joinClassSuccessCallBackData
=
{};
...
...
@@ -1110,6 +1116,14 @@ export default class MessageEntrance extends Emiter {
joinClassSuccessCallBackData
.
explorerVersion
=
GlobalConfig
.
explorerVersion
;
joinClassSuccessCallBackData
.
os
=
GlobalConfig
.
os
;
joinClassSuccessCallBackData
.
channelId
=
GlobalConfig
.
channelId
;
joinClassSuccessCallBackData
.
channelKey
=
GlobalConfig
.
channelKey
;
joinClassSuccessCallBackData
.
userUid
=
GlobalConfig
.
userUid
;
joinClassSuccessCallBackData
.
appId
=
GlobalConfig
.
appId
;
joinClassSuccessCallBackData
.
appCertificate
=
GlobalConfig
.
appCertificate
;
joinClassSuccessCallBackData
.
appRecordingKey
=
GlobalConfig
.
appRecordingKey
;
//设置日志上报所需的信息
LogManager
.
serverAndLoacTimeDistanc
=
GlobalConfig
.
serverAndLoacTimeDistanc
;
//本地时间和服务器时间的差值(秒)
LogManager
.
classId
=
GlobalConfig
.
classId
;
//课堂号
...
...
@@ -1126,7 +1140,7 @@ export default class MessageEntrance extends Emiter {
this
.
_emit
(
MessageTypes
.
CLASS_JOIN_SUCCESS
,
joinClassSuccessCallBackData
);
//加入音视频通话模块
this
.
_joinChannel
({
channelId
:
GlobalConfig
.
siteId
+
"_"
+
GlobalConfig
.
classId
,
uid
:
GlobalConfig
.
nodeI
d
,
info
:
""
+
GlobalConfig
.
userRole
});
this
.
_joinChannel
({
channelId
:
GlobalConfig
.
channelId
,
channelKey
:
GlobalConfig
.
channelKey
,
uid
:
GlobalConfig
.
userUi
d
,
info
:
""
+
GlobalConfig
.
userRole
});
}
//切换MCU ->_param->{reConnect:false} //reConnect(是否立即替换当前的ip并且重新连接)
...
...
@@ -1613,6 +1627,10 @@ export default class MessageEntrance extends Emiter {
GlobalConfig
.
setMediaShareList
(
_data
.
sharedMediaList
);
//提前上传的媒体共享文件列表
GlobalConfig
.
appId
=
'eb253cc7b40c4a8b82f0a5b6f93c2ce0'
;
GlobalConfig
.
appCertificate
=
""
;
GlobalConfig
.
appRecordingKey
=
""
;
//文档服务器地址
if
(
GlobalConfig
.
docList
&&
GlobalConfig
.
docList
.
length
>
0
)
{
//doc上传地址,随机获取一个
...
...
@@ -1688,7 +1706,6 @@ export default class MessageEntrance extends Emiter {
}
else
{
//根据用户的userIp获取信息,获取服务列表选点,选点测速完成后才加入MCU
this
.
loadServerJsonAndgetUserIpInfo
();
//初始化音视频通话sdk
this
.
_initWebRtcSdk
();
}
...
...
@@ -2565,6 +2582,10 @@ export default class MessageEntrance extends Emiter {
* 初始化webRtc
* */
_initWebRtcSdk
(
_params
){
if
(
GlobalConfig
.
deviceType
==
1
||
GlobalConfig
.
deviceType
==
2
){
loger
.
warn
(
"移动端不需要处理初始化webRtc"
);
return
;
}
if
(
_webRtc
){
_webRtc
.
initApp
(
_params
)
}
...
...
@@ -2573,6 +2594,10 @@ export default class MessageEntrance extends Emiter {
* 加入视频通话
* */
_joinChannel
(
_params
){
if
(
GlobalConfig
.
deviceType
==
1
||
GlobalConfig
.
deviceType
==
2
){
loger
.
warn
(
"移动端不需要处理加入视频房间"
);
return
;
}
if
(
_webRtc
){
_webRtc
.
joinChannel
(
_params
);
}
...
...
@@ -2581,6 +2606,9 @@ export default class MessageEntrance extends Emiter {
* 离开视频通话频道
* */
_leaveChannel
(
_params
){
if
(
GlobalConfig
.
deviceType
==
1
||
GlobalConfig
.
deviceType
==
2
){
return
;
}
if
(
_webRtc
){
_webRtc
.
leaveChannel
(
_params
);
}
...
...
@@ -2589,6 +2617,22 @@ export default class MessageEntrance extends Emiter {
* 发布流
* */
_publishMedia
(
_params
){
//ios和安卓的只需要更新数据即可
if
(
GlobalConfig
.
deviceType
==
1
||
GlobalConfig
.
deviceType
==
2
){
loger
.
log
(
"调用webRtc推流"
);
GlobalConfig
.
openCamera
=
EngineUtils
.
creatTimestamp
();
GlobalConfig
.
openMicrophones
=
GlobalConfig
.
openCamera
;
this
.
userDeviecStatusChange
({
nodeId
:
GlobalConfig
.
nodeId
,
userRole
:
GlobalConfig
.
userRole
,
userName
:
GlobalConfig
.
userName
,
userId
:
GlobalConfig
.
userId
,
openCamera
:
GlobalConfig
.
openCamera
,
openMicrophones
:
GlobalConfig
.
openMicrophones
});
return
;
}
if
(
_webRtc
){
_webRtc
.
publish
(
_params
);
}
...
...
@@ -2597,6 +2641,22 @@ export default class MessageEntrance extends Emiter {
* 停止发布流
* */
_unpublishMedia
(
_params
){
//ios和安卓的只需要更新数据即可
if
(
GlobalConfig
.
deviceType
==
1
||
GlobalConfig
.
deviceType
==
2
){
loger
.
log
(
"调用webRtc停止推流"
);
GlobalConfig
.
openCamera
=
0
;
GlobalConfig
.
openMicrophones
=
0
;
this
.
userDeviecStatusChange
({
nodeId
:
GlobalConfig
.
nodeId
,
userRole
:
GlobalConfig
.
userRole
,
userName
:
GlobalConfig
.
userName
,
userId
:
GlobalConfig
.
userId
,
openCamera
:
GlobalConfig
.
openCamera
,
openMicrophones
:
GlobalConfig
.
openMicrophones
});
return
;
}
if
(
_webRtc
){
_webRtc
.
unpublish
(
_params
);
}
...
...
src/GlobalConfig.js
查看文件 @
7ea5c95
...
...
@@ -58,6 +58,12 @@ class GlobalConfig {
classInfo
.
ssTunnelAppURL
=
this
.
ssTunnelAppURL
;
classInfo
.
currentSceneTableId
=
this
.
currentSceneTableId
;
//文档区域的模块显示
classInfo
.
serverAndLoacTimeDistanc
=
this
.
serverAndLoacTimeDistanc
;
classInfo
.
appId
=
this
.
appId
;
classInfo
.
appCertificate
=
this
.
appCertificate
;
classInfo
.
appRecordingKey
=
this
.
appRecordingKey
;
classInfo
.
channelId
=
this
.
channelId
;
classInfo
.
channelKey
=
this
.
channelKey
;
classInfo
.
userUid
=
this
.
userUid
;
return
classInfo
;
}
...
...
@@ -548,5 +554,15 @@ GlobalConfig.os="未知";//系统
GlobalConfig
.
locationProtocol
=
"http://"
;
//https;或http:
GlobalConfig
.
websocketProtocol
=
"ws://"
;
//wss或ws
GlobalConfig
.
isHttps
=
false
;
//是否是https
//webRtc
GlobalConfig
.
appId
=
'eb253cc7b40c4a8b82f0a5b6f93c2ce0'
;
GlobalConfig
.
appCertificate
=
""
;
GlobalConfig
.
appRecordingKey
=
""
;
GlobalConfig
.
channelId
=
""
;
GlobalConfig
.
channelKey
=
null
;
GlobalConfig
.
userUid
=
0
;
export
default
GlobalConfig
;
...
...
src/apes/WebRtcApe.js
查看文件 @
7ea5c95
...
...
@@ -18,6 +18,7 @@ class WebRtcApe extends Emiter {
this
.
appCertificate
=
""
;
this
.
appRecordingKey
=
""
;
this
.
channelKey
=
null
;
this
.
channelId
=
""
;
this
.
uid
=
0
;
this
.
info
=
""
...
...
@@ -48,29 +49,30 @@ class WebRtcApe extends Emiter {
}
initApp
(
_params
)
{
loger
.
log
(
"
AgoraRTC client init
"
);
loger
.
log
(
"
初始化WebRtc
"
);
if
(
_params
)
{
this
.
appId
=
_params
.
appId
;
}
if
(
this
.
client
)
{
this
.
client
.
init
(
this
.
appId
,
()
=>
{
loger
.
log
(
"
AgoraRTC client init success
"
);
loger
.
log
(
"
初始化WebRtc->成功
"
);
},
(
err
)
=>
{
loger
.
error
(
"AgoraRTC client init failed"
,
err
);
loger
.
error
(
"初始化WebRtc->失败"
,
err
);
});
this
.
addEvent
();
}
}
addEvent
()
{
loger
.
log
(
"
AgoraRTC addEvent
"
);
loger
.
log
(
"
监听webRtc消息
"
);
if
(
!
this
.
client
)
{
loger
.
log
(
"addEvent error:client is null"
);
return
;
}
this
.
channelKey
=
""
;
this
.
client
.
on
(
'error'
,
(
err
)
=>
{
loger
.
log
(
"
Got error msg
:"
,
err
.
reason
);
loger
.
log
(
"
WebRtc异常
:"
,
err
.
reason
);
if
(
err
.
reason
===
'DYNAMIC_KEY_TIMEOUT'
)
{
this
.
client
.
renewChannelKey
(
this
.
channelKey
,
()
=>
{
loger
.
log
(
"Renew channel key successfully"
);
...
...
@@ -113,12 +115,12 @@ class WebRtcApe extends Emiter {
if
(
stream
)
{
stream
.
stop
();
$
(
'#'
+
this
.
xdyRemote
+
stream
.
getId
()).
remove
();
loger
.
log
(
evt
.
uid
+
"
leaved from this channel
"
);
loger
.
log
(
evt
.
uid
+
"
->离开视频通话频道
"
);
}
});
this
.
client
.
on
(
"active-speaker"
,
(
evt
)
=>
{
let
uid
=
evt
.
uid
;
loger
.
log
(
"
update active speaker: client
"
+
uid
);
loger
.
log
(
"
当前正在讲话的uid:
"
+
uid
);
});
}
...
...
@@ -126,15 +128,15 @@ class WebRtcApe extends Emiter {
this
.
channelId
=
_params
.
channelId
||
""
;
this
.
uid
=
parseInt
(
_params
.
uid
)
||
0
;
this
.
info
=
_params
.
info
||
""
;
let
dynamic_key
=
null
;
this
.
channelKey
=
_params
.
channelKey
||
null
;
loger
.
log
(
"AgoraRTC joinChannel"
,
"channelId:"
+
this
.
channelId
,
"uid:"
+
this
.
uid
);
this
.
client
.
join
(
dynamic_key
,
""
+
this
.
channelId
,
this
.
uid
,
(
uid
)
=>
{
loger
.
log
(
"加入视频通话频道->channelId:"
+
this
.
channelId
,
"uid:"
+
this
.
uid
);
this
.
client
.
join
(
this
.
channelKey
,
""
+
this
.
channelId
,
this
.
uid
,
(
uid
)
=>
{
this
.
uid
=
uid
;
loger
.
log
(
"
User "
+
uid
+
" join channel successfully"
);
loger
.
log
(
"
加入视频通话频道->成功->channelId:"
+
this
.
channelId
,
"uid:"
+
this
.
uid
);
this
.
openLoaclStream
();
},
(
err
)
=>
{
loger
.
log
(
"
Join channel failed
"
,
err
);
loger
.
log
(
"
加入视频通话频道->失败->
"
,
err
);
});
}
...
...
@@ -156,7 +158,7 @@ class WebRtcApe extends Emiter {
}
leaveChannel
()
{
loger
.
log
(
"
AgoraRTC joinChannel
"
);
loger
.
log
(
"
离开视频通话频道
"
);
if
(
!
this
.
client
)
{
return
;
}
...
...
@@ -172,11 +174,11 @@ class WebRtcApe extends Emiter {
return
;
}
this
.
localStream
.
init
(()
=>
{
loger
.
log
(
"webRtc->推流: "
);
let
viewName
=
this
.
localViewId
.
replace
(
"#"
,
""
);
loger
.
log
(
"getUserMedia successfully"
,
this
.
localViewId
);
this
.
localStream
.
play
(
viewName
);
this
.
client
.
publish
(
this
.
localStream
,
(
err
)
=>
{
loger
.
log
(
"
Publish local stream error
: "
+
err
);
loger
.
log
(
"
webRtc->推流失败
: "
+
err
);
GlobalConfig
.
openCamera
=
0
;
GlobalConfig
.
openMicrophones
=
0
;
});
...
...
@@ -193,16 +195,17 @@ class WebRtcApe extends Emiter {
});
},
(
err
)
=>
{
loger
.
log
(
"
getUserMedia failed
"
,
err
);
loger
.
log
(
"
webRtc->推流->本地流开启失败
"
,
err
);
});
}
unpublish
()
{
loger
.
log
(
"webRtc->停止推流 "
);
if
(
!
this
.
client
||!
this
.
localStream
)
{
return
;
}
this
.
client
.
unpublish
(
this
.
localStream
,
(
err
)
=>
{
loger
.
log
(
"
Unpublish local stream failed
"
+
err
);
loger
.
log
(
"
webRtc->停止推流->失败
"
+
err
);
});
this
.
localStream
.
close
();
$
(
this
.
localViewId
).
html
(
""
);
...
...
请
注册
或
登录
后发表评论