OscillatorNode:type 属性

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

OscillatorNode 接口的 type 属性指定振荡器将输出的 波形 的形状。有几种常见的波形可供选择,还可以选择指定自定义波形形状。波形的形状会影响产生的音色。

一个指定振荡器波形形状的字符串。可用的值有:

sine

一个 正弦波。这是默认值。

square

一个 方波占空比 为 0.5;也就是说,信号在每个周期内有“高”状态的时间占一半。

sawtooth

一个 锯齿波

triangle

一个 三角波

custom

自定义波形。你永远不能手动将 type 设置为 custom;相反,请使用 setPeriodicWave() 方法来提供表示波形的数据。这样做会自动将 type 设置为 custom

另请参阅 不同振荡器节点类型,以可视化不同波形形状。

异常

InvalidStateError DOMException

如果指定了 custom 值,则会抛出此异常。要设置自定义波形,只需调用 setPeriodicWave()。这样做会自动为您设置类型。

示例

以下示例展示了如何使用 AudioContext 创建振荡器节点。如需实际示例,请查看我们的 Violent Theremin 演示查看 app.js 获取相关代码)。

js
// create web audio api context
const audioCtx = new AudioContext();

// create Oscillator node
const oscillator = audioCtx.createOscillator();

oscillator.type = "square";
oscillator.frequency.setValueAtTime(440, audioCtx.currentTime); // value in hertz
oscillator.start();

规范

规范
Web Audio API
# dom-oscillatornode-type

浏览器兼容性

另见