PannerNode:positionZ 屬性

Baseline 已廣泛支援

此特性已得到良好支援,可在多種裝置和瀏覽器版本上使用。自 2021 年 4 月起,所有瀏覽器均已支援此特性。

PannerNode 介面的 positionZ 屬性指定了音訊源在 3D 笛卡爾座標系中的 Z 座標,對應於深度軸(在聽者前方 - 在聽者後方)。完整的向量由音訊源的位置(由(positionX, positionY, positionZ)定義)和音訊源的方向(即其朝向)給定(由(orientationX, orientationY, orientationZ)定義)確定。

根據聲音的方向性(透過 coneInnerAngleconeOuterAnglecodeOuterGain 屬性指定),聲音的方向可能會改變播放時的感知音量。如果聲音指向聽者,則比聲音背離聽者時更大聲。

此屬性包含的 AudioParam 是隻讀的;但是,您仍然可以透過為其 AudioParam.value 屬性賦值來更改引數的值。

一個 AudioParam,其 value 是音訊源在 3D 笛卡爾座標系中的 Z 座標。

示例

下面的示例啟動一個振盪器,並在 1 秒後將其移到聽者前方,2 秒後移到聽者後方,3 秒後移回聽者位置。請注意,在這種情況下,更改將主要影響聲音的音色和感知音量。

js
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);

規範

規範
Web Audio API
# dom-pannernode-positionz

瀏覽器相容性

另見