react_hsbc_teller 1.1.4 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -47,7 +47,9 @@ function websocketonopen() { // 连接建立之后执行send方法发送数据
|
|
|
47
47
|
websocketsend(json2xml(steam));
|
|
48
48
|
}
|
|
49
49
|
function websocketonerror() { // 连接建立失败重连
|
|
50
|
-
window.IMOpenfire(
|
|
50
|
+
window.IMOpenfire({
|
|
51
|
+
status: 'error'
|
|
52
|
+
});
|
|
51
53
|
console.log('失败');
|
|
52
54
|
// initWebSocket()
|
|
53
55
|
}
|
|
@@ -99,11 +101,15 @@ function websocketonmessage(e) {
|
|
|
99
101
|
} else if (undefined != jsondata.failure) {
|
|
100
102
|
islogin = false;
|
|
101
103
|
console.log('登录失败,用户名或者密码错误');
|
|
102
|
-
window.IMOpenfire(
|
|
104
|
+
window.IMOpenfire({
|
|
105
|
+
status: 'error'
|
|
106
|
+
});
|
|
103
107
|
} else if (undefined != jsondata.success) {
|
|
104
108
|
islogin = true;
|
|
105
109
|
console.log('登录成功!');
|
|
106
|
-
window.IMOpenfire(
|
|
110
|
+
window.IMOpenfire({
|
|
111
|
+
status: 'success'
|
|
112
|
+
});
|
|
107
113
|
// 发起新的流
|
|
108
114
|
newopen();
|
|
109
115
|
} else if (undefined != jsondata.iq) {
|
|
@@ -203,7 +209,10 @@ function websocketsend(Data) { // 数据发送
|
|
|
203
209
|
}
|
|
204
210
|
function websocketclose(e) { // 关闭
|
|
205
211
|
console.log('断开连接', e);
|
|
206
|
-
|
|
212
|
+
islogin = false;
|
|
213
|
+
window.IMOpenfire({
|
|
214
|
+
status: 'close'
|
|
215
|
+
})
|
|
207
216
|
}
|
|
208
217
|
// 发消息
|
|
209
218
|
// // 发送消息 to---接收者id,from---发送者id,type---消息类型(chat--单聊,groupchat--群聊)。message--发送的消息
|
package/packages/demo/demo.js
CHANGED
|
@@ -14,7 +14,7 @@ class Demo extends Component {
|
|
|
14
14
|
sessionId: '',
|
|
15
15
|
isVideo: false,
|
|
16
16
|
tellerAccount: '00000000',
|
|
17
|
-
callbackUrl: 'http://
|
|
17
|
+
callbackUrl: 'http://182.92.184.31:8720/hsbc/callback',
|
|
18
18
|
businessNumber: '',
|
|
19
19
|
lang: 'zh',
|
|
20
20
|
roomServerUrl: 'wss://mrtc.mpaas.cn-hangzhou.aliyuncs.com/ws',
|
|
@@ -127,6 +127,7 @@ class Video extends Component {
|
|
|
127
127
|
imJoinRoom: false,
|
|
128
128
|
analyserData: new Map(),
|
|
129
129
|
analyserHeight: new Map(),
|
|
130
|
+
OnVolumeAnalyserMap: new Map(),
|
|
130
131
|
noVideoOne: false,
|
|
131
132
|
noVideoTwo: false,
|
|
132
133
|
noVideoThree: false,
|
|
@@ -139,6 +140,7 @@ class Video extends Component {
|
|
|
139
140
|
noVideoTen: false,
|
|
140
141
|
noVideoEleven: false,
|
|
141
142
|
noVideoTwelve: false,
|
|
143
|
+
manualClose: false,
|
|
142
144
|
};
|
|
143
145
|
// eslint-disable-next-line no-undef
|
|
144
146
|
test_controller = '';
|
|
@@ -163,7 +165,9 @@ class Video extends Component {
|
|
|
163
165
|
publish_config.media_type = 1
|
|
164
166
|
publish_config.publish_device = 1
|
|
165
167
|
publish_config.need_volume_analyser = true
|
|
166
|
-
publish_config.video_profile_type = 3
|
|
168
|
+
// publish_config.video_profile_type = 3
|
|
169
|
+
publish_config.video_profile_type=100
|
|
170
|
+
publish_config.video_profile_diy={width:640, height:360, frameRate:15, bitrate:400}
|
|
167
171
|
publish_config.publish_video_id = 'publish_video1'
|
|
168
172
|
publish_config.publish_streamId_id = 'publish_streamId1'
|
|
169
173
|
publish_config.publish_tag = 'tag1'
|
|
@@ -255,6 +259,7 @@ class Video extends Component {
|
|
|
255
259
|
};
|
|
256
260
|
// 初始化视频
|
|
257
261
|
ConnectMRTC = () => {
|
|
262
|
+
this.test_controller.SetLocalCodecType("H264")
|
|
258
263
|
const config_param = {};
|
|
259
264
|
config_param.auto_publish_subscribe = 4;
|
|
260
265
|
config_param.media_type = 1;
|
|
@@ -725,6 +730,7 @@ class Video extends Component {
|
|
|
725
730
|
workerClick=()=>{
|
|
726
731
|
const canvas = document.createElement('canvas');
|
|
727
732
|
const cobj = canvas.getContext('2d'); // 获取绘图环境
|
|
733
|
+
let microTimerMap = new Map()
|
|
728
734
|
let blob = new Blob([
|
|
729
735
|
`
|
|
730
736
|
let timer;
|
|
@@ -840,7 +846,9 @@ class Video extends Component {
|
|
|
840
846
|
let analyser = this.state.analyserData.get(sid)
|
|
841
847
|
aou(analyser)
|
|
842
848
|
function aou(analyser){
|
|
849
|
+
cancelAnimationFrame(microTimerMap.get(sid))
|
|
843
850
|
if(analyser) {
|
|
851
|
+
|
|
844
852
|
let dataArray = new Uint8Array(analyser.frequencyBinCount);
|
|
845
853
|
analyser.getByteFrequencyData(dataArray);
|
|
846
854
|
let step = Math.round(dataArray.length / 60); //采样步长
|
|
@@ -864,11 +872,12 @@ class Video extends Component {
|
|
|
864
872
|
let startY = y1 - height // 绘制起始点y
|
|
865
873
|
cobj.fillRect(startX, startY, width, height )
|
|
866
874
|
}
|
|
867
|
-
|
|
875
|
+
}
|
|
876
|
+
microTimerMap.set(sid,requestAnimationFrame(aou.bind(this, analyser)) )
|
|
868
877
|
}
|
|
869
878
|
|
|
870
879
|
|
|
871
|
-
|
|
880
|
+
|
|
872
881
|
}
|
|
873
882
|
|
|
874
883
|
}
|
|
@@ -1153,6 +1162,9 @@ class Video extends Component {
|
|
|
1153
1162
|
if (Mival.type == 1) {
|
|
1154
1163
|
this.switchExternal()
|
|
1155
1164
|
} else if (Mival.type == 2) {
|
|
1165
|
+
if(streamShare) {
|
|
1166
|
+
streamShare.getTracks().forEach(track => track.stop());
|
|
1167
|
+
}
|
|
1156
1168
|
this.tabTitlesClick('RMWhiteboard', 'delect')
|
|
1157
1169
|
if (this.state.isSharedScreen) {
|
|
1158
1170
|
this.setState({
|
|
@@ -1346,10 +1358,10 @@ class Video extends Component {
|
|
|
1346
1358
|
};
|
|
1347
1359
|
window.IMOpenfire = msg =>{
|
|
1348
1360
|
console.log('im登录', msg)
|
|
1349
|
-
if(
|
|
1361
|
+
if(msg.status == 'error') {
|
|
1350
1362
|
this.state.sessionType = false
|
|
1351
1363
|
this.roomCallBack(2, 'im建立连接失败',5)
|
|
1352
|
-
} else {
|
|
1364
|
+
} else if (msg.status == 'success') {
|
|
1353
1365
|
this.state.imStatus = msg
|
|
1354
1366
|
setTimeout(() => {
|
|
1355
1367
|
if(this.state.imRoomId && !this.state.imJoinRoom) {
|
|
@@ -1358,6 +1370,15 @@ class Video extends Component {
|
|
|
1358
1370
|
console.log('IMOpenfire 加入im房间')
|
|
1359
1371
|
}
|
|
1360
1372
|
}, 200);
|
|
1373
|
+
} else if (msg.status == 'close') {
|
|
1374
|
+
if(!this.state.manualClose) {
|
|
1375
|
+
this.timer && clearInterval(this.timer);
|
|
1376
|
+
this.state.sessionType = false
|
|
1377
|
+
console.log('IMOpenfireclose')
|
|
1378
|
+
this.roomCallBack(2, '账号重复登录',9)
|
|
1379
|
+
|
|
1380
|
+
}
|
|
1381
|
+
|
|
1361
1382
|
}
|
|
1362
1383
|
|
|
1363
1384
|
}
|
|
@@ -1533,8 +1554,8 @@ class Video extends Component {
|
|
|
1533
1554
|
// 音视频关闭通知
|
|
1534
1555
|
this.test_controller.OnMediaClose = (code, sid) => {
|
|
1535
1556
|
console.log(code, sid)
|
|
1536
|
-
if(code == 5004 || code == 5007) {
|
|
1537
|
-
this.roomCallBack(2, '
|
|
1557
|
+
if(code == 5003 || code == 5004 || code == 5005|| code == 5007|| code == 5009|| code == 5010 || code == 5011|| code == 5012) {
|
|
1558
|
+
this.roomCallBack(2, '音视频异常关闭',8)
|
|
1538
1559
|
}
|
|
1539
1560
|
};
|
|
1540
1561
|
// 加入房间成功
|
|
@@ -1544,7 +1565,9 @@ class Video extends Component {
|
|
|
1544
1565
|
publish_config.media_type = 1
|
|
1545
1566
|
publish_config.publish_device = 1
|
|
1546
1567
|
publish_config.need_volume_analyser = true
|
|
1547
|
-
publish_config.video_profile_type = 3
|
|
1568
|
+
// publish_config.video_profile_type = 3
|
|
1569
|
+
publish_config.video_profile_type=100
|
|
1570
|
+
publish_config.video_profile_diy={width:640, height:360, frameRate:15, bitrate:400}
|
|
1548
1571
|
publish_config.publish_video_id = 'publish_video1'
|
|
1549
1572
|
publish_config.publish_streamId_id = 'publish_streamId1'
|
|
1550
1573
|
publish_config.publish_tag = 'tag1'
|
|
@@ -1586,6 +1609,10 @@ class Video extends Component {
|
|
|
1586
1609
|
'tellerId': this.props.tellerAccount
|
|
1587
1610
|
})
|
|
1588
1611
|
});
|
|
1612
|
+
if(this.state.screenName == '取消共享') {
|
|
1613
|
+
this.state.isSharedScreen = true
|
|
1614
|
+
this.state.isScreenSwitching = false
|
|
1615
|
+
}
|
|
1589
1616
|
}
|
|
1590
1617
|
if(sid == document.getElementById('publish_video1').name) {
|
|
1591
1618
|
this.setState({
|
|
@@ -1787,26 +1814,11 @@ class Video extends Component {
|
|
|
1787
1814
|
// 推送“新加⼊房间者”给与会者
|
|
1788
1815
|
this.test_controller.OnNewJoinerIn = (participant) => {
|
|
1789
1816
|
console.log('新加⼊房间者', participant);
|
|
1790
|
-
// this.test_controller.ChangeStreamSize(document.getElementById('publish_video1').name, 5)
|
|
1791
1817
|
this.state.isCustomer= true
|
|
1792
1818
|
};
|
|
1793
1819
|
// 推送“有新发布”给与会者
|
|
1794
1820
|
this.test_controller.OnNewPublish = (feed) => {
|
|
1795
1821
|
console.log('有新发布者', feed);
|
|
1796
|
-
// callNimIM('sendChatMsg', {
|
|
1797
|
-
// customId: feed.uid,
|
|
1798
|
-
// content: JSON.stringify({
|
|
1799
|
-
// 'typeId': 1014,
|
|
1800
|
-
// 'sessionId': this.state.sessionId,
|
|
1801
|
-
// 'meetingInfo': {
|
|
1802
|
-
// 'title': this.props.meetingInfo.title,
|
|
1803
|
-
// 'host': this.props.meetingInfo.host,
|
|
1804
|
-
// 'customers': this.props.meetingInfo.customers
|
|
1805
|
-
// }
|
|
1806
|
-
|
|
1807
|
-
// })
|
|
1808
|
-
// }, function (code, message, data) {
|
|
1809
|
-
// })
|
|
1810
1822
|
|
|
1811
1823
|
callNimIM('sendCustomCmdMsg', {
|
|
1812
1824
|
customId: this.state.imRoomId,
|
|
@@ -2149,14 +2161,9 @@ class Video extends Component {
|
|
|
2149
2161
|
this.test_controller.OnUnSubscribe = (unsubscriber, feed) => {
|
|
2150
2162
|
console.log('取消订阅者', unsubscriber, feed)
|
|
2151
2163
|
};
|
|
2152
|
-
// ⾳视频关闭通知
|
|
2153
|
-
this.test_controller.OnMediaClose = (code, sid) => {
|
|
2154
|
-
console.log('⾳视频关闭通知', code, sid)
|
|
2155
|
-
};
|
|
2156
2164
|
// 退出房间回调
|
|
2157
2165
|
this.test_controller.OnLeaveRoom = (leaveType) => {
|
|
2158
2166
|
console.log('退出房间回调', leaveType);
|
|
2159
|
-
|
|
2160
2167
|
};
|
|
2161
2168
|
// 推送“退出房间者”给与会者
|
|
2162
2169
|
this.test_controller.OnParticipantLeaveRoom = (
|
|
@@ -2327,7 +2334,12 @@ class Video extends Component {
|
|
|
2327
2334
|
loading: false
|
|
2328
2335
|
})
|
|
2329
2336
|
}
|
|
2330
|
-
|
|
2337
|
+
if (sid == document.getElementById('video20').name) {
|
|
2338
|
+
if(this.state.screenName == '取消共享') {
|
|
2339
|
+
this.state.isSharedScreen = true
|
|
2340
|
+
this.state.isScreenSwitching = false
|
|
2341
|
+
}
|
|
2342
|
+
}
|
|
2331
2343
|
};
|
|
2332
2344
|
// 切流失败通知
|
|
2333
2345
|
this.test_controller.OnChangeMediaStreamFailed = (
|
|
@@ -2351,6 +2363,7 @@ class Video extends Component {
|
|
|
2351
2363
|
console.log('服务端录制初始化成功', record_id, record_third_id)
|
|
2352
2364
|
};
|
|
2353
2365
|
this.test_controller.OnVolumeAnalyser = (sid, analyser) => {
|
|
2366
|
+
cancelAnimationFrame(this.state.OnVolumeAnalyserMap.get(sid))
|
|
2354
2367
|
let publish_sid = document.getElementById('publish_video1').name || document.getElementById('publish_streamId1').name;
|
|
2355
2368
|
let subscribe_sid1 = document.getElementById('video1').name || document.getElementById('audio1').name;
|
|
2356
2369
|
let subscribe_sid2 = document.getElementById('video2').name || document.getElementById('audio2').name;
|
|
@@ -2446,7 +2459,8 @@ class Video extends Component {
|
|
|
2446
2459
|
}
|
|
2447
2460
|
|
|
2448
2461
|
}
|
|
2449
|
-
requestAnimationFrame(this.test_controller.OnVolumeAnalyser.bind(this, sid, analyser))
|
|
2462
|
+
this.state.OnVolumeAnalyserMap.set(sid,requestAnimationFrame(this.test_controller.OnVolumeAnalyser.bind(this, sid, analyser)))
|
|
2463
|
+
this.state.OnVolumeAnalyserMap = this.state.OnVolumeAnalyserMap
|
|
2450
2464
|
|
|
2451
2465
|
this.state.analyserData.set(sid, analyser)
|
|
2452
2466
|
this.state.analyserData = this.state.analyserData
|
|
@@ -2519,16 +2533,11 @@ class Video extends Component {
|
|
|
2519
2533
|
}
|
|
2520
2534
|
if(this.state.imStatus) {
|
|
2521
2535
|
console.log('disconnect断开连接')
|
|
2536
|
+
this.state.manualClose = true
|
|
2522
2537
|
disconnect();
|
|
2523
2538
|
}
|
|
2524
2539
|
|
|
2525
2540
|
}
|
|
2526
|
-
clearData=()=>{
|
|
2527
|
-
this.setState = (state, callback) => {
|
|
2528
|
-
return
|
|
2529
|
-
}
|
|
2530
|
-
this.cancel = ''
|
|
2531
|
-
}
|
|
2532
2541
|
finishSessionClick= async () => {
|
|
2533
2542
|
try {
|
|
2534
2543
|
let result = await API.finishSession({
|
|
@@ -2709,6 +2718,7 @@ class Video extends Component {
|
|
|
2709
2718
|
}
|
|
2710
2719
|
|
|
2711
2720
|
voice = () => {
|
|
2721
|
+
if (this.isFileSuccuse()) {
|
|
2712
2722
|
if (!this.state.voiceStatue) {
|
|
2713
2723
|
// 静音本地
|
|
2714
2724
|
this.setState({
|
|
@@ -2763,10 +2773,11 @@ class Video extends Component {
|
|
|
2763
2773
|
console.log(data)
|
|
2764
2774
|
})
|
|
2765
2775
|
}
|
|
2776
|
+
}
|
|
2766
2777
|
};
|
|
2767
2778
|
isFileSuccuse = () => {
|
|
2768
|
-
if (!this.state.sessionId || this.state.isSuspend) {
|
|
2769
|
-
this.messageClick(
|
|
2779
|
+
if (!this.state.sessionId || this.state.isSuspend || !this.state.sessionType) {
|
|
2780
|
+
this.messageClick('当前程序异常请先退出重开','error')
|
|
2770
2781
|
return false
|
|
2771
2782
|
} else {
|
|
2772
2783
|
return true
|
|
@@ -2829,7 +2840,9 @@ class Video extends Component {
|
|
|
2829
2840
|
const publish_config = {}
|
|
2830
2841
|
publish_config.media_type = 1
|
|
2831
2842
|
publish_config.publish_device = 2
|
|
2832
|
-
publish_config.video_profile_type = 1
|
|
2843
|
+
// publish_config.video_profile_type = 1
|
|
2844
|
+
publish_config.video_profile_type=100
|
|
2845
|
+
publish_config.video_profile_diy={width:1280, height:720, frameRate:8, bitrate:1500}
|
|
2833
2846
|
publish_config.enableDesktopAudio=true
|
|
2834
2847
|
publish_config.degradationType=2
|
|
2835
2848
|
publish_config.sid = document.getElementById('video20').name
|
|
@@ -2873,7 +2886,8 @@ class Video extends Component {
|
|
|
2873
2886
|
if (document.getElementById('video20').name) {
|
|
2874
2887
|
publish_config.media_type = 1;
|
|
2875
2888
|
publish_config.publish_device = 2;
|
|
2876
|
-
publish_config.video_profile_type
|
|
2889
|
+
publish_config.video_profile_type=100
|
|
2890
|
+
publish_config.video_profile_diy={width:1280, height:720, frameRate:8, bitrate:1500}
|
|
2877
2891
|
publish_config.enableDesktopAudio=true
|
|
2878
2892
|
publish_config.degradationType=2
|
|
2879
2893
|
publish_config.sid = document.getElementById('video20').name;
|
|
@@ -2882,7 +2896,8 @@ class Video extends Component {
|
|
|
2882
2896
|
publish_config.media_type = 1
|
|
2883
2897
|
publish_config.publish_device = 2
|
|
2884
2898
|
publish_config.need_volume_analyser = true
|
|
2885
|
-
publish_config.video_profile_type
|
|
2899
|
+
publish_config.video_profile_type=100
|
|
2900
|
+
publish_config.video_profile_diy={width:1280, height:720, frameRate:8, bitrate:1500}
|
|
2886
2901
|
publish_config.enableDesktopAudio=true
|
|
2887
2902
|
publish_config.degradationType=2
|
|
2888
2903
|
publish_config.publish_video_id = 'video20'
|
|
@@ -2890,8 +2905,8 @@ class Video extends Component {
|
|
|
2890
2905
|
publish_config.publish_tag = 'projectionWhiteboard'
|
|
2891
2906
|
this.test_controller.Publish(publish_config)
|
|
2892
2907
|
}
|
|
2893
|
-
this.state.isSharedScreen = true
|
|
2894
|
-
this.state.isScreenSwitching = false
|
|
2908
|
+
// this.state.isSharedScreen = true
|
|
2909
|
+
// this.state.isScreenSwitching = false
|
|
2895
2910
|
this.setState({
|
|
2896
2911
|
screenName: '取消共享',
|
|
2897
2912
|
isPDF: false
|
|
@@ -3034,6 +3049,7 @@ class Video extends Component {
|
|
|
3034
3049
|
transcribingClick = () => {
|
|
3035
3050
|
};
|
|
3036
3051
|
invitationClick = () => {
|
|
3052
|
+
if (this.isFileSuccuse()) {
|
|
3037
3053
|
this.state.linkData = ''
|
|
3038
3054
|
this.setState({
|
|
3039
3055
|
isModalVisibleInvitation: true,
|
|
@@ -3042,7 +3058,7 @@ class Video extends Component {
|
|
|
3042
3058
|
employeeError: '',
|
|
3043
3059
|
|
|
3044
3060
|
})
|
|
3045
|
-
|
|
3061
|
+
}
|
|
3046
3062
|
}
|
|
3047
3063
|
handleOkInvitation = async () => {
|
|
3048
3064
|
if(!this.state.employeeName || this.state.employeeError) {
|
|
@@ -3280,7 +3296,6 @@ class Video extends Component {
|
|
|
3280
3296
|
)
|
|
3281
3297
|
}
|
|
3282
3298
|
switchExternalAge = ()=>{
|
|
3283
|
-
const that = this
|
|
3284
3299
|
if(this.state.isSharedScreen) {
|
|
3285
3300
|
this.state.isSharedScreen = false
|
|
3286
3301
|
this.setState({
|
|
@@ -3293,26 +3308,30 @@ class Video extends Component {
|
|
|
3293
3308
|
}
|
|
3294
3309
|
}
|
|
3295
3310
|
|
|
3311
|
+
this.navigatorClick()
|
|
3312
|
+
|
|
3313
|
+
}
|
|
3314
|
+
navigatorClick=()=>{
|
|
3315
|
+
const that = this
|
|
3296
3316
|
const publish_config = {};
|
|
3297
3317
|
const canvas = document.createElement('canvas');
|
|
3298
3318
|
const videoMedia = document.getElementById('manedvideo');
|
|
3299
3319
|
const cobj = canvas.getContext('2d'); // 获取绘图环境
|
|
3300
3320
|
const left = document.getElementById("whiteboardDIV").getBoundingClientRect().left;
|
|
3301
|
-
const right = document.getElementById("whiteboardDIV").getBoundingClientRect().right
|
|
3302
3321
|
const top = document.getElementById("whiteboardDIV").getBoundingClientRect().top
|
|
3303
|
-
const
|
|
3304
|
-
const width = right
|
|
3305
|
-
const height =
|
|
3322
|
+
const right = document.getElementById("whiteboardDIV").getBoundingClientRect().right
|
|
3323
|
+
const width = left > 21 ? right : right + left
|
|
3324
|
+
const height = document.getElementById("whiteboardDIV").getBoundingClientRect().height
|
|
3306
3325
|
canvas.width = width;
|
|
3307
3326
|
canvas.height = height;
|
|
3308
|
-
|
|
3327
|
+
videoMedia.addEventListener('play', (event) =>{
|
|
3309
3328
|
var $this = this; //cache
|
|
3310
3329
|
console.log('addEventListener',!$this.paused,!$this.ended)
|
|
3311
3330
|
loop()
|
|
3312
3331
|
function loop() {
|
|
3313
3332
|
if (!$this.paused && !$this.ended) {
|
|
3314
|
-
cobj.drawImage(videoMedia,
|
|
3315
|
-
|
|
3333
|
+
cobj.drawImage(videoMedia, 0, top, width, height, 0, 0,width, height);
|
|
3334
|
+
setTimeout(loop, 1000 / 10); // drawing at 30fps
|
|
3316
3335
|
}
|
|
3317
3336
|
}
|
|
3318
3337
|
|
|
@@ -3323,14 +3342,16 @@ class Video extends Component {
|
|
|
3323
3342
|
publish_config.degradationType=2
|
|
3324
3343
|
publish_config.sid = document.getElementById('video20').name
|
|
3325
3344
|
publish_config.stream = canvas.captureStream(10)
|
|
3326
|
-
publish_config.video_profile_type
|
|
3345
|
+
publish_config.video_profile_type=100
|
|
3346
|
+
publish_config.video_profile_diy={width:1280, height:720, frameRate:8, bitrate:1500}
|
|
3327
3347
|
this.test_controller.ChangeMediaStream(publish_config);
|
|
3328
3348
|
} else {
|
|
3329
3349
|
|
|
3330
3350
|
publish_config.media_type = 1
|
|
3331
3351
|
publish_config.publish_device = 5
|
|
3332
3352
|
publish_config.need_volume_analyser = true
|
|
3333
|
-
publish_config.video_profile_type
|
|
3353
|
+
publish_config.video_profile_type=100
|
|
3354
|
+
publish_config.video_profile_diy={width:1280, height:720, frameRate:8, bitrate:1500}
|
|
3334
3355
|
publish_config.degradationType=2
|
|
3335
3356
|
publish_config.stream = canvas.captureStream(10)
|
|
3336
3357
|
publish_config.publish_video_id = 'video20'
|
|
@@ -3345,10 +3366,14 @@ class Video extends Component {
|
|
|
3345
3366
|
})
|
|
3346
3367
|
.then((stream) => {
|
|
3347
3368
|
videoMedia.srcObject = stream;
|
|
3369
|
+
stream.getVideoTracks()[0].applyConstraints({
|
|
3370
|
+
width: document.body.offsetWidth,
|
|
3371
|
+
height: document.body.offsetHeight
|
|
3372
|
+
})
|
|
3348
3373
|
streamShare = stream
|
|
3349
3374
|
stream.getVideoTracks()[0].onended = async ()=>{
|
|
3350
3375
|
//单击停止共享按钮后,触发这个事件
|
|
3351
|
-
if(document.getElementById('video20').name
|
|
3376
|
+
if(document.getElementById('video20').name&&!this.state.isSharedScreen) {
|
|
3352
3377
|
that.test_controller.UnPublish(document.getElementById('video20').name)
|
|
3353
3378
|
}
|
|
3354
3379
|
}
|
|
@@ -3357,9 +3382,8 @@ class Video extends Component {
|
|
|
3357
3382
|
});
|
|
3358
3383
|
}
|
|
3359
3384
|
switchExternal = () => {
|
|
3360
|
-
|
|
3385
|
+
if (this.isFileSuccuse()) {
|
|
3361
3386
|
if (!this.state.isWhiteboard) {
|
|
3362
|
-
const publish_config = {};
|
|
3363
3387
|
this.setState({
|
|
3364
3388
|
isWhiteboard: true
|
|
3365
3389
|
})
|
|
@@ -3378,73 +3402,13 @@ class Video extends Component {
|
|
|
3378
3402
|
document.exitPictureInPicture()
|
|
3379
3403
|
}
|
|
3380
3404
|
}
|
|
3381
|
-
|
|
3382
|
-
const videoMedia = document.getElementById('manedvideo');
|
|
3383
|
-
const cobj = canvas.getContext('2d'); // 获取绘图环境
|
|
3384
|
-
const left = document.getElementById("whiteboardDIV").getBoundingClientRect().left;
|
|
3385
|
-
const right = document.getElementById("whiteboardDIV").getBoundingClientRect().right
|
|
3386
|
-
const top = document.getElementById("whiteboardDIV").getBoundingClientRect().top
|
|
3387
|
-
const bottom = document.getElementById("whiteboardDIV").getBoundingClientRect().bottom
|
|
3388
|
-
const width = right - left + 10
|
|
3389
|
-
const height = bottom - top - 33
|
|
3390
|
-
canvas.width = width;
|
|
3391
|
-
canvas.height = height;
|
|
3392
|
-
videoMedia.addEventListener('play', (event) =>{
|
|
3393
|
-
var $this = this; //cache
|
|
3394
|
-
console.log('addEventListener',!$this.paused,!$this.ended)
|
|
3395
|
-
loop()
|
|
3396
|
-
function loop() {
|
|
3397
|
-
if (!$this.paused && !$this.ended) {
|
|
3398
|
-
cobj.drawImage(videoMedia, left-10, top, width, height, 0, 0,width, height,);
|
|
3399
|
-
setTimeout(loop, 1000 / 10); // drawing at 30fps
|
|
3400
|
-
}
|
|
3401
|
-
}
|
|
3402
|
-
|
|
3403
|
-
if (document.getElementById('video20').name) {
|
|
3404
|
-
// 代表已经有了进行切流
|
|
3405
|
-
publish_config.publish_device = 5
|
|
3406
|
-
publish_config.media_type = 1
|
|
3407
|
-
publish_config.degradationType=2
|
|
3408
|
-
publish_config.sid = document.getElementById('video20').name
|
|
3409
|
-
publish_config.stream = canvas.captureStream(10)
|
|
3410
|
-
publish_config.video_profile_type = 9
|
|
3411
|
-
this.test_controller.ChangeMediaStream(publish_config);
|
|
3412
|
-
} else {
|
|
3413
|
-
|
|
3414
|
-
publish_config.media_type = 1
|
|
3415
|
-
publish_config.publish_device = 5
|
|
3416
|
-
publish_config.need_volume_analyser = true
|
|
3417
|
-
publish_config.video_profile_type = 9
|
|
3418
|
-
publish_config.degradationType=2
|
|
3419
|
-
publish_config.stream = canvas.captureStream(10)
|
|
3420
|
-
publish_config.publish_video_id = 'video20'
|
|
3421
|
-
publish_config.publish_streamId_id = 'subscribe_streamId10'
|
|
3422
|
-
publish_config.publish_tag = 'projectionWhiteboard'
|
|
3423
|
-
this.test_controller.Publish(publish_config)
|
|
3424
|
-
}
|
|
3425
|
-
}, 0);
|
|
3426
|
-
navigator.mediaDevices.getDisplayMedia({
|
|
3427
|
-
video: true,
|
|
3428
|
-
preferCurrentTab:true,
|
|
3429
|
-
})
|
|
3430
|
-
.then((stream) => {
|
|
3431
|
-
videoMedia.srcObject = stream;
|
|
3432
|
-
streamShare = stream
|
|
3433
|
-
stream.getVideoTracks()[0].onended = async ()=>{
|
|
3434
|
-
//单击停止共享按钮后,触发这个事件
|
|
3435
|
-
if(document.getElementById('video20').name&&!this.state.isSharedScreen) {
|
|
3436
|
-
that.test_controller.UnPublish(document.getElementById('video20').name)
|
|
3437
|
-
}
|
|
3438
|
-
}
|
|
3439
|
-
}, error => {
|
|
3440
|
-
console.log("Unable to acquire screen capture", error);
|
|
3441
|
-
});
|
|
3405
|
+
this.navigatorClick()
|
|
3442
3406
|
} else {
|
|
3443
3407
|
this.messageClick('当前已经切换RM白板','success')
|
|
3444
3408
|
|
|
3445
3409
|
}
|
|
3446
3410
|
|
|
3447
|
-
|
|
3411
|
+
}
|
|
3448
3412
|
}
|
|
3449
3413
|
switchSelect = (value) => {
|
|
3450
3414
|
this.setState({
|
|
@@ -3466,7 +3430,9 @@ class Video extends Component {
|
|
|
3466
3430
|
}
|
|
3467
3431
|
}
|
|
3468
3432
|
inspection = () => {
|
|
3433
|
+
if (this.isFileSuccuse()) {
|
|
3469
3434
|
this.test_controller.GetDevices()
|
|
3435
|
+
}
|
|
3470
3436
|
}
|
|
3471
3437
|
handleOkInspection = () => {
|
|
3472
3438
|
this.setState({
|
|
@@ -3626,7 +3592,7 @@ class Video extends Component {
|
|
|
3626
3592
|
<div className="projection" style={{background: this.state.tabTitles.length > 0 ? '#f0f0f0' : '#ffffff'}}>
|
|
3627
3593
|
{tabTitleList}
|
|
3628
3594
|
{/* <img style={sectionStyle} src={require("../../assets/img/placeholder_bg.png").default} alt="" /> */}
|
|
3629
|
-
<div id="whiteboardDIV" style={{height:
|
|
3595
|
+
<div id="whiteboardDIV" style={{height: 'calc(100% - 33px)'}}>
|
|
3630
3596
|
|
|
3631
3597
|
<div className="videoDiv" style={{ display: (this.state.isSelect == 'RMScreen') ? '' : 'none', }}>
|
|
3632
3598
|
<div className="videoDiv">
|