From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- files/zh-cn/web/api/oscillatornode/index.html | 190 ++++++++++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 files/zh-cn/web/api/oscillatornode/index.html (limited to 'files/zh-cn/web/api/oscillatornode/index.html') diff --git a/files/zh-cn/web/api/oscillatornode/index.html b/files/zh-cn/web/api/oscillatornode/index.html new file mode 100644 index 0000000000..7b1bf096bc --- /dev/null +++ b/files/zh-cn/web/api/oscillatornode/index.html @@ -0,0 +1,190 @@ +--- +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 inputs0
Number of outputs1
Channel count modemax
Channel count2 (not used in the default count mode)
Channel interpretationspeakers
+ +

构造函数

+ +
+
{{domxref("OscillatorNode.OscillatorNode", "OscillatorNode()")}}
+
创建一个OscillatorNode对象的示例, 为node{{anch("properties")}}提供可选的一个定义默认值的对象.  如果默认值可接受,你可以简单地调用{{domxref("AudioContext.createOscillator()")}}工厂方法.
+
+ +

属性

+ +

继承自父类 {{domxref("AudioScheduledSourceNode")}},并添加下列属性:

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

方法

+ +

继承自父级, {{domxref("AudioScheduledSourceNode")}}, 自有方法如下:

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

示例

+ +

下面示例展示了 {{ 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();
+ +

说明

+ + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('Web Audio API', '#the-oscillatornode-interface', 'OscillatorNode')}}{{Spec2('Web Audio API')}}
+ +

浏览器兼容性

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support14 {{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}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidAndroid WebviewEdgeFirefox Mobile (Gecko)Firefox OSIE PhoneOpera MobileSafari MobileChrome for Android
Basic support{{CompatNo}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}251.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)}}
+
+ +

See also

+ + -- cgit v1.2.3-54-g00ecf