【发布时间】:2020-12-16 20:30:34
【问题描述】:
WebAudio 规范为双通道 L/R 平移 (StereoPannerNode) 和 3D 空间中的平移 (PannerNode) 提供 API 调用。尽管如此,我还是找不到适用于 iOS 的方法。
关于正常的 L/R 平移,MDN says 2D audioContext.createStereoPanner() 在 iOS 中没有实现。 (或者在桌面 Safari 上。)也许你可以通过直接调用 PannerNode constructor 来创建一个,但我怀疑它是否有效,至少在 iOS 上是这样。
AudioContext panning audio of playing media 展示了一种在没有 StereoPannerNode 的情况下使用通道合并和通道拆分器进行 L/R 平移的方法。但是,MDN says 的 createChannelMerger 并未在 iOS 上实现。也许你可以直接调用ChannelMergeNode constructor,但我也怀疑这是否可行,至少在 iOS 上是这样。
至于 3D 平移,MDN says iOS 不支持 audioContext.createPanner。 (而桌面 Safari 可以。)同样,也许您可以直接使用 PannerNode 构造函数,但我对此表示怀疑。所以我认为 3D 平移也行不通。
【问题讨论】:
-
我没有对此进行测试,因为我无法访问 Safari 或 iOS,但您是否尝试过 ScriptProcessorNode(现已弃用)路由或 AudioWorklet(在 iOS 上不可用, developer.mozilla.org/en-US/docs/Web/API/Worklet/addModule)?似乎您最终不得不得到一个已弃用的解决方案,或者一些奇怪的两个音频文件并在它们之间逐渐消失。
标签: ios web-audio-api