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('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'
})
});
}
});
// 放大缩小退出窗口

View File

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

View File

@ -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 = () => {
}}></Button>
</Popconfirm> :
<Button type="primary" className='m-ant-btn' onClick={() => {
clickSharedScreen()
PostSharedScreen(state.channelId).then(res => {
if (res.code === 200) {
clickSharedScreen()
}
})
}}></Button>
}
</div>