我正在开发一个使用 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/