javascript - 在 Safari 和 Edge 中替代 audioContext.copyToChannel()

标签 javascript safari web-audio-api microsoft-edge

Safari 和 Edge 都不支持 audioContext.copyToChannel() 函数用自定义内容填充 audioBuffer。还有其他方法吗?

在我的例子中,我想创建一个脉冲响应,用该响应填充一个缓冲区,然后将一些声音与该缓冲区进行卷积。对于 Chrome 和 Firefox 这有效:

buffer = audioCtx.createBuffer(numOfChannels, 1, sampleRate);
buffer.copyToChannel(impulseResponse, 0);
buffer.copyToChannel(impulseResponse, 1);
convolverNode.buffer = buffer;

最佳答案

您可以在 AudioBuffer 上使用 getChannelData(channel),然后您会得到一个常规的 Float32Array,您可以随意修改。也许您想查看 set 方法?

copyToChannel 用于优化缓冲区副本,如 spec 中所述(见下面的小绿框。

关于javascript - 在 Safari 和 Edge 中替代 audioContext.copyToChannel(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32640573/

相关文章:

javascript - HTML5/js与flash-like的比较

javascript - 发送推送通知以从应用程序内部更改图 block

javascript - asp.net 我可以将配置设置注入(inject) javascript 吗?

javascript - Web 音频流的采样率转换

speech - Web Speech API可以与Web Audio API一起使用吗?

javascript - 录制音频、同步循环、偏移延迟和导出部分

javascript - 将 img 标签替换为 H1 标签

javascript - 访问窗口历史记录对象中的 URL

javascript - jQuery .click 处理程序在 Safari 中不起作用

css - Safari 5.1.3位置:已修复加载滚动渲染问题