PannerNode - позиціонування звуку в 3D просторі.
AudioContext.createSpatialPanner();
AudioContext - об'єкт AudioContext.
PannerNode об'єкт який є аудіо вузлом для позиціонування звуку в 3D просторі.
if(window.AudioContext){
var audio = new AudioContext();
var paner= audio.createPanner();
alert( paner );
}else alert('Ваш браузер не підтримує Web Audio');
<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);
var paner=audio.createPanner();
source.connect(paner);
paner.connect(audio.destination);
paner.orientationX.value=15;
paner.orientationY.value=-15;
paner.orientationZ.value=-10;
paner.positionX.value=25;
paner.positionY.value=5;
paner.positionZ.value=-5;
paner.rolloffFactor=150;
paner.distanceModel='linear';
player.play(); //починаємо відтворення
}else alert('Ваш браузер не підтримує Web Audio');
if(window.AudioContext){
var player = document.getElementById('player');
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=-15;
paner.orientationZ.value=-10;
paner.positionX.value=25;
paner.positionY.value=5;
paner.positionZ.value=-5;
paner.rolloffFactor=150;
paner.distanceModel='linear';
player.play(); //починаємо відтворення
}else alert('Ваш браузер не підтримує Web Audio');
document.getElementById('paner_play').onclick=function(){
if(window.AudioContext){
window.panner_player = document.getElementById('player2');
window.panner_audio = new AudioContext();
window.panner_source = panner_audio.createMediaElementSource(panner_player);
window.panner_paner=panner_audio.createPanner();
panner_source.connect(panner_paner);
panner_paner.connect(panner_audio.destination);
document.getElementById('paner_coneInnerAngle').onchange=function(){panner_paner.coneInnerAngle=this.value; document.getElementById('paner_coneInnerAngle_label').innerText=this.value};
document.getElementById('paner_coneOuterAngle').onchange=function(){panner_paner.coneOuterAngle=this.value; document.getElementById('paner_coneOuterAngle_label').innerText=this.value};
document.getElementById('paner_coneOuterGain').onchange=function(){panner_paner.coneOuterGain=this.value; document.getElementById('paner_coneOuterGain_label').innerText=this.value};
document.getElementById('paner_distanceModel').onchange=function(){panner_paner.distanceModel=this.value;};
document.getElementById('paner_maxDistance').onchange=function(){panner_paner.maxDistance=this.value; document.getElementById('paner_maxDistance_label').innerText=this.value};
document.getElementById('paner_orientationX').onchange=function(){panner_paner.orientationX.value=this.value; document.getElementById('paner_orientationX_label').innerText=this.value};
document.getElementById('paner_orientationY').onchange=function(){panner_paner.orientationY.value=this.value; document.getElementById('paner_orientationY_label').innerText=this.value};
document.getElementById('paner_orientationZ').onchange=function(){panner_paner.orientationZ.value=this.value; document.getElementById('paner_orientationZ_label').innerText=this.value};
document.getElementById('paner_panningModel').onchange=function(){panner_paner.panningModel=this.value;};
document.getElementById('paner_positionX').onchange=function(){panner_paner.positionX.value=this.value; document.getElementById('paner_positionX_label').innerText=this.value};
document.getElementById('paner_positionY').onchange=function(){panner_paner.positionY.value=this.value; document.getElementById('paner_positionY_label').innerText=this.value};
document.getElementById('paner_positionZ').onchange=function(){panner_paner.positionZ.value=this.value; document.getElementById('paner_positionZ_label').innerText=this.value};
document.getElementById('paner_refDistance').onchange=function(){panner_paner.refDistance=this.value; document.getElementById('paner_refDistance_label').innerText=this.value};
document.getElementById('paner_rolloffFactor').onchange=function(){panner_paner.rolloffFactor=this.value; document.getElementById('paner_rolloffFactor_label').innerText=this.value};
panner_player.play(); //починаємо відтворення
}else alert('Ваш браузер не підтримує Web Audio');
}