AudioNode.connect(AudioParam) - Web API 接口参考 编辑
允许我们将当前节点的一个输出连接到音频参数的一个输入,并允许通过音频信号控制参数。
使AudioNode输出连接到多个AudioParam,并将多个AudioNode输出连接到单个 AudioParam,同时多次调用connect()。因此支持Fan-in and fan-out。
AudioParam可以从连接到它的任何AudioNode输出获取渲染的音频数据,并通过下混合将其转换为单声道(如果本身不是单声道的话)。然后,它将其他这样的输出和固定参数混合( AudioParam的值通常没有任何连接),包括为参数调度的任何时间的变化。
因此,可以通过将AudioParam的值设置为中心频率来选择AudioParam将要更改的范围,并使用音频源和AudioParam之间的GainNode来调整AudioParam更改的范围。
Syntax
var lfo = audioCtx.createOscillator();
lfo.frequency.value = 2.0; // Hz, two times per second
var lfoGain = audioCtx.createGain();
lfoGain.gain.value = 0.5;
// this is the parameter that is going to be modulated
var gain = audioCtx.createGain();
gain.gain.value = 0.5;
// Oscillators go from -1 to 1
// Make it go from -0.5 to +0.5 by connecting it to a GainNode with a gain value of 0.5
lfo.connect(lfoGain);
// because the value of the gain.gain AudioParam is originaly 0.5, the value is added, and it will go from 0.0 to 1.0
lfoGain.connect(gain.gain);
lfo.connect(gain.gain);
Note: There can only be one connection between an output from one specific AudioNode
and an AudioParam
. Multiple connections to the same termini are equivalent to a single such connection (the duplicates are ignored).
Returns
Void.
Example
In this example, we will be altering the gain value of a GainNode
using an OscillatorNode
with a slow frequency value. This technique is know as an LFO-controlled parameter.
var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();
// create an normal oscillator to make sound
var oscillator = audioCtx.createOscillator();
// create a second oscillator that will be used as an LFO (Low-frequency
// oscillator), and will control a parameter
var lfo = audioCtx.createOscillator();
// set the frequency of the second oscillator to a low number
lfo.frequency.value = 2.0; // 2Hz: two oscillations par second
// create a gain whose gain AudioParam will be controlled by the LFO
var gain = audioCtx.createGain();
// connect the LFO to the gain AudioParam. This means the value of the LFO
// will not produce any audio, but will change the value of the gain instead
lfo.connect(gain.gain);
// connect the oscillator that will produce audio to the gain
oscillator.connect(gain);
// connect the gain to the destination so we hear sound
gain.connect(audioCtx.destination);
// start the oscillator that will produce audio
oscillator.start();
// start the oscillator that will modify the gain value
lfo.start();
Parameters
- Destination
- The
AudioParam
you are connecting to. - Output (optional)
- An index describing which output of the current
AudioNode
you want to connect to theAudioParam
. The index numbers are defined according to the number of output channels (see Audio channels.) If this parameter is out-of-bound, anINDEX_SIZE_ERR
exception is thrown.
Specifications
Specification | Status | Comment |
---|---|---|
Web Audio API connect(AudioParam) | Working Draft |
Browser compatibility
We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
connect (AudioParam) | (Yes) webkit | (Yes) | 未实现 | (Yes) | 未实现 |
Feature | Android | Firefox Mobile (Gecko) | Firefox OS (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
connect (AudioParam) | 未实现 | (Yes) | (Yes) | 未实现 | 未实现 | 未实现 |
See also
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论