ConstantSourceNode

基线 广泛可用

此功能已得到很好的确立,并且可以在许多设备和浏览器版本中运行。它已在浏览器中可用,自 2021年4月.

ConstantSourceNode 接口(Web 音频 API 的一部分)表示一个音频源(基于 AudioScheduledSourceNode),其输出是单个不变的值。这使其在需要从音频源输入恒定值的情况下非常有用。此外,它可以通过自动其 offset 的值或将其连接到另一个节点来用作可构造的 AudioParam;请参阅 使用 ConstantSourceNode 控制多个参数

ConstantSourceNode 没有输入,只有一个单声道(单通道)输出。输出的值始终与 offset 参数的值相同。

EventTarget AudioNode AudioScheduledSourceNode ConstantSourceNode
输入数量 0
输出数量 1

构造函数

ConstantSourceNode()

创建并返回一个新的 ConstantSourceNode 实例,可以选择指定一个对象,该对象为对象的属性建立初始值。或者,您可以使用 BaseAudioContext.createConstantSource() 工厂方法;请参阅 创建 AudioNode

实例属性

继承其父接口 AudioScheduledSourceNode 的属性,并添加以下属性

offset

一个 AudioParam,它指定此源连续输出的值。默认值为 1.0。

事件

继承其父接口 AudioScheduledSourceNode 的事件。

注意:某些浏览器的这些事件实现是 AudioScheduledSourceNode 接口的一部分。

ended

每当 ConstantSourceNode 数据停止播放时触发。

实例方法

继承其父接口 AudioScheduledSourceNode 的方法。

注意:某些浏览器的这些方法实现是 AudioScheduledSourceNode 接口的一部分。

start()

安排声音在精确的时间播放。

stop()

安排声音在精确的时间停止播放。

示例

在文章 使用 ConstantSourceNode 控制多个参数 中,创建了一个 ConstantSourceNode 以允许一个滑块控件更改两个 GainNode 的增益。这三个节点的设置如下

js
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 音频 API
# ConstantSourceNode

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅