Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- avar LibCanvasAudio = function (file) {
- this.audio = new Audio;
- this.src(file);
- };
- LibCanvasAudio.prototype = {
- src : function (file) {
- var codec = this.getSupport();
- if (!codec) throw 'AudioNotSupported';
- this.audio.src = file.replace(/\*/g, this.getSupport());
- log('using ' + codec);
- this.audio.load();
- return this;
- },
- getSupport : function () {
- return !this.audio.canPlayType ? false :
- this.audio.canPlayType('audio/ogg;') ? 'ogg' :
- this.audio.canPlayType('audio/mpeg;') ? 'mp3' : false;
- },
- cloneAudio : function () {
- if (window.opera) { // Reported Opera bug DSK-309302
- var audioClone = new Audio;
- audioClone.src = this.audio.src;
- } else {
- audioClone = this.audio.cloneNode(true);
- }
- audioClone.load();
- return audioClone;
- },
- gatling : function (count) {
- this.barrels = [];
- this.gatIndex = 0;
- while (count--) {
- this.barrels.push(this.cloneAudio());
- }
- return this;
- },
- getNext : function () {
- var elem = this.barrels[this.gatIndex];
- ++this.gatIndex >= this.barrels.length && (this.gatIndex = 0);
- return elem;
- },
- playNext : function () {
- var elem = this.getNext();
- elem.pause();
- // firefox 3.5 starting audio bug
- elem.currentTime = 0.025;
- elem.play();
- return this;
- }
- };
- var shotSound = new LibCanvasAudio('explosion.*').gatling(6);
- window.addEventListener('keydown', function (e) {
- shotSound.playNext();
- }, false);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement