--- title: OscillatorNode slug: Web/API/OscillatorNode translation_of: Web/API/OscillatorNode ---
{{APIRef("Web Audio API")}}
OscillatorNode
接口表示一个振荡器,它产生一个周期的波形信号(如正弦波)。它是一个 {{domxref("AudioScheduledSourceNode")}} 音频处理模块, 这个模块会生成一个指定频率的波形信号(即一个固定的音调)
一个 OscillatorNode 对象是通过
{{domxref("AudioContext.createOscillator()")}} 方法创建的。它总是有一个输出,但没有输入。它的基础属性(定义见 {{domxref("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 |
继承自父类 {{domxref("AudioScheduledSourceNode")}},并添加下列属性:
AudioParam 是只读的,但是它所表示的值是可以修改的
)。 默认值是 440 Hz (基本的中A音高).AudioParam 是只读的,但是它所表示的值是可以修改的
).。默认值是0。OscillatorNode 播放的声音的周期波形
; 它的值可以是基础值中的一个或者用户使用 {{domxref("PeriodicWave")}}。不同的波形可以产生不同的声调。 基础值有 "sine"
, "square"
, "sawtooth"
, "triangle"
and "custom"
. 默认值是"sine"。
继承自父级, {{domxref("AudioScheduledSourceNode")}}, 自有方法如下:
下面示例展示了 {{ domxref("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 |
---|---|---|
{{SpecName('Web Audio API', '#the-oscillatornode-interface', 'OscillatorNode')}} | {{Spec2('Web Audio API')}} |
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | 14 {{property_prefix("webkit")}} | {{CompatVersionUnknown}} | 25 | {{CompatNo}} | 15 {{property_prefix("webkit")}} 22 (unprefixed) |
6 {{property_prefix("webkit")}} |
constructor | {{CompatChrome(55.0)}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatOpera(42)}} | {{CompatUnknown}} |
Feature | Android | Android Webview | Edge | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|---|---|
Basic support | {{CompatNo}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | 25 | 1.2 | {{CompatNo}} | {{CompatNo}} | 6 {{property_prefix("webkit")}} | 28 {{property_prefix("webkit")}} |
constructor | {{CompatNo}} | {{CompatChrome(55.0)}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatOpera(42)}} | {{CompatUnknown}} | {{CompatChrome(55.0)}} |