// Cache the label for later use. var label = document.getElementById('label'); // Setup the sounds to be used. var sound1 = new Howl({ src: ['sound1.ogg', 'sound1.mp3'] }); var sound2 = new Howl({ src: ['sound1.ogg', 'sound1.mp3'], html5: true }); var sound3 = new Howl({ src: ['sound2.ogg', 'sound2.mp3'], sprite: { one: [0, 450], two: [2000, 250], three: [4000, 350], four: [6000, 380], five: [8000, 340], beat: [10000, 11163] } }); var sound4 = new Howl({ src: ['sound2.ogg', 'sound2.mp3'], html5: true, sprite: { one: [0, 450], two: [2000, 250], three: [4000, 350], four: [6000, 380], five: [8000, 340], beat: [10000, 11163] } }); // Define the tests to run. var id; var webaudio = [ function(fn) { sound1.once('play', function() { label.innerHTML = 'PLAYING'; setTimeout(fn, 2000); }); id = sound1.play(); }, function(fn) { sound1.pause(id); label.innerHTML = 'PAUSED'; setTimeout(fn, 1500); }, function(fn) { sound1.play(id); label.innerHTML = 'RESUMING'; setTimeout(fn, 2000); }, function(fn) { sound1.stop(id); label.innerHTML = 'STOPPED'; setTimeout(fn, 1500); }, function(fn) { sound1.play(id); label.innerHTML = 'PLAY FROM START'; setTimeout(fn, 2000); }, function(fn) { sound1.fade(1, 0, 2000, id); label.innerHTML = 'FADE OUT'; sound1.once('faded', function() { fn(); }, id); }, function(fn) { sound1.fade(0, 1, 2000, id); label.innerHTML = 'FADE IN'; sound1.once('faded', function() { fn(); }, id); }, function(fn) { sound1.mute(true, id); label.innerHTML = 'MUTE'; setTimeout(fn, 1500); }, function(fn) { sound1.mute(false, id); label.innerHTML = 'UNMUTE'; setTimeout(fn, 2000); }, function(fn) { sound1.volume(0.5, id); label.innerHTML = 'HALF VOLUME'; setTimeout(fn, 2000); }, function(fn) { sound1.volume(1, id); label.innerHTML = 'FULL VOLUME'; setTimeout(fn, 2000); }, function(fn) { sound1.seek(0, id); label.innerHTML = 'SEEK TO START'; setTimeout(fn, 2000); }, function(fn) { id = sound1.play(); label.innerHTML = 'PLAY 2ND'; setTimeout(fn, 2000); }, function(fn) { sound1.mute(true); label.innerHTML = 'MUTE GROUP'; setTimeout(fn, 1500); }, function(fn) { sound1.mute(false); label.innerHTML = 'UNMUTE GROUP'; setTimeout(fn, 2000); }, function(fn) { sound1.volume(0.5); label.innerHTML = 'HALF VOLUME GROUP'; setTimeout(fn, 2000); }, function(fn) { sound1.fade(0.5, 0, 2000); label.innerHTML = 'FADE OUT GROUP'; sound1.once('faded', function() { if (sound1._onfaded.length === 0) { fn(); } }); }, function(fn) { sound1.fade(0, 1, 2000); label.innerHTML = 'FADE IN GROUP'; sound1.once('faded', function() { if (sound1._onfaded.length === 0) { fn(); } }); }, function(fn) { sound1.stop(); label.innerHTML = 'STOP GROUP'; setTimeout(fn, 1500); }, function(fn) { id = sound3.play('beat'); label.innerHTML = 'PLAY SPRITE'; setTimeout(fn, 2000); }, function(fn) { sound3.pause(id); label.innerHTML = 'PAUSE SPRITE'; setTimeout(fn, 1000); }, function(fn) { sound3.play(id); label.innerHTML = 'RESUME SPRITE'; setTimeout(fn, 1500); }, function(fn) { var sounds = ['one', 'two', 'three', 'four', 'five']; for (var i=0; i