This commit is contained in:
parent
297946ed02
commit
637ef335df
|
|
@ -367,7 +367,7 @@ const Meeting: React.FC = () => {
|
|||
message.success(`管理员${item.user.isRoomManager ? '设置' : '取消'}${item.user.userName}为发言人`)
|
||||
}
|
||||
if (!item.user.isRoomManager) {
|
||||
renderVideo(item.user.uid)
|
||||
changeVideo()
|
||||
}
|
||||
})
|
||||
break;
|
||||
|
|
@ -566,6 +566,20 @@ 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) {
|
||||
renderVideo(row[0].uid)
|
||||
}
|
||||
return res
|
||||
})
|
||||
return list
|
||||
})
|
||||
}
|
||||
// 网络
|
||||
const handleNetworkChange = (): void => {
|
||||
if (navigator.onLine) {
|
||||
|
|
@ -580,86 +594,79 @@ const Meeting: React.FC = () => {
|
|||
}
|
||||
}
|
||||
// 渲染视频
|
||||
const renderVideo = async (uid: string = ''): Promise<void> => {
|
||||
// if ((uid && currentVideoId === uid) || clickCurrentLookUserStatus === false) {
|
||||
// return
|
||||
// }
|
||||
const renderVideo = async (uid: string): Promise<void> => {
|
||||
if (currentVideoId === uid || clickCurrentLookUserStatus === false) {
|
||||
return
|
||||
}
|
||||
setClickCurrentLookUserStatus(false)
|
||||
setCurrentLookUserStatus(0)
|
||||
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
|
||||
setRoomUserList((res: any) => {
|
||||
let item = res.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)
|
||||
}
|
||||
// 全员观看
|
||||
const getShowUser = async (): Promise<void> => {
|
||||
await GetShowUser(state.channelId).then(async (res) => {
|
||||
if (res.code === 200 && res.data) {
|
||||
renderVideo(res.data)
|
||||
changeVideo()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue