From 7786cd306b44fcb858729c4bf635db8f14a625bc Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Thu, 22 Aug 2024 10:23:04 +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 | 142 ++++++++++++++++++------------------- 1 file changed, 68 insertions(+), 74 deletions(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 2e0c224..9e3da80 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -367,7 +367,7 @@ const Meeting: React.FC = () => { message.success(`管理员${item.user.isRoomManager ? '设置' : '取消'}${item.user.userName}为发言人`) } if (!item.user.isRoomManager) { - changeVideo() + renderVideo(item.user.uid) } }) break; @@ -566,20 +566,6 @@ const Meeting: React.FC = () => { } changeAgoraDevice() } - // 修改当前观看用户 - const changeVideo = (): void => { - setRoomUserList((list: any) => { - let row = list.filter((i: any) => i.roleId === '1' || i.isRoomManager) - setCurrentLookUserAccount((res: any) => { - let has = row.find((x: any) => x.uid === res.uid) - if (!has && row.length) { - renderVideo(row[0].uid) - } - return res - }) - return list - }) - } // 网络 const handleNetworkChange = (): void => { if (navigator.onLine) { @@ -600,66 +586,74 @@ const Meeting: React.FC = () => { } setClickCurrentLookUserStatus(false) setCurrentLookUserStatus(0) - setRoomUserList((res: any) => { - let item = res.find((item: any) => item.uid === uid || item.screenShareId === uid) - if (item) { - setCurrentVideoId(item.uid) - } - return res + setRoomUserList((list: any) => { + let row = list.filter((i: any) => i.roleId === '1' || i.isRoomManager) + setCurrentLookUserAccount((res: any) => { + let has = row.find((x: any) => x.uid === res.uid) + if (!has && row.length) { + uid = row[0].uid; + } + let item = list.find((item: any) => item.uid === uid || item.screenShareId === uid) + if (item) { + setCurrentVideoId(item.uid) + } + return res + }) + setTimeout(() => { + if (uid === userInfo.uid || uid === userInfo.screenShareId) { + if (String(uid).length === 9) { + // 共享屏幕 + setCurrentLookUserStatus(2) + setTimeout(async () => { + await agora.setupLocalVideo({ + uid: Number(uid), + view: document.getElementById(`video-source-screen`) as HTMLElement, + channelId: state.channelId, + sourceType: VideoSourceType.VideoSourceScreen, + }) + setClickCurrentLookUserStatus(true) + }, 1000); + } else { + // 摄像头 + setCurrentLookUserStatus(1) + setTimeout(async () => { + await agora.setupLocalVideo({ + uid: Number(uid), + view: document.getElementById(`video-source-camera-primary`) as HTMLElement, + channelId: state.channelId, + sourceType: VideoSourceType.VideoSourceCameraPrimary, + }) + setClickCurrentLookUserStatus(true) + }, 1000); + } + } else { + if (String(uid).length === 9) { + // 共享屏幕 + setCurrentLookUserStatus(3) + setTimeout(async () => { + await agora.setupRemoteVideoJoin({ + uid: Number(uid), + view: document.getElementById(`video-source-remote-screen`) as HTMLElement, + channelId: state.channelId, + }) + setClickCurrentLookUserStatus(true) + }, 1000); + } else { + // 摄像头 + setCurrentLookUserStatus(4) + setTimeout(async () => { + await agora.setupRemoteVideoJoin({ + uid: Number(uid), + view: document.getElementById(`video-source-remote-camera`) as HTMLElement, + channelId: state.channelId, + }) + setClickCurrentLookUserStatus(true) + }, 1000); + } + } + }, 1000) + return list }) - setTimeout(() => { - if (uid === userInfo.uid || uid === userInfo.screenShareId) { - if (String(uid).length === 9) { - // 共享屏幕 - setCurrentLookUserStatus(2) - setTimeout(async () => { - await agora.setupLocalVideo({ - uid: Number(uid), - view: document.getElementById(`video-source-screen`) as HTMLElement, - channelId: state.channelId, - sourceType: VideoSourceType.VideoSourceScreen, - }) - setClickCurrentLookUserStatus(true) - }, 1000); - } else { - // 摄像头 - setCurrentLookUserStatus(1) - setTimeout(async () => { - await agora.setupLocalVideo({ - uid: Number(uid), - view: document.getElementById(`video-source-camera-primary`) as HTMLElement, - channelId: state.channelId, - sourceType: VideoSourceType.VideoSourceCameraPrimary, - }) - setClickCurrentLookUserStatus(true) - }, 1000); - } - } else { - if (String(uid).length === 9) { - // 共享屏幕 - setCurrentLookUserStatus(3) - setTimeout(async () => { - await agora.setupRemoteVideoJoin({ - uid: Number(uid), - view: document.getElementById(`video-source-remote-screen`) as HTMLElement, - channelId: state.channelId, - }) - setClickCurrentLookUserStatus(true) - }, 1000); - } else { - // 摄像头 - setCurrentLookUserStatus(4) - setTimeout(async () => { - await agora.setupRemoteVideoJoin({ - uid: Number(uid), - view: document.getElementById(`video-source-remote-camera`) as HTMLElement, - channelId: state.channelId, - }) - setClickCurrentLookUserStatus(true) - }, 1000); - } - } - }, 1000) } // 全员观看 const getShowUser = async (): Promise => {