From 932d8e82856082a58321bcfab683bded45be4070 Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Fri, 27 Sep 2024 16:11:07 +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 | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index efff682..27c8ee6 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -160,7 +160,7 @@ const Meeting: React.FC = () => { const [noViewChatList, setNoViewChatList] = useState(0) const [currentLookUserAccount, setCurrentLookUserAccount] = useState('') const [recorder, setRecorder] = useState('') - const [mediaStream, setMediaStream] = useState('') + const [_mediaStream, setMediaStream] = useState('') const [isShare, setIsShare] = useState(null) const [isSharePopConfirm, setIsSharePopConfirm] = useState(false) const [isShareUser, setIsShareUser] = useState(null) @@ -570,6 +570,8 @@ const Meeting: React.FC = () => { const buffer = Buffer.from(reader.result); const mp4Path = `${setting.recordingFilesPath}会议录制_${state.roomName}_${state.channelId}_${dayjs().format('YYYY年MM月DD日HH时mm分')}.webm`; await fs.writeFile(mp4Path, buffer, {}); + setRecorder('') + setMediaStream('') confirm({ title: '提示', icon: , @@ -1071,7 +1073,6 @@ const Meeting: React.FC = () => { footerListTemplate[itemIndex][rowIndex].title = '录制中'; footerListTemplate[itemIndex][rowIndex].active = true; setFooterList(footerListTemplate); - window.electron.getSources().then(async (sources: any) => { const screenId = sources[0].id; const stream = await navigator.mediaDevices.getUserMedia({ @@ -1167,16 +1168,20 @@ const Meeting: React.FC = () => { } // 停止录制 const stopRecorderMedia = async (): Promise => { - if (recorder) { - await recorder.stop(); - } - if (mediaStream) { - await mediaStream.getTracks().forEach((track: any) => { - track.stop() - }); - } - setRecorder('') - setMediaStream('') + setRecorder((res: any) => { + if (res) { + res.stop(); + } + return res + }) + setMediaStream((res: any) => { + if (res) { + res.getTracks().forEach((track: any) => { + track.stop() + }); + } + return res + }) } // 退出房间 const leaveChannel = async (bool: boolean = true): Promise => {