function Aplayer (e) {if (!) (! Music ' in e&& ' title ' in e.music&& ' author ' in e.music&& ' url ' in e.music&& ' pic ' in E.music ) throw "Aplayer Error:music, Music.title, Music.author, Music.url, music.pic are required in Options"; if (null=== e.element) throw "aplayer error:element option null"; This.ismobile=navigator.useragent.match (IPad) | ( IPhone) | (IPod) | (Android) | (WebOS)/i),this.ismobile&& (e.autoplay=!1); var a={element:document.getelementsbyclassname ("Aplayer") [0], Narrow:!1,autoplay:!1,showlrc:!1};for (Var t in a) A.hasownproperty (t) &&!e.hasownproperty (t) && (E[T) =a[t]); This.option=e}aplayer.prototype.init=function () {function E (e) {var a=e| | Window.event,i= (A.clientx-t (P.bar))/y;i=i>0?i:0,i=1>i?i:1,p.updatebar.call (P, "played", I, "width"), P.option.showlrc&&p.updatelrc.call (P,parsefloat (p.playedbar.style.width)/100*p.audio.duration), P.element.getelementsbyclassname ("Aplayer-ptime") [0].innerhtml=p.secondtotime (I*p.audio.duration)}function A () { DOcument.removeeventlistener ("MouseUp", a), Document.removeeventlistener ("MouseMove", e), p.audio.currenttime= Parsefloat (P.playedbar.style.width)/100*p.audio.duration,p.play ()}function T (e) {for (Var a,t=e.offsetleft,i= e.offsetparent;null!==i) T+=i.offsetleft,i=i.offsetparent;return a=document.body.scrollleft+ Document.documentelement.scrollleft,t-a}function I (e) {for (var a,t=e.offsettop,i=e.offsetparent;null!==i;) t+= I.offsettop,i=i.offsetparent;return A=document.body.scrolltop+document.documentelement.scrolltop,t-a}if ( THIS.ELEMENT=THIS.OPTION.ELEMENT,THIS.MUSIC=THIS.OPTION.MUSIC,THIS.OPTION.SHOWLRC) {this.lrcTime=[], This.lrcline=[];for (Var l=this.element.getelementsbyclassname ("Aplayer-lrc-content") [0].innerHTML,s=l.split (/\n /), r=/\[(\d{2}):(\d{2}) \. (\d{2})] /,n=/] (. *) $/,o=/\[[a-za-z]+:/,d=0;d<s.length;d++) {S[d]=s[d].replace (/^\s+|\s+$/g, ""), Var c=r.exec (s[d)), u= N.exec (S[d]); if (C&&u&&!n.exec (u[1)) This.lrcTime.push (60*parseint (c[1)) +parseint (c[2)) + parseint (C[3])/100), THIS.LRCLIne.push (u[1]); else if (S[d]&&!o.exec (s[d)) throw "Aplayer ERROR:LRC format error:should is like" [mm:ss.xx] Lyric ': +s[d]}}if (this.element.innerhtml= ' <div class= "aplayer-pic" ><img src= "' +this.music.pic+ '" > <div class= "Aplayer-button aplayer-pause aplayer-hide" ><i class= "Demo-icon aplayer-icon-pause" ></i ></div><div class= "Aplayer-button aplayer-play" ><i class= "Demo-icon aplayer-icon-play" ></i ></div></div><div class= "Aplayer-info" ><div class= "Aplayer-music" ><span "class=" Aplayer-title "> ' +this.music.title+ ' </span><span class=" Aplayer-author ">-(>?<) loading, very tired said ... </ Span></div><div class= "APLAYER-LRC" ><div class= "aplayer-lrc-contents" style=: Translatey (0); " ></div></div><div class= "Aplayer-controller" ><div class= "Aplayer-bar-wrap" ><div class= "Aplayer-bar" ><div class= "aplayer-loaded" style= "width:0" ></div><div Class= "aplayer-played" style= "width:0" ><span class= "Aplayer-thumb" ></span></div></div> </div><div class= "Aplayer-time" >-<span class= "Aplayer-ptime" >00:00</span>/<span class= "Aplayer-dtime" > (o゚?゚) </span><div class= "Aplayer-volume-wrap" ><i class= "Demo-icon" Aplayer-icon-volume-down "></i><div class=" Aplayer-volume-bar-wrap "><div class=" Aplayer-volume-bar "><div class=" Aplayer-volume style= "height:80%" ></div></div></div> </div></div></div></div> ', THIS.OPTION.SHOWLRC) {This.element.classList.add (" APLAYER-WITHLRC "); var m=" "; for (This.lrccontents=this.element.getelementsbyclassname (" aplayer-lrc-contents ") [0], d=0;d<this.lrcline.length;d++) m+= "<p>" +this.lrcline[d]+ "</p>"; This.lrccontents.innerhtml=m, This.lrcindex=0,this.lrccontents.getelementsbytagname ("P") [0].classlist.add ("Aplayer-lrc-current")} This.option.narrow&&this.element.clasSlist.add ("Aplayer-narrow"), This.audio=document.createelement ("audio"), This.audio.src=this.music.url, this.audio.loop=!0,this.audio.preload= "metadata"; var p=this;this.audio.addeventlistener ("Durationchange", function () {1!==p.audio.duration&& (P.element.getelementsbyclassname ("Aplayer-dtime") [0].innerHTML= P.secondtotime (p.audio.duration))}), This.audio.addEventListener ("Loadedmetadata", function () { P.element.getelementsbyclassname ("Aplayer-author") [0].innerhtml= "-" +p.music.author,p.loadedtime=setinterval ( function () {var e=p.audio.buffered.end (p.audio.buffered.length-1)/p.audio.duration;p.updatebar.call (p, "loaded", E , "width"), 1===e&&clearinterval (P.loadedtime)},500)}), This.audio.addEventListener ("Error", function () { P.element.getelementsbyclassname ("Aplayer-author") [0].innerhtml=-Load Failed???}), this.playbutton= This.element.getElementsByClassName ("Aplayer-play") [0],this.pausebutton=this.element.getelementsbyclassname (" Aplayer-pause ") [0],this.playbutton.addeventlistener (" click ", FunCtion () {P.play.call (P)}), This.pauseButton.addEventListener ("click", Function () {P.pause.call (P)}), This.playedbar =this.element.getelementsbyclassname ("aplayer-played") [0],this.loadedbar=this.element.getelementsbyclassname (" Aplayer-loaded ") [0],this.thumb=this.element.getelementsbyclassname (" Aplayer-thumb ") [0],this.bar= This.element.getElementsByClassName ("Aplayer-bar") [0];var Y;this.bar.addeventlistener ("click", Function (e) {var a= e| | Window.event;y=p.bar.clientwidth;var i= (A.clientx-t (P.bar))/y;p.updatebar.call (P, "played", I, "width"), P.element.getelementsbyclassname ("Aplayer-ptime") [0].innerhtml=p.secondtotime (I*p.audio.duration), P.audio.currenttime=parsefloat (p.playedbar.style.width)/100*p.audio.duration}), This.thumb.addEventListener (" MouseDown ", function () {y=p.bar.clientwidth,clearinterval (p.playedtime), Document.addeventlistener (" MouseMove ", E) , Document.addeventlistener ("MouseUp", a)}), this.audio.volume=.8,this.volumebar= This.element.getElementsByClassName ("Aplayer-volume") [0];var h=this.elemenT.getelementsbyclassname ("Aplayer-volume-bar") [0],v=p.element.getelementsbyclassname ("Aplayer-time") [0]. getElementsByTagName ("i") [0],f=35;this.element.getelementsbyclassname ("Aplayer-volume-bar-wrap") [0]. AddEventListener ("click", Function (e) {var a=e| | Window.event,t= (F-a.clienty+i (h))/f;t=t>0?t:0,t=1>t?t:1,p.updatebar.call (P, "volume", t, "height"), p.audio.volume=t,p.audio.muted&& (p.audio.muted=!1), 1===t?v.classname= "Demo-icon aplayer-icon-volume-up" : v.classname= "Demo-icon Aplayer-icon-volume-down"}), V.addeventlistener ("click", Function () {p.audio.muted? ( P.audio.muted=!1,v.classname=1===p.audio.volume? " Demo-icon aplayer-icon-volume-up ": Demo-icon aplayer-icon-volume-down", P.updatebar.call (P, "volume"), P.audio.volume, "height")):(p.audio.muted=!0,v.classname= "Demo-icon aplayer-icon-volume-off", P.updateBar.call (P, "Volume", 0, "height")}), This.option.autoplay&&this.play ()},aplayer.prototype.play=function () { This.playButton.classList.add ("Aplayer-hide"), This.pauseButton.classList. Remove ("Aplayer-hide"), This.audio.play (), Var e=this;this.playedtime=setinterval (function () {E.updatebar.call E, "Played", E.audio.currenttime/e.audio.duration, "width"), E.option.showlrc&&e.updatelrc.call (E), E.element.getelementsbyclassname ("Aplayer-ptime") [0].innerhtml=e.secondtotime (E.audio.currenttime)},100)}, Aplayer.prototype.pause=function () {This.pauseButton.classList.add ("Aplayer-hide"), This.playButton.classList.remove ("Aplayer-hide"), This.audio.pause (), Clearinterval (This.playedtime)}, Aplayer.prototype.updatebar=function (e,a,t) {a=a>0?a:0,a=1>a?a:1,this[e+ "Bar"].style[t]=100*a+ "%"}, Aplayer.prototype.updatelrc=function (e) {if (e| | (e=this.audio.currenttime), e<this.lrctime[this.lrcindex]| | E>=this.lrctime[this.lrcindex+1]) for (Var a=0;a<this.lrctime.length;a++) e>=this.lrctime[a]&& (! this.lrctime[a+1]| | E<THIS.LRCTIME[A+1]) && (this.lrcindex=a,this.lrccontents.style.transform= "Translatey" +20*- this.lrcindex+ "px", this.lrcContents.getElementsByClassName("Aplayer-lrc-current") [0].classlist.remove ("Aplayer-lrc-current"), This.lrcContents.getElementsByTagName ("P") [A].classlist.add (" Aplayer-lrc-current "))},aplayer.prototype.secondtotime=function (e) {var a=function (e) {return 10>e? 0 "+e:" "+e},t=parseint (E/60), I=parseint (e-60*t); return a (T) +": "+a (i)}; |