From 762ccefc66357097fed5865c74a516eba084bd6f Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Fri, 9 Aug 2024 11:19:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 9 ++++++++- src/utils/package/agora.ts | 6 +++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 5426f5a..9a91680 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -119,6 +119,7 @@ const Meeting: React.FC = () => { const [currentLookUserAccount, setCurrentLookUserAccount] = useState('') const [recorder, setRecorder] = useState('') const [mediaStream, setMediaStream] = useState('') + const [isShare, setIsShare] = useState(false) const [currentLookUserStatus, setCurrentLookUserStatus] = useState<1 | 2 | 3 | 4>(1) let userInfo = JSON.parse(storage.getItem('user') as string) useEffect(() => { @@ -158,7 +159,9 @@ const Meeting: React.FC = () => { } }, onUserJoined: async (info: any, remoteUid: any, _elapsed: any) => { - if (String(remoteUid).length !== 9) { + if (String(remoteUid).length === 9) { + setIsShare(true) + } else { await getRoomUser() setTimeout(async () => { let view = document.getElementById(`video-${remoteUid}`) as HTMLElement; @@ -174,6 +177,9 @@ const Meeting: React.FC = () => { } }, onUserOffline: async (info: any, remoteUid: any, _reason: any) => { + if (String(remoteUid).length === 9) { + setIsShare(false) + } await agora.setupRemoteVideo({ uid: Number(remoteUid), view: null, @@ -444,6 +450,7 @@ const Meeting: React.FC = () => { setIsSharedScreenModal(true) break; case '停止共享': + await agora.leaveChannelEx(user.screenShareId) agora.stopScreenCapture() await allUserLook(user.uid) footerListTemplate[itemIndex][rowIndex].title = '共享屏幕' diff --git a/src/utils/package/agora.ts b/src/utils/package/agora.ts index a97d500..8f589b5 100644 --- a/src/utils/package/agora.ts +++ b/src/utils/package/agora.ts @@ -141,7 +141,7 @@ const agora = { }, // 共享屏幕单独用户 joinChannelEx: async (uid: any) => { - await rtcEngine.leaveChannelEx({ channelId: option.channelId, localUid: Number(uid) }) + await agora.leaveChannelEx(uid) await rtcEngine.joinChannelEx( option.token, { channelId: option.channelId, localUid: Number(uid) }, @@ -155,6 +155,10 @@ const agora = { } ); }, + // 离开共享屏幕频道 + leaveChannelEx: async (uid: any) => { + await rtcEngine.leaveChannelEx({ channelId: option.channelId, localUid: Number(uid) }) + }, // 停止共享屏幕 stopScreenCapture: () => { rtcEngine.stopScreenCapture();