Abrir archivo local en electrón y renderizar en wavesurfer.js

Estoy trabajando en una aplicación construida con electrones, debería funcionar con wavesurfer.js para mostrar una forma de onda que represente el archivo de audio. Sin embargo, tengo problemas para abrir el archivo usando elfs módulo y empujando el contenido del archivo a waveurfer a través de un Blob. El archivo se carga y todo parece funcionar, pero cuando decodifica waveurfer diceError decoding audiobuffer.

Dos cosas que pensé que tal vez podrían influir en esto:

losfs.readFile la función toma una codificación como segundo parámetroEl constructor Blob toma un objeto de opciones como segundo parámetro, dentro del cual puede definir el tipo mime mediantetype propiedad

Sin embargo, hasta ahora ambos enfoques no han podido solucionar el problema.

Espero que alguien tenga una solución. (También podría ser elfs.readFile la función es completamente el camino equivocado y hay una manera mucho mejor; Solo estoy buscando una forma relativamente eficaz de abrir un archivo, cualquier ayuda es apreciada) ¡Salud!

Aquí está el código ...

(Estoy dejando de lado toda la placa de electrones, puedes obtenerla fácilmente haciendogit clone https://github.com/sindresorhus/electron-boilerplate/) - Incluya una etiqueta de script paramain.js en elindex.html, agregue un div con el idwave-area en algún lugar del html y agregue una etiqueta de script a labiblioteca wavesurfer.js. También necesitará una copia local delarchivo wav de demostración.

Luego en elmain.js archivo …

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);
});

Respuestas a la pregunta(1)

Su respuesta a la pregunta