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

瀏覽器相容性

另見