diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 38c2e8b..318c9ef 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -322,12 +322,13 @@ const Meeting: React.FC = () => { break; // 发言人用户信息刷新 case 'ManagerRefresh': - if (item.user.uid === userInfo.uid) { - await agora.updateChannelMediaOptions(item.user.isRoomManager) - await postOpenMicrApi(item.user.isRoomManager, userInfo.uid) - await postOpenCameraApi(item.user.isRoomManager, userInfo.uid) - } - setAllUserListData('ManagerRefresh', item) + setAllUserListData('ManagerRefresh', item, async () => { + if (item.user.uid === userInfo.uid) { + await agora.updateChannelMediaOptions(item.user.isRoomManager) + await postOpenMicrApi(item.user.isRoomManager, userInfo.uid) + await postOpenCameraApi(item.user.isRoomManager, userInfo.uid) + } + }) break; } }) @@ -404,13 +405,21 @@ const Meeting: React.FC = () => { } if (item.uid === userInfo.uid) { const footerListTemplate = [...footerList] - footerListTemplate[0][0].title = item.enableMicr ? '静音' : '解除静音' - footerListTemplate[0][0].active = !item.enableMicr - footerListTemplate[0][1].title = item.enableCamera ? '关闭视频' : '开启视频' - footerListTemplate[0][1].active = !item.enableCamera + await agora.getVideoDeviceManager().then(async (res) => { + if (res.list.length) { + footerListTemplate[0][1].title = item.enableCamera ? '关闭视频' : '开启视频' + footerListTemplate[0][1].active = !item.enableCamera + await agora.muteLocalVideoStream(!item.enableCamera) + } + }) + await agora.getAudioMediaList().then(async (res) => { + if (res.ecordingList.length) { + footerListTemplate[0][0].title = item.enableMicr ? '静音' : '解除静音' + footerListTemplate[0][0].active = !item.enableMicr + await agora.muteLocalAudioStream(!item.enableMicr) + } + }) setFooterList(footerListTemplate) - await agora.muteLocalAudioStream(!item.enableMicr) - await agora.muteLocalVideoStream(!item.enableCamera) } if (userSearchValue) { if (item.userName.indexOf(userSearchValue) !== -1) { @@ -426,7 +435,7 @@ const Meeting: React.FC = () => { }) } // 替换数据 - const setAllUserListData = (key: string, item: any): void => { + const setAllUserListData = (key: string, item: any, callBack?: Function): void => { switch (key) { case 'OperMicr': case 'OperCamera': @@ -438,6 +447,9 @@ const Meeting: React.FC = () => { userItem[key] = item.user[key]; } } + if (key === 'ManagerRefresh') { + callBack && callBack() + } return res }) break;