This commit is contained in:
yj 2025-01-22 16:35:45 +08:00
parent 8bd09d6f01
commit e5c4b85dc4
3 changed files with 35 additions and 19 deletions

View File

@ -187,6 +187,7 @@ app.on('ready', () => {
connection.off('ShowDriverList'); connection.off('ShowDriverList');
connection.off('ModifyNickName'); connection.off('ModifyNickName');
connection.off('JoinChannelCallback'); connection.off('JoinChannelCallback');
connection.off('ExitSharedScreen');
} }
}); });
ipcMain.handle('onStop', (event) => { ipcMain.handle('onStop', (event) => {
@ -206,7 +207,6 @@ app.on('ready', () => {
await connection.invoke(str, data.roomNum, data.msg) await connection.invoke(str, data.roomNum, data.msg)
break; break;
case 'sendOper': case 'sendOper':
// 4:屏幕共享
await connection.invoke(str, data.roomNum, data.type) await connection.invoke(str, data.roomNum, data.type)
break; break;
case 'getDrivers': case 'getDrivers':
@ -391,6 +391,12 @@ app.on('ready', () => {
isSuccess, isSuccess,
}) })
}); });
// 退出共享
connection.on("ExitSharedScreen", () => {
mainWindow.webContents.send('onSignalr', {
key: 'ExitSharedScreen'
})
});
} }
}); });
// 放大缩小退出窗口 // 放大缩小退出窗口

View File

@ -155,3 +155,13 @@ export const PutAlterUname = (data: any) =>
method: 'put', method: 'put',
data 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'
})

View File

@ -8,7 +8,7 @@ import { SearchOutlined, EllipsisOutlined, ExclamationCircleFilled, FullscreenEx
import { useLocation, useNavigate } from 'react-router-dom'; import { useLocation, useNavigate } from 'react-router-dom';
import { thumbImageBufferToBase64 } from '@/utils/package/base64' import { thumbImageBufferToBase64 } from '@/utils/package/base64'
import { storage } from '@/utils'; 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 ImageUrl from '@/utils/package/imageUrl'
import { agora } from '@/utils/package/agora' import { agora } from '@/utils/package/agora'
import dayjs from 'dayjs'; import dayjs from 'dayjs';
@ -634,18 +634,8 @@ const Meeting: React.FC = () => {
break; break;
// 扩展操作 // 扩展操作
case 'Operation': case 'Operation':
// 4:屏幕共享
switch (item.type) { switch (item.type) {
case 4:
setIsShare((res: any) => {
if (userInfo.screenShareId === String(res)) {
changeStatusList({
title: '共享冲突停止共享',
}, 1, 0)
}
return res
})
break;
} }
break; break;
// 全员离开房间 // 全员离开房间
@ -937,6 +927,12 @@ const Meeting: React.FC = () => {
}) })
} }
break; break;
// 共享
case 'ExitSharedScreen':
changeStatusList({
title: '共享冲突停止共享',
}, 1, 0)
break;
} }
}) })
return () => { return () => {
@ -3274,12 +3270,12 @@ const Meeting: React.FC = () => {
description={`这将停止[${isShareUser?.userName}]的共享,是否继续?`} description={`这将停止[${isShareUser?.userName}]的共享,是否继续?`}
open={isSharePopConfirm} open={isSharePopConfirm}
onConfirm={async () => { onConfirm={async () => {
setIsSharePopConfirm(false) PostSharedScreen(state.channelId).then(res => {
await window.electron.onInvoke('sendOper', { if (res.code === 200) {
roomNum: state.channelId, setIsSharePopConfirm(false)
type: 4, clickSharedScreen()
}
}) })
clickSharedScreen()
}} }}
onCancel={() => { onCancel={() => {
setIsSharePopConfirm(false) setIsSharePopConfirm(false)
@ -3292,7 +3288,11 @@ const Meeting: React.FC = () => {
}}></Button> }}></Button>
</Popconfirm> : </Popconfirm> :
<Button type="primary" className='m-ant-btn' onClick={() => { <Button type="primary" className='m-ant-btn' onClick={() => {
clickSharedScreen() PostSharedScreen(state.channelId).then(res => {
if (res.code === 200) {
clickSharedScreen()
}
})
}}></Button> }}></Button>
} }
</div> </div>