javascript - Web Audio API AudioParam.value 未记录

标签 javascript audio web-audio-api

我试图弄清楚如何读取 AudioParam 的当前值。当 AudioNode 通过 AudioNode.connect(AudioParam) 修改 AudioParam 时,它似乎不会影响 AudioParam.value。

这是一个例子: 我有一个连接到增益节点(增益)的振荡器(源)。我有另一个振荡器(mod)路由到增益节点(modAmp)。然后 ModAmp 连接到 Gain.gain。我还有一个用于 Gain.gain 的仪表,更改文本框以显示 Gain.gain.value 当我们播放振荡器时,可以听到增益上下移动的声音,但仪表保持原始设置不变。如何实时读取 AudioParam?

http://jsfiddle.net/eliotw/3o0d0ovs/4/ (请注意,每次要运行振荡器时都必须运行脚本)

//create audio context
window.AudioContext = window.AudioContext || window.webkitAudioContext;
var context = new window.AudioContext();

//create source and gain, connect them
var source = context.createOscillator();
var gain = context.createGain();
source.connect(gain);

//create modulator and gain for it and connect them
var mod = context.createOscillator();
var modAmp = context.createGain(); 
mod.connect(modAmp);

//connect modulator gain node to audio param 
modAmp.connect(gain.gain);

//connect to audio context
gain.connect(context.destination);

//source values
source.frequency.value = 220;
gain.gain.value = 0.5;

//mod values
mod.frequency.value = 6;
modAmp.gain.value = 0.5;

source.start(0);
mod.start(0);

setInterval(function() {
      console.log(gain.gain.value);
    },
    600
);

最佳答案

你不能,真的。唯一的方法是将其连接到脚本处理器节点或分析器节点并查看输出位。后者(使用 getFloatTimeDomainData)可能就是我的做法。

关于javascript - Web Audio API AudioParam.value 未记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29176858/

相关文章:

javascript - Web音频增益节点未完全静音

webrtc - 通过webrtc流式传输静态视频文件

javascript - 有没有办法从音频文件中获取诸如分贝级别之类的信息并将该信息转换为 json 数组?

javascript - 使用 Redux 未从数组中删除项目

javascript - 给定一个字符串数组,如何最好地将其转换为数组?

javascript html5元素删除

html - 音频内容类型 aacp

iphone - mobile safari 为 html 音频标签呈现空白

javascript - 将参数从 JSP 传递到 Struts 2 中的操作类

javascript - 获取帖子时数据到达未定义