Извлечь заголовок WAV из интерфейса javascript (ReactJS)

#node.js #reactjs #wav #node-streams

#node.js #reactjs #wav #потоки узлов

Вопрос:

Я пытаюсь проанализировать файл, который я буду загружать из react, мне нужно знать, можно ли его загрузить, исходя из нескольких факторов.

Я нашел https://github.com/TooTallNate/node-wav Он отлично работает на nodejs, и я пытаюсь использовать его на react. Образец создает читаемый поток и передает его в wav-ридер.

 var fs = require('fs');
var wav = require('wav');

var file = fs.createReadStream('track01.wav');
var reader = new wav.Reader();

// the "format" event gets emitted at the end of the WAVE header
reader.on('format', function (format) {
  //Format of the file
  console.log(format);
});

file.pipe(reader);
  

Используя контроллер FilePond, я могу получить строку base64 файла. Но я не могу понять, как передать его читателю

это то, что у меня есть до сих пор на ReactJS:

         var reader = new wav.Reader();

        reader.on('format', function (format) {
          //Format of file
          console.log('format', format);
        });

        const buffer = new Buffer(base64String, 'base64')
        const readable = new Readable()
        readable._read = () => { } 
        readable.push(buffer)
        readable.push(null)

        readable.pipe(reader)
  

Но я получаю ошибку: неверный «идентификатор фрагмента»: ожидалось «RIFF» или «RIFX», получилось «u Zj»

Поскольку этот файл работает на NodeJS с той же библиотекой, очевидно, что я делаю что-то не так.

Редактировать:

это была проблема с моей строкой Base64, этот метод работает, если кому-то нужно проанализировать wav во внешнем интерфейсе

Комментарии:

1. Почему вы не могли использовать Web Audio API ? Он имеет широкую поддержку браузеров в течение 4-5 лет.

2. Я не знал о Web Audio API, позвольте мне попробовать, большое спасибо за информацию @DanNagle