From c6887b2747d69a97be04bde2649228175796634e Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Fri, 17 Jan 2025 15:08:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=85=B1=E4=BA=AB=E5=B1=8F?= =?UTF-8?q?=E5=B9=95token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- src/page/Meeting/index.tsx | 55 +++++++++++++++++++++----------------- src/utils/package/agora.ts | 8 +++--- 3 files changed, 35 insertions(+), 30 deletions(-) diff --git a/package.json b/package.json index ce35f53..98dada8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "WGShare.Metting", "private": true, - "version": "0.6.3", + "version": "0.6.5", "main": "main.js", "authors": "yj", "description": "智汇享", diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 5e75f23..58b1260 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -1182,6 +1182,7 @@ const Meeting: React.FC = () => { } }, onTokenPrivilegeWillExpire: async (connection: RtcConnection, _token: string) => { + console.log(connection); await GetRoomRtcToken(connection.channelId || '').then(res => { if (res.code === 200) { agora.refreshToken({ @@ -1766,31 +1767,35 @@ const Meeting: React.FC = () => { agora.setSubscribeVideoBlocklist([Number(user.screenShareId)], 1) } if (data) { - const footerListTemplate = [...footerList] - footerListTemplate[footerListIndex.itemIndex][footerListIndex.rowIndex].title = '停止共享' - setIsSharedScreenModal(false) - await agora.setDesktopCapturerVideo(sharedScreenItem, isComputerAudio, isFluencyPriority) - await allUserLook(user.screenShareId, user.userName) - const isOpen = await getKeyOpenChildWindow('shareScreenWindow') - setIsScreenCapture(true) - if (!isOpen) { - window.electron.createChildWindow('show') - setKeyOpenChildWindow('shareScreenWindow', true) - window.electron.setMainWindowSize({ - width: 250, - height: 160, - }) - window.electron.setPosition('right') - setTimeout(() => { - agora.setupLocalVideo({ - uid: Number(user.uid), - view: document.getElementById(`meetingAbsoluteVideo`) as HTMLElement, - channelId: state.channelId, - sourceType: VideoSourceType.VideoSourceCameraPrimary, - type: true - }) - }, 1500); - } + GetRoomRtcToken(state.channelId).then(async res => { + if (res.code === 200) { + const footerListTemplate = [...footerList] + footerListTemplate[footerListIndex.itemIndex][footerListIndex.rowIndex].title = '停止共享' + setIsSharedScreenModal(false) + await agora.setDesktopCapturerVideo(sharedScreenItem, isComputerAudio, isFluencyPriority, res.data) + await allUserLook(user.screenShareId, user.userName) + const isOpen = await getKeyOpenChildWindow('shareScreenWindow') + setIsScreenCapture(true) + if (!isOpen) { + window.electron.createChildWindow('show') + setKeyOpenChildWindow('shareScreenWindow', true) + window.electron.setMainWindowSize({ + width: 250, + height: 160, + }) + window.electron.setPosition('right') + setTimeout(() => { + agora.setupLocalVideo({ + uid: Number(user.uid), + view: document.getElementById(`meetingAbsoluteVideo`) as HTMLElement, + channelId: state.channelId, + sourceType: VideoSourceType.VideoSourceCameraPrimary, + type: true + }) + }, 1500); + } + } + }) } else { message.error('请选择应用!') } diff --git a/src/utils/package/agora.ts b/src/utils/package/agora.ts index 6702fdb..8256f6b 100644 --- a/src/utils/package/agora.ts +++ b/src/utils/package/agora.ts @@ -329,10 +329,10 @@ export const agora = { ) }, // 共享屏幕单独用户 - joinChannelEx: async (uid: any) => { + joinChannelEx: async (uid: any, token: string) => { await agora.leaveChannelEx(uid) await rtcEngine.joinChannelEx( - option.token, + token, { channelId: option.channelId, localUid: Number(uid) }, { autoSubscribeAudio: false,//设置是否自动订阅所有音频流 @@ -465,7 +465,7 @@ export const agora = { return await rtcEngine.getScreenCaptureSources(thumbSize, iconSize, includeScreen) }, // 共享屏幕采集 - setDesktopCapturerVideo: async (targetSource: any, isComputerAudio: boolean, isFluencyPriority: boolean) => { + setDesktopCapturerVideo: async (targetSource: any, isComputerAudio: boolean, isFluencyPriority: boolean, token:string) => { const user = JSON.parse(storage.getItem('user') as string) agora.stopScreenCapture(); if (isComputerAudio) { @@ -501,7 +501,7 @@ export const agora = { } ); } - await agora.joinChannelEx(user.screenShareId) + await agora.joinChannelEx(user.screenShareId, token) }, // 获取系统中所有的视频设备列表。 getVideoDeviceManager: async (): Promise => {