gpt4 book ai didi

javascript - HTML 5 音频 - AnalyserNode.getByteFrequencyData() 返回未定义

转载 作者:搜寻专家 更新时间:2023-11-01 05:12:18 30 4
gpt4 key购买 nike

这似乎是一个常见问题 - Javascript Web Audio API AnalyserNode Not Working - 但我不确定我是否在我的实现中找到了边缘案例。

我使用 createMediaElementSource() 创建音频源,但不是使用页面标记中的音频标记,而是使用 Buzz.js 动态创建该元素。

这是我的测试设置:

window.addEventListener('load', function(e) {
audioContext = new webkitAudioContext();
audioAnalyser = audioContext.createAnalyser();

sound = new buzz.sound("sound.mp3");
sound.load().bind("canplaythrough", function(e) {
source = audioContext.createMediaElementSource(this.sound);
source.connect(audioAnalyser);

audioAnalyser.connect(audioContext.destination);

this.play().loop();
});
}, false);

window.setInterval(function(){
array = new Uint8Array(audioAnalyser.frequencyBinCount);
console.log(audioAnalyser.getByteFrequencyData(array));
})

使用上面的代码,声音播放。我还可以附加其他有效的节点(双二阶滤波器、增益等),但 audioAnalyser.getByteFrequencyData 在每一帧上返回未定义的值...

它可能与使用 Buzz.js 有什么关系吗?

最佳答案

这是理解失败...

基本上,我希望控制台记录以下内容的某种输出:

window.setInterval(
array = new Uint8Array(audioAnalyser.frequencyBinCount);
console.log(audioAnalyser.getByteFrequencyData(array));
)

我应该做的是:

window.setInterval(function(){
array = new Uint8Array(audioAnalyser.frequencyBinCount);
audioAnalyser.getByteFrequencyData(array);
console.log(array);
})

有点傻,但我希望能帮助到这里的任何人,他们可能期望 getByteFrequencyData 返回某种值。

关于javascript - HTML 5 音频 - AnalyserNode.getByteFrequencyData() 返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20019285/

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