我正在编写一个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?