Поддержка Web API MediaRecorder в Chrome и Firefox - PullRequest
0 голосов
/ 21 октября 2019

У меня есть следующий код, который записывает аудио с помощью MediaRecorder Web API.

Теперь при отправке записанного аудио на сервер мне нужно передать аудиоформат записанного аудио (либо wav, либо opus). Как узнать, какой аудиоформат записан в Chrome и Firefox?

Записанный 3-минутный звук в Chrome 72 имеет размер 1,6 МБ, тогда как записанный аудио в Firefox 55 с такой же длительностью имеет размер 3 МБ.

      recordAudio() {
        return new Promise(recorderResolve => {
          navigator.mediaDevices
            .getUserMedia({ audio: true })
            .then(stream => {
              const mediaRecorder = new MediaRecorder(stream);
              const audioChunks = [];
              mediaRecorder.addEventListener('dataavailable', event => {
                audioChunks.push(event.data);
              });

              const isErrorOccured = false;

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

              const stop = () => {
                return new Promise(stopResolve => {
                  mediaRecorder.addEventListener('stop', () => {
                    const audioBlob = new Blob(audioChunks);
                    const audioUrl = URL.createObjectURL(audioBlob);
                    stopResolve({ audioBlob, audioUrl });
                  });

                  mediaRecorder.stop();
                  mediaRecorder.stream.getTracks().forEach(i => i.stop());
                });
              };

              recorderResolve({ isErrorOccured, start, stop });
            })
            .catch(error => {
                .......
            });
        });
      }

Как узнать формат аудио, в котором был записан звук? Можно ли указать конкретный формат из wav и opus для записи?

...