ConstantSourceNode - 代表一个音频源(基于 AudioScheduledSourceNode),其输出是单个不变的值。
AudioSourceNode
接口 - Web Audio API 的一部分 - 代表一个音频源(基于 AudioScheduledSourceNode
),其输出是单个不变的值。这使得它对于需要从音频源传入的常量值的情况非常有用。该外,它可以像一个可构造的 AudioParam
一样使用它自动化 offset
的值或者通过连接另一个节点来实现它;请参阅使用 ConstantSourceNode 控制多个参数。
ConstantSourceNode
没有输入,只有一个单声道(单声道)输出。输出的值始终与 offset
参数的值相同。
该接口的一些实现直接从
AudioSourceNode
继承,实现了'AudioScheduledSourceNode` 的属性和方法。
Number of inputs | 0 |
---|---|
Number of outputs | 1 |
Channel count | 1 |
构造函数
ConstantSourceNode()
创建并返回一个新的 ConstantSourceNode
实例,可选择指定一个对象,该对象为对象的属性建立初始值。您还可以通过调用 AudioContext.createConstantSource()
来创建一个 ConstantSourceNode
,其属性初始化为默认值。
属性
从其父接口 AudioScheduledSourceNode
继承属性,并添加以下属性:
offset
一个 AudioParam
,它指定该源连续输出的值。默认值为 1.0。
事件处理程序
从其父接口 AudioScheduledSourceNode
继承了事件处理程序。
某些浏览器的该事件处理程序的实现是
AudioScheduledSourceNode
接口的一部分。
onended
只要 ConstantSourceNode
数据停止播放就会被触发。
方法
从其父接口 AudioScheduledSourceNode
继承了方法。
某些浏览器的这些方法的实现是
AudioScheduledSourceNode
接口的一部分。
start()
安排在准确的时间开始播放声音。
stop()
安排在准确的时间停止播放声音。
实例
在使用 ConstantSourceNode 控制多个参数一文中,创建了一个 ConstantSourceNode
,允许一个滑块控件更改两个 GainNode
上的增益(gain)。这三个节点的设置如下:
gainNode2 = context.createGain();
gainNode3 = context.createGain();
gainNode2.gain.value = gainNode3.gain.value = 0.5;
volumeSliderControl.value = gainNode2.gain.value;
constantNode = context.createConstantSource();
constantNode.connect(gainNode2.gain);
constantNode.connect(gainNode3.gain);
constantNode.start();
gainNode2.connect(context.destination);
gainNode3.connect(context.destination);
该代码首先创建增益节点并设置它们以及将其值全部调整为 0.5 的音量控制。然后通过调用 AudioContext.createConstantSource()
创建 ConstantSourceNode
,并且两个增益节点中的每一个的增益参数连接到 ConstantSourceNode
。通过调用其 start()
方法启动常量源后。最后,两个增益节点连接到音频目的地(通常是扬声器或耳机)。
现在,只要 constantNode.offset
的值发生变化,gainNode2
和 gainNode3
的增益就会变为相同的值。
要查看该示例的实际操作,以及阅读从中派生这些片段的其余代码,请参阅使用 ConstantSourceNode 控制多个参数。
规范
规范 | 状态 | 备注 |
---|---|---|
Web Audio API ConstantSourceNode 的定义 |
工作草案 | - |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 不支持 | 未知 | 521 | 不支持 | 不支持 | 不支持 |
ConstantSourceNode() constructor |
不支持 | 未知 | 52 | 不支持 | 不支持 | 不支持 |
offset |
56 | 不支持 | 52 — 532 | 不支持 | 不支持 | 不支持 |
onended |
14 | 不支持 | 52 — 532 | 不支持 | 不支持 | 不支持 |
start |
14 | 不支持 | 52 — 532 | 不支持 | 不支持 | 不支持 |
stop |
14 | 不支持 | 52 — 532 | 不支持 | 不支持 | 不支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 不支持 | 不支持 | 未知 | 521 | 未知 | 不支持 | 不支持 |
ConstantSourceNode() constructor |
不支持 | 不支持 | 未知 | 52 | 未知 | 不支持 | 不支持 |
offset |
不支持 | 不支持 | 不支持 | 52 — 532 | 未知 | 不支持 | 不支持 |
onended |
14 | 14 | 不支持 | 52 — 532 | 未知 | 不支持 | 不支持 |
start |
14 | 14 | 不支持 | 52 — 532 | 未知 | 不支持 | 不支持 |
stop |
14 | 14 | 不支持 | 52 — 532 | 未知 | 不支持 | 不支持 |
1. ConstantSourceNode
inherited from AudioNode
initially, but was changed in Firefox 53 to inherit from AudioScheduledSourceNode
.
2. This property is still available, but via the inheritance of AudioScheduledSourceNode
.