diff --git a/main.js b/main.js
index 68b5415..e80381f 100644
--- a/main.js
+++ b/main.js
@@ -202,6 +202,7 @@ app.on('ready', () => {
connection.off('ExitSharedScreen');
connection.off('SetSpeaker');
connection.off('ReceivedOperation');
+ connection.off('StopedSharedScreen');
}
});
ipcMain.handle('onStop', (event) => {
@@ -221,7 +222,7 @@ app.on('ready', () => {
await connection.invoke(str, data.roomNum, data.msg)
break;
case 'sendOper':
- await connection.invoke(str, data.roomNum, data.type)
+ await connection.invoke(str, data.roomNum, data.contentString)
break;
case 'getDrivers':
// 获取某个人的设备列表
@@ -281,10 +282,10 @@ app.on('ready', () => {
})
});
// 扩展操作
- connection.on("Operation", (type) => {
+ connection.on("Operation", (contentString) => {
mainWindow.webContents.send('onSignalr', {
key: 'Operation',
- type
+ contentString
})
});
// 移出会议
@@ -433,6 +434,13 @@ app.on('ready', () => {
contentString
})
});
+ // 共享人取消共享屏幕
+ connection.on("StopedSharedScreen", (ScreenShareId) => {
+ mainWindow.webContents.send('onSignalr', {
+ key: 'StopedSharedScreen',
+ ScreenShareId
+ })
+ });
}
});
// 放大缩小退出窗口
diff --git a/src/api/Meeting/index.ts b/src/api/Meeting/index.ts
index 6446c30..e8c28a6 100644
--- a/src/api/Meeting/index.ts
+++ b/src/api/Meeting/index.ts
@@ -171,7 +171,11 @@ export const PostSharedScreen = (roomNum: string) =>
url: `/room/shared-screen?roomNum=${roomNum}`,
method: 'post'
})
-
+export const PostStopSharedScreen = (roomNum: string) =>
+ request({
+ url: `/room/stop-shared-screen?roomNum=${roomNum}`,
+ method: 'post'
+ })
export const PostHomeVerLog = (data: any) =>
request({
url: `/home/ver-log`,
diff --git a/src/assets/virtualBackground/1.png b/src/assets/virtualBackground/1.png
index a29260e..2a33629 100644
Binary files a/src/assets/virtualBackground/1.png and b/src/assets/virtualBackground/1.png differ
diff --git a/src/assets/virtualBackground/2.png b/src/assets/virtualBackground/2.png
index 8a025ca..cb03828 100644
Binary files a/src/assets/virtualBackground/2.png and b/src/assets/virtualBackground/2.png differ
diff --git a/src/assets/virtualBackground/3.png b/src/assets/virtualBackground/3.png
index 4211d42..601e8a6 100644
Binary files a/src/assets/virtualBackground/3.png and b/src/assets/virtualBackground/3.png differ
diff --git a/src/assets/virtualBackground/4.png b/src/assets/virtualBackground/4.png
index 692d2fd..3140b71 100644
Binary files a/src/assets/virtualBackground/4.png and b/src/assets/virtualBackground/4.png differ
diff --git a/src/assets/virtualBackground/5.png b/src/assets/virtualBackground/5.png
index ec14085..1b71286 100644
Binary files a/src/assets/virtualBackground/5.png and b/src/assets/virtualBackground/5.png differ
diff --git a/src/assets/virtualBackground/6.png b/src/assets/virtualBackground/6.png
index c9dffc7..d733b8f 100644
Binary files a/src/assets/virtualBackground/6.png and b/src/assets/virtualBackground/6.png differ
diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx
index 1d1b98b..4f06cb4 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, GetSharedScreen, PostOpenCamera, GetLeaveAll, PostRoomManager, DeleteRoomManager, GetRoomKickout, GetShowUser, PostShowUser, PostMuteAll, GetRoomUserItem, GetApplySpeak, PostSharedScreen } from '@/api/Meeting';
+import { GetRoomUser, PostOpenMicr, GetSharedScreen, PostOpenCamera, GetLeaveAll, PostRoomManager, DeleteRoomManager, GetRoomKickout, GetShowUser, PostShowUser, PostMuteAll, GetRoomUserItem, GetApplySpeak, PostSharedScreen, PostStopSharedScreen } from '@/api/Meeting';
import ImageUrl from '@/utils/package/imageUrl'
import { agora } from '@/utils/package/agora'
import dayjs from 'dayjs';
@@ -723,7 +723,7 @@ const Meeting: React.FC = () => {
break;
// 扩展操作
case 'Operation':
- switch (item.type) {
+ switch (item.contentString) {
}
break;
@@ -1001,6 +1001,21 @@ const Meeting: React.FC = () => {
}
break;
+ // 共享人取消共享屏幕
+ case 'StopedSharedScreen':
+ setRoomUserList((newChatList: any) => {
+ setActiveSpeaker(res => {
+ let item = newChatList.find((item: any) => item.uid === res)
+ if (item && item.isRoom && item.isAdmin) {
+ renderVideo(res)
+ } else {
+ getShowUser()
+ }
+ return res
+ })
+ return newChatList
+ })
+ break;
}
})
return () => {
@@ -1164,37 +1179,42 @@ const Meeting: React.FC = () => {
timer = ''
}
timer = setTimeout(() => {
- setRoomUserList((res: any) => {
- let userItem = res.find((item: any) => item.uid === userInfo.uid)
- if (!role.ID.includes(userInfo.roleId) && userItem && userItem.isRoomManager) {
- DeleteRoomManager({
- roomId: state.roomId,
- roomNum: state.channelId,
- userId: userInfo.uid
- })
- confirm({
- title: '提示',
- icon: ,
- content: `由于您长时间未发言,已自动取消发言权限,是否重新申请发言?`,
- centered: true,
- okText: '确定',
- cancelText: '取消',
- async onOk() {
- GetApplySpeak(state.channelId).then(res => {
- if (res.code === 200) {
- setIsClicked(true);
- message.success('申请发言成功')
+ setIsShare((req: any) => {
+ if (!req) {
+ setRoomUserList((res: any) => {
+ let userItem = res.find((item: any) => item.uid === userInfo.uid)
+ if (!role.ID.includes(userInfo.roleId) && userItem && userItem.isRoomManager) {
+ DeleteRoomManager({
+ roomId: state.roomId,
+ roomNum: state.channelId,
+ userId: userInfo.uid
+ })
+ confirm({
+ title: '提示',
+ icon: ,
+ content: `由于您长时间未发言,已自动取消发言权限,是否重新申请发言?`,
+ centered: true,
+ okText: '确定',
+ cancelText: '取消',
+ async onOk() {
+ GetApplySpeak(state.channelId).then(res => {
+ if (res.code === 200) {
+ setIsClicked(true);
+ message.success('申请发言成功')
+ }
+ })
+ },
+ onCancel() {
+
}
})
- },
- onCancel() {
-
}
+ clearTimeout(timer)
+ timer = ''
+ return res
})
}
- clearTimeout(timer)
- timer = ''
- return res
+ return req
})
}, 1000 * 60 * 5);
} else {
@@ -2084,18 +2104,7 @@ const Meeting: React.FC = () => {
// 设置全员看谁
const allUserLook = async (uid: string, name: string, bool?: boolean): Promise => {
if (bool) {
- setRoomUserList((newChatList: any) => {
- setActiveSpeaker(res => {
- let item = newChatList.find((item: any) => item.uid === res)
- if (item && item.isRoom && item.isAdmin) {
- PostShowUser(state.channelId, item.uid, name)
- } else {
- PostShowUser(state.channelId, uid, name)
- }
- return res
- })
- return newChatList
- })
+ await PostStopSharedScreen(state.channelId)
} else {
await PostShowUser(state.channelId, uid, name)
}
diff --git a/src/utils/package/agora.ts b/src/utils/package/agora.ts
index c2f33a5..34bc2c1 100644
--- a/src/utils/package/agora.ts
+++ b/src/utils/package/agora.ts
@@ -446,8 +446,8 @@ export const agora = {
startCameraCapture: async (bool: boolean = false) => {
await rtcEngine.startCameraCapture(VideoSourceType.VideoSourceCamera, {
format: {
- width: bool ? 160 : 1280,
- height: bool ? 160 : 720,
+ width: bool ? 160 : 1920,
+ height: bool ? 160 : 1080,
fps: 15,
}
})