This commit is contained in:
yj 2024-08-22 10:23:04 +08:00
parent 670c96e970
commit 7786cd306b
1 changed files with 68 additions and 74 deletions

View File

@ -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<void> => {