From 4e30b207c1ee9ddad05a37c31a11ac5a182490b7 Mon Sep 17 00:00:00 2001 From: Abi Raja Date: Fri, 15 Mar 2024 13:41:35 -0400 Subject: [PATCH] stop the screen sharing stream after it's recording is done --- frontend/src/components/recording/ScreenRecorder.tsx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/frontend/src/components/recording/ScreenRecorder.tsx b/frontend/src/components/recording/ScreenRecorder.tsx index c2cc06d..4e8060a 100644 --- a/frontend/src/components/recording/ScreenRecorder.tsx +++ b/frontend/src/components/recording/ScreenRecorder.tsx @@ -19,6 +19,7 @@ function ScreenRecorder({ setScreenRecorderState, generateCode, }: Props) { + const [mediaStream, setMediaStream] = useState(null); const [mediaRecorder, setMediaRecorder] = useState( null ); @@ -33,6 +34,7 @@ function ScreenRecorder({ video: true, audio: { echoCancellation: true }, }); + setMediaStream(stream); // TODO: Test across different browsers // Create the media recorder @@ -55,6 +57,7 @@ function ScreenRecorder({ ); const dataUrl = await blobToBase64DataUrl(completeBlob); + setScreenRecordingDataUrl(dataUrl); setScreenRecorderState(ScreenRecorderState.FINISHED); }; @@ -69,10 +72,18 @@ function ScreenRecorder({ }; const stopScreenRecording = () => { + // Stop the recorder if (mediaRecorder) { mediaRecorder.stop(); setMediaRecorder(null); } + + // Stop the screen sharing stream + if (mediaStream) { + mediaStream.getTracks().forEach((track) => { + track.stop(); + }); + } }; const kickoffGeneration = () => {