OscillatorNode

基线 广泛可用

此功能已完善,可在许多设备和浏览器版本上运行。自以下时间起,它已在各个浏览器中可用 2021 年 4 月.

OscillatorNode 接口表示周期性波形,例如正弦波。它是一个 AudioScheduledSourceNode 音频处理模块,用于创建给定波形的指定频率 - 实际上,这是一个恒定的音调。

EventTarget AudioNode AudioScheduledSourceNode OscillatorNode
输入数量 0
输出数量 1
通道计数模式 最大值
通道数 2(在默认计数模式中未使用)
通道解释 扬声器

构造函数

OscillatorNode()

创建一个新的 OscillatorNode 对象实例,可以选择提供一个对象,为节点的 属性 指定默认值。或者,您可以使用 BaseAudioContext.createOscillator() 工厂方法;请参阅 创建 AudioNode

实例属性

还继承了其父级 AudioScheduledSourceNode 的属性。

OscillatorNode.frequency

一个 a 速率 AudioParam,表示以赫兹为单位的振荡频率(尽管返回的 AudioParam 是只读的,但它表示的值不是)。默认值为 440 赫兹(标准的 A 音)。

OscillatorNode.detune

一个 a 速率 AudioParam,表示以音分表示的振荡失谐(尽管返回的 AudioParam 是只读的,但它表示的值不是)。默认值为 0。

OscillatorNode.type

一个字符串,指定要播放的波形的形状;这可以是一些标准值之一,或者 custom 以使用 PeriodicWave 描述自定义波形。不同的波形会产生不同的音调。标准值为 "sine""square""sawtooth""triangle""custom"。默认值为 "sine"

实例方法

还继承了其父级 AudioScheduledSourceNode 的方法。

OscillatorNode.setPeriodicWave()

设置一个 PeriodicWave,该波形描述一个周期性波形,用于代替标准波形之一;调用此方法会将 type 设置为 custom

AudioScheduledSourceNode.start()

指定开始播放音调的确切时间。

AudioScheduledSourceNode.stop()

指定停止播放音调的时间。

事件

还继承了其父级 AudioScheduledSourceNode 的事件。

示例

以下示例显示了 AudioContext 的基本用法,用于创建振荡器节点并在其上开始播放音调。有关应用示例,请查看我们的 暴力电子琴演示请参阅 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.connect(audioCtx.destination);
oscillator.start();

规范

规范
Web Audio API
# OscillatorNode

浏览器兼容性

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

另请参阅