MediaRecorder在“ audio / webm; codecs = opus”中记录的Blob是否可以直接播放?

时间:2019-03-19 03:08:27

标签: audio google-chrome-extension webm opus web-mediarecorder

我正在编写一个chrome扩展程序,该扩展程序仅记录来自选项卡的音频并将其发送到我的本地服务器。

  

据我了解,Chrome扩展程序中的MediaRecorder与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;
  }
});

本地服务器仅用于将其另存为文件。我下载了文件并播放了文件,但文件崩溃了。忘记发送/下载,我所做的只是将Blob从MediaRecorder保存到文件中。但是它崩溃了。我需要做更多的事情吗?

  

实际上,首先,我尝试将chrome标签中捕获的音频流传输到服务器,但是流传输当然失败了。我认为在“音频/ webm; codecs = opus”中串联斑点不起作用,因为webm文件格式不允许这样做。有什么方法可以根据片段在'audio / webm; codecs = opus'blob中构建可流式blob?

0 个答案:

没有答案