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 = '您不是管理员或发言人,无法开启此功能!'
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<void> => {
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<void> => {
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<void> => {
@ -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;