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

标签 javascript audio html5-audio webkitaudiocontext buzz.js

这似乎是一个常见问题 - 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/

相关文章:

javascript - Google Charts 注释时间线 - 在缩放时调整 y 轴

javascript - 如何使用 jQuery 更改特定文本?

javascript - 打印网页而不显示打印对话框和此网页

audio - 将分析仪连接到咆哮声

audio - 对MP3文件字节数组的html5访问

javascript - 当我克隆输入时 onblur 不起作用

javascript - Flash HTML5 Canvas 的音频。暂停和恢复功能条件

java - 在 java 中加载 mp3 文件时面临的问题无法从输入文件中获取音频输入流

javascript - Firefox 6 HTML audio.duration = NaN 问题

javascript - html5 显示音频当前时间