我刚刚编写了第二个Processing脚本,我试图在HTML5页面中获取它。我的脚本从输入歌曲(mp3)中检测频率的强度,并将每个频率分配给图像的色调范围以使图像动画化。我已经包含了processing.js和Pomax的minim.js。我收到以下错误:
Uncaught ReferenceError: FFT is not defined
当它遇到行
时会发生这种情况FFT fft;
在我的处理草图中。我看了一下minim.js,它看起来像是一个小型库的一小部分。页面正在绘制框,所以我认为它只是缺少分析音频的FFT函数。然而,我更倾向于所有这一切的视觉艺术方面,所以可能是minim.js比我想象的要少得多。
有谁知道如何在minim.js中实现FFT?在HTML5环境中,它可能非常强大。我不确定我会做什么,但我想我可以找到另一个音频分析库。
我对这个世界还很陌生,所以如果您有任何疑问或需要代码请告诉我。
谢谢!
答案 0 :(得分:1)
这实际上是使用Audio 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