This commit is contained in:
yj 2024-10-25 15:50:40 +08:00
parent 42c62643e5
commit 48909d9a63
1 changed files with 26 additions and 21 deletions

View File

@ -23,6 +23,7 @@ import UserVideo from '@/components/UserVideo';
import { role } from '@/config/role';
import { fixWebmDuration } from "webm-duration-fix-buffer";
import { getKeyOpenChildWindow, setKeyOpenChildWindow } from '@/utils/package/public';
let isScreenCaptureStatus = false;
const { confirm } = Modal;
const { exec } = require('child_process');
const fs = require('fs').promises;
@ -552,17 +553,19 @@ const Meeting: React.FC = () => {
chatListIten: item,
}
})
setStatusList((res: any) => {
if (!res.userChatList) {
api.open({
message: item.userName + '说:',
description: item.message,
duration: 3,
showProgress: true,
});
}
return res
})
if (!isScreenCaptureStatus) {
setStatusList((res: any) => {
if (!res.userChatList) {
api.open({
message: item.userName + '说:',
description: item.message,
duration: 3,
showProgress: true,
});
}
return res
})
}
chatScrollBotton()
break;
// 扩展操作
@ -583,12 +586,12 @@ const Meeting: React.FC = () => {
break;
// 全员离开房间
case 'AllLeave':
message.success('管理员已结束会议!')
if (!isScreenCaptureStatus) message.success('管理员已结束会议!')
leaveChannel(false)
break;
// 移出会议
case 'ForceExitRoom':
message.success('管理员已将你移出会议!')
if (!isScreenCaptureStatus) message.success('管理员已将你移出会议!')
leaveChannel()
break;
// 更新视图模式
@ -600,9 +603,9 @@ const Meeting: React.FC = () => {
if (item.operUid && item.operUserName) {
if (item.operUid !== userInfo.uid) {
if (item.uid === userInfo.uid) {
message.success(`${item.operUserName}设置全员看你`)
if (!isScreenCaptureStatus) message.success(`${item.operUserName}设置全员看你`)
} else {
message.success(`${item.operUserName}设置全员看${item.uname}`)
if (!isScreenCaptureStatus) message.success(`${item.operUserName}设置全员看${item.uname}`)
}
}
}
@ -624,7 +627,7 @@ const Meeting: React.FC = () => {
case 'OperMicr':
if (item.operUid !== userInfo.uid) {
if (item.user.uid === userInfo.uid) {
message.success(item.user.enableMicr ? '管理员已取消你的静音' : '你已被管理员静音')
if (!isScreenCaptureStatus) message.success(item.user.enableMicr ? '管理员已取消你的静音' : '你已被管理员静音')
}
}
setAllUserListData('OperMicr', item)
@ -633,7 +636,7 @@ const Meeting: React.FC = () => {
case 'OperCamera':
if (item.operUid !== userInfo.uid) {
if (item.user.uid === userInfo.uid) {
message.success(item.user.enableCamera ? '管理员已开启你的摄像头' : '管理员已关闭你摄像头')
if (!isScreenCaptureStatus) message.success(item.user.enableCamera ? '管理员已开启你的摄像头' : '管理员已关闭你摄像头')
}
}
setAllUserListData('OperCamera', item)
@ -644,20 +647,20 @@ const Meeting: React.FC = () => {
if (item.user.uid === item.uid) {
if (item.user.uid === userInfo.uid) {
await agora.allLeaveChannelEx()
message.success(`操作成功`)
if (!isScreenCaptureStatus) message.success(`操作成功`)
await agora.updateChannelMediaOptions(item.user.isRoomManager)
await postOpenMicrApi(item.user.isRoomManager, userInfo.uid, false)
await postOpenCameraApi(false, userInfo.uid) // 不管身份如何改变都关闭摄像头
await stopScreenCapture()
} else {
message.success(`${item.user.userName}已结束发言`)
if (!isScreenCaptureStatus) message.success(`${item.user.userName}已结束发言`)
}
} else {
if (item.user.uid === userInfo.uid) {
if (item.user.isRoomManager) {
await agora.allLeaveChannelEx()
}
message.success(`管理员${item.user.isRoomManager ? '设置' : '取消'}您为发言人`)
if (!isScreenCaptureStatus) message.success(`管理员${item.user.isRoomManager ? '设置' : '取消'}您为发言人`)
await agora.updateChannelMediaOptions(item.user.isRoomManager)
setCurrentRequestSpeakType(res => {
if (res === 'video') {
@ -673,7 +676,7 @@ const Meeting: React.FC = () => {
await stopScreenCapture()
} else {
message.success(`管理员${item.user.isRoomManager ? '设置' : '取消'}${item.user.userName}为发言人`)
if (!isScreenCaptureStatus) message.success(`管理员${item.user.isRoomManager ? '设置' : '取消'}${item.user.userName}为发言人`)
}
}
})
@ -1577,6 +1580,7 @@ const Meeting: React.FC = () => {
await allUserLook(user.screenShareId, user.userName)
const isOpen = await getKeyOpenChildWindow('shareScreenWindow')
setIsScreenCapture(true)
isScreenCaptureStatus = true
window.electron.setViewStatus('hide')
if (!isOpen) {
window.electron.createChildWindow({
@ -1667,6 +1671,7 @@ const Meeting: React.FC = () => {
setFooterList(footerListTemplate)
window.electron.closeChildWindow('shareScreenWindow')
setKeyOpenChildWindow('shareScreenWindow', false)
isScreenCaptureStatus = false
setIsScreenCapture(bool => {
if (bool) {
window.electron.setViewStatus('show')