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}为发言人`)
|
message.success(`管理员${item.user.isRoomManager ? '设置' : '取消'}${item.user.userName}为发言人`)
|
||||||
}
|
}
|
||||||
if (!item.user.isRoomManager) {
|
if (!item.user.isRoomManager) {
|
||||||
renderVideo(item.user.uid)
|
changeVideo()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
break;
|
break;
|
||||||
|
|
@ -566,6 +566,20 @@ const Meeting: React.FC = () => {
|
||||||
}
|
}
|
||||||
changeAgoraDevice()
|
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 => {
|
const handleNetworkChange = (): void => {
|
||||||
if (navigator.onLine) {
|
if (navigator.onLine) {
|
||||||
|
|
@ -580,86 +594,79 @@ const Meeting: React.FC = () => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 渲染视频
|
// 渲染视频
|
||||||
const renderVideo = async (uid: string = ''): Promise<void> => {
|
const renderVideo = async (uid: string): Promise<void> => {
|
||||||
// if ((uid && currentVideoId === uid) || clickCurrentLookUserStatus === false) {
|
if (currentVideoId === uid || clickCurrentLookUserStatus === false) {
|
||||||
// return
|
return
|
||||||
// }
|
}
|
||||||
setClickCurrentLookUserStatus(false)
|
setClickCurrentLookUserStatus(false)
|
||||||
setCurrentLookUserStatus(0)
|
setCurrentLookUserStatus(0)
|
||||||
setRoomUserList((list: any) => {
|
setRoomUserList((res: any) => {
|
||||||
let row = list.filter((i: any) => i.roleId === '1' || i.isRoomManager)
|
let item = res.find((item: any) => item.uid === uid || item.screenShareId === uid)
|
||||||
setCurrentLookUserAccount((res: any) => {
|
if (item) {
|
||||||
let has = row.find((x: any) => x.uid === res.uid)
|
setCurrentVideoId(item.uid)
|
||||||
if (!has && row.length) {
|
}
|
||||||
uid = row[0].uid;
|
return res
|
||||||
}
|
|
||||||
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> => {
|
const getShowUser = async (): Promise<void> => {
|
||||||
await GetShowUser(state.channelId).then(async (res) => {
|
await GetShowUser(state.channelId).then(async (res) => {
|
||||||
if (res.code === 200 && res.data) {
|
if (res.code === 200 && res.data) {
|
||||||
renderVideo(res.data)
|
renderVideo(res.data)
|
||||||
|
changeVideo()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue