js 本地录音,保存文件

发布时间 2023-06-30 11:51:25作者: 波仔、
<div>
    <span onclick="start()">开始录音</span>
    <span onclick="stop()">结束录音</span>
  </div>

 <script>
    const constraints = { audio: true };
    var mediaRecorder = null;
    function start ( ) {
      var chunks = [];
      console.log("start")
       navigator.mediaDevices.getUserMedia(constraints)
      .then(stream => {
        mediaRecorder = new MediaRecorder(stream);
        mediaRecorder.addEventListener('dataavailable', event => {
          chunks.push(event.data);
        });

        mediaRecorder.addEventListener('stop', () => {
          const blob = new Blob(chunks, { type: 'audio/wav' });
          const url = URL.createObjectURL(blob);
          console.log(blob, url)
          const link = document.createElement('a');

          link.href = url;
          link.download = 'recording.wav';
          document.body.appendChild(link);
          link.click();
        });
        mediaRecorder.start();
      })
      .catch(err => {
        console.error(err);
      });
    }
    function stop ( ) {
      mediaRecorder.stop();  
      console.log("stop" ,mediaRecorder)
    }
  </script>