Можно ли напрямую воспроизводить двоичный объект, записанный MediaRecorder в «audio / webm; codecs =opus»?

#audio #google-chrome-extension #webm #opus #web-mediarecorder

#Аудио #google-chrome-extension #webm #opus #web-mediarecorder

Вопрос:

Я пишу расширение Chrome, которое просто записывает аудио с вкладки и отправляет на мой локальный сервер.

Насколько я понимаю, расширение MediaRecorder в chrome такое же, как и в html.

 chrome.tabCapture.capture({ audio: true }, stream => {
  try {
    const recorder = new MediaRecorder(stream, { mimeType: "audio/webm;codecs=opus" });
    recorder.addEventListener('dataavailable', async (event) => {
      const request = new Request("http://localhost:3000");
      try {
        await fetch(request, { method: "POST", body: event.data });
      } catch (ex) {
        console.error(ex);
      }
    });
    const timeslice = 2 * 1000;
    recorder.start(timeslice);
  } catch (err) {
    console.log(err.message);
    return;
  }
});
  

Локальный сервер предназначен только для сохранения его в виде файла. Я скачал файл и воспроизвел его, но он сказал, что файл был сброшен. Забыв об отправке / загрузке, я просто сохранил двоичный объект из MediaRecorder в файл. Но он был разбит. Нужно ли мне делать что-то еще?

Действительно, сначала я пытался передать аудио, записанное на вкладке Chrome, на сервер, но, конечно, потоковая передача не удалась. Я думал, что объединение двоичных объектов в ‘audio / webm; codecs = opus’ не сработало, потому что формат файла webm этого не позволяет. Есть ли какой-либо способ создать потоковый двоичный объект в «audio / webm; codecs = opus» из сегментов?