Как я могу создать аудиофайл с помощью большого двоичного объекта?

#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′));