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 AudioParam có value 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.
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> |