function AudioTagSample() { // initialize audio player this.audio = new Audio(); this.isPlaying = false; window.addEventListener('load', this.onload.bind(this), false); } AudioTagSample.prototype.onload = function() { // Create the audio nodes. this.source = context.createMediaElementSource(this.audio); this.source.connect(context.destination); }; AudioTagSample.prototype.click = function(link) { var was_inactive = this.audio.paused var was_the_same = this.audio.src == link.href var controls = document.querySelectorAll('.controls'); for (i=0;i<controls.length;i++){ controls[i].classList.toggle("playing"); controls[i].classList.remove("fresh"); }; if (was_the_same) { if (this.audio.paused) { this.audio.play(); link.classList.remove("paused") link.classList.add("playing") } else { this.audio.pause(); link.classList.remove("playing") link.classList.add("paused") } } else { if(this.link) { this.link.classList.remove("playing") this.link.classList.remove("paused") } this.audio.src = link.href; this.link = link this.audio.play(); link.classList.remove("paused") link.classList.add("playing") } if (was_inactive) { requestAnimFrame(this.draw.bind(this)); } this.link = link; };