From e5c4b85dc48d7abc84e5e609a050d99c8b4ce55c Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Wed, 22 Jan 2025 16:35:45 +0800 Subject: [PATCH] =?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 | 8 +++++++- src/api/Meeting/index.ts | 10 ++++++++++ src/page/Meeting/index.tsx | 36 ++++++++++++++++++------------------ 3 files changed, 35 insertions(+), 19 deletions(-) diff --git a/main.js b/main.js index 2df114e..f6a5b2c 100644 --- a/main.js +++ b/main.js @@ -187,6 +187,7 @@ app.on('ready', () => { connection.off('ShowDriverList'); connection.off('ModifyNickName'); connection.off('JoinChannelCallback'); + connection.off('ExitSharedScreen'); } }); ipcMain.handle('onStop', (event) => { @@ -206,7 +207,6 @@ app.on('ready', () => { await connection.invoke(str, data.roomNum, data.msg) break; case 'sendOper': - // 4:屏幕共享 await connection.invoke(str, data.roomNum, data.type) break; case 'getDrivers': @@ -391,6 +391,12 @@ app.on('ready', () => { isSuccess, }) }); + // 退出共享 + connection.on("ExitSharedScreen", () => { + mainWindow.webContents.send('onSignalr', { + key: 'ExitSharedScreen' + }) + }); } }); // 放大缩小退出窗口 diff --git a/src/api/Meeting/index.ts b/src/api/Meeting/index.ts index 22db4c8..6bf6328 100644 --- a/src/api/Meeting/index.ts +++ b/src/api/Meeting/index.ts @@ -154,4 +154,14 @@ export const PutAlterUname = (data: any) => url: `/room/alter-uname`, method: 'put', data + }) +export const GetSharedScreen = (roomNum: string) => + request({ + url: `/room/shared-screen?roomNum=${roomNum}`, + method: 'get' + }) +export const PostSharedScreen = (roomNum: string) => + request({ + url: `/room/shared-screen?roomNum=${roomNum}`, + method: 'post' }) \ No newline at end of file diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index ba7fb34..4f8c410 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -8,7 +8,7 @@ import { SearchOutlined, EllipsisOutlined, ExclamationCircleFilled, FullscreenEx import { useLocation, useNavigate } from 'react-router-dom'; import { thumbImageBufferToBase64 } from '@/utils/package/base64' import { storage } from '@/utils'; -import { GetRoomUser, PostOpenMicr, PostOpenCamera, GetLeaveAll, PostRoomManager, DeleteRoomManager, GetRoomKickout, GetShowUser, PostShowUser, PostMuteAll, GetRoomUserItem, GetApplySpeak } from '@/api/Meeting'; +import { GetRoomUser, PostOpenMicr, PostOpenCamera, GetLeaveAll, PostRoomManager, DeleteRoomManager, GetRoomKickout, GetShowUser, PostShowUser, PostMuteAll, GetRoomUserItem, GetApplySpeak, PostSharedScreen } from '@/api/Meeting'; import ImageUrl from '@/utils/package/imageUrl' import { agora } from '@/utils/package/agora' import dayjs from 'dayjs'; @@ -634,18 +634,8 @@ const Meeting: React.FC = () => { break; // 扩展操作 case 'Operation': - // 4:屏幕共享 switch (item.type) { - case 4: - setIsShare((res: any) => { - if (userInfo.screenShareId === String(res)) { - changeStatusList({ - title: '共享冲突停止共享', - }, 1, 0) - } - return res - }) - break; + } break; // 全员离开房间 @@ -937,6 +927,12 @@ const Meeting: React.FC = () => { }) } break; + // 共享 + case 'ExitSharedScreen': + changeStatusList({ + title: '共享冲突停止共享', + }, 1, 0) + break; } }) return () => { @@ -3274,12 +3270,12 @@ const Meeting: React.FC = () => { description={`这将停止[${isShareUser?.userName}]的共享,是否继续?`} open={isSharePopConfirm} onConfirm={async () => { - setIsSharePopConfirm(false) - await window.electron.onInvoke('sendOper', { - roomNum: state.channelId, - type: 4, + PostSharedScreen(state.channelId).then(res => { + if (res.code === 200) { + setIsSharePopConfirm(false) + clickSharedScreen() + } }) - clickSharedScreen() }} onCancel={() => { setIsSharePopConfirm(false) @@ -3292,7 +3288,11 @@ const Meeting: React.FC = () => { }}>共享 : }