PannerNode: positionZ property

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.

Thuộc tính positionZ của giao diện PannerNode xác định tọa độ Z của vị trí nguồn âm thanh trong tọa độ Descartes 3D, tương ứng với trục chiều sâu (phía sau-phía trước người nghe). Vectơ đầy đủ được xác định bởi vị trí của nguồn âm thanh, được đưa ra dưới dạng (positionX, positionY, positionZ), và hướng của nguồn âm thanh (tức là hướng mà nó đang đối mặt), được đưa ra dưới dạng (orientationX, orientationY, orientationZ).

Tùy thuộc vào tính định hướng của âm thanh (được chỉ định bằng các thuộc tính coneInnerAngle, coneOuterAngle, và codeOuterGain), hướng của âm thanh có thể thay đổi âm lượng cảm nhận được khi nó đang phát. Nếu âm thanh đang hướng về phía người nghe, nó sẽ to hơn so với khi âm thanh hướng ra xa người nghe.

AudioParam chứa trong thuộc tính này là chỉ đọc; tuy nhiên bạn vẫn có thể thay đổi giá trị của tham số bằng cách gán giá trị mới cho thuộc tính AudioParam.value của nó.

Giá trị

Một AudioParamvalue là tọa độ Z của vị trí nguồn âm thanh, trong tọa độ Descartes 3D.

Ví dụ

Ví dụ sau khởi động một bộ dao động và di chuyển nó ra phía trước người nghe sau 1 giây, ra phía sau người nghe sau 2 giây, và về vị trí của người nghe sau 3 giây. Lưu ý rằng trong trường hợp này, sự thay đổi chủ yếu ảnh hưởng đến âm sắc và âm lượng cảm nhận được của âm thanh.

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

Thông số kỹ thuật

Specification
Web Audio API
# dom-pannernode-positionz

Tương thích trình duyệt

Xem thêm