diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index f4b67dd..29aa830 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -166,7 +166,7 @@ const Meeting: React.FC = () => { const [currentLookUserAccount, setCurrentLookUserAccount] = useState('') const [recorder, setRecorder] = useState('') const [_currentRequestSpeakType, setCurrentRequestSpeakType] = useState<'video' | 'audio' | ''>('') - const [_mediaStream, setMediaStream] = useState('') + const [_mediaStream, setMediaStream] = useState([]) const [isShare, setIsShare] = useState(null) const [isSharePopConfirm, setIsSharePopConfirm] = useState(false) const [_isNetworkDisconnected, setIsNetworkDisconnected] = useState(false) @@ -841,7 +841,7 @@ const Meeting: React.FC = () => { const mp4Path = `${setting.recordingFilesPath}会议录制_${state.roomName}_${state.channelId}_${dayjs().format('YYYY年MM月DD日HH时mm分')}.webm`; await fs.writeFile(mp4Path, buffer, {}); setRecorder('') - setMediaStream('') + setMediaStream([]) confirm({ title: '提示', icon: , @@ -1487,7 +1487,7 @@ const Meeting: React.FC = () => { // 录制所有音频输入设备 audioInputDevices.forEach(async device => { const micStream = await navigator.mediaDevices.getUserMedia({ audio: { deviceId: { exact: device.deviceId } } }); - setMediaStream(micStream); + setMediaStream((res: any) => [...res, micStream]); const micSoundSource = audioCtx.createMediaStreamSource(micStream); micSoundSource.connect(systemSoundDestination); }) @@ -1555,9 +1555,11 @@ const Meeting: React.FC = () => { return res }) setMediaStream((res: any) => { - if (res) { - res.getTracks().forEach((track: any) => { - track.stop() + if (res.length) { + res.forEach((item: any) => { + item.getTracks().forEach((track: any) => { + track.stop() + }); }); } return res