PannerNode:positionZ 属性
基线 广泛可用
此功能非常成熟,可以在许多设备和浏览器版本上运行。它自 2021 年 4 月.
报告反馈
PannerNode
接口的 positionZ
属性指定了音频源在 3D 直角坐标系中的位置的 Z 坐标,对应于深度轴(在监听者身后-前方)。完整的向量由音频源的位置定义,表示为 (positionX
、positionY
、positionZ
),以及音频源的方向(即它面向的方向),表示为 (orientationX
、orientationY
、orientationZ
)。
根据声音的方向性(使用属性 coneInnerAngle
、coneOuterAngle
和 codeOuterGain
指定),声音的方向可能会改变声音播放时感知到的音量。如果声音指向监听者,它将比声音指向监听者相反方向时更响亮。
值
此属性包含的 AudioParam
是只读的;但是,您仍然可以通过将新值分配给它的 AudioParam.value
属性来更改参数的值。
示例
一个 AudioParam
,其 value
是音频源在 3D 直角坐标系中的位置的 Z 坐标。
以下示例启动一个振荡器,并在 1 秒后将其移动到监听者前方,在 2 秒后移动到监听者身后,并在 3 秒后回到监听者的位置。请注意,在这种情况下,变化将主要影响声音的音色和感知音量。
const context = new AudioContext();
const osc = new OscillatorNode(context);
const panner = new PannerNode(context);
panner.panningModel = "HRTF";
panner.positionZ.setValueAtTime(1, context.currentTime + 1);
panner.positionZ.setValueAtTime(-1, context.currentTime + 2);
panner.positionZ.setValueAtTime(0, context.currentTime + 3);
osc.connect(panner).connect(context.destination);
osc.start(0);
规范
js |
---|
Web 音频 API # 规范 |
浏览器兼容性
dom-pannernode-positionz