PeriodicWave - Web API 接口参考 编辑
PeriodicWave
接口定义了一个可用于对 OscillatorNode
(振荡节点) 的输出进行构造(描述)的周期性波形。
PeriodicWave
(周期波) 没有输入或输出;它用于调用 OscillatorNode.setPeriodicWave()
时定义自定义振荡器。 PeriodicWave
自身由 AudioContext.createPeriodicWave()
创建/返回。
构造函数
PeriodicWave.PeriodicWave()
- 使用所有属性的默认值创建一个新的
PeriodicWave
对象实例。如果你想一开始就建立自定义属性值,请使用AudioContext.createPeriodicWave()
工厂方法替代。
属性
None; 而且, PeriodicWave
不继承任何属性。
方法
None; 而且, PeriodicWave
继承任何属性。
例子
下面的例子为 createPeriodicWave()
的简单用法,创建包含简单正弦波的 PeriodicWave
对象。
var real = new Float32Array(2);
var imag = new Float32Array(2);
var ac = new AudioContext();
var osc = ac.createOscillator();
real[0] = 0;
imag[0] = 0;
real[1] = 1;
imag[1] = 0;
var wave = ac.createPeriodicWave(real, imag, {disableNormalization: true});
osc.setPeriodicWave(wave);
osc.connect(ac.destination);
osc.start();
osc.stop(2);
这之所以有用是因为根据定义仅包含基本音调的声音是正弦波。
这里,我们创建一个具有两个值的 PeriodicWave
(周期波) 。第一个值是 DC(直流) 偏移,它是振荡器启动的值。0在这里是好的,因为我们想在 [-1.0; 1.0] 范围的中间开始曲线。
第二个值和后续值是正弦和余弦分量。你可以把它看做是傅里叶变换的结果,可以从时域值中获取频域值。这里,使用 createPeriodicWave()
,你可以指定频率,浏览器会执行一个逆傅里叶变换,以获得振荡器的时域缓冲。这里,我们只在基础音上设置了一个全音量(1.0)的分量,所以我们得到一个正弦波。
傅里叶变换系数应该按升序给出 (例如. 等.) 可以是正的或者是负的。一个简单的手动获取此类系数的方法是使用图形计算器,尽管这不是最好的。
规格
Specification | Status | Comment |
---|---|---|
Web Audio API PeriodicWave | Working Draft |
浏览器兼容性
BCD tables only load in the browser
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.参见
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论