-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplayer.min.js
1 lines (1 loc) · 7.02 KB
/
player.min.js
1
!function e(t,s,i){function n(o,u){if(!s[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(r)return r(o,!0);throw new Error("Cannot find module '"+o+"'")}var h=s[o]={exports:{}};t[o][0].call(h.exports,function(e){var s=t[o][1][e];return n(s?s:e)},h,h.exports,e,t,s,i)}return s[o].exports}for(var r="function"==typeof require&&require,o=0;o<i.length;o++)n(i[o]);return n}({1:[function(e,t){var s=e("events"),i=function(e){"use strict";var t=new s.EventEmitter,i={context:{writable:!0},source:{writable:!0},buffer:{writable:!0},gainNode:{writable:!0},outputNode:{writable:!0},speed:{writable:!0,value:1},gain:{writable:!0},loop:{writable:!0,value:!1},startPosition:{writable:!0,value:0},startedAtTime:{writable:!0,value:0},IS_PLAYING:{value:"is_playing"},IS_PAUSED:{value:"is_paused"},IS_STOPPED:{value:"is_stopped"},status:{writable:!0},init:{enumerable:!0,value:function(e){return this.context=window.audioContext,this.setBuffer(e),this.status=this.IS_STOPPED,this.gainNode=this.context.createGain(),this.outputNode=this.context.createGain(),this}},connect:{enumerable:!0,value:function(e){return this.outputNode=e,this.gainNode.connect(this.outputNode||this.context.destination),this}},disconnect:{enumerable:!0,value:function(e){return this.gainNode.disconnect(e),this}},setBuffer:{enumerable:!0,value:function(e){if(e)return this.buffer=e,this.bufferDuration=e.duration,this;throw"Buffer setting error"}},setGain:{enumerable:!0,value:function(e){if(e)return this.gain=e,this.gainNode.gain.value=e*e,this;throw"Gain setting error"}},setSpeed:{enumerable:!0,value:function(e){if(e)return this.speed=e,this.source&&(this.source.playbackRate.value=this.speed),this;throw"Speed setting error"}},enableLoop:{enumerable:!0,value:function(e){return this.loop=e,this.status!==this.IS_STOPPED&&(this.source.loop=this.loop),this}},start:{enumerable:!0,value:function(){if(this.status!==this.IS_PLAYING){this.startedAtTime=this.context.currentTime,this.source=this.context.createBufferSource(),this.source.buffer=this.buffer,this.source.playbackRate.value=this.speed,this.source.loop=this.loop,this.source.connect(this.gainNode);var e=this.startPosition%this.buffer.duration;return this.source.start(0,e),this.status=this.IS_PLAYING,this.setOnendedCallback(),e}console.log("Already playing.")}},stop:{enumerable:!0,value:function(){return this.status===this.IS_PLAYING&&this.source.stop(0),this.status!==this.IS_STOPPED?(this.status=this.IS_STOPPED,this.startPosition=0,this.startPosition):void console.log("Already stopped.")}},pause:{enumerable:!0,value:function(){return this.status===this.IS_PLAYING?(this.status=this.IS_PAUSED,this.source.stop(0),this.startPosition=this.startPosition+this.getElapsedDuration(),this.startPosition):void console.log("Not playing.")}},seek:{enumerable:!0,value:function(e){return this.status===this.IS_PLAYING?(this.stop(),this.startPosition=e%this.bufferDuration,this.start()):this.startPosition=e%this.bufferDuration,this.startPosition}},getStatus:{enumerable:!0,value:function(){return this.status}},on:{enumerable:!0,value:t.on},emit:{enumerable:!1,value:t.emit},getElapsedDuration:{enumerable:!1,value:function(){return this.context.currentTime-this.startedAtTime}},setOnendedCallback:{enumerable:!1,value:function(){var e=this;this.source.onended=function(){console.log("Elapsed duration on 'ended' event:",e.getElapsedDuration()+e.startPosition,"sec"),e.status!==e.IS_PAUSED&&e.getElapsedDuration()+e.startPosition>e.bufferDuration&&(e.loop||(e.status=e.IS_STOPPED,e.startPosition=0),e.emit("ended",e.startPosition))}}}},n=Object.create({},i);return n.init(e)};t.exports=i},{events:2}],2:[function(e,t){function s(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(e){return"function"==typeof e}function n(e){return"number"==typeof e}function r(e){return"object"==typeof e&&null!==e}function o(e){return void 0===e}t.exports=s,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._maxListeners=void 0,s.defaultMaxListeners=10,s.prototype.setMaxListeners=function(e){if(!n(e)||0>e||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},s.prototype.emit=function(e){var t,s,n,u,a,h;if(this._events||(this._events={}),"error"===e&&(!this._events.error||r(this._events.error)&&!this._events.error.length))throw t=arguments[1],t instanceof Error?t:TypeError('Uncaught, unspecified "error" event.');if(s=this._events[e],o(s))return!1;if(i(s))switch(arguments.length){case 1:s.call(this);break;case 2:s.call(this,arguments[1]);break;case 3:s.call(this,arguments[1],arguments[2]);break;default:for(n=arguments.length,u=new Array(n-1),a=1;n>a;a++)u[a-1]=arguments[a];s.apply(this,u)}else if(r(s)){for(n=arguments.length,u=new Array(n-1),a=1;n>a;a++)u[a-1]=arguments[a];for(h=s.slice(),n=h.length,a=0;n>a;a++)h[a].apply(this,u)}return!0},s.prototype.addListener=function(e,t){var n;if(!i(t))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,i(t.listener)?t.listener:t),this._events[e]?r(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,r(this._events[e])&&!this._events[e].warned){var n;n=o(this._maxListeners)?s.defaultMaxListeners:this._maxListeners,n&&n>0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())}return this},s.prototype.on=s.prototype.addListener,s.prototype.once=function(e,t){function s(){this.removeListener(e,s),n||(n=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var n=!1;return s.listener=t,this.on(e,s),this},s.prototype.removeListener=function(e,t){var s,n,o,u;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(s=this._events[e],o=s.length,n=-1,s===t||i(s.listener)&&s.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(r(s)){for(u=o;u-->0;)if(s[u]===t||s[u].listener&&s[u].listener===t){n=u;break}if(0>n)return this;1===s.length?(s.length=0,delete this._events[e]):s.splice(n,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},s.prototype.removeAllListeners=function(e){var t,s;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(s=this._events[e],i(s))this.removeListener(e,s);else for(;s.length;)this.removeListener(e,s[s.length-1]);return delete this._events[e],this},s.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},s.listenerCount=function(e,t){var s;return s=e._events&&e._events[t]?i(e._events[t])?1:e._events[t].length:0}},{}]},{},[1]);