OscillatorNode

OscillatorNode 接口表示一个振荡器,它产生一个周期的波形信号(如正弦波)。它是一个 AudioScheduledSourceNode 音频处理模块, 这个模块会生成一个指定频率的波形信号(即一个固定的音调)

一个 OscillatorNode 对象是通过 AudioContext.createOscillator() (en-US) 方法创建的。它总是有一个输出,但没有输入。它的基础属性(定义见 AudioNode )默认如下:

Number of inputs 0
Number of outputs 1
Channel count mode max
Channel count 2 (not used in the default count mode)
Channel interpretation speakers

构造函数

OscillatorNode()
创建一个OscillatorNode对象的示例, 为nodeproperties提供可选的一个定义默认值的对象.  如果默认值可接受,你可以简单地调用AudioContext.createOscillator() (en-US)工厂方法.

属性

继承自父类 AudioScheduledSourceNode,并添加下列属性:

OscillatorNode.frequency
一个 a-rate AudioParam 对象的属性代表了振动的频率(单位为赫兹hertz) (虽然返回的AudioParam 是只读的,但是它所表示的值是可以修改的)。 默认值是 440 Hz (基本的中A音高).
OscillatorNode.detune
一个 a-rate AudioParam 对象的属性代表振动的音高微调(单位是cent音分)  (虽然返回的AudioParam 是只读的,但是它所表示的值是可以修改的).。默认值是0。
OscillatorNode.type (en-US)
一个字符串,决定 OscillatorNode 播放的声音的周期波形; 它的值可以是基础值中的一个或者用户使用 PeriodicWave。不同的波形可以产生不同的声调。 基础值有 "sine", "square", "sawtooth", "triangle" and "custom". 默认值是"sine"。

方法

继承自父级, AudioScheduledSourceNode, 自有方法如下:

OscillatorNode.setPeriodicWave()
设置一个 PeriodicWave ,它描述了一个周期的波形常常替代标准波形之一; 调用这个方法来设置用户自定义的波形。它取代了已经废弃了的 OscillatorNode.setWaveTable() 方法。

示例

下面示例展示了 AudioContext 的基本使用 来创建一个 oscillator 节点 并使用它来播放音乐。这是已经在运行的例子,可以看这里 Violent Theremin demo (see app.js 是相关代码).

// create web audio api context
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();

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

oscillator.type = 'square';
oscillator.frequency.value = 440; // value in hertz
oscillator.connect(audioCtx.destination);
oscillator.start();

说明

Specification Status Comment
Web Audio API
OscillatorNode
Working Draft

浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help! (en-US)
Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 14 webkit (en-US) (Yes) 25 未实现 15 webkit (en-US)
22 (unprefixed)
6 webkit (en-US)
constructor 55.0 ? ? ? 42 ?
Feature Android Android Webview Edge Firefox Mobile (Gecko) Firefox OS IE Phone Opera Mobile Safari Mobile Chrome for Android
Basic support 未实现 (Yes) (Yes) 25 1.2 未实现 未实现 webkit (en-US) 28 webkit (en-US)
constructor 未实现 55.0 ? ? ? ? 42 ? 55.0

See also