Öffne die lokale Datei in electron und rendere in wavesurfer.js

Ich arbeite an einer App, die mit electron erstellt wurde. Sie sollte mit wavesurfer.js funktionieren, um eine Wellenform anzuzeigen, die die Audiodatei darstellt. Ich habe jedoch Probleme beim Öffnen der Datei mit demfs -Modul und schieben Sie den Dateiinhalt über ein Blob zum Wellenreiten. Die Datei wird geladen und alles scheint zu funktionieren, aber beim Dekodieren sagt der WellenurferError decoding audiobuffer.

Zwei Dinge, von denen ich dachte, sie könnten das beeinflussen:

Dasfs.readFile Funktion nimmt eine Kodierung als zweiten ParameterDer Blob-Konstruktor nimmt ein options-Objekt als zweiten Parameter, in dem Sie den Mimetyp über das @ definieren könnetype Eigentu

Bisher konnten beide Ansätze das Problem nicht beheben.

Ich hoffe, jemand hat eine Lösung. (Könnte auch das @ sefs.readFile function ist der völlig falsche Weg und es gibt einen viel besseren Weg. Ich bin nur auf der Suche nach einer relativ performanten Möglichkeit zum Öffnen einer Datei, jede Hilfe wird gebeten.) Prost!

Hier ist der Code ...

(Ich lasse die ganze Elektronenkesselplatte weg, du kannst es leicht bekommen, indem du @ tusgit clone https://github.com/sindresorhus/electron-boilerplate/) - Fügen Sie ein Skript-Tag zu @ hinmain.js in demindex.html, füge ein Div mit der ID @ hinwave-area irgendwo in der HTML und fügen Sie ein Skript-Tag an die wavesurfer.js library. Außerdem benötigen Sie eine lokale Kopie desdemo wav-file.

Dann immain.js Datei …

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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage