如何在iOS'中平移音频;网络音频实现?

如何在iOS'中平移音频;网络音频实现?,ios,web-audio-api,Ios,Web Audio Api,WebAudio规范为双通道L/R平移(StereoPannerNode)和3D空间平移(PannerNode)提供了API调用。尽管如此,我还是找不到一种在iOS上有效的方法 关于正常的L/R平移,MDN确认2D audioContext.createStereoPanner()未在iOS中实现。(或者在桌面Safari上)也许你可以通过直接调用创建一个,但我怀疑这是否有效,至少在iOS上是这样 显示了一种在不使用StereoPannerNode的情况下使用通道合并和通道拆分器进行L/R平移的

WebAudio规范为双通道L/R平移(StereoPannerNode)和3D空间平移(PannerNode)提供了API调用。尽管如此,我还是找不到一种在iOS上有效的方法

关于正常的L/R平移,MDN确认2D audioContext.createStereoPanner()未在iOS中实现。(或者在桌面Safari上)也许你可以通过直接调用创建一个,但我怀疑这是否有效,至少在iOS上是这样

显示了一种在不使用StereoPannerNode的情况下使用通道合并和通道拆分器进行L/R平移的方法。但是,在iOS上没有实现CreateChannelMerge的MDN。也许你可以直接打电话给苹果,但我也怀疑这是否有效,至少在iOS上是这样


至于3D平移,MDN iOS不支持audioContext.createPanner。(而桌面Safari是这样做的。)同样,也许您可以直接使用PannerNode构造函数,但我怀疑。因此,我认为3D平移也不会起作用。

StereoPannerNode还不可用,但3D
PannerNode
应该可以很好地工作(不是作为构造函数,而是使用
.createPanner()
方法)。例如,这就是在iOS上使用3D平移器实现立体平移的方法:

var pan=-1;//这应该在[-1,1]范围内
if(context.createStereoPanner){
var panner=context.createStereoPanner();
panner.pan.value=pan;
}否则{
var panner=context.createPanner();
panner.panningModel='equalpower';
设置位置(平移,0,1-数学绝对值(平移));
}
someSource.connect(panner);
panner.connect(context.destination);

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

我没有测试这一点,因为我没有访问Safari和iOS的权限,但您是否尝试过ScriptProcessorNode(现已弃用)路由或AudioWorklet(iOS上不可用)?看起来你要么会得到一个不推荐的解决方案,要么会得到一些奇怪的两个音频文件并在它们之间消失。