From 32acac493d829314a8a6569520f6f374054ddef1 Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Fri, 21 Feb 2025 15:59:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=9B=91=E6=B5=8B=E5=88=B0?= =?UTF-8?q?=E8=BF=9C=E7=AB=AF=E6=9C=80=E6=B4=BB=E8=B7=83=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 15 +++++++++++++-- src/utils/package/agora.ts | 6 +++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 351382a..638de24 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -1448,6 +1448,17 @@ const Meeting: React.FC = () => { onAudioPublishStateChanged: (_channel: string, _oldState: StreamPublishState, newState: StreamPublishState, _elapseSinceLastState: number) => { setAudioStatus(newState) }, + onActiveSpeaker: (_connection: RtcConnection, uid: number) => { + GetSharedScreen(state.channelId).then(req => { + if (req.code === 200) { + if (req.data) { + setIsShare(req.data) + } else { + renderVideo(String(uid)) + } + } + }) + } }) if (state.enableCamera) { await agora.startCameraCapture() @@ -1767,8 +1778,8 @@ const Meeting: React.FC = () => { if (res) { GetSharedScreen(state.channelId).then(req => { if (req.code === 200) { - if (res.data) { - setIsShare(res.data) + if (req.data) { + setIsShare(req.data) } getDesktopCapturerVideo() setIsSharedScreenModal(true) diff --git a/src/utils/package/agora.ts b/src/utils/package/agora.ts index fbc1ba6..2ade1f3 100644 --- a/src/utils/package/agora.ts +++ b/src/utils/package/agora.ts @@ -152,7 +152,7 @@ export const agora = { }, 1000); }, // 事件回调 - registerEventHandler: ({ onJoinChannelSuccess, onUserJoined, onUserOffline, onAudioVolumeIndication, onRtcStats, onConnectionStateChanged, onLocalVideoStateChanged, onConnectionLost, onTokenPrivilegeWillExpire, onVideoPublishStateChanged, onAudioPublishStateChanged }: any) => { + registerEventHandler: ({ onJoinChannelSuccess, onUserJoined, onUserOffline, onAudioVolumeIndication, onRtcStats, onConnectionStateChanged, onLocalVideoStateChanged, onConnectionLost, onTokenPrivilegeWillExpire, onActiveSpeaker, onVideoPublishStateChanged, onAudioPublishStateChanged }: any) => { rtcEngine.registerEventHandler({ // 监听本地用户加入频道事件 onJoinChannelSuccess: async (connection: RtcConnection, elapsed: number) => { @@ -197,6 +197,10 @@ export const agora = { // Token 即将在 30s 内过期回调。 onTokenPrivilegeWillExpire: (connection: RtcConnection, token: string) => { onTokenPrivilegeWillExpire?.(connection, token) + }, + // 监测到远端最活跃用户回调。 + onActiveSpeaker: (connection: RtcConnection, uid: number) => { + onActiveSpeaker?.(connection, uid) } }); },