1

我刚刚编写了我的第二个处理脚本,并试图在 HTML5 页面中获取它。我的脚本从输入歌曲 (mp3) 中检测频率强度,并将每个频率分配给图像的色调范围以使图像动画化。我已经包含了 processing.js 和 Pomax 的 minim.js。我收到以下错误:

Uncaught ReferenceError: FFT is not defined 

看起来当它击中线时会发生这种情况

FFT fft; 

在我的处理草图中。我查看了 minim.js,它看起来像是 minim 库的一小部分。该页面正在绘制框,所以我认为它只是缺少分析音频的 FFT 功能。然而,我更多地关注这一切的视觉艺术,所以 minim.js 可能比我想象的要少得多。

有谁知道如何在 minim.js 中实现 FFT?在 HTML5 上下文中,它可能非常强大。我不确定我会做什么,但我想我可以找到另一个音频分析库。

我对这个世界很陌生,所以如果您有任何问题或需要代码,请告诉我。

谢谢!

4

1 回答 1

1

这实际上是使用音频 API 的 javascript 中的 6 行代码,没有任何库,那么为什么你想要一个 exta 库的开销来实现你可以用 6 行代码实现的东西呢?

var sfx = new AudioContext();
var mediaSourceNode = sfx.createMediaElementSource(document.getElementById("yourAudio"));
var analyser = sfx.createAnalyser();
var timeDomainData = new Uint8Array(analyser.frequencyBinCount);
mediaSourceNode.connect(analyser);
analyser.connect(sfx.destination);

您将要播放的音频放在 html5<audio>元素中,并获得用于音频播放的基本用户界面。

为了从分析器调用中获取数据

analyser.getByteTimeDomainData(timeDomainData);

从您的绘图循环中。您的数据将在var timeDomainData

有关将 javascript 与 processing.js 结合使用的信息,请参阅http://processingjs.org/articles/PomaxGuide.html

于 2014-05-20T21:28:26.293 回答