diff --git a/app/components/webrtc.js b/app/components/webrtc.js index 88fd2b7b..c81f2336 100644 --- a/app/components/webrtc.js +++ b/app/components/webrtc.js @@ -4,7 +4,9 @@ import Peer from "simple-peer"; const WebRTC_SERVER_URL = "http://127.0.0.1:1250/offer"; const useWebRTC = (stream, setIsRecording) => { - const [data, setData] = useState({}); + const [data, setData] = useState({ + peer: null, + }); useEffect(() => { if (!stream) { @@ -35,6 +37,7 @@ const useWebRTC = (stream, setIsRecording) => { peer.on("connect", () => { console.log("WebRTC connected"); + setData(prevData => ({ ...prevData, peer: peer })); }); peer.on("data", (data) => { diff --git a/app/page.js b/app/page.js index b104eb03..1aaf9b6c 100644 --- a/app/page.js +++ b/app/page.js @@ -19,15 +19,12 @@ const App = () => { .getUserMedia({ audio: true }) .then(setStream) .catch((err) => console.error(err)); - } else if (!recording) { - if (stream) { - const tracks = stream.getTracks(); - tracks.forEach((track) => track.stop()); - setStream(null); - } + } else if (!recording && serverData.peer) { + serverData.peer.send(JSON.stringify({ cmd: 'STOP' })); } }; + const serverData = useWebRTC(stream, setIsRecording); return (