#javascript #node.js #fs #mediarecorder
#javascript #node.js #fs #mediarecorder
Вопрос:
Извините за мой английский. Мне нужно создать аудиофайл с большим двоичным объектом.Я создаю аудиофайл, но он вылетает, и я не знаю почему, я ДУМАЮ, это потому, что завершение было неправильным, я перепробовал несколько способов сделать это, но ничего не сработало. Вот мой интерфейс-код:
mediaRecorder.onstop=() =>{
const blob = new Blob(partesAudio,{type:'audio/ogg; code=opus'})
const reader = new window.FileReader()
reader.readAsDataURL(blob)
reader.onloadend= async () =>{
var resultado= await fetch('http://localhost:3000/fala/',{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
fala:reader.result //'frase8.wav'
}),
});...
Вот мой внутренний код:
app.post('/fala/', async(req, res) => {
fs.writeFileSync('something.ogg', (req.body.fala));
});
Я попытался закодировать в base64, но это не сработало, поэтому я вернул код.
Только для сравнения.
Комментарии:
1. попробуйте просто отправить фактический файл вместо того, чтобы пытаться его кодировать на base64, может возникнуть проблема с памятью, если файл очень большой. Также обратите внимание, что ваш серверный сервер не декодирует строку base64 обратно в двоичные данные перед записью в ваш файл
2. Я попытался декодировать в base64 в серверной части, но я удалил, потому что не работал
3. fs.writeFileSync(‘something.ogg’, Buffer.from(req.body.fala,’base64′));