OscillatorNode - Web API 接口参考 编辑

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

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

Number of inputs0
Number of outputs1
Channel count modemax
Channel count2 (not used in the default count mode)
Channel interpretationspeakers

构造函数

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();

说明

SpecificationStatusComment
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!
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support14 webkit(Yes)25未实现15 webkit
22 (unprefixed)
6 webkit
constructor55.0???42?
FeatureAndroidAndroid WebviewEdgeFirefox Mobile (Gecko)Firefox OSIE PhoneOpera MobileSafari MobileChrome for Android
Basic support未实现(Yes)(Yes)251.2未实现未实现webkit28 webkit
constructor未实现55.0????42?55.0

See also

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:153 次

字数:11053

最后编辑:6 年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文