gpt4 book ai didi

javascript - 振荡器的网络音频 FFT?

转载 作者:行者123 更新时间:2023-11-28 01:59:18 25 4
gpt4 key购买 nike

我正在尝试在振荡器上使用网络音频的 FFT。

相关代码:

var context = new window.webkitAudioContext

var osc = context.createOscillator()
var an = context.createAnalyser()
osc.connect(an)
an.connect(context.destination)

osc.start(0)
osc.stop(context.currentTime + 2) //play sine wave for 2 seconds

var freqDomain = new Int8Array(an.frequencyBinCount)
an.getByteFrequencyData(freqDomain)
console.dir(freqDomain) //all 0's

此外,调用 an.getTimeDomainData 也不会返回任何内容。我做错了什么?

最佳答案

上面代码中发生的情况是,您立即尝试获取字节频率数据 - 但由于音频尚未开始,因此还没有数据。每当您想要将数据从 AnalyserNode 复制到 freqDomain 数组时,都需要调用 getByteFrequencyData

您可以设置ScriptProcessorNode ,或者使用简单的 setInterval 来调用分析,例如

var freqDomain = new Int8Array(an.frequencyBinCount);

function proc () {
an.getByteFrequencyData(freqDomain);
console.log(freqDomain[0]); // Just output one element so we don't destroy the console
}
setInterval(proc, 22);

关于javascript - 振荡器的网络音频 FFT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18674704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com