Сохраните audioBlob на сервер, используя почтовый запрос - PullRequest
0 голосов
/ 08 июля 2019

Я получил следующий код из учебника по Medium для записи и воспроизведения аудио с помощью браузера, это мой первый раз, когда я работаю с порциями данных и записываю аудио, как мне разместить эту запись на сервере, на котором работает Nodejs?

<html>
<head>
<title>AudioRecorder</title>
</head>
<body>
  <script>
    const recordAudio = () =>
      new Promise(async resolve => {
        const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
        const mediaRecorder = new MediaRecorder(stream);
        const audioChunks = [];

        mediaRecorder.addEventListener("dataavailable", event => {
          audioChunks.push(event.data);
        });

        const start = () => mediaRecorder.start();

        const stop = () =>
          new Promise(resolve => {
            mediaRecorder.addEventListener("stop", () => {
              const audioBlob = new Blob(audioChunks);
              const audioUrl = URL.createObjectURL(audioBlob);
              const audio = new Audio(audioUrl);
              const play = () => audio.play();
              resolve({ audioBlob, audioUrl, play });
            });

            mediaRecorder.stop();
          });

        resolve({ start, stop });
      });

    const sleep = time => new Promise(resolve => setTimeout(resolve, time));

    (async () => {
      const recorder = await recordAudio();
      recorder.start();
      await sleep(3000);
      const audio = await recorder.stop();
      audio.play();
    })();


    function saveToServer(){
        //post request to server to save audio file
    }
  </script>

<button id="saveToServer" onclick="saveToServer">SaveToServer</button>

</body>
</html>
...