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 的值发生变化,gainNode2gainNode3 的增益就会变为相同的值。

要查看该示例的实际操作,以及阅读从中派生这些片段的其余代码,请参阅使用 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.

相关链接