#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» из сегментов?