setPosition() - позиція слухача в 3D просторі.
AudioListener.setPosition(x,y,z);
AudioListener - об'єкт AudioListener.
x - позиція слухача по осі X в 3D просторі. Значення по замовчуванню 0.
y - позиція слухача по осі Y в 3D просторі. Значення по замовчуванню 0.
z - позиція слухача по осі Z в 3D просторі. Значення по замовчуванню 0.
setPosition() метод об'єкту AudioListener для зміни позиції людини яка слухає звук.
Об'єкт PannerNode використовує ці позиції по відношенню до окремих джерел звуку.
Деякі браузери не підтримують метод setPosition(), а підтримують властивості: positionX, positionY, positionZ.
<audio id="player" src="/dani/test.ogg"></audio>
if(window.AudioContext){
var player = document.getElementById('player');
var audio = new AudioContext();
var source = audio.createMediaElementSource(player);
source.connect(audio.destination);
audio.listener.setPosition(2,0,5);
player.play(); //починаємо відтворення
}else alert('Ваш браузер не підтримує Web Audio');
Приклад зміни значень параметрів:
function resizePos(){
var x=document.getElementById('posx'), y=document.getElementById('posy'), z=document.getElementById('posz');
document.getElementById('lab_posx').innerText=x.value;
document.getElementById('lab_posy').innerText=y.value;
document.getElementById('lab_posz').innerText=z.value;
audio.listener.setPosition(x.value, y.value, z.value);
}
document.getElementById('posx').onchange=document.getElementById('posy').onchange=document.getElementById('posz').onchange=resizePos;
if(window.AudioContext){
var player = document.getElementById('player2');
var audio = new AudioContext();
var source = audio.createMediaElementSource(player);
var paner=audio.createPanner();
source.connect(paner);
paner.connect(audio.destination);
paner.orientationX.value=15;
paner.orientationY.value=5;
paner.orientationZ.value=-15;
player.play(); //починаємо відтворення
}else alert('Ваш браузер не підтримує Web Audio');