From a87eece5c35558eb1a264190d5ae1b11dee1b600 Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Thu, 31 Oct 2024 11:18:33 +0800 Subject: [PATCH 01/21] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index f4b67dd..29aa830 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -166,7 +166,7 @@ const Meeting: React.FC = () => { const [currentLookUserAccount, setCurrentLookUserAccount] = useState('') const [recorder, setRecorder] = useState('') const [_currentRequestSpeakType, setCurrentRequestSpeakType] = useState<'video' | 'audio' | ''>('') - const [_mediaStream, setMediaStream] = useState('') + const [_mediaStream, setMediaStream] = useState([]) const [isShare, setIsShare] = useState(null) const [isSharePopConfirm, setIsSharePopConfirm] = useState(false) const [_isNetworkDisconnected, setIsNetworkDisconnected] = useState(false) @@ -841,7 +841,7 @@ const Meeting: React.FC = () => { const mp4Path = `${setting.recordingFilesPath}会议录制_${state.roomName}_${state.channelId}_${dayjs().format('YYYY年MM月DD日HH时mm分')}.webm`; await fs.writeFile(mp4Path, buffer, {}); setRecorder('') - setMediaStream('') + setMediaStream([]) confirm({ title: '提示', icon: , @@ -1487,7 +1487,7 @@ const Meeting: React.FC = () => { // 录制所有音频输入设备 audioInputDevices.forEach(async device => { const micStream = await navigator.mediaDevices.getUserMedia({ audio: { deviceId: { exact: device.deviceId } } }); - setMediaStream(micStream); + setMediaStream((res: any) => [...res, micStream]); const micSoundSource = audioCtx.createMediaStreamSource(micStream); micSoundSource.connect(systemSoundDestination); }) @@ -1555,9 +1555,11 @@ const Meeting: React.FC = () => { return res }) setMediaStream((res: any) => { - if (res) { - res.getTracks().forEach((track: any) => { - track.stop() + if (res.length) { + res.forEach((item: any) => { + item.getTracks().forEach((track: any) => { + track.stop() + }); }); } return res From dd63f928ed3c3172c24e2295bc8532c1bf8d965f Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Thu, 31 Oct 2024 12:55:35 +0800 Subject: [PATCH 02/21] =?UTF-8?q?=E6=8F=90=E7=A4=BA=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 29aa830..8be8355 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -1039,8 +1039,6 @@ const Meeting: React.FC = () => { onConnectionStateChanged: async (_connection: RtcConnection, stateNumber: ConnectionStateType, reason: ConnectionChangedReasonType) => { const reconnectingCode = [2, 16, 11, 13, 14, 12] if (stateNumber === 4 && reconnectingCode.indexOf(reason) >= 0) { - message.error('网络断开,请检查网络') - meetingDisconnectedRef.current.changeModal(true) setIsScreenCapture(bool => { if (bool) { setIsNetworkDisconnected(true) @@ -1760,7 +1758,9 @@ const Meeting: React.FC = () => { }) return res }) - + } else { + message.error('网络断开,请检查网络') + meetingDisconnectedRef.current.changeModal(true) } break; } From d1cd2503997edce1f38418042c162cc8a2d76af8 Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Thu, 31 Oct 2024 13:50:10 +0800 Subject: [PATCH 03/21] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 8be8355..a31d407 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -1039,6 +1039,7 @@ const Meeting: React.FC = () => { onConnectionStateChanged: async (_connection: RtcConnection, stateNumber: ConnectionStateType, reason: ConnectionChangedReasonType) => { const reconnectingCode = [2, 16, 11, 13, 14, 12] if (stateNumber === 4 && reconnectingCode.indexOf(reason) >= 0) { + meetingDisconnectedRef.current.changeModal(true) setIsScreenCapture(bool => { if (bool) { setIsNetworkDisconnected(true) @@ -1046,6 +1047,8 @@ const Meeting: React.FC = () => { } return bool }) + } else if (stateNumber === 3) { + meetingDisconnectedRef.current.changeModal(false) } }, onLocalVideoStateChanged: async (_source: VideoSourceType, _state: LocalVideoStreamState, reason: LocalVideoStreamReason) => { @@ -1758,9 +1761,6 @@ const Meeting: React.FC = () => { }) return res }) - } else { - message.error('网络断开,请检查网络') - meetingDisconnectedRef.current.changeModal(true) } break; } From 246924883328ea6f6f13f3418bcc85f69af16f1b Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Fri, 1 Nov 2024 09:34:49 +0800 Subject: [PATCH 04/21] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.js | 7 ++++--- src/page/Meeting/index.tsx | 31 ++++++++++++++++++------------- src/utils/package/agora.ts | 6 +++++- 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/main.js b/main.js index fb62569..b460344 100644 --- a/main.js +++ b/main.js @@ -719,7 +719,7 @@ const startSignalr = async (user) => { accessTokenFactory: () => user.token }) .build(); - onStart() + connection.start(); mainWindow.webContents.send('changeLocalStorage', { isSignalr: true, reconnect: true, @@ -739,9 +739,10 @@ const startSignalr = async (user) => { const onStart = async () => { if (connection) { - if (connection.state !== signalR.HubConnectionState.Connected) { + if (connection.state === signalR.HubConnectionState.Disconnected) { connection.start(); - } else { + } + if (connection.state !== signalR.HubConnectionState.Connected) { setTimeout(onStart, 3000); } } diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index a31d407..175060d 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -1036,21 +1036,26 @@ const Meeting: React.FC = () => { onRtcStats: async (stats: RtcStats) => { setNetworkOther(stats) }, - onConnectionStateChanged: async (_connection: RtcConnection, stateNumber: ConnectionStateType, reason: ConnectionChangedReasonType) => { + onConnectionStateChanged: async (_connection: RtcConnection, state: ConnectionStateType, reason: ConnectionChangedReasonType) => { const reconnectingCode = [2, 16, 11, 13, 14, 12] - if (stateNumber === 4 && reconnectingCode.indexOf(reason) >= 0) { - meetingDisconnectedRef.current.changeModal(true) - setIsScreenCapture(bool => { - if (bool) { - setIsNetworkDisconnected(true) - stopScreenCapture() - } - return bool - }) - } else if (stateNumber === 3) { - meetingDisconnectedRef.current.changeModal(false) + if (state === 4 && reconnectingCode.indexOf(reason) >= 0) { + + } else if (state === 3) { + if (storage.getItem('reconnect') === 'true') { + meetingDisconnectedRef.current.changeModal(false) + } } }, + onConnectionLost: () => { + meetingDisconnectedRef.current.changeModal(true) + setIsScreenCapture(bool => { + if (bool) { + setIsNetworkDisconnected(true) + stopScreenCapture() + } + return bool + }) + }, onLocalVideoStateChanged: async (_source: VideoSourceType, _state: LocalVideoStreamState, reason: LocalVideoStreamReason) => { if (reason === 12) { setIsScreenCapture(bool => { @@ -2925,7 +2930,7 @@ const networkIcon = (network: number) => { switch (network) { case 0: return - + diff --git a/src/utils/package/agora.ts b/src/utils/package/agora.ts index 63b7516..041dab9 100644 --- a/src/utils/package/agora.ts +++ b/src/utils/package/agora.ts @@ -150,7 +150,7 @@ export const agora = { }, 1000); }, // 事件回调 - registerEventHandler: ({ onJoinChannelSuccess, onUserJoined, onUserOffline, onAudioVolumeIndication, onNetworkQuality, onRtcStats, onConnectionStateChanged, onLocalVideoStateChanged }: any) => { + registerEventHandler: ({ onJoinChannelSuccess, onUserJoined, onUserOffline, onAudioVolumeIndication, onNetworkQuality, onRtcStats, onConnectionStateChanged, onLocalVideoStateChanged, onConnectionLost }: any) => { rtcEngine.registerEventHandler({ // 监听本地用户加入频道事件 onJoinChannelSuccess: async (connection: RtcConnection, elapsed: number) => { @@ -196,6 +196,10 @@ export const agora = { onLocalVideoStateChanged: async (source: VideoSourceType, state: LocalVideoStreamState, reason: LocalVideoStreamReason) => { await onLocalVideoStateChanged?.(source, state, reason) }, + // 网络连接中断,且 SDK 无法在 10 秒内连接服务器回调。 + onConnectionLost: (_connection: RtcConnection) => { + onConnectionLost?.() + } }); }, // 获取视图模式 From a16862d808a465695d01c3df9e50b6baef07344c Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Fri, 1 Nov 2024 09:39:35 +0800 Subject: [PATCH 05/21] =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.js | 1 + 1 file changed, 1 insertion(+) diff --git a/main.js b/main.js index b460344..507ac81 100644 --- a/main.js +++ b/main.js @@ -712,6 +712,7 @@ function mainWindowHide() { } const startSignalr = async (user) => { + // .withAutomaticReconnect([1000, 2000, 3000]) connection = new signalR.HubConnectionBuilder().withAutomaticReconnect() .withUrl(`${env === 'development' ? 'http://192.168.2.9:5192' : 'https://meeting-api.23544.com/pc'}/session-manage`, { skipNegotiation: true, From 55c3e0a22b2b163b78ecd7012a7cdb89fae70d14 Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Fri, 1 Nov 2024 11:00:55 +0800 Subject: [PATCH 06/21] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E9=87=8D=E8=BF=9E=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.js b/main.js index 507ac81..b720e66 100644 --- a/main.js +++ b/main.js @@ -712,13 +712,13 @@ function mainWindowHide() { } const startSignalr = async (user) => { - // .withAutomaticReconnect([1000, 2000, 3000]) - connection = new signalR.HubConnectionBuilder().withAutomaticReconnect() + connection = new signalR.HubConnectionBuilder() .withUrl(`${env === 'development' ? 'http://192.168.2.9:5192' : 'https://meeting-api.23544.com/pc'}/session-manage`, { skipNegotiation: true, transport: signalR.HttpTransportType.WebSockets, accessTokenFactory: () => user.token }) + .withAutomaticReconnect([0, 3000, 3000, 3000]) .build(); connection.start(); mainWindow.webContents.send('changeLocalStorage', { From 380222bcfd93533bd3d0262c1514af3e549b8f68 Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Fri, 1 Nov 2024 11:21:54 +0800 Subject: [PATCH 07/21] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/main.js b/main.js index b720e66..1186bd0 100644 --- a/main.js +++ b/main.js @@ -720,7 +720,6 @@ const startSignalr = async (user) => { }) .withAutomaticReconnect([0, 3000, 3000, 3000]) .build(); - connection.start(); mainWindow.webContents.send('changeLocalStorage', { isSignalr: true, reconnect: true, @@ -736,12 +735,19 @@ const startSignalr = async (user) => { reconnect: false, }); }); + connection.start(); } const onStart = async () => { if (connection) { if (connection.state === signalR.HubConnectionState.Disconnected) { - connection.start(); + connection.start().then(() => { + mainWindow.webContents.send('changeLocalStorage', { + reconnect: true, + }); + }).catch((err) => { + + }); } if (connection.state !== signalR.HubConnectionState.Connected) { setTimeout(onStart, 3000); From d11e7b351b05b3372b71aac5041e37978e8942c4 Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Fri, 1 Nov 2024 11:46:19 +0800 Subject: [PATCH 08/21] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 175060d..c2e8d2e 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -974,12 +974,6 @@ const Meeting: React.FC = () => { view: null, channelId: connection.channelId, }); - setCurrentVideoId((res: any) => { - if (Number(res) === remoteUid) { - getShowUser(); - } - return res - }) } }, onAudioVolumeIndication: async (speakers: AudioVolumeInfo[]) => { @@ -1218,6 +1212,12 @@ const Meeting: React.FC = () => { } return res }) + setCurrentVideoId((res: any) => { + if (Number(res) === item.user.uid) { + getShowUser(); + } + return res + }) break; case 'OperAllMicr': setRoomUserList((res: any) => { From 0f16a74f7cb5d31b27798efb376d0400737f1e3c Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Fri, 1 Nov 2024 11:47:21 +0800 Subject: [PATCH 09/21] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index c2e8d2e..984527c 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -1213,7 +1213,7 @@ const Meeting: React.FC = () => { return res }) setCurrentVideoId((res: any) => { - if (Number(res) === item.user.uid) { + if (Number(res) === item.uid) { getShowUser(); } return res From 9bbfd34babd08db93ac4d919e43d7f32de92e14e Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Fri, 1 Nov 2024 13:30:12 +0800 Subject: [PATCH 10/21] =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 984527c..8ae60fc 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -1213,7 +1213,7 @@ const Meeting: React.FC = () => { return res }) setCurrentVideoId((res: any) => { - if (Number(res) === item.uid) { + if (Number(res) === Number(item.uid)) { getShowUser(); } return res From 6fbad4b9cc0d6f11419cbf99498c0103c46e731c Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Fri, 1 Nov 2024 13:52:09 +0800 Subject: [PATCH 11/21] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 8ae60fc..28295ad 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -1760,7 +1760,7 @@ const Meeting: React.FC = () => { }) setIsScreenCapture(bool => { if (bool) { - allUserLook(userItem.uid, userItem.userName) + allUserLook(userItem.screenShareId, userItem.userName) } return bool }) From 18ade9747a0c395374591d91ce9a1e5631753abe Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Fri, 1 Nov 2024 14:42:24 +0800 Subject: [PATCH 12/21] =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E6=96=AD?= =?UTF-8?q?=E7=BD=91=E9=87=8D=E6=96=B0=E8=BF=9E=E6=8E=A5=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 28295ad..ba3f627 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -1746,7 +1746,7 @@ const Meeting: React.FC = () => { setRoomUserList((res: any) => { let userItem = res.find((item: any) => item.uid === userInfo.uid) if (userItem.isRoomManager) { - DeleteRoomManager({ + postRoomManager({ roomId: state.roomId, roomNum: state.channelId, userId: userInfo.uid From eaf9b686f6b65da85e4e48f885d8dae154b2ed70 Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Fri, 1 Nov 2024 14:59:44 +0800 Subject: [PATCH 13/21] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Home/User/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/page/Home/User/index.tsx b/src/page/Home/User/index.tsx index 46b6fd2..4a1ad55 100644 --- a/src/page/Home/User/index.tsx +++ b/src/page/Home/User/index.tsx @@ -423,7 +423,7 @@ const User: React.FC = () => { if (!addUserFrom.UserName && isCreateUser !== 'batch') { return message.error('请输入用户名称!') } - if (!addUserFrom.year) { + if (addUserFrom.year === '') { return message.error('请输入届!') } if (isCreateUser === 'add') { From 302e2effb83283abd74e7527abe6a3243da7d25e Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Fri, 1 Nov 2024 15:38:38 +0800 Subject: [PATCH 14/21] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index ba3f627..f7b77c9 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -1743,28 +1743,17 @@ const Meeting: React.FC = () => { }) message.success('网络已连接。') meetingDisconnectedRef.current.changeModal(false) - setRoomUserList((res: any) => { - let userItem = res.find((item: any) => item.uid === userInfo.uid) - if (userItem.isRoomManager) { - postRoomManager({ - roomId: state.roomId, - roomNum: state.channelId, - userId: userInfo.uid - }) + setIsNetworkDisconnected(bool => { + if (bool) { + allUserLook(userInfo.uid, userInfo.userName) } - setIsNetworkDisconnected(bool => { - if (bool) { - allUserLook(userItem.uid, userItem.userName) - } - return false - }) - setIsScreenCapture(bool => { - if (bool) { - allUserLook(userItem.screenShareId, userItem.userName) - } - return bool - }) - return res + return false + }) + setIsScreenCapture(bool => { + if (bool) { + allUserLook(userInfo.screenShareId, userInfo.userName) + } + return bool }) } break; From 96cf223005ca787b316e16aef24c528656c0197a Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Fri, 1 Nov 2024 15:47:15 +0800 Subject: [PATCH 15/21] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index f7b77c9..6987d97 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -1743,17 +1743,31 @@ const Meeting: React.FC = () => { }) message.success('网络已连接。') meetingDisconnectedRef.current.changeModal(false) - setIsNetworkDisconnected(bool => { - if (bool) { - allUserLook(userInfo.uid, userInfo.userName) + setRoomUserList((res: any) => { + let userItem = res.find((item: any) => item.uid === userInfo.uid) + if (userItem.isRoomManager) { + stopScreenCapture() + postRoomManager({ + roomId: state.roomId, + roomNum: state.channelId, + userId: userItem.uid + }) + allUserLook(userItem.uid, userItem.userName) + } else { + setIsNetworkDisconnected(bool => { + if (bool) { + allUserLook(userItem.uid, userItem.userName) + } + return false + }) + setIsScreenCapture(bool => { + if (bool) { + allUserLook(userItem.screenShareId, userItem.userName) + } + return bool + }) } - return false - }) - setIsScreenCapture(bool => { - if (bool) { - allUserLook(userInfo.screenShareId, userInfo.userName) - } - return bool + return res }) } break; From d038f251e28aa0dc7c4b6eeaf7bafdec3259c401 Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Fri, 1 Nov 2024 16:42:00 +0800 Subject: [PATCH 16/21] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.js | 2 +- src/page/Meeting/index.tsx | 28 ++++++++++++++++------------ 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/main.js b/main.js index 1186bd0..b9eb67a 100644 --- a/main.js +++ b/main.js @@ -203,7 +203,7 @@ app.on('ready', () => { break; case 'joinChannel': // 设置某个人的设备列表 - await connection.invoke(str, data.roomNum, data.enableMicr, data.enableCamera) + await connection.invoke(str, data.roomNum, data.enableMicr, data.enableCamera, data.isRoomManager || false) break; case 'levelChannel': // 设置某个人的设备列表 diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 6987d97..86774d1 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -191,6 +191,7 @@ const Meeting: React.FC = () => { let userInfo = JSON.parse(storage.getItem('user') as string) const msgTips = '您不是管理员或发言人,无法开启此功能!' const channel = new BroadcastChannel('meeting_channel'); + let storeDevice: any; useEffect(() => { let time: NodeJS.Timeout; setUser(userInfo) @@ -1736,22 +1737,20 @@ const Meeting: React.FC = () => { break; case 'reconnect': if (e.value == true) { - await window.electron.onInvoke('joinChannel', { - roomNum: state.channelId, - enableMicr: !footerList[0][0].active, - enableCamera: !footerList[0][1].active - }) message.success('网络已连接。') meetingDisconnectedRef.current.changeModal(false) - setRoomUserList((res: any) => { + async function setUserStatus(res: any) { let userItem = res.find((item: any) => item.uid === userInfo.uid) + await window.electron.onInvoke('joinChannel', { + roomNum: state.channelId, + enableMicr: !storeDevice[0][0].active, + enableCamera: !storeDevice[0][1].active, + isRoomManager: userItem.isRoomManager + }) if (userItem.isRoomManager) { - stopScreenCapture() - postRoomManager({ - roomId: state.roomId, - roomNum: state.channelId, - userId: userItem.uid - }) + await stopScreenCapture() + await postOpenMicr(!storeDevice[0][0].active, userInfo.uid) + await postOpenCamera(!storeDevice[0][1].active, userInfo.uid) allUserLook(userItem.uid, userItem.userName) } else { setIsNetworkDisconnected(bool => { @@ -1767,8 +1766,13 @@ const Meeting: React.FC = () => { return bool }) } + } + setRoomUserList((res: any) => { + setUserStatus(res) return res }) + } else { + storeDevice = JSON.parse(JSON.stringify(footerList)) } break; } From 7948c56e62be325cbb89763c4c78e5585e01f477 Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Fri, 1 Nov 2024 17:40:26 +0800 Subject: [PATCH 17/21] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 86774d1..fa0316b 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -1748,24 +1748,21 @@ const Meeting: React.FC = () => { isRoomManager: userItem.isRoomManager }) if (userItem.isRoomManager) { - await stopScreenCapture() await postOpenMicr(!storeDevice[0][0].active, userInfo.uid) await postOpenCamera(!storeDevice[0][1].active, userInfo.uid) - allUserLook(userItem.uid, userItem.userName) - } else { - setIsNetworkDisconnected(bool => { - if (bool) { - allUserLook(userItem.uid, userItem.userName) - } - return false - }) - setIsScreenCapture(bool => { - if (bool) { - allUserLook(userItem.screenShareId, userItem.userName) - } - return bool - }) } + setIsNetworkDisconnected(bool => { + if (bool) { + allUserLook(userItem.uid, userItem.userName) + } + return false + }) + setIsScreenCapture(bool => { + if (bool) { + allUserLook(userItem.screenShareId, userItem.userName) + } + return bool + }) } setRoomUserList((res: any) => { setUserStatus(res) From 862494158358ae0b114b8a2be2f9e390137f6e0a Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Fri, 1 Nov 2024 17:44:42 +0800 Subject: [PATCH 18/21] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index fa0316b..7405431 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -1036,9 +1036,7 @@ const Meeting: React.FC = () => { if (state === 4 && reconnectingCode.indexOf(reason) >= 0) { } else if (state === 3) { - if (storage.getItem('reconnect') === 'true') { - meetingDisconnectedRef.current.changeModal(false) - } + meetingDisconnectedRef.current.changeModal(false) } }, onConnectionLost: () => { From a6f7fc14af6eee5a601de208efaa8588769b23d5 Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Mon, 4 Nov 2024 11:40:38 +0800 Subject: [PATCH 19/21] =?UTF-8?q?=E6=96=AD=E7=BD=91=E6=81=A2=E5=A4=8D?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 7405431..bd76386 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -1745,6 +1745,7 @@ const Meeting: React.FC = () => { enableCamera: !storeDevice[0][1].active, isRoomManager: userItem.isRoomManager }) + await getRoomUser() if (userItem.isRoomManager) { await postOpenMicr(!storeDevice[0][0].active, userInfo.uid) await postOpenCamera(!storeDevice[0][1].active, userInfo.uid) From 407434971175a67b87f5859896798429de8fdcb0 Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Mon, 4 Nov 2024 12:05:17 +0800 Subject: [PATCH 20/21] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index bd76386..5d79b88 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -1746,6 +1746,7 @@ const Meeting: React.FC = () => { isRoomManager: userItem.isRoomManager }) await getRoomUser() + await getShowUser() if (userItem.isRoomManager) { await postOpenMicr(!storeDevice[0][0].active, userInfo.uid) await postOpenCamera(!storeDevice[0][1].active, userInfo.uid) From 928731f0d18c4ba1e05dae40240c23458fa06d1a Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Mon, 4 Nov 2024 13:57:11 +0800 Subject: [PATCH 21/21] =?UTF-8?q?=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 9d431bc..5d79b88 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -2803,7 +2803,6 @@ const Meeting: React.FC = () => { ) })} -
{