Javascript PhantomJS分析mp3文件的FFT数据并保存

Javascript PhantomJS分析mp3文件的FFT数据并保存,javascript,phantomjs,fft,web-audio-api,Javascript,Phantomjs,Fft,Web Audio Api,我正在学习/玩网络音频API,它非常棒。 我有一些代码,可以分析音频流的FFT并实时进行一些计算。它在浏览器中运行 但是现在我需要做同样的事情,但是处理整个音频文件并获取数据数组,而不是实时播放和分析,最好是在Phantomjs中进行。如果不可能,浏览器也可以 示例代码: var audioElement = document.getElementById("player"); var audioContext = new AudioContext(); var source = audioCo

我正在学习/玩网络音频API,它非常棒。 我有一些代码,可以分析音频流的FFT并实时进行一些计算。它在浏览器中运行

但是现在我需要做同样的事情,但是处理整个音频文件并获取数据数组,而不是实时播放和分析,最好是在Phantomjs中进行。如果不可能,浏览器也可以

示例代码:

var audioElement = document.getElementById("player");
var audioContext = new AudioContext();
var source = audioContext.createMediaElementSource(audioElement);

analyserNode = audioContext.createAnalyser();
analyserNode.fftSize = 2048;

source.connect(analyserNode);
source.connect(audioContext.destination);

analyserNode.connect(audioContext.destination);
和循环功能:

var freqByteData = new Uint8Array(analyserNode.frequencyBinCount);
analyserNode.getByteFrequencyData(freqByteData); 
//do processing FFT data
现在我需要加载一个mp3文件,并对其执行循环函数,以获得一些结果数据数组。因此,不要在播放时等待,而是立即处理它

问题是,我从未尝试过幻影。我需要和浏览器一样的精确结果,并且我在计算中使用AnalyzerNode.smoothingTimeConstant。 要求每秒获取数据30次

如果可能,如何重写此代码并像 ./phantomapp file.mp3 哪个将数据保存到某个txt文件或标准输出

如果phantomjs无法实现,如何采用此代码在浏览器中运行


谢谢

Github上有一个项目:

它声称“Node.js实现Web音频API”

警告:“这甚至不是alpha。只有在你喜欢冒险的时候才使用这个库。”


这里有一个相关的SO问题:

我对phantomjs一无所知,但是如果您可以使用
decodeAudioData
将整个文件加载到内存中,您可以使用
OfflineAudioContext
来处理该文件。这将以尽可能快的速度运行。使用
OfflineAudioContext.suspend(time)
停止处理,以便您可以在正确的时间调用
AnalyzerNode.getByteFrequencyData(FrequeByTeData)
,以获取频率数据。然后在适当的时间安排暂停,并从此暂停中恢复()。

谢谢。我明白,使用nodejs是不可能的。我更新了我的问题,并根据需要将nodejs更改为phantomjs。phantomjs目前不支持音频和视频。也许看看Electron和/或NW.js?那么你是服务器端的对吗?首先,借助ffmpeg将mp3解压缩为原始wav。那么分析这个原始波形就更容易了。几个节点包: