JS声音频谱图绘制:从缓冲区切换到完整文件?

Cug*_*gel 5 javascript audio spectrogram

对于辅助项目,我正在使用以下JS插件在浏览器中绘制音频文件的声谱图:

https://www.npmjs.com/package/spectrogram

var spectrogram = require('spectrogram');

var spectro = Spectrogram(document.getElementById('canvas'), {
  audio: {
    enable: false
  }
});

var audioContext = new audioContext();
var request = new XMLHttpRequest();
request.open('GET', 'audio.mp3', true);
request.responseType = 'arraybuffer';

request.onload = function() {
  audioContext.decodeAudioData(request.response, function(buffer) {
    spectro.addSource(buffer, audioContext);
    spectro.start();
  });
};

request.send();
Run Code Online (Sandbox Code Playgroud)

(此处提供演示:https : //lab.miguelmota.com/spectrogram/example/

但是,由于声音当前正在通过缓冲区播放,因此当前代码和示例会“逐行”绘制声谱图。

我想知道是否有一种方法可以实际读取文件,然后一次绘制整个频谱图?我尝试将数组缓冲区转换为Blob,但其余功能实际上希望声音会被缓冲...

所以我的问题是:有没有办法实现我想要的?(立即绘制完整的频谱图,而不是缓冲音频并“随时随地”绘制音频)

有没有更简单的方法来实现我的期望?

感谢您的时间和帮助。