Извлечение WAV-заголовка на веб-интерфейс JavaScript (ReactJS) - PullRequest
0 голосов
/ 28 марта 2019

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

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

EDIT:

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

...