OscillatorNode - Web API 接口参考 编辑
OscillatorNode
接口表示一个振荡器,它产生一个周期的波形信号(如正弦波)。它是一个 AudioScheduledSourceNode
音频处理模块, 这个模块会生成一个指定频率的波形信号(即一个固定的音调)
一个 OscillatorNode 对象是通过
AudioContext.createOscillator()
方法创建的。它总是有一个输出,但没有输入。它的基础属性(定义见 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()
工厂方法.
属性
继承自父类 AudioScheduledSourceNode
,并添加下列属性:
OscillatorNode.frequency
- 一个 a-rate
AudioParam
对象的属性代表了振动的频率(单位为赫兹hertz) (虽然返回的AudioParam 是只读的,但是它所表示的值是可以修改的
)。 默认值是 440 Hz (基本的中A音高).
OscillatorNode.detune
- 一个 a-rate
AudioParam
对象的属性代表振动的音高微调(单位是cent音分) (虽然返回的AudioParam 是只读的,但是它所表示的值是可以修改的
).。默认值是0。
OscillatorNode.type
- 一个字符串,决定
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!Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | 14 webkit | (Yes) | 25 | 未实现 | 15 webkit 22 (unprefixed) | 6 webkit |
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 | 未实现 | 未实现 | 6 webkit | 28 webkit |
constructor | 未实现 | 55.0 | ? | ? | ? | ? | 42 | ? | 55.0 |
See also
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论