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

标签 javascript phantomjs fft web-audio-api

我正在学习/使用 Web Audio 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 文件,并对其处理循环函数以获取一些结果数据数组。因此,不要等待播放,而是立即处理它。

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

如果可能的话,如何重写这段代码并像这样运行它 ./phantomapp 文件.mp3 将数据保存到某个 txt 文件或 stdout?

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

谢谢

最佳答案

Github上有一个项目:https://github.com/sebpiq/node-web-audio-api

其中声称“Web 音频 API 的 Node.js 实现”。

警告:“这还不是 alpha。只有当您喜欢冒险时才使用这个库。”

这是一个相关的SO问题:Why Web Audio API isn't supported in nodejs?

关于javascript - PhantomJS分析mp3文件的FFT数据并保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43339261/

相关文章:

CKEditor 和 Poltergeist/PhantomJS - [CKEDITOR.resourceManager.load] 在“http ://cdn. ckeditor.com”中找不到资源名称 "default"

highcharts - 使用phantomjs将highcharts极坐标图导出为PDF

javascript - 重置 Angular 1.5 View 模型

javascript - 欧芹 - 根据 li 的值隐藏/显示 block

PhantomJS 不返回结果

matlab - 如何在幅频响应上使用逆 FFT?

image - 在 40x100 图像的 20x20 block 上对 blockproc fft2 生成的矩阵的 fft2 进行平均?

java - Java中时域到频域的转换

javascript - 如何通过javascript SDK在facebook上上传照片

javascript - 从 Angular 计算动量? JavaScript