Откройте локальный файл в электронном виде и просмотрите в wavesurfer.js
Я работаю над приложением, созданным с помощью электрона, оно должно работать с wavesurfer.js для отображения формы волны, представляющей аудиофайл. Однако у меня возникают проблемы с открытием файла с помощьюfs
модуль и отправка содержимого файла в waveurfer через BLOB-объект. Файл загружается, и все, кажется, работает, но при декодировании waveurfer говоритError decoding audiobuffer
.
Две вещи, которые я подумал, могут повлиять на это
fs.readFile
функция принимает кодировку в качестве второго параметраКонструктор Blob принимает объект параметров в качестве второго параметра, при этом вы можете определить mimetype черезtype
имуществоОднако до сих пор оба подхода не смогли решить проблему.
Я надеюсь, что у кого-то есть решение. (Также может бытьfs.readFile
функция - совершенно неправильный путь, и есть намного лучший путь; Я просто ищу относительно эффективный способ открытия файла, любая помощь приветствуется) Ура!
Вот код ...
(Я опускаю все электронные шаблоны, вы можете легко получить это, выполнивgit clone https://github.com/sindresorhus/electron-boilerplate/
) - Включить тег сценария дляmain.js
вindex.html
, добавьте div с идентификаторомwave-area
где-то в HTML и добавить тег сценария кбиблиотека wavesurfer.js, Также вам понадобится локальная копиядемонстрационный wav-файл.
Тогда вmain.js
файл …
var fs = require('fs');
var wavesurfer = Object.create(WaveSurfer);
wavesurfer.init({
container: '#wave-area'
});
fs.readFile('/path/to/demo.wav', function(err, data) {
if (data && !err) {
console.log('has data and no error!');
}
var file = new window.Blob([data]);
wavesurfer.loadBlob(file);
}
wavesurfer.on('loading', function(e) {
console.log('loading', e);
});
wavesurfer.on('error', function(err) {
console.log(err);
});