gpt4 book ai didi

javascript - 当 Audio 元素暂停时,AnalyserNode 继续发送数据

转载 作者:行者123 更新时间:2023-11-28 01:49:33 26 4
gpt4 key购买 nike

我正在使用 Web Audio API,但有些行为我无法理解。

var audio = document.querySelector('audio');
var context = new AudioContext();
var source = context.createMediaElementSource(audio);
var analyser = context.createAnalyser();
source.connect(analyser);
source.connect(context.destination);

setInterval(function() {
var freqDomain = new Float32Array(analyser.frequencyBinCount);
analyser.getFloatFrequencyData(freqDomain);
console.log(freqDomain);
},1000);

当我暂停音频元素时,控制台不断向我显示来自分析器的数据(并且数据正在变化)。为什么声音暂停后还继续发送数据?

最佳答案

我认为这可能是因为 smoothingTimeConstant您的AnalyserNode ,默认为0.8 .

我的猜测是,由于随着时间的推移进行平均,当您暂停 <audio> 时元素,值将逐渐向 -Infinity 衰减.

无论如何,这只是一个猜测,但我想说我有 95% 的把握。您可以通过设置 analyser.smoothingTimeConstant = 0 轻松验证它并查看该行为是否持续存在。

哦,这是规范相关部分的链接:https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#dfn-smoothingTimeConstant

关于javascript - 当 Audio 元素暂停时,AnalyserNode 继续发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19871294/

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