当音频元素暂停时,AnalyserNode会继续发送数据
AnalyserNode keeps sending data when Audio element is paused
我正在使用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);
当我暂停 Audio 元素时,控制台会不断向我显示来自分析器的数据(并且数据正在更改)。为什么声音暂停时它会不断发送数据?
我认为
这可能是因为您的AnalyserNode
smoothingTimeConstant
,默认为0.8
。
我的猜测是,由于这种随时间推移的平均值,当您暂停<audio>
元素时,值将逐渐衰减到-Infinity
。
无论如何,这只是一个猜测,但我会说我有大约95%的把握。您可以非常轻松地验证它是否设置analyser.smoothingTimeConstant = 0
并查看行为是否仍然存在。
哦,这是规范相关部分的链接:https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#dfn-smoothingTimeConstant
相关文章:
- 用程序搜索JQuery数据表中的文本
- 要求输入在数据列表中
- 正在将数据主题添加到所有项目
- 函数参数中的数据与指定变量之间的任何性能差异
- 在VanillaJS中模拟模型双向数据绑定
- CSS-如何定位内容数据标题
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 序列化数据属性中对象的最可靠方法
- 如何将JSON数据导入我的ejs模板
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 画布数据到图像
- d3.js继续条件加载数据
- GAS - 等到用户输入数据后,功能才会继续
- 当音频元素暂停时,AnalyserNode会继续发送数据
- 如何在高位图中间缺少一系列数据时继续绘制图线
- Angularjs -在重定向期间保留输入的表单数据,以便用户在返回该表单时继续
- 数据表(jQuery的表插件)在离开和返回数据表时继续您离开的地方
- 如何在继续执行之前等待 ajax 使用 JSON 获取数据