OscillatorNode.setPeriodicWave() - Web API 接口参考 编辑
OscillatorNode
接口的 setPeriodicWave()
方法
用来指向 PeriodicWave
,PeriodicWave 定义了一个周期性波形能够形成oscillator的输出, 当type
是 custom 的时候
.
该方法取代了废弃的 OscillatorNode.setWaveTable()
.
语法
OscillatorNode.setPeriodicWave(wave);
参数
wave
- 一个
PeriodicWave
对象, 表示特定的波形用来形成oscillator的输出。
返回值
示例
下面示例说明了 createPeriodicWave() 方法的简单使用
, 从一个周期波形中重新生成了一个正弦波形。
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);
osc.setPeriodicWave(wave);
osc.connect(ac.destination);
osc.start();
osc.stop(2);
这段代码可以运行因为通过定义一个正弦波形使得声音包含了基础的音调。
这里,我们用两个值创建一个PeriodicWave
。第一个值是直流偏移,是oscillator开始的时候的值。这里 0 很合适,因为我们想要在 [-1.0; 1.0] 这个范围的中间值开始。
第二个和后面的值是正弦和余弦内容。可以把它看做傅里叶变换的结果,使得可以从时间阈值得到频率阈值。这里通过 createPeriodicWave() 方法,可以指定频率,并且浏览器执行逆傅里叶变换来得到一个时间阈值缓冲。
Here, we only set one component at full volume (1.0) on the fundamental tone, so we get a sine wave.
说明
Specification | Status | Comment |
---|---|---|
Web Audio API setPeriodicWave | 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) | 23 | 未实现 | 15 webkit 22 (unprefixed) | 6 webkit |
Feature | Android | Chrome | Edge | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|---|
Basic support | 未实现 | 28 webkit | (Yes) | 25 | 1.2 | 未实现 | 未实现 | 6 webkit |
See also
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论