Erreur de référence non détectée BufferLoader n'est pas défini

En essayant d'apprendre l'API audio, mais je reçois une erreur de référence non détectée pour la classe BufferLoader. Je suis sur chrome et c'est à jour. Cette classe ne devrait-elle pas fonctionner sans problèmes?

<html> <head> <script type=text/javascript> window.onload = init; var context; var bufferLoader; function init(){ context = new webkitAudioContext(); bufferLoader = new BufferLoader( context, [ ' https://dl.dropboxusercontent.com/u/1957768/kdFFO3.wav', ' https://dl.dropboxusercontent.com/u/1957768/geniuse%20meodies.wav', ], finishedLoading ); bufferLoader.load(); } function finishedLoading(bufferList){ //make two sources and play them var source1 = context.createBufferSource(); var source2 = context.createBufferSource(); source1.buffer = bufferList[0]; source2.buffer = bufferList[1]; source1.connect(context.destination); source2.connect(context.destination); source1.start(0); source2.start(0); } </script> </head> <body> </body> </html> 

La "classe" BufferLoader est une fonction personnalisée créée pour abstraire l'utilisation de l'API Web Audio. Ce n'est pas une fonctionnalité intégrée, et doit être inclus dans votre page afin d'être utilisé; Il n'y a rien de spécial à propos de Chrome. Voici un exemple de l'expliqué: http://www.html5rocks.com/fr/tutorials/webaudio/intro/#toc-abstract

Pour l'utiliser, incluez ce code avant qu'il ne soit utilisé:

 function BufferLoader(context, urlList, callback) { this.context = context; this.urlList = urlList; this.onload = callback; this.bufferList = new Array(); this.loadCount = 0; } BufferLoader.prototype.loadBuffer = function(url, index) { // Load buffer asynchronously var request = new XMLHttpRequest(); request.open("GET", url, true); request.responseType = "arraybuffer"; var loader = this; request.onload = function() { // Asynchronously decode the audio file data in request.response loader.context.decodeAudioData( request.response, function(buffer) { if (!buffer) { alert('error decoding file data: ' + url); return; } loader.bufferList[index] = buffer; if (++loader.loadCount == loader.urlList.length) loader.onload(loader.bufferList); }, function(error) { console.error('decodeAudioData error', error); } ); } request.onerror = function() { alert('BufferLoader: XHR error'); } request.send(); } BufferLoader.prototype.load = function() { for (var i = 0; i < this.urlList.length; ++i) this.loadBuffer(this.urlList[i], i); }