let recorder = await navigator.mediaDevices .getUserMedia({ audio: true }) .then((mediaSourceObject) => { document.createElement("audio").srcObject = mediaSourceObject; const recorder = new MediaRecorder(mediaSourceObject); let data = []; recorder.ondataavailable = (e) => data.push(e.data); recorder.onstop = () => { const blob = new Blob(data, { type: "audio/ogg" }); data = []; console.log(window.URL.createObjectURL(blob)); }; return { record() { recorder.start(); }, stop() { recorder.stop(); }, }; });