PannerNode: positionY 属性

Baseline 已广泛支持

此特性已得到良好支持,可在多种设备和浏览器版本上使用。自 2021 年 4 月起,所有浏览器均已支持此特性。

PannerNode 接口的 positionY 属性指定了音频源在 3D 笛卡尔坐标系中 Y 坐标的位置,对应于垂直轴(自上而下)。完整的位置向量由音频源的位置(给定为(positionX, positionY, positionZ))和音频源的方向(即它朝向的方向,给定为(orientationX, orientationY, orientationZ))共同定义。

根据声音的方向性(通过 coneInnerAngleconeOuterAnglecodeOuterGain 属性指定),声音的方向可能会改变播放时的感知音量。如果声音指向听者,则比声音背离听者时更大声。

此属性包含的 AudioParam 是只读的;但是,您仍然可以通过为其 AudioParam.value 属性赋值来更改参数的值。

一个 AudioParam 对象,其 value 是音频源在 3D 笛卡尔坐标系中 Y 坐标的位置。

示例

下面的示例在 1 秒后将一个振荡器定位在监听者上方,2 秒后定位在监听者下方,3 秒后又回到中心。请注意,在这种情况下,更改主要会影响振荡器的音色,因为它是一个简单的单声道波形。

js
const context = new AudioContext();

const osc = new OscillatorNode(context);
const panner = new PannerNode(context);
panner.panningModel = "HRTF";

panner.positionY.setValueAtTime(1, context.currentTime + 1);
panner.positionY.setValueAtTime(-1, context.currentTime + 2);
panner.positionY.setValueAtTime(0, context.currentTime + 3);

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

osc.start(0);

规范

规范
Web Audio API
# dom-pannernode-positiony

浏览器兼容性

另见