From 982867dfe1087c12a283c9676e27bb958513085e Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Mon, 20 Jan 2025 15:14:05 +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 --- src/page/Meeting/index.tsx | 54 ++++++++++++++++++++------------------ src/utils/package/agora.ts | 1 + 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index fd4f961..0675b70 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -340,7 +340,6 @@ const Meeting: React.FC = () => { return res })) break; - break; case 'userListWindowGetRoomKickout': GetRoomKickout(state.channelId, userListWindowGetRoomKickout.uid) break; @@ -1013,6 +1012,17 @@ const Meeting: React.FC = () => { }, currentVideoId ? 0 : 1500); }, [currentLookUserStatus, currentVideoUid]); + useEffect(() => { + if (isScreenCapture) { + agora.setupLocalVideo({ + uid: Number(user.uid), + view: document.getElementById(`meetingAbsoluteVideo`) as HTMLElement, + channelId: state.channelId, + sourceType: VideoSourceType.VideoSourceCameraPrimary, + type: true + }) + } + }, [isScreenCapture]); useEffect(() => { let timer: NodeJS.Timeout; @@ -1444,23 +1454,25 @@ const Meeting: React.FC = () => { } return res }) - if (uid === userInfo.uid || uid === userInfo.screenShareId) { - if (String(uid).length === 9) { - // 共享屏幕 - setCurrentLookUserStatus(2) + setTimeout(() => { + if (uid === userInfo.uid || uid === userInfo.screenShareId) { + if (String(uid).length === 9) { + // 共享屏幕 + setCurrentLookUserStatus(2) + } else { + // 摄像头 + setCurrentLookUserStatus(1) + } } else { - // 摄像头 - setCurrentLookUserStatus(1) + if (String(uid).length === 9) { + // 共享屏幕 + setCurrentLookUserStatus(3) + } else { + // 摄像头 + setCurrentLookUserStatus(4) + } } - } else { - if (String(uid).length === 9) { - // 共享屏幕 - setCurrentLookUserStatus(3) - } else { - // 摄像头 - setCurrentLookUserStatus(4) - } - } + }, 500); } // 全员观看 const getShowUser = async (): Promise => { @@ -1797,15 +1809,6 @@ const Meeting: React.FC = () => { height: 160, }) window.electron.setPosition('right') - setTimeout(() => { - agora.setupLocalVideo({ - uid: Number(user.uid), - view: document.getElementById(`meetingAbsoluteVideo`) as HTMLElement, - channelId: state.channelId, - sourceType: VideoSourceType.VideoSourceCameraPrimary, - type: true - }) - }, 1500); } } }) @@ -1848,6 +1851,7 @@ const Meeting: React.FC = () => { } // 停止共享 const stopScreenCapture = async (): Promise => { + await agora.destroyRendererByView(`meetingAbsoluteVideo`) const footerListTemplate = [...footerList] await agora.leaveChannelEx(userInfo.screenShareId) agora.stopScreenCapture() diff --git a/src/utils/package/agora.ts b/src/utils/package/agora.ts index 55adcfe..7b9fe88 100644 --- a/src/utils/package/agora.ts +++ b/src/utils/package/agora.ts @@ -395,6 +395,7 @@ export const agora = { }, destroyRendererByView: async (key: string) => { let dom = document.getElementById(key); + console.log(dom); if (dom) { await rtcEngine.destroyRendererByView(dom); }