diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 9046e53..c9e13ef 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -573,22 +573,26 @@ const Meeting: React.FC = () => { setNoViewChatList(0) break; case '共享屏幕': - if (getUserRoomInfo()) { - getDesktopCapturerVideo() - setIsSharedScreenModal(true) - } else { - message.error(msgTips) - } + await getUserRoomInfo().then(async (res) => { + if (res) { + getDesktopCapturerVideo() + setIsSharedScreenModal(true) + } else { + message.error(msgTips) + } + }) break; case '停止共享': - if (getUserRoomInfo()) { - await agora.leaveChannelEx(userInfo.screenShareId) - agora.stopScreenCapture() - await allUserLook(userInfo.uid) - footerListTemplate[itemIndex][rowIndex].title = '共享屏幕' - } else { - message.error(msgTips) - } + await getUserRoomInfo().then(async (res) => { + if (res) { + await agora.leaveChannelEx(userInfo.screenShareId) + agora.stopScreenCapture() + await allUserLook(userInfo.uid) + footerListTemplate[itemIndex][rowIndex].title = '共享屏幕' + } else { + message.error(msgTips) + } + }) break; case '静音': await postOpenMicr(false, user.uid) @@ -733,7 +737,9 @@ const Meeting: React.FC = () => { }) setRoomUserList(res.data) changeAgoraDevice() - agora.updateChannelMediaOptions(getUserRoomInfo(res.data) ? true : false) + getUserRoomInfo().then(res => { + agora.updateChannelMediaOptions(res ? true : false) + }) } }) } @@ -774,25 +780,27 @@ const Meeting: React.FC = () => { } // 开关麦克风 const postOpenMicr = async (enableMicr: boolean, uid: string, isAll?: boolean): Promise => { - if (getUserRoomInfo()) { - if (!isAll) { - let msg = ''; - if (uid === user.uid) { - await agora.getAudioMediaList().then(res => { - if (!res.ecordingList.length) { - msg = '未检测到麦克风!' - } - }) - } - if (msg) { - message.error(msg) - return + await getUserRoomInfo().then(async (res) => { + if (res) { + if (!isAll) { + let msg = ''; + if (uid === user.uid) { + await agora.getAudioMediaList().then(res => { + if (!res.ecordingList.length) { + msg = '未检测到麦克风!' + } + }) + } + if (msg) { + message.error(msg) + return + } } + postOpenMicrApi(enableMicr, uid, isAll) + } else { + message.error(msgTips) } - postOpenMicrApi(enableMicr, uid, isAll) - } else { - message.error(msgTips) - } + }) } // 开关麦克风 const postOpenMicrApi = async (enableMicr: boolean, uid: string, isAll?: boolean): Promise => { @@ -812,23 +820,25 @@ const Meeting: React.FC = () => { // 开关视频 const postOpenCamera = async (enableCamera: boolean, uid: string): Promise => { - if (getUserRoomInfo()) { - let msg = ''; - if (uid === user.uid) { - await agora.getVideoDeviceManager().then(res => { - if (!res.list.length) { - msg = '未检测到摄像头!' - } - }) + await getUserRoomInfo().then(async (res) => { + if (res) { + let msg = ''; + if (uid === user.uid) { + await agora.getVideoDeviceManager().then(res => { + if (!res.list.length) { + msg = '未检测到摄像头!' + } + }) + } + if (msg) { + message.error(msg) + return + } + postOpenCameraApi(enableCamera, uid) + } else { + message.error(msgTips) } - if (msg) { - message.error(msg) - return - } - postOpenCameraApi(enableCamera, uid) - } else { - message.error(msgTips) - } + }) } // 开关视频 const postOpenCameraApi = async (enableCamera: boolean, uid: string): Promise => { @@ -848,13 +858,16 @@ const Meeting: React.FC = () => { // speakerModeModalRef.current.changeSpeakerMode() // } // 获取当前用户在房间的角色信息 - const getUserRoomInfo = (list?: any): any => { - const data = list ? list : roomUserList - let userItem = data.find((item: any) => item.uid === userInfo.uid) - if (userItem && (userItem.roleId === '1' || userItem.isRoomManager)) { - return userItem - } - return '' + const getUserRoomInfo = async (): Promise => { + return new Promise((resolve, _reject) => { + setRoomUserList((res: any) => { + let userItem = res.find((item: any) => item.uid === userInfo.uid) + if (userItem && (userItem.roleId === '1' || userItem.isRoomManager)) { + resolve(userItem) + } + return res + }) + }) } // 获取当前模式样式 const getMeetingContentBodyLeftModeClass = (): string => {