audio_x
Version:
The audio player for the gen-x
2 lines • 24.3 kB
JavaScript
var j=Object.defineProperty;var X=Object.getOwnPropertySymbols;var ce=Object.prototype.hasOwnProperty,de=Object.prototype.propertyIsEnumerable;var I=(s,e,t)=>e in s?j(s,e,{enumerable:true,configurable:true,writable:true,value:t}):s[e]=t,b=(s,e)=>{for(var t in e||(e={}))ce.call(e,t)&&I(s,t,e[t]);if(X)for(var t of X(e))de.call(e,t)&&I(s,t,e[t]);return s};var n=(s,e)=>j(s,"name",{value:e,configurable:true});var l=(s,e,t)=>I(s,typeof e!="symbol"?e+"":e,t);var p=(s,e,t)=>new Promise((i,r)=>{var a=f=>{try{_(t.next(f));}catch(y){r(y);}},c=f=>{try{_(t.throw(f));}catch(y){r(y);}},_=f=>f.done?i(f.value):Promise.resolve(f.value).then(a,c);_((t=t.apply(s,e)).next());});var z=[{frequency:31,type:"lowshelf",gain:0,q:1.2},{frequency:63,type:"peaking",gain:0,q:1.2},{frequency:125,type:"peaking",gain:0,q:1.2},{frequency:250,type:"peaking",gain:0,q:1.2},{frequency:500,type:"peaking",gain:0,q:1.2},{frequency:1e3,type:"peaking",gain:0,q:1.2},{frequency:2e3,type:"peaking",gain:0,q:1.2},{frequency:4e3,type:"peaking",gain:0,q:1.2},{frequency:8e3,type:"peaking",gain:0,q:1.2},{frequency:16e3,type:"highshelf",gain:0,q:1.2}],k=[{name:"Default",id:"default",default:true,gains:[0,0,0,0,0,0,0,0,0,0]},{name:"Club",id:"club",default:true,gains:[0,0,4.8,3.36,3.36,3.36,1.92,0,0,0]},{name:"Live",id:"live",default:true,gains:[-2.88,0,2.4,3.36,3.36,3.36,2.4,1.44,1.44,1.44]},{name:"Party",id:"Party",default:true,gains:[4.32,4.32,0,0,0,0,0,0,4.32,4.32]},{name:"Pop",id:"pop",default:true,gains:[.96,2.88,4.32,4.8,3.36,0,-1.44,-1.44,.96,.96]},{name:"Soft",id:"soft",default:true,gains:[2.88,.96,0,-1.44,0,2.4,4.8,5.76,6.72,7.2]},{name:"Ska",id:"ska",default:true,gains:[-1.44,-2.88,-2.4,0,2.4,3.36,5.28,5.76,6.72,5.76]},{name:"Reggae",id:"reggae",default:true,gains:[0,0,0,-3.36,0,3.84,3.84,0,0,0]},{name:"Rock",id:"rock",default:true,gains:[4.8,2.88,-3.36,-4.8,-1.92,2.4,5.28,6.72,6.72,6.72]},{name:"Dance",id:"dance",default:true,gains:[5.76,4.32,1.44,0,0,-3.36,-4.32,-4.32,0,0]},{name:"Techno",id:"techno",default:true,gains:[4.8,3.36,0,-3.36,-2.88,0,4.8,5.76,5.76,5.28]},{name:"Headphones",id:"headphones",default:true,gains:[2.88,6.72,3.36,-1.92,-1.44,.96,2.88,5.76,7.68,8.64]},{name:"Soft rock",id:"soft_rock",default:true,gains:[2.4,2.4,1.44,0,-2.4,-3.36,-1.92,0,1.44,5.28]},{name:"Classical",id:"classical",default:true,gains:[0,0,0,0,0,0,-4.32,-4.32,-4.32,-5.76]},{name:"Large Hall",id:"large_hall",default:true,gains:[6.24,6.24,3.36,3.36,0,-2.88,-2.88,-2.88,0,0]},{name:"Full Bass",id:"full_base",default:true,gains:[4.8,5.76,5.76,3.36,.96,-2.4,-4.8,-6.24,-6.72,-6.72]},{name:"Full Treble",id:"full_treble",default:true,gains:[-5.76,-5.76,-5.76,-2.4,1.44,6.72,9.6,9.6,9.6,10.08]},{name:"Laptop Speakers",id:"laptop_speakers",default:true,gains:[2.88,6.72,3.36,-1.92,-1.44,.96,2.88,5.76,7.68,8.64]},{name:"Full Bass & Treble",id:"bass_treble",default:true,gains:[4.32,3.36,0,-4.32,-2.88,.96,4.8,6.72,7.2,7.2]}];var x=Object.freeze({REACT:"REACT",VANILLA:"VANILLA",DEVELOPMENT:"development"}),u=Object.freeze({BUFFERING:"buffering",PLAYING:"playing",PAUSED:"paused",READY:"ready",IDLE:"idle",ENDED:"ended",STALLED:"stalled",ERROR:"error",TRACK_CHANGE:"trackchanged",DURATION_CHANGE:"durationchanged",QUEUE_ENDED:"queueended"}),L=Object.freeze({MEDIA_ERR_ABORTED:"The user canceled the audio.",MEDIA_ERR_DECODE:"An error occurred while decoding the audio.",MEDIA_ERR_NETWORK:"A network error occurred while fetching the audio.",MEDIA_ERR_SRC_NOT_SUPPORTED:"The audio is missing or is in a format not supported by your browser.",DEFAULT:"An unknown error occurred."}),$={HLS:"https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.18/hls.min.js"};var d,Ee=(d=class{static validateEventName(e){if(!e||typeof e!="string")throw new Error("Invalid event name")}static notify(e,t,i="audiox_notifier_default"){this.validateEventName(e);let r=d.listeners[e];r&&t!==null&&(d.notifierState[e]=b(b({},d.notifierState[e]||{}),t),r.forEach(a=>{a(d.notifierState[e]);}));}static listen(e,t,i={}){if(this.validateEventName(e),typeof t!="function")throw new Error("Callback must be a function");return d.listeners[e]?d.listeners[e].add(t):(d.notifierState[e]=i,d.listeners[e]=new Set([t])),()=>{let r=d.listeners[e];r&&(r.delete(t),r.size===0&&delete d.listeners[e]);}}static multiListen(e,t,i={}){if(this.validateEventName(e),!Array.isArray(t)||t.length===0)throw new Error("Callbacks must be a non-empty array of functions");let r=t.map(a=>d.listen(e,a,i));return ()=>{r.forEach(a=>a());}}static getLatestState(e){return this.validateEventName(e),d.notifierState[e]}},n(d,"ChangeNotifier"),l(d,"listeners",{}),l(d,"notifierState",{}),d),A=Ee;var T=n(s=>s&&Array.isArray(s)&&s.length,"isValidArray"),J=n(s=>s instanceof Function&&typeof s=="function","isValidFunction"),v=n(s=>typeof s=="object"&&s!==null&&s instanceof Object&&Object.keys(s).length,"isValidObject"),W={},Z=n(s=>{let e="",t=s.error;switch(t==null?void 0:t.code){case MediaError.MEDIA_ERR_ABORTED:e+=L.MEDIA_ERR_ABORTED;break;case MediaError.MEDIA_ERR_NETWORK:e+=L.MEDIA_ERR_NETWORK;break;case MediaError.MEDIA_ERR_DECODE:e+=L.MEDIA_ERR_DECODE;break;case MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED:e+=L.MEDIA_ERR_SRC_NOT_SUPPORTED;break;default:e+=L.DEFAULT;break}return e},"getReadableErrorMessage"),ee=n(s=>{var y;let{title:e,album:t,artist:i,artwork:r}=s,a=r?(y=r[0])==null?void 0:y.src:"",_=["96x96","128x128","192x192","256x256","384x384","512x512"].map(F=>({src:a,sizes:F,type:"image/png"}));return {title:e,album:t,artist:i,artwork:_}},"metaDataCreator"),q=0,C=n((s,e)=>{let t=new Set;for(let a=0;a<s.played.length;a++){let c=s.played.start(a),f=s.played.end(a)-c;t.add(f);}let r=[...t].reduce((a,c)=>a+c,0);q=["ENDED","TRACK_CHANGE","PAUSE"].includes(e)?r:q,A.notify("AUDIO_STATE",{currentTrackPlayTime:r,previousTrackPlayTime:q});},"calculateActualPlayedLength"),te=n((s,e,t)=>new Promise((i,r)=>{if(window instanceof Window&&window.document)if(W[t])e(),i();else {W[t]=true;let a=document.createElement("script");a.type="text/javascript",a.src=s,a.async=true,a.onload=()=>{e(),i();},document.head.appendChild(a);}else r(`Window not ready unable to initialize ${t}`);}),"loadScript"),se=n(()=>{let s=new h,e=false,t=n(i=>{if(i.playbackState==="ended"&&!e){let r=s.getQueue();e=true,r&&T(r)&&e&&s.playNext();}i.playbackState!=="ended"&&(e=false);},"audioStateListener");A.listen("AUDIO_STATE",t);},"handleQueuePlayback"),m=n(s=>{let{buffered:e}=s,t=0;for(let i=0;i<e.length;i++)t+=e.end(i)-e.start(i);return t},"getBufferedDuration");var O=n(s=>{let e=new h,t=h.getAudioInstance();if(s==="OFF"&&(t.loop=false),s==="SINGLE"&&(t.loop=true),s==="QUEUE"){let i=e.getQueue();O("OFF"),A.listen("AUDIO_STATE",r=>{r.playbackState==="queueended"&&T(i)&&e.addMediaAndPlay(i[0]);});}},"handleLoopPlayback"),P=n((s,e)=>{if(s===null&&e===null)return true;if(s===null||e===null||typeof s!=typeof e)return false;if(typeof s!="object")return s===e;if(Array.isArray(s)&&Array.isArray(e))return s.length!==e.length?false:s.every((r,a)=>P(r,e[a]));let t=Object.keys(s),i=Object.keys(e);return t.length!==i.length?false:t.every(r=>i.includes(r)?P(s[r],e[r]):false)},"diffChecker");var g,w=(g=class{constructor(){l(this,"audioCtx");l(this,"audioCtxStatus");l(this,"eqFilterBands");l(this,"bassBoostFilter");l(this,"compressor");if(g._instance)return g._instance;this.initializeAudioContext(),g._instance=this;}initializeAudioContext(){let e={latencyHint:"playback"};typeof AudioContext!="undefined"?this.audioCtx=new AudioContext(e):typeof window.webkitAudioContext!="undefined"&&(this.audioCtx=new window.webkitAudioContext(e)),this.audioCtxStatus="ACTIVE",this.init(),this.audioCtx.state==="suspended"&&this.addResumeListener();}addResumeListener(){let e=n(()=>{this.audioCtx.resume(),setTimeout(()=>{this.audioCtx.state==="running"&&document.body.removeEventListener("click",e,false);},0);},"resume");document.body.addEventListener("click",e,false);}init(){try{let e=h.getAudioInstance(),t=this.audioCtx.createMediaElementSource(e),i=z.map(r=>{let a=this.audioCtx.createBiquadFilter();return a.type=r.type,a.frequency.value=r.frequency,a.gain.value=r.gain,a.Q.value=r.q||1,a});this.compressor=this.audioCtx.createDynamicsCompressor(),this.compressor.threshold.value=-24,this.compressor.knee.value=30,this.compressor.ratio.value=12,this.compressor.attack.value=.003,this.compressor.release.value=.25,this.bassBoostFilter=this.audioCtx.createBiquadFilter(),this.bassBoostFilter.type="lowshelf",this.bassBoostFilter.frequency.value=100,this.bassBoostFilter.gain.value=0,t.connect(i[0]);for(let r=0;r<i.length-1;r++)i[r].connect(i[r+1]);i[i.length-1].connect(this.bassBoostFilter),this.bassBoostFilter.connect(this.compressor),this.compressor.connect(this.audioCtx.destination),this.audioCtxStatus="ACTIVE",this.eqFilterBands=i;}catch(e){this.audioCtxStatus="FAILED";}}setPreset(e){let t=k.find(r=>r.id===e);if(!t||!this.eqFilterBands||this.eqFilterBands.length!==t.gains.length)return;let i=this.audioCtx.currentTime;this.eqFilterBands.forEach((r,a)=>{let c=t.gains[a];r.gain.setTargetAtTime(c,i,.05);});}static getPresets(){return k}status(){return this.audioCtx.state==="suspended"&&this.audioCtx.resume(),this.audioCtxStatus}setCustomEQ(e){if(T(e)&&e.length===this.eqFilterBands.length){let t=this.audioCtx.currentTime;this.eqFilterBands.forEach((i,r)=>{i.gain.setTargetAtTime(e[r],t,.05);});}}setBassBoost(e,t=6){let i=this.audioCtx.currentTime;e?this.bassBoostFilter.gain.setTargetAtTime(t,i,.05):this.bassBoostFilter.gain.setTargetAtTime(0,i,.05);}setCompressorSettings(e){this.compressor&&(e.threshold!==void 0&&this.compressor.threshold.setTargetAtTime(e.threshold,this.audioCtx.currentTime,.01),e.knee!==void 0&&this.compressor.knee.setTargetAtTime(e.knee,this.audioCtx.currentTime,.01),e.ratio!==void 0&&this.compressor.ratio.setTargetAtTime(e.ratio,this.audioCtx.currentTime,.01),e.attack!==void 0&&this.compressor.attack.setTargetAtTime(e.attack,this.audioCtx.currentTime,.01),e.release!==void 0&&this.compressor.release.setTargetAtTime(e.release,this.audioCtx.currentTime,.01));}reset(){let e=this.audioCtx.currentTime;this.eqFilterBands.forEach(t=>{t.gain.setTargetAtTime(0,e,.05);}),this.bassBoostFilter.gain.setTargetAtTime(0,e,.05);}},n(g,"Equalizer"),l(g,"_instance"),g);var ie={ERROR:n((s,e)=>{let t=e.type,i=e.details,r=e.fatal;A.notify("AUDIO_STATE",{playbackState:u.ERROR,error:{type:t,isFatal:r,detail:i}},`audiox_baseEvents_state_${s.type}`);},"ERROR"),FRAG_CHANGED:n(()=>{},"FRAG_CHANGED")};var H=Object.freeze({ABORT:"abort",TIME_UPDATE:"timeupdate",CAN_PLAY:"canplay",CAN_PLAY_THROUGH:"canplaythrough",DURATION_CHANGE:"durationchange",ENDED:"ended",EMPTIED:"emptied",PLAYING:"playing",WAITING:"waiting",SEEKING:"seeking",SEEKED:"seeked",LOADED_META_DATA:"loadedmetadata",LOADED_DATA:"loadeddata",PLAY:"play",PAUSE:"pause",RATE_CHANGE:"ratechange",VOLUME_CHANGE:"volumechange",SUSPEND:"suspend",STALLED:"stalled",PROGRESS:"progress",LOAD_START:"loadstart",ERROR:"error",TRACK_CHANGE:"trackchange",QUEUE_ENDED:"queueended"}),re={MEDIA_ATTACHING:"hlsMediaAttaching",MEDIA_ATTACHED:"hlsMediaAttached",MEDIA_DETACHING:"hlsMediaDetaching",MEDIA_DETACHED:"hlsMediaDetached",BUFFER_RESET:"hlsBufferReset",BUFFER_CODECS:"hlsBufferCodecs",BUFFER_CREATED:"hlsBufferCreated",BUFFER_APPENDING:"hlsBufferAppending",BUFFER_APPENDED:"hlsBufferAppended",BUFFER_EOS:"hlsBufferEos",BUFFER_FLUSHING:"hlsBufferFlushing",BUFFER_FLUSHED:"hlsBufferFlushed",MANIFEST_LOADING:"hlsManifestLoading",MANIFEST_LOADED:"hlsManifestLoaded",MANIFEST_PARSED:"hlsManifestParsed",LEVEL_SWITCHING:"hlsLevelSwitching",LEVEL_SWITCHED:"hlsLevelSwitched",LEVEL_LOADING:"hlsLevelLoading",LEVEL_LOADED:"hlsLevelLoaded",LEVEL_UPDATED:"hlsLevelUpdated",LEVEL_PTS_UPDATED:"hlsLevelPtsUpdated",LEVELS_UPDATED:"hlsLevelsUpdated",AUDIO_TRACKS_UPDATED:"hlsAudioTracksUpdated",AUDIO_TRACK_SWITCHING:"hlsAudioTrackSwitching",AUDIO_TRACK_SWITCHED:"hlsAudioTrackSwitched",AUDIO_TRACK_LOADING:"hlsAudioTrackLoading",AUDIO_TRACK_LOADED:"hlsAudioTrackLoaded",SUBTITLE_TRACKS_UPDATED:"hlsSubtitleTracksUpdated",SUBTITLE_TRACKS_CLEARED:"hlsSubtitleTracksCleared",SUBTITLE_TRACK_SWITCH:"hlsSubtitleTrackSwitch",SUBTITLE_TRACK_LOADING:"hlsSubtitleTrackLoading",SUBTITLE_TRACK_LOADED:"hlsSubtitleTrackLoaded",SUBTITLE_FRAG_PROCESSED:"hlsSubtitleFragProcessed",CUES_PARSED:"hlsCuesParsed",NON_NATIVE_TEXT_TRACKS_FOUND:"hlsNonNativeTextTracksFound",INIT_PTS_FOUND:"hlsInitPtsFound",FRAG_LOADING:"hlsFragLoading",FRAG_LOAD_EMERGENCY_ABORTED:"hlsFragLoadEmergencyAborted",FRAG_LOADED:"hlsFragLoaded",FRAG_DECRYPTED:"hlsFragDecrypted",FRAG_PARSING_INIT_SEGMENT:"hlsFragParsingInitSegment",FRAG_PARSING_USERDATA:"hlsFragParsingUserdata",FRAG_PARSING_METADATA:"hlsFragParsingMetadata",FRAG_PARSED:"hlsFragParsed",FRAG_BUFFERED:"hlsFragBuffered",FRAG_CHANGED:"hlsFragChanged",FPS_DROP:"hlsFpsDrop",FPS_DROP_LEVEL_CAPPING:"hlsFpsDropLevelCapping",ERROR:"hlsError",DESTROYING:"hlsDestroying",KEY_LOADING:"hlsKeyLoading",KEY_LOADED:"hlsKeyLoaded",LIVE_BACK_BUFFER_REACHED:"hlsLiveBackBufferReached",BACK_BUFFER_REACHED:"hlsBackBufferReached"};var B=n((s,e=false)=>{let t=h.getAudioInstance();T(Object.keys(s))&&Object.keys(s).forEach(i=>{let r=i;t==null||t.addEventListener(H[r],a=>{if(i&&s[r]){let c=s[r];typeof c=="function"&&c(a,t,e);}});});},"attachEventListeners");var ae=n((s,e=false)=>{let i=new U().getHlsInstance();T(Object.keys(s))&&Object.keys(s).forEach(r=>{let a=r;i.on(re[a],(c,_)=>{if(a&&s[a]){let f=s[a];typeof f=="function"&&f(c,_,i,e);}});});},"attachHlsEventsListeners");var N,S,Ae=(S=class{constructor(){l(this,"HlsClass");if(S._instance)return S._instance;S._instance=this;}load(){return p(this,null,function*(){return yield te($.HLS,()=>{},"hls").then(()=>{this.HlsClass=window.Hls,window.Hls=void 0;}).catch(e=>{}),this.HlsClass})}init(){return p(this,arguments,function*(e={},t){let i=yield this.load();i.isSupported()&&(N=new i(e),ae(ie,t));})}addHlsMedia(e){let t=this.HlsClass,i=h.getAudioInstance();N.loadSource(e.source),N.attachMedia(i),N.on(t.Events.MEDIA_ATTACHED,function(){});}getHlsInstance(){return N}},n(S,"HlsAdapter"),l(S,"_instance"),S),U=Ae;var ne=Object.freeze({1:"MEDIA_ERR_ABORTED",3:"MEDIA_ERR_DECODE",2:"MEDIA_ERR_NETWORK",4:"MEDIA_ERR_SRC_NOT_SUPPORTED"});var E=A,oe={LOAD_START:n((s,e)=>{let t=m(e);E.notify("AUDIO_STATE",{playbackState:u.BUFFERING,duration:e==null?void 0:e.duration,error:{code:null,message:"",readable:""},bufferedDuration:t},`audiox_baseEvents_state_${s.type}`);},"LOAD_START"),DURATION_CHANGE:n((s,e)=>{let t=E.getLatestState("AUDIO_X_STATE"),i=m(e);E.notify("AUDIO_STATE",{playbackState:t.playbackState==="playing"?u.PLAYING:u.DURATION_CHANGE,duration:e==null?void 0:e.duration,error:{code:null,message:"",readable:""},bufferedDuration:i},`audiox_baseEvents_state_${s.type}`);},"DURATION_CHANGE"),LOADED_META_DATA:n((s,e)=>{let t=m(e);E.notify("AUDIO_STATE",{playbackState:u.BUFFERING,duration:e==null?void 0:e.duration,error:{code:null,message:"",readable:""},bufferedDuration:t},`audiox_baseEvents_state_${s.type}`);},"LOADED_META_DATA"),LOADED_DATA:n((s,e)=>{let t=m(e);E.notify("AUDIO_STATE",{playbackState:u.BUFFERING,duration:e==null?void 0:e.duration,error:{code:null,message:"",readable:""},bufferedDuration:t},`audiox_baseEvents_state_${s.type}`);},"LOADED_DATA"),CAN_PLAY:n((s,e)=>{let t=E.getLatestState("AUDIO_X_STATE"),i=m(e);E.notify("AUDIO_STATE",{playbackState:t.playbackState==="paused"?u.PAUSED:u.READY,error:{code:null,message:"",readable:""},bufferedDuration:i},`audiox_baseEvents_state_${s.type}`);},"CAN_PLAY"),CAN_PLAY_THROUGH:n((s,e)=>{let t=E.getLatestState("AUDIO_X_STATE"),i=e.paused,r=m(e);E.notify("AUDIO_STATE",{playbackState:i?u.PAUSED:t.playbackState==="playing"?u.PLAYING:u.READY,error:{code:null,message:"",readable:""},bufferedDuration:r},`audiox_baseEvents_state_${s.type}`);},"CAN_PLAY_THROUGH"),PLAY:n((s,e)=>{E.notify("AUDIO_STATE",{playbackState:u.PLAYING,progress:e==null?void 0:e.currentTime,error:{code:null,message:"",readable:""}},`audiox_baseEvents_state_${s.type}`);},"PLAY"),PLAYING:n((s,e)=>{E.notify("AUDIO_STATE",{playbackState:u.PLAYING,progress:e==null?void 0:e.currentTime,error:{code:null,message:"",readable:""}},`audiox_baseEvents_state_${s.type}`);},"PLAYING"),PAUSE:n((s,e,t)=>{E.notify("AUDIO_STATE",{playbackState:u.PAUSED,progress:e==null?void 0:e.currentTime,error:{code:null,message:"",readable:""}},`audiox_baseEvents_state_${s.type}`),t&&C(e,"PAUSE");},"PAUSE"),ENDED:n((s,e,t)=>{E.notify("AUDIO_STATE",{playbackState:u.ENDED,progress:e==null?void 0:e.currentTime,error:{code:null,message:"",readable:""}},`audiox_baseEvents_state_${s.type}`),t&&C(e,"ENDED");},"ENDED"),ERROR:n((s,e)=>{var r;let t=(r=e.error)==null?void 0:r.code,i=Z(e);E.notify("AUDIO_STATE",{playbackState:u.ERROR,error:{code:t,message:ne[t],readable:i}},`audiox_baseEvents_state_${s.type}`);},"ERROR"),TIME_UPDATE:n((s,e)=>{let t=E.getLatestState("AUDIO_X_STATE"),i=m(e);E.notify("AUDIO_STATE",{playbackState:e.paused?t==null?void 0:t.playbackState:u.PLAYING,progress:e==null?void 0:e.currentTime,error:{code:null,message:"",readable:""},bufferedDuration:i},`audiox_baseEvents_state_${s.type}`);},"TIME_UPDATE"),WAITING:n((s,e)=>{E.notify("AUDIO_STATE",{playbackState:u.BUFFERING,progress:e==null?void 0:e.currentTime,error:{code:null,message:"",readable:""}},`audiox_baseEvents_state_${s.type}`);},"WAITING"),VOLUME_CHANGE:n(s=>{E.notify("AUDIO_STATE",{},"audiox_baseEvents_state");},"VOLUME_CHANGE"),SEEKED:n((s,e)=>{let t=E.getLatestState("AUDIO_X_STATE"),i=m(e);E.notify("AUDIO_STATE",{playbackState:t.playbackState==="paused"?"paused":t.playbackState,progress:e==null?void 0:e.currentTime,error:{code:null,message:"",readable:""},bufferedDuration:i},`audiox_baseEvents_state_${s.type}`);},"SEEKED")};var M=n((s,e)=>{if(!s.length)return [];if(!e)return G([...s]);let t=s.findIndex(c=>c.id===e);if(t===-1)return G([...s]);let i=s.slice(0,t),r=s.slice(t+1),a=G([...i,...r]);return [...a.slice(0,t),s[t],...a.slice(t)]},"shuffleQueue");var G=n(s=>{let e=[...s];for(let t=e.length-1;t>0;t--){let i=Math.floor(Math.random()*(t+1));[e[t],e[i]]=[e[i],e[t]];}return e},"shuffleArray");var le=n(s=>{"mediaSession"in navigator&&(navigator.mediaSession.metadata=new MediaMetadata(ee(s)));},"updateMetaData"),V=n(()=>{let s=new h;"mediaSession"in navigator&&(navigator.mediaSession.setActionHandler("play",()=>{h.getAudioInstance().play();}),navigator.mediaSession.setActionHandler("pause",()=>{h.getAudioInstance().pause();}),s.getQueue().length&&(navigator.mediaSession.setActionHandler("previoustrack",()=>{s.playPrevious();}),navigator.mediaSession.setActionHandler("nexttrack",()=>{s.playNext();})));},"attachMediaSessionHandlers");var K={HAVE_ENOUGH_DATA:4},Q={playbackState:u.IDLE,duration:0,bufferedDuration:0,progress:0,volume:50,playbackRate:1,error:{code:null,message:"",readable:""},currentTrack:{},currentTrackPlayTime:0,previousTrackPlayTime:0};A.listen("AUDIO_STATE",s=>{let e=A.getLatestState("AUDIO_X_STATE");P(e,s)||A.notify("AUDIO_X_STATE",b(b({},Q),s));},Q);var o,R=A,D,h=(D=class{constructor(){l(this,"_audio");l(this,"isPlayLogEnabled");l(this,"_queue");l(this,"_currentQueueIndex",0);l(this,"_fetchFn");l(this,"eqStatus","IDEAL");l(this,"isEqEnabled",false);l(this,"eqInstance");l(this,"showNotificationsActions",false);l(this,"originalQueue",[]);l(this,"isShuffled",false);l(this,"loopMode","OFF");var e;if(D._instance)return D._instance;if(process.env.NODE_ENV!==((e=x)==null?void 0:e.DEVELOPMENT)&&o)throw new Error("Cannot create multiple audio instance");D._instance=this,this._audio=new Audio,o=this._audio;}init(e){return p(this,null,function*(){var Y;let{preloadStrategy:t="auto",autoPlay:i=false,useDefaultEventListeners:r=true,customEventListeners:a=null,showNotificationActions:c=false,enablePlayLog:_=false,enableHls:f=false,enableEQ:y=false,crossOrigin:F=null,hlsConfig:ue={}}=e;(Y=this._audio)==null||Y.setAttribute("id","audio_x_instance"),this._audio.preload=t,this._audio.autoplay=i,this._audio.crossOrigin=F,this.isPlayLogEnabled=_,this.isEqEnabled=y,a!==null?B(a,false):B(oe,_),c&&(this.showNotificationsActions=true,V()),f&&new U().init(ue,_);})}addMedia(e,t){return p(this,null,function*(){if(!e)return;t&&!e.source.length&&(this._fetchFn=t);let i=this.getQueue();if(T(i)){let a=i.findIndex(c=>e.id===c.id);a>-1&&(this._currentQueueIndex=a);}let r=e.source.includes(".m3u8")?"HLS":"DEFAULT";if(this.isPlayLogEnabled&&C(o,"TRACK_CHANGE"),r==="HLS"&&!o.canPlayType("application/vnd.apple.mpegurl")){let a=new U,c=a.getHlsInstance();c?(c.detachMedia(),a.addHlsMedia(e)):yield this.reset();}else o.src=e.source;R.notify("AUDIO_STATE",{playbackState:u.TRACK_CHANGE,currentTrackPlayTime:0,currentTrack:e}),le(e),o.load();})}attachEq(){if(this.eqStatus==="IDEAL")try{let e=new w;this.eqStatus=e.status(),this.eqInstance=e;}catch(e){}}play(){return p(this,null,function*(){let e=o.src!=="";o!=null&&o.paused&&o.HAVE_ENOUGH_DATA===K.HAVE_ENOUGH_DATA&&e&&(yield o.play().then(()=>{}).catch(()=>{})),this.isEqEnabled&&this.attachEq();})}addMediaAndPlay(e,t){return p(this,null,function*(){let i=e||(this._queue.length>0?this._queue[0]:void 0);t&&J(t)&&(i!=null&&i.source.length)&&(this._fetchFn=t,yield t(i));try{i&&this.addMedia(i).then(()=>{o.HAVE_ENOUGH_DATA===K.HAVE_ENOUGH_DATA&&setTimeout(()=>p(this,null,function*(){yield this.play(),this.isEqEnabled&&this.attachEq();}),950);});}catch(r){}})}pause(){o&&!(o!=null&&o.paused)&&(o==null||o.pause());}stop(){o&&!o.paused&&(o==null||o.pause(),o.currentTime=0);}reset(){return p(this,null,function*(){o&&(this.stop(),o.src="",o.srcObject=null);})}setVolume(e){let t=e/100;o&&(o.volume=t,R.notify("AUDIO_STATE",{volume:e}));}setPlaybackRate(e){o&&(o.playbackRate=e,R.notify("AUDIO_STATE",{playbackRate:e}));}mute(){o&&!o.muted&&(o.muted=true);}seek(e){o&&(o.currentTime=e);}seekBy(e){if(o&&o.currentTime){let t=o.currentTime;o.currentTime=t+e;}}destroy(){return p(this,null,function*(){o&&(yield this.reset(),o.removeAttribute("src"),o.load());})}subscribe(e,t,i={}){return R.listen(e,t,i)}addEventListener(e,t){o.addEventListener(e,t);}getPresets(){return w.getPresets()}setPreset(e){this.isEqEnabled&&this.eqInstance.setPreset(e);}setCustomEQ(e){this.isEqEnabled&&this.eqInstance.setCustomEQ(e);}setBassBoost(e,t){this.isEqEnabled&&this.eqInstance.setBassBoost(e,t);}addQueue(e,t){this.clearQueue();let i=R.getLatestState("AUDIO_X_STATE"),r=T(e)?e.slice():[],a=v(i.currentTrack)?i.currentTrack:void 0;switch(t){case "DEFAULT":this._queue=r;break;case "REVERSE":this._queue=r.reverse();break;case "SHUFFLE":let c=M(r,a==null?void 0:a.id);this.addQueue(c,"DEFAULT"),this.isShuffled=true;break;default:this._queue=r;break}se(),this.showNotificationsActions&&V();}playNext(){var t;let e=this._currentQueueIndex+1;if(((t=this==null?void 0:this._queue)==null?void 0:t.length)>e){let i=this._queue[e];this.addMediaAndPlay(i,this._fetchFn),this._currentQueueIndex=e;}else this.stop(),R.notify("AUDIO_STATE",{playbackState:u.QUEUE_ENDED});}playPrevious(){let e=(this==null?void 0:this._currentQueueIndex)-1;if(e>=0){let t=this==null?void 0:this._queue[e];this.addMediaAndPlay(t,this._fetchFn),this._currentQueueIndex=e;}}clearQueue(){this._queue&&T(this._queue)&&(this._queue=[],this._currentQueueIndex=0);}addToQueue(e){this._queue&&T(this._queue)&&(Array.isArray(e)?this._queue=[...this._queue,...e]:this._queue.push(e));}toggleShuffle(){var r;let e=R.getLatestState("AUDIO_X_STATE"),t=(r=this._queue)!=null?r:this.getQueue();this.clearQueue();let i=v(e.currentTrack)?e.currentTrack:void 0;if(this.isShuffled){if(!this.isShuffled||!this.originalQueue.length)return;this.addQueue(this.originalQueue,"DEFAULT"),this.isShuffled=false;}else {this.originalQueue=[...t];let a=M(t,i==null?void 0:i.id);this.addQueue(a,"DEFAULT"),this.isShuffled=true;}}loop(e){switch(this.loopMode=e,e){case "SINGLE":O(e);break;case "QUEUE":O(e);break;case "OFF":O(e);break;default:O("OFF");break}}isShuffledEnabled(){return this.isShuffled}getLoopMode(){return this.loopMode}removeFromQueue(e){if(this._queue&&T(this._queue)){let t=this._queue.filter(i=>i.id==e.id);this._queue=t;}}getQueue(){return this._queue&&T(this._queue)?this._queue:[]}get id(){return o==null?void 0:o.getAttribute("id")}static getAudioInstance(){return o}},n(D,"AudioX"),l(D,"_instance"),D);
export{H as AUDIO_EVENTS,Q as AUDIO_STATE,x as AUDIO_X_CONSTANTS,h as AudioX};