This commit is contained in:
yj 2024-08-21 11:27:06 +08:00
parent a0f6598649
commit 83e3a2aedc
1 changed files with 25 additions and 20 deletions

View File

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