#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