javascript - Web Audio API 过滤器在 Safari 中不起作用

标签 javascript safari html5-canvas web-audio-api

我正在开发一个使用 Createjs 和 Web Audio API 的 HTML5 canvas 交互式作品。尽管 webkitAudioContext 被 Chrome 和 FF 而不是 Safari 弃用,但我已经设法让音频在 Chrome/Firefox/Safari 中工作。但是,出于某种原因,过滤器在 Safari 中不起作用,但声音仍在播放。过滤器在 Chrome/FF 中工作。

我的过滤器设置如下:

var sound = new Audio();
sound.src = './sounds/sound.mp3';
sound.autoplay = false;
sound.loop = true;
soundSource = context.createMediaElementSource(sound);
var soundFilter = context.createBiquadFilter();
soundFilter.type = "lowpass";
soundFilter.frequency.value = 500;
soundSource.connect(soundFilter);
soundFilter.connect(context.destination);

我是否在不知不觉中使用了已弃用的术语或其他什么?现场项目可以找到here .干杯。

更新:这已被 WebKit 团队确认为真正的错误,并将进行修补。 Full details here

最佳答案

显然 Safari doesn't implement createMediaElementSource correctly .因此,它不会通过您的 Web Audio 节点重定向声音,它仍然只是将声音直接播放到音频设备。

有什么特殊原因导致您不能使用 BufferSourceNode 吗?它会让您跳过额外的环节来获取声音文件并对其进行解码,但它应该可以工作。

关于javascript - Web Audio API 过滤器在 Safari 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29388732/

相关文章:

javascript - 通过 Javascript 将字母大写

html - 列表下拉导航 - 适用于除 safari 之外的所有浏览器。间隔开且缓慢

jquery - 旋转 + 缩放图像

javascript - 将两个 $.each() 循环重构为一个

javascript - Cakephp 未将下拉列表中的选定值更改为默认值

javascript - 在不调整浏览器窗口大小的情况下模拟方向更改

firefox - css3三 Angular 形带一个圆 Angular

html - <1px 边框问题在 Safari 11.1.2

javascript - 使用 kinetic js canvas 在保持比例的同时调整图像大小

ios - 如何在 Safari iOS 的 html5 Canvas 中缩放表情符号?