diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index d8964a0..2b09159 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -139,6 +139,7 @@ const Meeting: React.FC = () => { const msgTips = '您不是管理员或发言人,无法开启此功能!' useEffect(() => { let time = null as any; + let refreshVideoViewTime = null as any; setUser(userInfo) setTimeout(() => { window.electron.getIsMaximized().then((res: boolean) => { @@ -216,11 +217,15 @@ const Meeting: React.FC = () => { time = setInterval(() => { setCurrentSeconds(currentSeconds++) }, 1000) + refreshVideoViewTime = setInterval(() => { + RefreshVideoView() + }, 3000) return () => { window.removeEventListener('customStorageChange', handleCustomStorageChange); window.removeEventListener('online', handleNetworkChange); window.removeEventListener('offline', handleNetworkChange); clearInterval(time) + clearInterval(refreshVideoViewTime) }; }, []); @@ -468,23 +473,26 @@ const Meeting: React.FC = () => { }) } // 刷新视图 - const RefreshVideoView = async (list: any): Promise => { - list.forEach(async (item: any) => { - if (item.uid === userInfo.uid) { - await agora.setupLocalVideo({ - uid: Number(item.uid), - view: document.getElementById(`video-${item.uid}`), - channelId: state.channelId, - sourceType: VideoSourceType.VideoSourceCameraPrimary, - }) - } else { - await agora.setupRemoteVideo({ - uid: Number(item.uid), - view: document.getElementById(`video-${item.uid}`), - channelId: state.channelId, - }) - } - }); + const RefreshVideoView = async (): Promise => { + setRoomUserList((res: any) => { + res.forEach(async (item: any) => { + if (item.uid === userInfo.uid) { + await agora.setupLocalVideo({ + uid: Number(item.uid), + view: document.getElementById(`video-${item.uid}`), + channelId: state.channelId, + sourceType: VideoSourceType.VideoSourceCameraPrimary, + }) + } else { + await agora.setupRemoteVideo({ + uid: Number(item.uid), + view: document.getElementById(`video-${item.uid}`), + channelId: state.channelId, + }) + } + }); + return res + }) } // 替换数据 const setAllUserListData = async (key: string, item: any, callBack?: Function): Promise => { @@ -512,9 +520,6 @@ const Meeting: React.FC = () => { setRoomUserList((res: any) => { let userItemIndex = res.findIndex((row: any) => row.uid === item.uid) res.splice(userItemIndex, 1) - setTimeout(() => { - RefreshVideoView(res) - }, 1000); return res }) break;