react_hsbc_teller 0.3.8 → 0.4.2

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.
@@ -32,8 +32,7 @@ class Video extends Component {
32
32
  signCanvas = React.createRef();
33
33
  state = {
34
34
  isWhiteboard: false,
35
- isSelect: 'video',
36
- isPDF: false,
35
+ isSelect: '',
37
36
  loading: false,
38
37
  isModalVisibleSign: false,
39
38
  titleModal: '人脸识别',
@@ -53,7 +52,6 @@ class Video extends Component {
53
52
  cameraImg: cameraImgOpen,
54
53
  voiceStatue: false,
55
54
  voiceImg: voiceImgOpen,
56
- isBigVideo: 'video1',
57
55
  isCustomer: false,
58
56
  publishDevic: 1,
59
57
  isSharedScreen: false,
@@ -77,7 +75,16 @@ class Video extends Component {
77
75
  videoThreeName: '',
78
76
  videoFourName: '',
79
77
  videoFiveName: '',
80
- videoSixName: ''
78
+ videoSixName: '',
79
+ tabTitles: [
80
+ ],
81
+ videoList: [],
82
+ voiceVideoOne: false,
83
+ voiceVideoTwo: false,
84
+ voiceVideoThree: false,
85
+ voiceVideoFour: false,
86
+ voiceVideoFive: false,
87
+ voiceVideoSix: false,
81
88
  };
82
89
  // eslint-disable-next-line no-undef
83
90
  test_controller = '';
@@ -162,14 +169,11 @@ class Video extends Component {
162
169
  // 初始化视频
163
170
  ConnectMRTC = () => {
164
171
  const config_param = {};
165
- config_param.auto_publish_subscribe = 3;
172
+ config_param.auto_publish_subscribe = 2;
166
173
  config_param.media_type = 1;
167
174
  config_param.publish_device = 1;
168
175
  config_param.video_profile_type = '3';
169
176
  config_param.need_volume_analyser = true;
170
- // config_param.audioSource = that.microphone[0].actionid
171
- // config_param.videoSource = that.checkOne[0]
172
- // config_param.transport_ = 'relay'
173
177
  config_param.initPublish = [
174
178
  {
175
179
  publish_video_id: 'publish_video1',
@@ -428,38 +432,6 @@ class Video extends Component {
428
432
  endSessionValue = () => {
429
433
  this.test_controller.LeaveRoom()
430
434
  };
431
- // 放大对应的视频
432
- enlargeClick = (val) => {
433
- if (val == 'isLangVideo1') {
434
- if (document.getElementById('video1').name) {
435
- this.setState({ isBigVideo: 'video1' })
436
- }
437
- } else if (val == 'isLangPublishVideo1') {
438
- if (document.getElementById('publish_video1').name && this.state.isCustomer) {
439
- this.setState({ isBigVideo: 'publish_video1' })
440
- }
441
- } else if (val == 'isLangVideo2') {
442
- if (document.getElementById('video2').name) {
443
- this.setState({ isBigVideo: 'video2' })
444
- }
445
- } else if (val == 'isLangVideo3') {
446
- if (document.getElementById('video3').name) {
447
- this.setState({ isBigVideo: 'video3' })
448
- }
449
- } else if (val == 'isLangVideo4') {
450
- if (document.getElementById('video4').name) {
451
- this.setState({ isBigVideo: 'video4' })
452
- }
453
- } else if (val == 'isLangVideo5') {
454
- if (document.getElementById('video5').name) {
455
- this.setState({ isBigVideo: 'video5' })
456
- }
457
- } else if (val == 'isLangVideo6') {
458
- if (document.getElementById('video6').name) {
459
- this.setState({ isBigVideo: 'video6' })
460
- }
461
- }
462
- };
463
435
  // 画中画
464
436
  pictureInPicture = () => {
465
437
  let interval
@@ -510,12 +482,12 @@ class Video extends Component {
510
482
  title: this.state.videoSixName
511
483
  })
512
484
  }
513
- if(document.getElementById('video10').name) {
514
- list.push({
515
- name: 'video10',
516
- title: '互动白板'
517
- })
518
- }
485
+ // if(document.getElementById('video10').name) {
486
+ // list.push({
487
+ // name: 'video10',
488
+ // title: '互动白板'
489
+ // })
490
+ // }
519
491
  console.log(list)
520
492
  const width = 640;
521
493
  const height = 360 * list.length;
@@ -523,10 +495,11 @@ class Video extends Component {
523
495
  const cobj = canvas.getContext('2d'); // 获取绘图环境
524
496
  canvas.width = width;
525
497
  canvas.height = height;
498
+
526
499
  interval = setInterval(() => {
527
500
  cobj.clearRect(0, 0, width, height);
528
501
  for(let i=0;i<list.length;i++){
529
-
502
+
530
503
  let videoId = list[i].name;
531
504
  let videoDiv = document.getElementById(videoId);
532
505
  let videoWidth = videoDiv.videoWidth;
@@ -538,54 +511,94 @@ class Video extends Component {
538
511
  } else {
539
512
  newVideoHeight = videoHeight * 640 / videoWidth;
540
513
  }
541
- console.log(newVideoWidth,videoHeight)
542
514
 
543
515
  cobj.drawImage(videoDiv, (640 - newVideoWidth)/2, 360 * i, newVideoWidth, newVideoHeight);
544
- var img = document.getElementById("icon_huatong");
545
- cobj.drawImage(img, 600, 320, canvas.width, canvas.height);
546
516
  cobj.beginPath();
547
517
  cobj.strokeStyle = this.props.titleColor;
548
518
  cobj.fillStyle = this.props.titleBackground;
549
519
  cobj.fillRect(0, 360 * (i + 1) - 60, 300, 60 )
550
- cobj.closePath();
551
520
  cobj.fill();
552
521
  cobj.stroke();
522
+ cobj.beginPath();
553
523
  cobj.font = "28px auto";
554
524
  cobj.textAlign = 'center';
525
+ cobj.lineWidth = 1;
555
526
  cobj.strokeText(list[i].title, 150, 360 * (i + 1) - 20);
556
- console.log(videoDiv.srcObject, videoDiv.srcObject.getAudioTracks(), videoDiv.srcObject.getAudioTracks()[0])
557
- // const acc = new AudioContext()
558
- // // 返回一个多媒体流
559
- // const mic = acc.createMediaStreamSource(videoDiv.srcObject.getAudioTracks()[0])
560
- // // creates an AnalyserNode 创建一个分析节点
561
- // this.analyser = acc.createAnalyser()
562
- // // fftsize默认值2048,是快速傅立叶变换用于频域分析的值,必须为2的幂,而我们得到的数据通常为其的一半,下面会说道
563
- // this.analyser.fftSize = 256
564
- // // 调用绘图函数
565
- // mic.connect(this.analyser)
566
- // let dataArray = new Uint8Array(this.analyser);
567
- // this.analyser.getByteFrequencyData(dataArray);
568
- // let step = Math.round(dataArray.length / 60); //采样步长
569
- // 以画布左上角为坐标原点
570
- // let drawArea = {
571
- // x1: 28/50 * canvas.width, // 波动范围右下角的点坐标
572
- // y1: 25/50 * canvas.height,
573
- // x2: 22/50 * canvas.width, // 波动范围左上角的点坐标
574
- // y2: 10/50 * canvas.height,
575
- // }
576
-
577
- // for (var j = 0; j < 40; j++) {
578
- // let energy = (dataArray[step * j] / 256.0) * 80;
579
- // ctx.beginPath();
580
- // ctx.fillStyle = "#0AE544";
581
- // const { x1,y1,x2,y2} = drawArea
582
- // let width = x1-x2;
583
- // let height = (energy>20?(energy-20):0) * (y1 - y2 ) / 70
584
- // let startX = x2 // 绘制起始点x
585
- // let startY = y1 - height // 绘制起始点y
586
- // cobj.fillRect(startX, startY, width, height )
587
- // }
588
- // cobj.drawImage(videoDiv, 320 * i, (480 - newVideoHeight)/2, 320, newVideoHeight);
527
+ cobj.stroke();
528
+ //左边框
529
+ cobj.beginPath();
530
+ cobj.moveTo( 0, 0);
531
+ cobj.lineTo( 0, 360 * list.length);
532
+ cobj.closePath(); //闭合路径
533
+ cobj.lineWidth = 5; //线的边框为10像素
534
+ cobj.strokeStyle = '#d9363e';
535
+ cobj.stroke(); //绘制定义的图形
536
+
537
+ //下边框
538
+ cobj.beginPath();
539
+ cobj.moveTo( 0, 0);
540
+ cobj.lineTo( 640, 0);
541
+ cobj.closePath(); //闭合路径
542
+ cobj.lineWidth = 5; //线的边框为10像素
543
+ cobj.strokeStyle = '#d9363e';
544
+ cobj.stroke(); //绘制定义的图形
545
+
546
+ //右边框
547
+ cobj.beginPath();
548
+ cobj.moveTo( 640, 360 * list.length);
549
+ cobj.lineTo( 640, 0);
550
+ cobj.closePath(); //闭合路径
551
+ cobj.lineWidth = 5; //线的边框为10像素
552
+ cobj.strokeStyle = '#d9363e';
553
+ cobj.stroke(); //绘制定义的图形
554
+
555
+
556
+ //上边框
557
+ cobj.beginPath();
558
+ cobj.moveTo( 0, 360 * list.length);
559
+ cobj.lineTo( 640, 360 * list.length);
560
+ cobj.closePath(); //闭合路径
561
+ cobj.lineWidth = 5; //线的边框为10像素
562
+ cobj.strokeStyle = '#d9363e';
563
+ cobj.stroke(); //绘制定义的图形
564
+
565
+ // let sid = document.getElementById(list[i].name).name
566
+ // let stream = this.test_controller.GetMediaInfo(sid).audio_
567
+ // let acc = new AudioContext()
568
+ // let mic = acc.createMediaStreamSource(stream)
569
+ // let analyser = acc.createAnalyser()
570
+ // analyser.fftSize = 256
571
+ // mic.connect(analyser)
572
+ // aou(analyser)
573
+ // let microphoneSize = this.props.microphoneSize
574
+ // var img = document.getElementById("icon_huatong");
575
+ // cobj.drawImage(img, 600, 360 * (i + 1) - 60, microphoneSize, microphoneSize);
576
+ // function aou(analyser){
577
+ // let dataArray = new Uint8Array(analyser.frequencyBinCount);
578
+ // analyser.getByteFrequencyData(dataArray);
579
+ // let step = Math.round(dataArray.length / 60); //采样步长
580
+ // // 以画布左上角为坐标原点
581
+ // let drawArea = {
582
+ // x1: 28/50 * microphoneSize + 600, // 波动范围右下角的点坐标
583
+ // y1: 25/50 * microphoneSize + 360 * (i + 1) - 60,
584
+ // x2: 22/50 * microphoneSize + 600, // 波动范围左上角的点坐标
585
+ // y2: 10/50 * microphoneSize + 360 * (i + 1) - 60,
586
+ // }
587
+
588
+ // for (var j = 0; j < 40; j++) {
589
+ // let energy = (dataArray[step * j] / 256.0) * 80;
590
+ // cobj.beginPath();
591
+ // cobj.fillStyle = "#0AE544";
592
+ // const { x1,y1,x2,y2} = drawArea
593
+ // let width = x1-x2;
594
+ // let height = (energy>20?(energy-20):0) * (y1 - y2 ) / 70
595
+ // let startX = x2 // 绘制起始点x
596
+ // let startY = y1 - height // 绘制起始点y
597
+ // cobj.fillRect(startX, startY, width, height )
598
+ // }
599
+ // requestAnimationFrame(aou.bind(this, analyser));
600
+
601
+ // }
589
602
  }
590
603
  }, 100);
591
604
  const captureStream = canvas.captureStream();
@@ -632,6 +645,30 @@ class Video extends Component {
632
645
  })
633
646
  }
634
647
  }
648
+ tabTitlesClick = (value,type) =>{
649
+ const { tabTitles } = this.state;
650
+ if(type == 'add') {
651
+ tabTitles.unshift(value)
652
+ }else {
653
+ this.state.tabTitles.map((item,index)=>{
654
+ if(item.value == value) {
655
+ tabTitles.splice(index, 1)
656
+ this.setState({
657
+ tabTitles
658
+ })
659
+ }
660
+ })
661
+ }
662
+ if(this.state.tabTitles.length >0) {
663
+ this.setState({
664
+ isSelect: this.state.tabTitles[0].value
665
+ })
666
+ } else {
667
+ this.setState({
668
+ isSelect: 0
669
+ })
670
+ }
671
+ }
635
672
  mountClick = () => {
636
673
  window.IMEvt = msg => {
637
674
  console.log(JSON.parse(msg));
@@ -667,6 +704,7 @@ class Video extends Component {
667
704
  if(Mival.type == 1) {
668
705
  this.switchExternal()
669
706
  } else if(Mival.type == 2) {
707
+ this.tabTitlesClick('RMWhiteboard','delect')
670
708
  if(this.state.isSharedScreen) {
671
709
  this.setState({
672
710
  isWhiteboard: false,
@@ -674,8 +712,6 @@ class Video extends Component {
674
712
  }else {
675
713
  this.test_controller.UnPublish(document.getElementById('video10').name)
676
714
  this.setState({
677
- isPDF: false,
678
- isSelect: 'video',
679
715
  isWhiteboard: false,
680
716
  })
681
717
  }
@@ -683,6 +719,81 @@ class Video extends Component {
683
719
 
684
720
  }
685
721
 
722
+ } else if (Mival.typeId == 3100) {
723
+ if(Mival.data.sessionId == this.state.sessionId) {
724
+ if(Mival.data.userId == this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId1").innerText).uid) {
725
+ if(Mival.muteStatus == 0) {
726
+ this.setState({
727
+ voiceVideoOne: false
728
+ })
729
+ } else if(Mival.muteStatus == 1) {
730
+ this.setState({
731
+ voiceVideoOne: true
732
+ })
733
+ }
734
+
735
+ }
736
+ if(Mival.data.userId == (document.getElementById("feedId2").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId2").innerText).uid : '')) {
737
+ if(Mival.muteStatus == 0) {
738
+ this.setState({
739
+ voiceVideoTwo: false
740
+ })
741
+ } else if(Mival.muteStatus == 1) {
742
+ this.setState({
743
+ voiceVideoTwo: true
744
+ })
745
+ }
746
+
747
+ }
748
+ if(Mival.data.userId == (document.getElementById("feedId3").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId3").innerText).uid : '')) {
749
+ if(Mival.muteStatus == 0) {
750
+ this.setState({
751
+ voiceVideoThree: false
752
+ })
753
+ } else if(Mival.muteStatus == 1) {
754
+ this.setState({
755
+ voiceVideoThree: true
756
+ })
757
+ }
758
+
759
+ }
760
+ if(Mival.data.userId == (document.getElementById("feedId4").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId4").innerText).uid : '')) {
761
+ if(Mival.muteStatus == 0) {
762
+ this.setState({
763
+ voiceVideoFour: false
764
+ })
765
+ } else if(Mival.muteStatus == 1) {
766
+ this.setState({
767
+ voiceVideoFour: true
768
+ })
769
+ }
770
+
771
+ }
772
+ if(Mival.data.userId == (document.getElementById("feedId5").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId5").innerText).uid : '')) {
773
+ if(Mival.muteStatus == 0) {
774
+ this.setState({
775
+ voiceVideoFive: false
776
+ })
777
+ } else if(Mival.muteStatus == 1) {
778
+ this.setState({
779
+ voiceVideoFive: true
780
+ })
781
+ }
782
+
783
+ }
784
+ if(Mival.data.userId == (document.getElementById("feedId6").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId6").innerText).uid : '')) {
785
+ if(Mival.muteStatus == 0) {
786
+ this.setState({
787
+ voiceVideoSix: false
788
+ })
789
+ } else if(Mival.muteStatus == 1) {
790
+ this.setState({
791
+ voiceVideoSix: true
792
+ })
793
+ }
794
+
795
+ }
796
+ }
686
797
  }
687
798
  };
688
799
 
@@ -691,7 +802,7 @@ class Video extends Component {
691
802
  type: '2',
692
803
  sigType: 1
693
804
  };
694
- this.mpaasSig(data);
805
+
695
806
  this.test_controller.GetDevices();
696
807
  // 获取设备成功
697
808
  this.test_controller.OnGetDevicesSuccess = (devicesInfo) => {
@@ -744,11 +855,13 @@ class Video extends Component {
744
855
  obj2.push(b)
745
856
  }
746
857
  }
747
- console.log(obj, obj1)
858
+ this.mpaasSig(data);
748
859
  };
749
860
  // 获取设备失败
750
861
  this.test_controller.OnGetDevicesFailed = (code, msg) => {
751
862
  console.log('获取设备失败', code, msg)
863
+ message.success('获取设备失败,请检查摄像头设备是否可用或是否禁用摄像头')
864
+ this.roomCallBack(2,'获取失败失败')
752
865
  };
753
866
  // 建立连接成功
754
867
  this.test_controller.OnConnectOK = () => {
@@ -860,7 +973,7 @@ class Video extends Component {
860
973
  // 推送“新加⼊房间者”给与会者
861
974
  this.test_controller.OnNewJoinerIn = (participant) => {
862
975
  console.log('新加⼊房间者', participant);
863
- this.test_controller.ChangeStreamSize(document.getElementById('publish_video1').name, 5)
976
+ // this.test_controller.ChangeStreamSize(document.getElementById('publish_video1').name, 5)
864
977
  this.setState(
865
978
  {
866
979
  isCustomer: true
@@ -870,6 +983,20 @@ class Video extends Component {
870
983
  // 推送“有新发布”给与会者
871
984
  this.test_controller.OnNewPublish = (feed) => {
872
985
  console.log('有新发布者', feed);
986
+ callNimIM('sendCustomCmdMsg', {
987
+ customId: this.state.imRoomId,
988
+ content: JSON.stringify({
989
+ 'typeId': 1014,
990
+ 'sessionId': this.state.sessionId,
991
+ 'meetingInfo': {
992
+ 'title': this.props.meetingInfo.title,
993
+ 'host': this.props.meetingInfo.host,
994
+ 'customers': this.props.meetingInfo.customers
995
+ }
996
+
997
+ })
998
+ }, function (code, message, data) {
999
+ })
873
1000
  let array = this.state.roomCustomerList;
874
1001
  let newArray = [...array];
875
1002
  newArray.push({
@@ -881,6 +1008,104 @@ class Video extends Component {
881
1008
  this.setState({
882
1009
  roomCustomerList: newArray
883
1010
  })
1011
+ let config_param
1012
+ if(feed.uid != this.state.tellerAccount) {
1013
+ if(feed.tag == 'VIDEO_SOURCE_SCREEN') {
1014
+ config_param = {
1015
+ subscribe_video_id: 'video11',
1016
+ subscribe_audio_id: 'audio11',
1017
+ subscribe_streamId_id: 'subscribe_streamId11',
1018
+ feedId_id: 'feedId11',
1019
+ feedId: feed.feedId
1020
+ }
1021
+
1022
+ this.tabTitlesClick(
1023
+ {
1024
+ value: 'customerScreen',
1025
+ name: '客户投屏'
1026
+ },'add'
1027
+ )
1028
+ } else {
1029
+ // let data_param = {
1030
+ // isVideo: true,
1031
+ // videoIndex: this.state.videoList.length + 1,
1032
+ // videoTwoName: ''
1033
+ // }
1034
+ // let videoList = []
1035
+ // console.log(data_param)
1036
+ // videoList.push(data_param)
1037
+ // this.setState({
1038
+ // videoList
1039
+ // })
1040
+ // config_param = {
1041
+ // subscribe_video_id: 'video' + this.state.videoList.length,
1042
+ // subscribe_audio_id: 'audio' + this.state.videoList.length,
1043
+ // subscribe_streamId_id: 'subscribe_streamId' + this.state.videoList.length,
1044
+ // feedId_id: 'feedId' + this.state.videoList.length,
1045
+ // feedId: feed.feedId
1046
+ // }
1047
+ if(!document.getElementById('video1').name) {
1048
+ config_param = {
1049
+ subscribe_video_id: 'video1',
1050
+ subscribe_audio_id: 'audio1',
1051
+ subscribe_streamId_id: 'subscribe_streamId1',
1052
+ feedId_id: 'feedId1',
1053
+ feedId: feed.feedId
1054
+ }
1055
+ }
1056
+ else if(!document.getElementById('video2').name) {
1057
+ config_param = {
1058
+ subscribe_video_id: 'video2',
1059
+ subscribe_audio_id: 'audio2',
1060
+ subscribe_streamId_id: 'subscribe_streamId2',
1061
+ feedId_id: 'feedId2',
1062
+ feedId: feed.feedId
1063
+ }
1064
+ }
1065
+ else if(!document.getElementById('video3').name) {
1066
+ config_param = {
1067
+ subscribe_video_id: 'video3',
1068
+ subscribe_audio_id: 'audio3',
1069
+ subscribe_streamId_id: 'subscribe_streamId3',
1070
+ feedId_id: 'feedId3',
1071
+ feedId: feed.feedId
1072
+ }
1073
+ }
1074
+ else if(!document.getElementById('video4').name) {
1075
+ config_param = {
1076
+ subscribe_video_id: 'video4',
1077
+ subscribe_audio_id: 'audio4',
1078
+ subscribe_streamId_id: 'subscribe_streamId4',
1079
+ feedId_id: 'feedId4',
1080
+ feedId: feed.feedId
1081
+ }
1082
+ }
1083
+ else if(!document.getElementById('video5').name) {
1084
+ config_param = {
1085
+ subscribe_video_id: 'video5',
1086
+ subscribe_audio_id: 'audio5',
1087
+ subscribe_streamId_id: 'subscribe_streamId5',
1088
+ feedId_id: 'feedId5',
1089
+ feedId: feed.feedId
1090
+ }
1091
+ }
1092
+ else if(!document.getElementById('video6').name) {
1093
+ config_param = {
1094
+ subscribe_video_id: 'video6',
1095
+ subscribe_audio_id: 'audio6',
1096
+ subscribe_streamId_id: 'subscribe_streamId6',
1097
+ feedId_id: 'feedId6',
1098
+ feedId: feed.feedId
1099
+ }
1100
+ }
1101
+ }
1102
+
1103
+ }
1104
+ if (config_param !== undefined) {
1105
+ config_param.need_volume_analyser = true
1106
+ console.log(config_param)
1107
+ this.test_controller.Subscribe(config_param)
1108
+ }
884
1109
  };
885
1110
  // 推送“有新订阅”给与会者
886
1111
  this.test_controller.OnNewSubscribe = (subscriber, feed) => {
@@ -899,39 +1124,61 @@ class Video extends Component {
899
1124
  'tellerId': this.props.tellerAccount
900
1125
  })
901
1126
  })
1127
+ this.setState({
1128
+ publishDevic: 1,
1129
+ isSharedScreen: false,
1130
+ screenName: '投屏'
1131
+ });
1132
+ this.tabTitlesClick('RMScreen','delect')
1133
+ if(this.state.isPictureInPicture) {
1134
+ document.exitPictureInPicture()
1135
+ }
902
1136
  }
903
1137
  };
904
1138
  // 取消订阅媒体流成功
905
1139
  this.test_controller.OnUnSubscribeSucc = (sid) => {
906
1140
  console.log('取消订阅媒体流成功', sid)
1141
+ this.state.tabTitles.map((item) => {
1142
+ if(item.value == 'customerScreen') {
1143
+ if(!document.getElementById("video11").name) {
1144
+ this.tabTitlesClick('customerScreen','delect')
1145
+ }
1146
+ }
1147
+ })
907
1148
  if(!document.getElementById("video1").name) {
908
1149
  this.setState({
909
- videoOneName: ''
1150
+ videoOneName: '',
1151
+ voiceVideoOne: false
910
1152
  })
911
1153
  }
912
1154
  if(!document.getElementById("video2").name) {
913
1155
  this.setState({
914
- videoTwoName: ''
1156
+ videoTwoName: '',
1157
+ voiceVideoTwo: false
915
1158
  })
916
1159
  }
917
1160
  if(!document.getElementById("video3").name) {
918
1161
  this.setState({
919
- videoThreeName: ''
1162
+ videoThreeName: '',
1163
+ voiceVideoThree: false
920
1164
  })
921
1165
  }
922
1166
  if(!document.getElementById("video4").name) {
923
1167
  this.setState({
924
- videoFourName: ''
1168
+ videoFourName: '',
1169
+ voiceVideoFour: false,
925
1170
  })
926
1171
  }
927
1172
  if(!document.getElementById("video5").name) {
928
1173
  this.setState({
929
- videoFiveName: ''
1174
+ videoFiveName: '',
1175
+ voiceVideoFive: false
930
1176
  })
931
1177
  }
932
1178
  if(!document.getElementById("video6").name) {
933
1179
  this.setState({
934
- videoSixName: ''
1180
+ videoSixName: '',
1181
+ voiceVideoSix: false
935
1182
  })
936
1183
  }
937
1184
  };
@@ -945,7 +1192,7 @@ class Video extends Component {
945
1192
  }
946
1193
 
947
1194
  if(this.state.roomCustomerList.length == 0) {
948
- this.test_controller.ChangeStreamSize(document.getElementById('publish_video1').name, 3)
1195
+ // this.test_controller.ChangeStreamSize(document.getElementById('publish_video1').name, 3)
949
1196
  this.setState({
950
1197
  isCustomer: false
951
1198
  })
@@ -1184,18 +1431,9 @@ class Video extends Component {
1184
1431
  canvas.width = this.props.microphoneSize
1185
1432
  canvas.height = this.props.microphoneSize
1186
1433
  let ctx = canvas.getContext("2d");
1187
-
1188
- let outcanvas = document.createElement("canvas");
1189
- outcanvas.width = canvas.width;
1190
- outcanvas.height = canvas.height;
1191
- ctx.strokeStyle = "#db0011";
1192
- ctx.lineWidth = 2;
1193
1434
  ctx.clearRect(0, 0, canvas.width, canvas.height); //清理画布
1194
- // ctx.fillStyle ='rgba(0, 0, 0, 0.2)';
1195
- // ctx.fillRect(0, 0, canvas.width, canvas.height, )
1196
1435
  let dataArray = new Uint8Array(analyser.frequencyBinCount);
1197
1436
  analyser.getByteFrequencyData(dataArray);
1198
- // console.log('wwww', dataArray.length, document.getElementById('publish_video1').srcObject)
1199
1437
  let step = Math.round(dataArray.length / 60); //采样步长
1200
1438
  var img = document.getElementById("icon_huatong");
1201
1439
  ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
@@ -1218,67 +1456,7 @@ class Video extends Component {
1218
1456
  let startY = y1 - height // 绘制起始点y
1219
1457
  ctx.fillRect(startX, startY, width, height )
1220
1458
  }
1221
-
1222
- //制造半透明投影
1223
- function draw() {
1224
- ctx.drawImage(outcanvas, 0, 0);
1225
- ctx.save();
1226
- ctx.translate(canvas.width / 2, canvas.height / 2);
1227
- ctx.rotate(Math.PI);
1228
- ctx.scale(-1, 1);
1229
- ctx.drawImage(outcanvas, -canvas.width / 2, -canvas.height / 2);
1230
- ctx.restore();
1231
- ctx.fillStyle = 'rgba(192,192,192, .0)';
1232
- ctx.fillRect(0, 0, canvas.width, canvas.height);
1233
- }
1234
-
1235
- draw();
1236
1459
  requestAnimationFrame(this.test_controller.OnVolumeAnalyser.bind(this, sid, analyser));
1237
- // let canvas = document.getElementById(volumeView);
1238
- // let ctx = canvas.getContext("2d");
1239
-
1240
- // let outcanvas = document.createElement("canvas");
1241
- // outcanvas.width = canvas.width;
1242
- // outcanvas.height = canvas.height;
1243
- // ctx.strokeStyle = this.props.voiceColor;
1244
- // ctx.lineWidth = 2;
1245
- // ctx.clearRect(0, 0, canvas.width, canvas.height); //清理画布
1246
- // let dataArray = new Uint8Array(analyser.frequencyBinCount);
1247
- // analyser.getByteFrequencyData(dataArray);
1248
- // let step = Math.round(dataArray.length / 60); //采样步长
1249
- // for (var i = 0; i < 40; i++) {
1250
- // let energy = (dataArray[step * i] / 256.0) * 50;
1251
- // for (var j = 0; j < energy; j++) {
1252
- // ctx.beginPath();
1253
- // ctx.moveTo(20 * i + 2, 200 + 4 * j);
1254
- // ctx.lineTo(20 * (i + 1) - 2, 200 + 4 * j);
1255
- // ctx.stroke();
1256
- // ctx.beginPath();
1257
- // ctx.moveTo(20 * i + 2, 200 - 4 * j);
1258
- // ctx.lineTo(20 * (i + 1) - 2, 200 - 4 * j);
1259
- // ctx.stroke();
1260
- // }
1261
- // ctx.beginPath();
1262
- // ctx.moveTo(20 * i + 2, 200);
1263
- // ctx.lineTo(20 * (i + 1) - 2, 200);
1264
- // ctx.stroke();
1265
- // }
1266
-
1267
- // //制造半透明投影
1268
- // function draw() {
1269
- // ctx.drawImage(outcanvas, 0, 0);
1270
- // ctx.save();
1271
- // ctx.translate(canvas.width / 4, canvas.height / 2);
1272
- // ctx.rotate(Math.PI);
1273
- // ctx.scale(-1, 1);
1274
- // ctx.drawImage(outcanvas, -canvas.width / 2, -canvas.height / 2);
1275
- // ctx.restore();
1276
- // ctx.fillStyle = 'rgba(192,192,192, .0)';
1277
- // ctx.fillRect(0, 0, canvas.width, canvas.height);
1278
- // }
1279
-
1280
- // draw();
1281
- // requestAnimationFrame(this.test_controller.OnVolumeAnalyser.bind(this, sid, analyser));
1282
1460
  }
1283
1461
  // 停止共享
1284
1462
  this.test_controller.OnDesktopDisplayClosed = () => {
@@ -1430,12 +1608,6 @@ class Video extends Component {
1430
1608
  sessionId: this.props.sessionId
1431
1609
  })
1432
1610
  } else {
1433
- setTimeout(() => {
1434
- this.setState({
1435
- screenName: this.props.intl.formatMessage({ id: 'shareScreen' }),
1436
- suspendName: this.props.intl.formatMessage({ id: 'suspend' }),
1437
- })
1438
- }, 50);
1439
1611
  this.addToScript()
1440
1612
  }
1441
1613
  }
@@ -1457,12 +1629,16 @@ class Video extends Component {
1457
1629
  customId: this.state.imRoomId,
1458
1630
  content: JSON.stringify({
1459
1631
  'typeId': 1013,
1460
- 'state': 0,
1461
- 'sessionId': this.state.sessionId,
1632
+ 'muteStatus': 1,
1633
+ 'data': {
1634
+ 'sessionId': this.state.sessionId,
1635
+ 'userId': this.props.tellerAccount
1636
+ }
1462
1637
  })
1463
1638
  }, function (code, message, data) {
1464
1639
  console.log(data)
1465
1640
  })
1641
+
1466
1642
  } else if (this.state.voiceStatue) {
1467
1643
  // 打开本地
1468
1644
  this.setState({
@@ -1479,8 +1655,11 @@ class Video extends Component {
1479
1655
  customId: this.state.imRoomId,
1480
1656
  content: JSON.stringify({
1481
1657
  'typeId': 1013,
1482
- 'state': 1,
1483
- 'sessionId': this.state.sessionId,
1658
+ 'muteStatus': 0,
1659
+ 'data': {
1660
+ 'sessionId': this.state.sessionId,
1661
+ 'userId': this.props.tellerAccount
1662
+ }
1484
1663
  })
1485
1664
  }, function (code, message, data) {
1486
1665
  console.log(data)
@@ -1488,7 +1667,7 @@ class Video extends Component {
1488
1667
  }
1489
1668
  };
1490
1669
  isFileSuccuse = () => {
1491
- if (!this.state.sessionId || this.state.isSuspend || !this.state.isCustomer) {
1670
+ if (!this.state.sessionId || this.state.isSuspend) {
1492
1671
  message.success(this.props.prohibitPrompt)
1493
1672
  return false
1494
1673
  } else {
@@ -1557,22 +1736,17 @@ class Video extends Component {
1557
1736
  this.test_controller.ChangeMediaStream(publish_config);
1558
1737
  this.setState({
1559
1738
  isPDF: true,
1560
- isSelect: 'noVideo',
1561
1739
  })
1562
1740
  } else {
1563
1741
  this.test_controller.UnPublish(document.getElementById('video10').name)
1564
- this.setState({
1565
- isPDF: false,
1566
- isSelect: 'video',
1567
- })
1568
1742
  }
1569
1743
  this.setState({
1570
1744
  publishDevic: 1,
1571
1745
  isSharedScreen: false,
1572
-
1573
1746
  screenName: '投屏'
1574
1747
  });
1575
1748
  console.log(pictureInPictureVideo)
1749
+ this.tabTitlesClick('RMScreen','delect')
1576
1750
  if(this.state.isPictureInPicture) {
1577
1751
  document.exitPictureInPicture()
1578
1752
  }
@@ -1593,20 +1767,18 @@ class Video extends Component {
1593
1767
  publish_config.publish_tag = 'projectionWhiteboard'
1594
1768
  this.test_controller.Publish(publish_config)
1595
1769
  }
1596
-
1597
-
1598
- // publish_config.media_type = 1;
1599
- // publish_config.publish_device = 2;
1600
- // publish_config.video_profile_type = 5;
1601
- // publish_config.sid = document.getElementById('publish_video1').name;
1602
- // this.test_controller.ChangeMediaStream(publish_config);
1603
1770
  this.setState({
1604
1771
  publishDevic: 2,
1605
- isSelect: 'noVideo',
1606
1772
  isSharedScreen: true,
1607
1773
  screenName: '取消共享',
1608
1774
  isPDF: false
1609
1775
  })
1776
+ this.tabTitlesClick(
1777
+ {
1778
+ value: 'RMScreen',
1779
+ name: '坐席投屏'
1780
+ },'add'
1781
+ )
1610
1782
  if(!this.state.isPictureInPicture) {
1611
1783
  this.pictureInPicture()
1612
1784
  }
@@ -1809,6 +1981,28 @@ class Video extends Component {
1809
1981
  appGetUsername = async (sid) => {
1810
1982
  console.log(sid)
1811
1983
  let userId = ''
1984
+ let index
1985
+ // this.state.videoList.map((item,index)=>{
1986
+ // let name = 'video' + item.videoIndex
1987
+ // if(document.getElementById(name).name == sid){
1988
+ // userId = this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById(("feedId" + item.videoIndex)).innerText).uid
1989
+ // index = index
1990
+ // }
1991
+ // })
1992
+ // try {
1993
+ // let result = await API.appGetUsername({
1994
+ // userId: userId
1995
+ // });
1996
+ // console.log(result)
1997
+ // if (result.code == 200) {
1998
+ // let data = result.data.userInfo ? result.data.userInfo.userName ? result.data.userInfo.userName : '' : ''
1999
+ // this.state.videoList[index].videoOneName = this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById(("feedId" + item.videoIndex)).innerText).tag == 'VIDEO_SOURCE_SCREEN' ? '共享屏幕' : data ? data : '客户' + item.videoIndex
2000
+ // } else {
2001
+ // message.success('查询失败')
2002
+ // }
2003
+ // } catch (err) {
2004
+
2005
+ // }
1812
2006
  if(document.getElementById('video1').name == sid){
1813
2007
  userId = this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId1").innerText).uid
1814
2008
  }
@@ -1909,10 +2103,12 @@ class Video extends Component {
1909
2103
  if(!this.state.isWhiteboard) {
1910
2104
  const publish_config = {};
1911
2105
  this.setState({
1912
- isPDF: true,
1913
2106
  isWhiteboard: true,
1914
- isSelect: 'noVideo',
1915
2107
  })
2108
+ this.tabTitlesClick({
2109
+ value: 'RMWhiteboard',
2110
+ name: 'RM白板'
2111
+ },'add')
1916
2112
  if (document.getElementById('video10').name) {
1917
2113
  // 代表已经有了进行切流
1918
2114
  publish_config.publish_device = 4
@@ -1939,21 +2135,24 @@ class Video extends Component {
1939
2135
 
1940
2136
 
1941
2137
  }
1942
- switchSelect = () => {
1943
- if (this.state.isSelect == 'video') {
1944
- if (document.getElementById('video10').name) {
1945
- this.setState({
1946
- isSelect: 'noVideo',
2138
+ switchSelect = (value) => {
2139
+ this.setState({
2140
+ isSelect: value,
1947
2141
  })
1948
- } else {
1949
- message.success('当前无签字白板')
1950
- }
2142
+ // if (this.state.isSelect == 'video') {
2143
+ // if (document.getElementById('video10').name) {
2144
+ // this.setState({
2145
+ // isSelect: 'noVideo',
2146
+ // })
2147
+ // } else {
2148
+ // message.success('当前无签字白板')
2149
+ // }
1951
2150
 
1952
- } else {
1953
- this.setState({
1954
- isSelect: 'video',
1955
- })
1956
- }
2151
+ // } else {
2152
+ // this.setState({
2153
+ // isSelect: 'video',
2154
+ // })
2155
+ // }
1957
2156
  }
1958
2157
  facialHandleVisibleChange=(value)=>{
1959
2158
  if(!value) {
@@ -1970,25 +2169,66 @@ class Video extends Component {
1970
2169
  }
1971
2170
  }
1972
2171
  render() {
2172
+ const {meetingInfo} = this.props
1973
2173
  var pdfChildren
1974
2174
  if (this.props.children) {
1975
2175
  pdfChildren = React.cloneElement(this.props.children, { width: 100, height: 100, id: 12 })
1976
2176
  }
2177
+ const customerNameList = (
2178
+ <span>
2179
+ {
2180
+ meetingInfo.customers.map((item,index)=>{
2181
+ return <label>
2182
+ {item}
2183
+ {
2184
+ meetingInfo.customers.length > 0 && index != meetingInfo.customers.length-1 &&<span>,</span>
2185
+ }
2186
+
2187
+ </label>
2188
+ })
2189
+ }
2190
+ </span>
2191
+ )
2192
+ const tabTitleList = (
2193
+ <div className="button">
2194
+ {
2195
+ this.state.tabTitles.map((item)=>{
2196
+ return <div className={`${this.state.isSelect == item.value ? 'selectSee' : "noSelest"}`} onClick={this.switchSelect.bind(this,item.value)}>
2197
+ {item.name}
2198
+ </div>
2199
+ })
2200
+ }
2201
+ </div>
2202
+ )
2203
+ // const videoCustomer =
2204
+ // this.state.videoList.map((item,index)=>{
2205
+ // return <div className={`itemed`} style={{ display: (item.isVideo) ? '' : 'none', }}>
2206
+ // <video
2207
+ // id={'video' + item.videoIndex}
2208
+ // autoPlay
2209
+ // muted={true}
2210
+ // className="video"
2211
+ // />
2212
+ // <audio id={'audio' + item.videoIndex} autoPlay />
2213
+ // <label style={{ display: 'none' }} id={'feedId' + item.videoIndex} type="text" />
2214
+ // <div className={`customerTitle titleSamlle`}>
2215
+ // <div className='titleName' style={{ background: this.props.titleBackground,color: this.props.titleColor,'font-size': this.props.fontSize + 'px','font-family' : this.props.fontFamily}}>
2216
+ // {this.state.videoTwoName}
2217
+ // </div>
2218
+ // </div>
2219
+ // <canvas className="canvasClassOne" id={'subscribe_volumeView' + item.videoIndex} width="40" height="70"></canvas>
2220
+ // </div>
2221
+ // })
2222
+
1977
2223
  return (
1978
2224
  <div className="all">
1979
2225
  <Spin spinning={this.state.loading} tip="视频初始化中...">
1980
2226
  <Header></Header>
1981
- <div className="health">
1982
- <div className="projection" style={{ display: (this.state.isCustomer) ? '' : 'none', }}>
1983
- <div className="button">
1984
- <div className={`${this.state.isSelect == 'video' ? 'selectSee' : "noSelest"}`} onClick={this.switchSelect.bind(this)}>视频画面</div>
1985
- <div className={`${this.state.isSelect == 'noVideo' ? 'selectSee' : "noSelest"}`} onClick={this.switchSelect.bind(this)}>投屏白板</div>
1986
- </div>
1987
- <div className="videoDiv" style={{ display: (this.state.isSelect == 'noVideo') ? '' : 'none', }}>
1988
- <div style={{ display: (this.state.isPDF) ? '' : 'none', }} id="touBoxItem">
1989
- {pdfChildren}
1990
- </div>
1991
- <div className="videoDiv" style={this.state.isPDF ? { display: 'none' } : {}}>
2227
+ {tabTitleList}
2228
+ <div className="health" style={{'margin-top': (this.state.tabTitles.length > 0) ? '0px' : '20px' }}>
2229
+ <div className="projection">
2230
+ <div className="videoDiv" style={{ display: (this.state.isSelect == 'RMScreen') ? '' : 'none', }}>
2231
+ <div className="videoDiv">
1992
2232
  <video
1993
2233
  id="video10"
1994
2234
  autoPlay
@@ -1997,18 +2237,88 @@ class Video extends Component {
1997
2237
  />
1998
2238
  <audio id="audio10" autoPlay />
1999
2239
  <label style={{ display: 'none' }} id="feedId10" type="text" />
2000
- {/* <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="subscribe_volumeView10" width="70" height="70"></canvas> */}
2240
+ </div>
2001
2241
 
2242
+ </div>
2243
+ <div className="videoDiv" style={{ display: (this.state.isSelect == 'RMWhiteboard') ? '' : 'none', }}>
2244
+ <div id="touBoxItem">
2245
+ {pdfChildren}
2246
+ </div>
2247
+ </div>
2248
+ <div className="videoDiv" style={{ display: (this.state.isSelect == 'customerScreen') ? '' : 'none', }}>
2249
+ <div className="videoDiv">
2250
+ <video
2251
+ id="video11"
2252
+ autoPlay
2253
+ muted={true}
2254
+ className="video"
2255
+ />
2256
+ <audio id="audio11" autoPlay />
2257
+ <label style={{ display: 'none' }} id="feedId11" type="text" />
2258
+ {/* <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="subscribe_volumeView10" width="70" height="70"></canvas> */}
2002
2259
  </div>
2003
2260
 
2004
2261
  </div>
2262
+ {
2263
+ this.state.tabTitles.length == 0 &&
2264
+ <div className='themeClass'>
2265
+ <div>
2266
+ <ul>
2267
+ <li>
2268
+ <span>会议主题:</span>
2269
+ <label>{meetingInfo.title}</label>
2270
+ </li>
2271
+ <li>
2272
+ <span>支持人:</span>
2273
+ <label>{meetingInfo.host}</label>
2274
+ </li>
2275
+ <li>
2276
+ <span>参会客户:</span>
2277
+ {customerNameList}
2278
+ </li>
2279
+ </ul>
2280
+ </div>
2281
+ </div>
2282
+ }
2283
+
2284
+
2005
2285
  </div>
2006
- <div className="wrapper">
2286
+ <div className="wrapper" style={{ width: '20%' , }}>
2007
2287
  <div
2008
- className={`itemed ${this.state.isBigVideo == 'video1' ? 'item1' : ""}`}
2009
- // className="itemed item1"
2010
- style={{ position: "relative",'margin-right': '5px'}}
2011
- onClick={this.enlargeClick.bind(this, 'isLangVideo1')}
2288
+ className={`itemed ${this.state.publishDevic == 4 ? '' : 'isBack'} `}
2289
+ >
2290
+ <div className="publishVideoDiv">
2291
+
2292
+ <video
2293
+ id="publish_video1"
2294
+ className={`publishVideoClass`}
2295
+ autoPlay
2296
+ muted={true}
2297
+ webkit-playsinline={true}
2298
+ playsinline={true}
2299
+ />
2300
+ <label style={{ display: 'none' }} id="publish_streamId1" type="text" />
2301
+ {
2302
+ this.state.voiceStatue && <img
2303
+ alt=""
2304
+ src={require("../../assets/img/jingyin.png").default}
2305
+ className="imgClassVoice voiceClass"
2306
+ />
2307
+ }
2308
+ <div id="publish_video_div" className={`tellerTitle titleSamlle`}>
2309
+ <div className='titleName' style={{ background: this.props.titleBackground,color: this.props.titleColor,'font-size': this.props.fontSize + 'px','font-family' : this.props.fontFamily}}>坐席</div>
2310
+ </div>
2311
+ <canvas style={{ display: (!this.state.voiceStatue) ? '' : 'none', }} className="canvasClass" id="publish_volumeView" width="40" height="70"></canvas>
2312
+ </div>
2313
+
2314
+ </div>
2315
+ {/* {
2316
+ videoCustomer
2317
+ } */}
2318
+ <div style={{ display: (this.state.isCustomer) ? '' : 'none', }}>
2319
+ <div
2320
+ className={`itemed`}
2321
+ style={{ position: "relative"}}
2012
2322
  >
2013
2323
  {
2014
2324
  this.state.customAudioed && <img
@@ -2019,7 +2329,6 @@ class Video extends Component {
2019
2329
  }
2020
2330
  <div className="video1Div" style={{ display: (!this.state.customAudioed) ? '' : 'none', }}>
2021
2331
  <video
2022
- style={{display: (this.state.isBigVideo == 'video1' && this.state.isSelect == 'noVideo') ? 'none' : '' }}
2023
2332
  id="video1"
2024
2333
  autoPlay
2025
2334
  muted={true}
@@ -2027,53 +2336,25 @@ class Video extends Component {
2027
2336
  />
2028
2337
  <audio id="audio1" autoPlay />
2029
2338
  <label style={{ display: 'none' }} id="feedId1" type="text" />
2030
- <div style={{ display: (this.state.videoOneName) ? '' : 'none', background: this.props.titleBackground,color: this.props.titleColor,'font-size': this.props.fontSize + 'px','font-family' : this.props.fontFamily }} className={`customerTitle ${this.state.isBigVideo == 'video1' ? 'titleBig' : "titleSamlle"}`}>{this.state.videoOneName}</div>
2031
- <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView1" width="40" height="70"></canvas>
2032
- </div>
2033
- </div>
2034
- <div
2035
- className={`itemed ${this.state.publishDevic == 4 ? '' : (this.state.isBigVideo == 'publish_video1' ? 'item1 isBack' : (this.state.isCustomer ? 'isBack' : 'itemPublic'))}`}
2036
- onClick={this.enlargeClick.bind(this, 'isLangPublishVideo1')}
2037
- >
2038
- <div className="publishVideoDiv">
2039
2339
  {
2040
- this.state.audioed && <img
2340
+ this.state.voiceVideoOne && <img
2041
2341
  alt=""
2042
- src={require("../../assets/img/yingpin.png").default}
2043
- className="imgClass"
2342
+ src={require("../../assets/img/jingyin.png").default}
2343
+ className="imgClassVoice voiceVideoClass"
2044
2344
  />
2045
2345
  }
2046
- {
2047
- this.state.isSuspend && <img
2048
- alt=""
2049
- src={require("../../assets/img/zanTing.png").default}
2050
- className="imgClass"
2051
- />
2052
- }
2053
- {/* {
2054
- this.state.isSharedScreen && <span
2055
- className="sharedScreen"
2056
- >
2057
- 屏幕共享中
2058
- </span>
2059
- } */}
2060
- <video
2061
- style={{ display: (!this.state.audioed && !this.state.isSuspend) ? ((this.state.isBigVideo == 'publish_video1' && this.state.isSelect == 'noVideo') ? 'none' : '') : 'none', }}
2062
- id="publish_video1"
2063
- className={`publishVideoClass ${this.state.isCustomer ? '' : "videoFit"}`}
2064
- onClick={this.enlargeClick.bind(this, 'isLangVideo2')}
2065
- autoPlay
2066
- muted={true}
2067
- />
2068
- {/* <audio id="publish_audio1" autoPlay /> */}
2069
- <label style={{ display: 'none' }} id="publish_streamId1" type="text" />
2070
- <div id="publish_video_div" style={{ display: (this.state.isCustomer) ? '' : 'none', background: this.props.titleBackground,color: this.props.titleColor,'font-size': this.props.fontSize + 'px','font-family' : this.props.fontFamily}} className={`tellerTitle ${this.state.isBigVideo == 'publish_video1' ? 'titleBig' : "titleSamlle"}`}>坐席</div>
2071
- <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="publish_volumeView" width="40" height="70"></canvas>
2072
- </div>
2346
+ <div style={{ display: (this.state.videoOneName) ? '' : 'none'}} className={`customerTitle titleSamlle`}>
2347
+ <div className='titleName' style={{ background: this.props.titleBackground,color: this.props.titleColor,'font-size': this.props.fontSize + 'px','font-family' : this.props.fontFamily}}>
2348
+ {this.state.videoOneName}
2349
+ </div>
2073
2350
 
2351
+
2352
+ </div>
2353
+ <canvas style={{ display: (this.state.videoOneName&&!this.state.voiceVideoOne) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView1" width="40" height="70"></canvas>
2354
+ </div>
2074
2355
  </div>
2075
- <div className={`itemed ${this.state.isBigVideo == 'video2' ? 'item1' : ""}`} style={{'margin-top': '5px'}} onClick={this.enlargeClick.bind(this, 'isLangVideo2')}>
2076
- <video style={{display: (this.state.isBigVideo == 'video2' && this.state.isSelect == 'noVideo') ? 'none' : '' }}
2356
+ <div className={`itemed`}>
2357
+ <video
2077
2358
  id="video2"
2078
2359
  autoPlay
2079
2360
  muted={true}
@@ -2081,14 +2362,23 @@ class Video extends Component {
2081
2362
  />
2082
2363
  <audio id="audio2" autoPlay />
2083
2364
  <label style={{ display: 'none' }} id="feedId2" type="text" />
2084
- <div style={{ display: (this.state.videoTwoName) ? '' : 'none', background: this.props.titleBackground,color: this.props.titleColor,'font-size': this.props.fontSize + 'px','font-family' : this.props.fontFamily }} className={`customerTitle ${this.state.isBigVideo == 'video2' ? 'titleBig' : "titleSamlle"}`}>{this.state.videoTwoName}</div>
2085
- <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView2" width="40" height="70"></canvas>
2365
+ {
2366
+ this.state.voiceVideoTwo && <img
2367
+ alt=""
2368
+ src={require("../../assets/img/jingyin.png").default}
2369
+ className="imgClassVoice voiceVideoClass"
2370
+ />
2371
+ }
2372
+ <div style={{ display: (this.state.videoTwoName) ? '' : 'none'}} className={`customerTitle titleSamlle`}>
2373
+ <div className='titleName' style={{ background: this.props.titleBackground,color: this.props.titleColor,'font-size': this.props.fontSize + 'px','font-family' : this.props.fontFamily}}>
2374
+ {this.state.videoTwoName}
2375
+ </div>
2376
+ </div>
2377
+ <canvas style={{ display: (this.state.videoTwoName&&!this.state.voiceVideoTwo) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView2" width="40" height="70"></canvas>
2086
2378
  </div>
2087
- <div className={`itemed ${this.state.isBigVideo == 'video3' ? 'item1' : ""}`}
2088
- style={{'margin-top': '5px' }}
2089
- onClick={this.enlargeClick.bind(this, 'isLangVideo3')}>
2379
+ <div className={`itemed`}
2380
+ style={{'margin-top': '5px' }}>
2090
2381
  <video
2091
- style={{ display: (this.state.isBigVideo == 'video3' && this.state.isSelect == 'noVideo') ? 'none' : '' }}
2092
2382
  id="video3"
2093
2383
  autoPlay
2094
2384
  muted={true}
@@ -2096,14 +2386,22 @@ class Video extends Component {
2096
2386
  />
2097
2387
  <audio id="audio3" autoPlay />
2098
2388
  <label style={{ display: 'none' }} id="feedId3" type="text" />
2099
- <div style={{ display: (this.state.videoThreeName) ? '' : 'none', background: this.props.titleBackground,color: this.props.titleColor,'font-size': this.props.fontSize + 'px','font-family' : this.props.fontFamily }} className={`customerTitle ${this.state.isBigVideo == 'video3' ? 'titleBig' : "titleSamlle"}`}>{this.state.videoThreeName}</div>
2100
- <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView3" width="40" height="70"></canvas>
2389
+ {
2390
+ this.state.voiceVideoThree && <img
2391
+ alt=""
2392
+ src={require("../../assets/img/jingyin.png").default}
2393
+ className="imgClassVoice voiceVideoClass"
2394
+ />
2395
+ }
2396
+ <div style={{ display: (this.state.videoThreeName) ? '' : 'none', background: this.props.titleBackground,color: this.props.titleColor,'font-size': this.props.fontSize + 'px','font-family' : this.props.fontFamily }} className={`customerTitle titleSamlle`}>
2397
+ <div className='titleName' style={{ background: this.props.titleBackground,color: this.props.titleColor,'font-size': this.props.fontSize + 'px','font-family' : this.props.fontFamily}}>
2398
+ {this.state.videoThreeName}
2399
+ </div>
2400
+ </div>
2401
+ <canvas style={{ display: (this.state.videoTwoName&&!this.state.voiceVideoThree) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView3" width="40" height="70"></canvas>
2101
2402
  </div>
2102
- <div className={`itemed ${this.state.isBigVideo == 'video4' ? 'item1' : ""}`}
2103
- style={{'margin-right': '5px'}}
2104
- onClick={this.enlargeClick.bind(this, 'isLangVideo4')}>
2403
+ <div className={`itemed`}>
2105
2404
  <video
2106
- style={{display: (this.state.isBigVideo == 'video4' && this.state.isSelect == 'noVideo') ? 'none' : '' }}
2107
2405
  id="video4"
2108
2406
  autoPlay
2109
2407
  muted={true}
@@ -2111,14 +2409,23 @@ class Video extends Component {
2111
2409
  />
2112
2410
  <audio id="audio4" autoPlay />
2113
2411
  <label style={{ display: 'none' }} id="feedId4" type="text" />
2114
- <div style={{ display: (this.state.videoFourName) ? '' : 'none', background: this.props.titleBackground,color: this.props.titleColor,'font-size': this.props.fontSize + 'px','font-family' : this.props.fontFamily }} className={`customerTitle ${this.state.isBigVideo == 'video4' ? 'titleBig' : "titleSamlle"}`}>{this.state.videoFourName}</div>
2115
- <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView4" width="40" height="70"></canvas>
2412
+ {
2413
+ this.state.voiceVideoFour && <img
2414
+ alt=""
2415
+ src={require("../../assets/img/jingyin.png").default}
2416
+ className="imgClassVoice voiceVideoClass"
2417
+ />
2418
+ }
2419
+ <div style={{ display: (this.state.videoFourName) ? '' : 'none', background: this.props.titleBackground,color: this.props.titleColor,'font-size': this.props.fontSize + 'px','font-family' : this.props.fontFamily }} className={`customerTitle titleSamlle`}>
2420
+ <div className='titleName' style={{ background: this.props.titleBackground,color: this.props.titleColor,'font-size': this.props.fontSize + 'px','font-family' : this.props.fontFamily}}>
2421
+ {this.state.videoFourName}
2422
+ </div>
2423
+ </div>
2424
+ <canvas style={{ display: (this.state.videoFourName&&!this.state.voiceVideoFour) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView4" width="40" height="70"></canvas>
2116
2425
  </div>
2117
- <div className={`itemed ${this.state.isBigVideo == 'video5' ? 'item1' : ""}`}
2118
- style={{'margin-top': '5px' }}
2119
- onClick={this.enlargeClick.bind(this, 'isLangVideo5')}>
2426
+ <div className={`itemed`}
2427
+ style={{'margin-top': '5px' }}>
2120
2428
  <video
2121
- style={{display: (this.state.isBigVideo == 'video5' && this.state.isSelect == 'noVideo') ? 'none' : '' }}
2122
2429
  id="video5"
2123
2430
  autoPlay
2124
2431
  muted={true}
@@ -2126,12 +2433,22 @@ class Video extends Component {
2126
2433
  />
2127
2434
  <audio id="audio5" autoPlay />
2128
2435
  <label style={{ display: 'none' }} id="feedId5" type="text" />
2129
- <div style={{ display: (this.state.videoFiveName) ? '' : 'none', background: this.props.titleBackground,color: this.props.titleColor,'font-size': this.props.fontSize + 'px','font-family' : this.props.fontFamily }} className={`customerTitle ${this.state.isBigVideo == 'video5' ? 'titleBig' : "titleSamlle"}`}>{this.state.videoFiveName}</div>
2130
- <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView5" width="40" height="70"></canvas>
2436
+ {
2437
+ this.state.voiceVideoFive && <img
2438
+ alt=""
2439
+ src={require("../../assets/img/jingyin.png").default}
2440
+ className="imgClassVoice voiceVideoClass"
2441
+ />
2442
+ }
2443
+ <div style={{ display: (this.state.videoFiveName) ? '' : 'none', background: this.props.titleBackground,color: this.props.titleColor,'font-size': this.props.fontSize + 'px','font-family' : this.props.fontFamily }} className={`customerTitle titleSamlle`}>
2444
+ <div className='titleName' style={{ background: this.props.titleBackground,color: this.props.titleColor,'font-size': this.props.fontSize + 'px','font-family' : this.props.fontFamily}}>
2445
+ {this.state.videoFiveName}
2446
+ </div>
2447
+ </div>
2448
+ <canvas style={{ display: (this.state.videoFiveName&&!this.state.voiceVideoFive) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView5" width="40" height="70"></canvas>
2131
2449
  </div>
2132
- <div onClick={this.enlargeClick.bind(this, 'isLangVideo6')} style={{'margin-top': '5px'}} className={`${this.state.isBigVideo == 'video6' ? 'item1' : "itemed"}`}>
2450
+ <div className={`itemed`}>
2133
2451
  <video
2134
- style={{display: (this.state.isBigVideo == 'video6' && this.state.isSelect == 'noVideo') ? 'none' : '' }}
2135
2452
  id="video6"
2136
2453
  autoPlay
2137
2454
  muted={true}
@@ -2139,10 +2456,22 @@ class Video extends Component {
2139
2456
  />
2140
2457
  <audio id="audio6" autoPlay />
2141
2458
  <label style={{ display: 'none' }} id="feedId6" type="text" />
2142
- <div style={{ display: (this.state.videoSixName) ? '' : 'none', background: this.props.titleBackground,color: this.props.titleColor,'font-size': this.props.fontSize + 'px','font-family' : this.props.fontFamily }} className={`customerTitle ${this.state.isBigVideo == 'video6' ? 'titleBig' : "titleSamlle"}`}>{this.state.videoSixName}</div>
2143
- <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView6" width="40" height="70"></canvas>
2459
+ {
2460
+ this.state.voiceVideoSix && <img
2461
+ alt=""
2462
+ src={require("../../assets/img/jingyin.png").default}
2463
+ className="imgClassVoice voiceVideoClass"
2464
+ />
2465
+ }
2466
+ <div style={{ display: (this.state.videoSixName) ? '' : 'none', background: this.props.titleBackground,color: this.props.titleColor,'font-size': this.props.fontSize + 'px','font-family' : this.props.fontFamily }} className={`customerTitle titleSamlle`}>
2467
+ <div className='titleName' style={{ background: this.props.titleBackground,color: this.props.titleColor,'font-size': this.props.fontSize + 'px','font-family' : this.props.fontFamily}}>
2468
+ {this.state.videoSixName}
2469
+ </div>
2470
+ </div>
2471
+ <canvas style={{ display: (!this.state.voiceVideoSix) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView6" width="40" height="70"></canvas>
2144
2472
 
2145
2473
  </div>
2474
+ </div>
2146
2475
  </div>
2147
2476
  <img id="icon_huatong" style={{display:'none'}} src={require("../../assets/img/icon_huatong.png").default}></img>
2148
2477
  </div>
@@ -2237,11 +2566,16 @@ Video.defaultProps = {
2237
2566
  resourcePath: 'https://counter-web.leimondata.cn:7199',
2238
2567
  prohibitPrompt: '当前无客户',
2239
2568
  voiceColor: '#0AE544',
2240
- titleBackground: 'rgba(219, 0, 17, 0.1)',
2241
- titleColor: '#DB0011',
2242
- microphoneSize: '50',
2569
+ titleBackground: 'rgba(0,0,0,0.65)',
2570
+ titleColor: '#fff',
2571
+ microphoneSize: '40',
2243
2572
  fontSize: '14',
2244
2573
  fontFamily: 'auto',
2245
- defaultData: ['SHARE', 'FRIES', 'OCR', 'INVITE', 'PIP']
2574
+ menus: ['SHARE', 'FRIES', 'OCR', 'INVITE', 'PIP'],
2575
+ meetingInfo: {
2576
+ title: '测试',
2577
+ host: 'wmz',
2578
+ customers: ['王三','张思']
2579
+ }
2246
2580
  }
2247
2581
  export default Video