OscillatorNode.setPeriodicWave() - Web API 接口参考 编辑

 OscillatorNode 接口的 setPeriodicWave()方法用来指向 PeriodicWave,PeriodicWave 定义了一个周期性波形能够形成oscillator的输出, 当type 是 custom 的时候.

该方法取代了废弃的 OscillatorNode.setWaveTable().

语法

OscillatorNode.setPeriodicWave(wave);

参数

wave
一个 PeriodicWave 对象, 表示特定的波形用来形成oscillator的输出。

返回值

undefined

示例

下面示例说明了 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.

说明

SpecificationStatusComment
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!
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support14 webkit(Yes)23未实现15 webkit
22 (unprefixed)
6 webkit
FeatureAndroidChromeEdgeFirefox Mobile (Gecko)Firefox OSIE PhoneOpera MobileSafari Mobile
Basic support未实现28 webkit(Yes)251.2未实现未实现webkit

See also

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

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

发布评论

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

词条统计

浏览:149 次

字数:6004

最后编辑:7 年前

编辑次数:0 次

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