AudioListener.setOrientation()

setOrientation() - орієнтація слухача в просторі.

Синтаксис:

AudioListener.setOrientation(x, y, z, xUp, yUp, zUp);

Параметри:

AudioListener - об'єкт AudioListener.

x - позиція носу слухача по осі X в 3D просторі. Значення по замовчуванню 0.

y - позиція носу слухача по осі Y в 3D просторі. Значення по замовчуванню 0.

z - позиція носу слухача по осі Z в 3D просторі. Значення по замовчуванню -1.

xUp - позиція верхньої частини голови слухача по осі X в 3D просторі. Значення по замовчуванню 0.

yUp - позиція верхньої частини голови слухача по осі Y в 3D просторі. Значення по замовчуванню 1.

zUp - позиція верхньої частини голови слухача по осі Z в 3D просторі. Значення по замовчуванню 0.

Опис:

setOrientation() метод об'єкту AudioListener для зміни орієнтації людини яка слухає звук в 3D просторі.

Об'єкт PannerNode використовує ці орієнтації по відношенню до окремих джерел звуку.

Деякі браузери не підтримують метод setOrientation(), а підтримують властивості: forwardX, forwardY, forwardZ, upX, upY, upZ.

Приклад:

<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.setOrientation(1,0,2,2,0,2); player.play(); //починаємо відтворення }else alert('Ваш браузер не підтримує Web Audio');

Приклад зміни значень параметрів:

x:
y:
z:
xUp:
yUp:
zUp:
function resizePos(){ var x=document.getElementById('posx'), y=document.getElementById('posy'), z=document.getElementById('posz'), xUp=document.getElementById('posxup'), yUp=document.getElementById('posyup'), zUp=document.getElementById('poszup'); document.getElementById('lab_posx').innerText=x.value; document.getElementById('lab_posy').innerText=y.value; document.getElementById('lab_posz').innerText=z.value; document.getElementById('lab_posxup').innerText=xUp.value; document.getElementById('lab_posyup').innerText=yUp.value; document.getElementById('lab_poszup').innerText=zUp.value; audio.listener.setOrientation(x.value, y.value, z.value, xUp.value, yUp.value, zUp.value); } document.getElementById('posx').onchange=document.getElementById('posy').onchange=document.getElementById('posz').onchange=document.getElementById('posxup').onchange=document.getElementById('posyup').onchange=document.getElementById('poszup').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); audio.listener.setOrientation(2,1,5,2,3,2); paner.positionX.value=2; paner.positionY.value=3; paner.orientationX.value=15; paner.orientationY.value=5; paner.orientationZ.value=-15; player.play(); //починаємо відтворення }else alert('Ваш браузер не підтримує Web Audio');