From 20000d0b98a8f57b99033594ad67d116d2e1374a Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Tue, 16 Jul 2024 14:02:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A8=E5=91=98=E9=9D=99=E9=9F=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- src/api/Meeting/index.ts | 2 +- src/page/Meeting/index.tsx | 34 ++++++++++++++++++---------------- src/utils/package/agora.ts | 8 ++++---- vite.config.ts | 18 +++++++++++++++++- 5 files changed, 41 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index 177488c..d7b6c7f 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ ] }, "directories": { - "output": "aa" + "output": "electron" }, "extraResources": [] } diff --git a/src/api/Meeting/index.ts b/src/api/Meeting/index.ts index 748015a..6a69574 100644 --- a/src/api/Meeting/index.ts +++ b/src/api/Meeting/index.ts @@ -23,7 +23,7 @@ export const PostRoomFile = (data: any) => export const GetRoomUpFileurl = (roomNum: string, fileSuffix: string) => request({ url: `/room/up-fileurl?roomNum=${roomNum}&fileSuffix=${fileSuffix}`, - method: 'get' + method: 'get', }) export const GetRoomFileDwUrl = (fileUrl: string, fileId: string) => diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 082b928..c6e43df 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -144,9 +144,11 @@ const Meeting: React.FC = () => { useEffect(() => { roomUserList.forEach((item: any) => { + agora.muteLocalAudioStream(item.enableMicr) + agora.muteLocalVideoStream(item.enableCamera) let dom = document.getElementById(`video-${item.account}`) as HTMLElement - if (!dom.getAttribute('load')) { - dom.setAttribute('load', 'true') + if (!dom.getAttribute('account')) { + dom.setAttribute('account', item.account) agora.setVideo({ account: Number(item.account), view: dom, @@ -213,28 +215,24 @@ const Meeting: React.FC = () => { footerListTemplate[itemIndex][rowIndex].title = '开启声音' footerListTemplate[itemIndex][rowIndex].active = true setFooterList(footerListTemplate) - agora.muteLocalAudioStream(true) - postOpenMicr(false) + postOpenMicr(false, false) break; case '开启声音': footerListTemplate[itemIndex][rowIndex].title = '关闭声音' footerListTemplate[itemIndex][rowIndex].active = false setFooterList(footerListTemplate) - agora.muteLocalAudioStream(false) - postOpenMicr(true) + postOpenMicr(true, false) break; case '关闭视频': footerListTemplate[itemIndex][rowIndex].title = '开启视频' footerListTemplate[itemIndex][rowIndex].active = true setFooterList(footerListTemplate) - agora.muteLocalVideoStream(true) postOpenCamera(false) break; case '开启视频': footerListTemplate[itemIndex][rowIndex].title = '关闭视频' footerListTemplate[itemIndex][rowIndex].active = false setFooterList(footerListTemplate) - agora.muteLocalVideoStream(false) postOpenCamera(true) break; case '设置向导': @@ -359,11 +357,12 @@ const Meeting: React.FC = () => { } // 开关麦克风 - const postOpenMicr = async (enableMicr: boolean): Promise => { + const postOpenMicr = async (enableMicr: boolean, isAll: boolean): Promise => { await PostOpenMicr({ roomNum: state.channelId, uid: user.uid, - enableMicr + enableMicr, + isAll, }).then(res => { getRoomUser() }) @@ -440,22 +439,25 @@ const Meeting: React.FC = () => { } />
- {list.map((item: number) => -
+ {roomUserList.map((item: any, index: number) => +
- 潇潇主持人 + + {item.userName} + {item.roleId === '1' ? 主持人 : null} +
- - + +
)}
邀请
-
全员静音
+
postOpenMicr(true, true)}>全员静音
: diff --git a/src/utils/package/agora.ts b/src/utils/package/agora.ts index be549ea..8b6ebd5 100644 --- a/src/utils/package/agora.ts +++ b/src/utils/package/agora.ts @@ -1,7 +1,7 @@ import { message } from "antd"; -import os from 'os' +const os = require('os'); import storage from "./storage"; -const { +import { createAgoraRtcEngine, ClientRoleType, VideoSourceType, @@ -11,7 +11,7 @@ const { ChannelProfileType, MediaRecorderContainerFormat, MediaRecorderStreamType -} = require("agora-electron-sdk"); +} from "agora-electron-sdk"; const option: any = { appId: 'dcfc466a6ecb4a1f972630065dfb1e75', token: '', @@ -221,7 +221,7 @@ const agora = { }, }) iMediaRecorder.startRecording({ - storagePath: `${os.homedir()}/${+new Date()}.mp4`, //录音文件在本地保存的绝对路径,需精确到文件名及格式 + storagePath: `${os.homedir()}/Desktop/${+new Date()}.mp4`, //录音文件在本地保存的绝对路径,需精确到文件名及格式 containerFormat: MediaRecorderContainerFormat.FormatMp4, //录制文件的格式 streamType: MediaRecorderStreamType.StreamTypeBoth, //录制内容 maxDurationMs: 7200000, //maxDurationMs diff --git a/vite.config.ts b/vite.config.ts index 8240aa6..c623c17 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -54,10 +54,26 @@ export default defineConfig({ resolve({ 'agora-electron-sdk': ` const { - createAgoraRtcEngine + createAgoraRtcEngine, + ChannelProfileType, + ClientRoleType, + MediaRecorderContainerFormat, + MediaRecorderStreamType, + RenderModeType, + ScreenCaptureSourceType, + VideoSourceType, + VideoViewSetupMode } = require("agora-electron-sdk") export { createAgoraRtcEngine, + ChannelProfileType, + ClientRoleType, + MediaRecorderContainerFormat, + MediaRecorderStreamType, + RenderModeType, + ScreenCaptureSourceType, + VideoSourceType, + VideoViewSetupMode } `, })