Я пытаюсь проанализировать файл, который я буду загружать по реакции, мне нужно знать, может ли он быть загружен на основании нескольких факторов.
Я нашел 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 на внешнем интерфейсе