!function(){"use strict";var e=function(){this.init()};e.prototype={init:function(){var e=this||t;return e._counter=1e3,e._html5AudioPool=[],e.html5PoolSize=10,e._codecs={},e._howls=[],e._muted=!1,e._volume=1,e._canPlayEvent="canplaythrough",e._navigator="undefined"!=typeof window&&window.navigator?window.navigator:null,e.masterGain=null,e.noAudio=!1,e.usingWebAudio=!0,e.autoSuspend=!0,e.ctx=null,e.autoUnlock=!0,e._setup(),e},volume:function(e){var o=this||t;if(e=parseFloat(e),o.ctx||d(),void 0!==e&&e>=0&&e<=1){if(o._volume=e,o._muted)return o;o.usingWebAudio&&o.masterGain.gain.setValueAtTime(e,t.ctx.currentTime);for(var n=0;n=0;o--)e._howls[o].unload();return e.usingWebAudio&&e.ctx&&void 0!==e.ctx.close&&(e.ctx.close(),e.ctx=null,d()),e},codecs:function(e){return(this||t)._codecs[e.replace(/^x-/,"")]},_setup:function(){var e=this||t;if(e.state=e.ctx&&e.ctx.state||"suspended",e._autoSuspend(),!e.usingWebAudio)if("undefined"!=typeof Audio)try{void 0===(new Audio).oncanplaythrough&&(e._canPlayEvent="canplay")}catch(t){e.noAudio=!0}else e.noAudio=!0;try{(new Audio).muted&&(e.noAudio=!0)}catch(e){}return e.noAudio||e._setupCodecs(),e},_setupCodecs:function(){var e=this||t,o=null;try{o="undefined"!=typeof Audio?new Audio:null}catch(t){return e}if(!o||"function"!=typeof o.canPlayType)return e;var n=o.canPlayType("audio/mpeg;").replace(/^no$/,""),i=e._navigator&&e._navigator.userAgent.match(/OPR\/([0-6].)/g),r=i&&parseInt(i[0].split("/")[1],10)<33;return e._codecs={mp3:!(r||!n&&!o.canPlayType("audio/mp3;").replace(/^no$/,"")),mpeg:!!n,opus:!!o.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!o.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!o.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!o.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),aac:!!o.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!o.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(o.canPlayType("audio/x-m4a;")||o.canPlayType("audio/m4a;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(o.canPlayType("audio/x-mp4;")||o.canPlayType("audio/mp4;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!o.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,""),webm:!!o.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,""),dolby:!!o.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(o.canPlayType("audio/x-flac;")||o.canPlayType("audio/flac;")).replace(/^no$/,"")},e},_unlockAudio:function(){var e=this||t;if(!e._audioUnlocked&&e.ctx){e._audioUnlocked=!1,e.autoUnlock=!1,e._mobileUnloaded||44100===e.ctx.sampleRate||(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var o=function(t){for(var n=0;n0?u._seek:n._sprite[e][0]/1e3),_=Math.max(0,(n._sprite[e][0]+n._sprite[e][1])/1e3-d),l=1e3*_/Math.abs(u._rate),c=n._sprite[e][0]/1e3,f=(n._sprite[e][0]+n._sprite[e][1])/1e3;u._sprite=e,u._ended=!1;var h=function(){u._paused=!1,u._seek=d,u._start=c,u._stop=f,u._loop=!(!u._loop&&!n._sprite[e][2])};if(!(d>=f)){var p=u._node;if(n._webAudio){var m=function(){n._playLock=!1,h(),n._refreshBuffer(u);var e=u._muted||n._muted?0:u._volume;p.gain.setValueAtTime(e,t.ctx.currentTime),u._playStart=t.ctx.currentTime,void 0===p.bufferSource.start?u._loop?p.bufferSource.noteGrainOn(0,d,86400):p.bufferSource.noteGrainOn(0,d,_):u._loop?p.bufferSource.start(0,d,86400):p.bufferSource.start(0,d,_),l!==1/0&&(n._endTimers[u._id]=setTimeout(n._ended.bind(n,u),l)),o||setTimeout(function(){n._emit("play",u._id),n._loadQueue()},0)};"running"===t.state?m():(n._playLock=!0,n.once("resume",m),n._clearTimer(u._id))}else{var v=function(){p.currentTime=d,p.muted=u._muted||n._muted||t._muted||p.muted,p.volume=u._volume*t.volume(),p.playbackRate=u._rate;try{var i=p.play();if(i&&"undefined"!=typeof Promise&&(i instanceof Promise||"function"==typeof i.then)?(n._playLock=!0,h(),i.then(function(){n._playLock=!1,p._unlocked=!0,o||(n._emit("play",u._id),n._loadQueue())}).catch(function(){n._playLock=!1,n._emit("playerror",u._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),u._ended=!0,u._paused=!0})):o||(n._playLock=!1,h(),n._emit("play",u._id),n._loadQueue()),p.playbackRate=u._rate,p.paused)return void n._emit("playerror",u._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");"__default"!==e||u._loop?n._endTimers[u._id]=setTimeout(n._ended.bind(n,u),l):(n._endTimers[u._id]=function(){n._ended(u),p.removeEventListener("ended",n._endTimers[u._id],!1)},p.addEventListener("ended",n._endTimers[u._id],!1))}catch(e){n._emit("playerror",u._id,e)}};"data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"===p.src&&(p.src=n._src,p.load());var y=window&&window.ejecta||!p.readyState&&t._navigator.isCocoonJS;if(p.readyState>=3||y)v();else{n._playLock=!0;var g=function(){v(),p.removeEventListener(t._canPlayEvent,g,!1)};p.addEventListener(t._canPlayEvent,g,!1),n._clearTimer(u._id)}}return u._id}n._ended(u)},pause:function(e){var t=this;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"pause",action:function(){t.pause(e)}}),t;for(var o=t._getSoundIds(e),n=0;n=0?o=parseInt(r[0],10):e=parseFloat(r[0]):r.length>=2&&(e=parseFloat(r[0]),o=parseInt(r[1],10)),!(void 0!==e&&e>=0&&e<=1))return(n=o?i._soundById(o):i._sounds[0])?n._volume:0;if("loaded"!==i._state||i._playLock)return i._queue.push({event:"volume",action:function(){i.volume.apply(i,r)}}),i;void 0===o&&(i._volume=e),o=i._getSoundIds(o);for(var a=0;a0?n/d:n),l=Date.now();e._fadeTo=o,e._interval=setInterval(function(){var i=(Date.now()-l)/n;l=Date.now(),u+=s*i,u=Math.max(0,u),u=Math.min(1,u),u=Math.round(100*u)/100,a._webAudio?e._volume=u:a.volume(u,e._id,!0),r&&(a._volume=u),(ot&&u>=o)&&(clearInterval(e._interval),e._interval=null,e._fadeTo=null,a.volume(o,e._id),a._emit("fade",e._id))},_)},_stopFade:function(e){var o=this._soundById(e);return o&&o._interval&&(this._webAudio&&o._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(o._interval),o._interval=null,this.volume(o._fadeTo,e),o._fadeTo=null,this._emit("fade",e)),this},loop:function(){var e,t,o,n=arguments;if(0===n.length)return this._loop;if(1===n.length){if("boolean"!=typeof n[0])return!!(o=this._soundById(parseInt(n[0],10)))&&o._loop;e=n[0],this._loop=e}else 2===n.length&&(e=n[0],t=parseInt(n[1],10));for(var i=this._getSoundIds(t),r=0;r=0?o=parseInt(r[0],10):e=parseFloat(r[0])}else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));if("number"!=typeof e)return(n=i._soundById(o))?n._rate:i._rate;if("loaded"!==i._state||i._playLock)return i._queue.push({event:"rate",action:function(){i.rate.apply(i,r)}}),i;void 0===o&&(i._rate=e),o=i._getSoundIds(o);for(var a=0;a=0?o=parseInt(i[0],10):n._sounds.length&&(o=n._sounds[0]._id,e=parseFloat(i[0]))}else 2===i.length&&(e=parseFloat(i[0]),o=parseInt(i[1],10));if(void 0===o)return n;if("loaded"!==n._state||n._playLock)return n._queue.push({event:"seek",action:function(){n.seek.apply(n,i)}}),n;var r=n._soundById(o);if(r){if(!("number"==typeof e&&e>=0)){if(n._webAudio){var a=n.playing(o)?t.ctx.currentTime-r._playStart:0,u=r._rateSeek?r._rateSeek-r._seek:0;return r._seek+(u+a*Math.abs(r._rate))}return r._node.currentTime}var s=n.playing(o);s&&n.pause(o,!0),r._seek=e,r._ended=!1,n._clearTimer(o),n._webAudio||!r._node||isNaN(r._node.duration)||(r._node.currentTime=e);var d=function(){n._emit("seek",o),s&&n.play(o,!0)};if(s&&!n._webAudio){var _=function(){n._playLock?setTimeout(_,0):d()};setTimeout(_,0)}else d()}return n},playing:function(e){if("number"==typeof e){var t=this._soundById(e);return!!t&&!t._paused}for(var o=0;o=0&&t._howls.splice(r,1);var a=!0;for(n=0;n=0){a=!1;break}return i&&a&&delete i[e._src],t.noAudio=!1,e._state="unloaded",e._sounds=[],e=null,null},on:function(e,t,o,n){var i=this["_on"+e];return"function"==typeof t&&i.push(n?{id:o,fn:t,once:n}:{id:o,fn:t}),this},off:function(e,t,o){var n=this["_on"+e],i=0;if("number"==typeof t&&(o=t,t=null),t||o)for(i=0;i=0;i--)n[i].id&&n[i].id!==t&&"load"!==e||(setTimeout(function(e){e.call(this,t,o)}.bind(this,n[i].fn),0),n[i].once&&this.off(e,n[i].fn,n[i].id));return this._loadQueue(e),this},_loadQueue:function(e){if(this._queue.length>0){var t=this._queue[0];t.event===e&&(this._queue.shift(),this._loadQueue()),e||t.action()}return this},_ended:function(e){var o=e._sprite;if(!this._webAudio&&e._node&&!e._node.paused&&!e._node.ended&&e._node.currentTime=0;o--){if(t<=e)return;this._sounds[o]._ended&&(this._webAudio&&this._sounds[o]._node&&this._sounds[o]._node.disconnect(0),this._sounds.splice(o,1),t--)}}},_getSoundIds:function(e){if(void 0===e){for(var t=[],o=0;o=0;if(t._scratchBuffer&&e.bufferSource&&(e.bufferSource.onended=null,e.bufferSource.disconnect(0),o))try{e.bufferSource.buffer=t._scratchBuffer}catch(e){}return e.bufferSource=null,this},_clearSound:function(e){/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent)||(e.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var n=function(e){this._parent=e,this.init()};n.prototype={init:function(){var e=this._parent;return this._muted=e._muted,this._loop=e._loop,this._volume=e._volume,this._rate=e._rate,this._seek=0,this._paused=!0,this._ended=!0,this._sprite="__default",this._id=++t._counter,e._sounds.push(this),this.create(),this},create:function(){var e=this._parent,o=t._muted||this._muted||this._parent._muted?0:this._volume;if(e._webAudio)this._node=void 0===t.ctx.createGain?t.ctx.createGainNode():t.ctx.createGain(),this._node.gain.setValueAtTime(o,t.ctx.currentTime),this._node.paused=!0,this._node.connect(t.masterGain);else if(!t.noAudio){this._node=t._obtainHtml5Audio(),this._errorFn=this._errorListener.bind(this),this._node.addEventListener("error",this._errorFn,!1),this._loadFn=this._loadListener.bind(this),this._node.addEventListener(t._canPlayEvent,this._loadFn,!1);for(var n=0;n0?(i[o._src]=e,s(o,e)):n()};"undefined"!=typeof Promise&&1===t.ctx.decodeAudioData.length?t.ctx.decodeAudioData(e).then(r).catch(n):t.ctx.decodeAudioData(e,r,n)},s=function(e,t){t&&!e._duration&&(e._duration=t.duration),0===Object.keys(e._sprite).length&&(e._sprite={__default:[0,1e3*e._duration]}),"loaded"!==e._state&&(e._state="loaded",e._emit("load"),e._loadQueue())},d=function(){if(t.usingWebAudio){try{"undefined"!=typeof AudioContext?t.ctx=new AudioContext:"undefined"!=typeof webkitAudioContext?t.ctx=new webkitAudioContext:t.usingWebAudio=!1}catch(e){t.usingWebAudio=!1}t.ctx||(t.usingWebAudio=!1);var e=/iP(hone|od|ad)/.test(t._navigator&&t._navigator.platform),o=t._navigator&&t._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),n=o?parseInt(o[1],10):null;if(e&&n&&n<9){var i=/safari/.test(t._navigator&&t._navigator.userAgent.toLowerCase());(t._navigator&&t._navigator.standalone&&!i||t._navigator&&!t._navigator.standalone&&!i)&&(t.usingWebAudio=!1)}t.usingWebAudio&&(t.masterGain=void 0===t.ctx.createGain?t.ctx.createGainNode():t.ctx.createGain(),t.masterGain.gain.setValueAtTime(t._muted?0:t._volume,t.ctx.currentTime),t.masterGain.connect(t.ctx.destination)),t._setup()}};"function"==typeof define&&define.amd&&define([],function(){return{Howler:t,Howl:o}}),"undefined"!=typeof exports&&(exports.Howler=t,exports.Howl=o),"undefined"!=typeof window?(window.HowlerGlobal=e,window.Howler=t,window.Howl=o,window.Sound=n):"undefined"!=typeof global&&(global.HowlerGlobal=e,global.Howler=t,global.Howl=o,global.Sound=n)}();