się artykuł opisujący dokładnie ten tym demo można znaleźć here.
Aby zapobiec martwy link będę cytował najbardziej odpowiednich części poniżej
szczęście Web Audio API pochodzi z wbudowaną sprzętową akceleracją pozycyjnych funkcji audio, które są dość proste w użyciu.
Istotą wykazano w poniższym kodzie:
PositionSample.prototype.changePosition = function(position) {
// Position coordinates are in normalized canvas coordinates
// with -0.5 < x, y < 0.5
if (position) {
if (!this.isPlaying) {
this.play();
}
var mul = 2;
var x = position.x/this.size.width;
var y = -position.y/this.size.height;
this.panner.setPosition(x * mul, y * mul, -0.5);
} else {
this.stop();
}
};
pełny kod źródłowy demo roboczego w pierwszym linku powyżej można znaleźć here.
Offtopic: Uważałem przepisanie cytowany artykuł sił jako niestandardową odpowiedź tutaj, ale wydawało się, że stosunkowo bezcelowe jak artykuł jest już więcej niż wystarczająco jasny i robi podwójnej pracy wydaje się bezcelowe
Kompatybilność, tylko kombinacja lampy błyskowej i wspomnianego wcześniej kodu zapewnia prawdziwe rozwiązanie przesuwania i przesuwania dźwięku w przeglądarce (ponieważ lampa błyskowa nie jest dostępna na niektórych urządzeniach mobilnych). Idealnie odradzałbym korzystanie z audio API, jeśli można go obejść, ponieważ nie jest mało prawdopodobne, że sytuacja ulegnie zmianie w specyfikacji, co może złamać twój kod (+ jest mało prawdopodobne, aby nie działało to w żaden sposób na urządzeniach mobilnych). Jedynym scenariuszem, w którym wykorzystanie bardziej zaawansowanych api interfejsu audio w Internecie jest sensowne, jest oczekiwanie, że będziesz pracował co najmniej przez kolejne 6 do 18 miesięcy w grze (ponieważ jest to prawdopodobny czas, w którym implementacje będą nawet stabilne do użytecznego punktu) .
Gra '
Przeczytaj: [Web Audio API] (http://www.w3.org/TR/webaudio/) –
@ ŠimeVidas, w rzeczy samej. – corazza