gpt4 book ai didi

ios - 如何在 iOS 的网络音频实现中平移音频?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:28:49 26 4
gpt4 key购买 nike

WebAudio 规范为双 channel 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 的情况下使用 channel 合并和 channel 分离器进行 L/R 平移的方法。但是,MDN says createChannelMerger 未在 iOS 上实现。也许你可以直接调用 ChannelMergeNode constructor ,但我也怀疑这是否可行,至少在 iOS 上是这样。

关于 3D 平移,MDN says iOS 不支持 audioContext.createPanner。 (而桌面 Safari 可以。)同样,也许您可​​以直接使用 PannerNode 构造函数,但我对此表示怀疑。所以我认为 3D 平移也行不通。

最佳答案

StereoPannerNode 尚不可用,但 3D PannerNode 应该可以正常工作(还不是构造函数,但使用 .createPanner()方法)。例如,这就是您如何在 iOS 上使用 3D 平移器实现立体声平移:

var pan = -1;  // This should be in range [-1, 1]

if (context.createStereoPanner) {
var panner = context.createStereoPanner();
panner.pan.value = pan;
} else {
var panner = context.createPanner();
panner.panningModel = 'equalpower';
panner.setPosition(pan, 0, 1 - Math.abs(pan));
}

someSource.connect(panner);
panner.connect(context.destination);

我认为 MDN 支持表不准确或有点过时。查看 PannerNode docs at MDN ,支持表看起来与您链接的表不同。

关于ios - 如何在 iOS 的网络音频实现中平移音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52809552/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com