meplayer.min.js 8.3 KB

1
  1. !function(e){function r(a){if(t[a])return t[a].exports;var i=t[a]={exports:{},id:a,loaded:!1};return e[a].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}var t={};return r.m=e,r.c=t,r.p="",r(0)}([function(e,r,t){"use strict";function a(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r["default"]=e,r}function i(e){return"string"==typeof e?document.querySelector(e):e.toString().includes("HTMLDivElement")?e:document.querySelector(".meplayer")}var l=t(1),n=t(2),s=a(n),o=t(3),c=a(o),u=t(4),m=a(u);window.mePlayer=function(e){function r(){S.addEventListener("ended",function(){c.removeClass(E,"meplayer-isplaying")}),S.addEventListener("canplaythrough",function(){h=this.duration,setTimeout(function(){c.removeClass(E,"meplayer-isloading"),T.querySelector(".meplayer-duration-text").innerText=c.parseSec(h.toFixed(0))},1e3)}),S.addEventListener("durationchange",function(){h=this.duration}),S.addEventListener("timeupdate",function(){var e=S.currentTime.toFixed(0),r=S.currentTime.toFixed(3),t=100*(e/h);if(_.style.width=t.toFixed(2)+"%",x.innerText=c.parseSec(e),p&&d===l.THEME_DEFAULT){var a=s.currentIndex(r),i=w.querySelectorAll("p"),n=i[a-1],o=i[a],u=i[a+1];o.className.includes("meplayer-lyric-current")||(c.removeClass(w.querySelector(".meplayer-lyric-current"),"meplayer-lyric-current"),w.querySelector(".meplayer-lyric-pre")&&c.removeClass(w.querySelector(".meplayer-lyric-pre"),"meplayer-lyric-pre"),w.querySelector(".meplayer-lyric-next")&&c.removeClass(w.querySelector(".meplayer-lyric-next"),"meplayer-lyric-next"),c.addClass(o,"meplayer-lyric-current"),n&&c.addClass(n,"meplayer-lyric-pre"),u&&c.addClass(u,"meplayer-lyric-next"),w.style.webkitTransform="translateY(-"+20*a+"px)",w.style.transform="translateY(-"+20*a+"px)")}});var e;L.addEventListener("click",function(){S.paused?(S.play(),d!==l.THEME_DEFAULT||p||m.draw(),E.addEventListener("mousewheel",function(){var r=null,t=.05;return e=function(e){r&&clearTimeout(r),E.className.includes("meplayer-adjusting-volume")||c.addClass(E,"meplayer-adjusting-volume"),e.wheelDeltaY<0&&S.volume>t&&(S.volume-=t),e.wheelDeltaY>0&&S.volume<1-t&&(S.volume+=t),d===l.THEME_DEFAULT?M.style.width=100*S.volume+"%":q.querySelector("i").style.opacity=S.volume,e.preventDefault(),r=setTimeout(function(){c.removeClass(E,"meplayer-adjusting-volume")},1e3)}}())):(S.pause(),m.stop(),E.removeEventListener("mousewheel",e)),c.toggleClass(E,"meplayer-isplaying")}),C.addEventListener("click",function(e){var r=(e.pageX-c.getAbsLeft(this))/this.offsetWidth;_.style.width=100*r+"%",S.currentTime=(r*h).toFixed(0)})}function t(){S.paused&&S.play()}function a(){S.paused||S.pause()}function n(){function e(){t++,E.style.opacity-=r,E.style.opacity<=0&&(r*=-1,E.style.opacity=0,c.toggleClass(E,"meplayer-container-mini"),c.toggleClass(E,"meplayer-container")),E.style.opacity<1&&a>t?requestAnimationFrame(e):setTimeout(function(){c.removeClass(E,"meplayer-changing-theme")},500)}var r=.03,t=0,a=200;c.addClass(E,"meplayer-changing-theme"),d=d===l.THEME_DEFAULT?l.THEME_MINI:l.THEME_DEFAULT,e()}if(!e.music||!e.music.src)return void console.error("必须指定音乐地址哦~");var o=e.music,u=i(e.target),d=e.theme?e.theme:l.THEME_DEFAULT,p=o.lrc?!0:!1,y=o.cover?o.cover:"https://unsplash.it/78/?random",v=d===l.THEME_DEFAULT?"meplayer-container":"meplayer-container-mini",f=v+" "+(p?"meplayer-haslrc":"")+" meplayer-isloading",g='<div class="'+f+'">\n <audio src='+o.src+'></audio>\n <div class="meplayer-info">\n <div class="meplayer-info-cover"><img src='+y+' alt="cd-cover"></div>\n <div class="meplayer-meta">\n <div class="meplayer-meta-title">'+o.title+'</div>\n <div class="meplayer-meta-author">'+o.author+'</div>\n <div class="meplayer-meta-time-tick"><span class="meplayer-meta-time-tick-text"></span></div>\n </div>\n </div>\n <canvas class="meplayer-spectrum"></canvas>\n <div class="meplayer-lyric"><div class="meplayer-lyric-area"></div></div>\n <div class="meplayer-control"><div class="meplayer-control-play"><i class="icon-play"></i><i class="icon-pause"></i></div></div>\n <div class="meplayer-volume-bg"><div class="meplayer-volume"><i class="icon-volume"></i><div class="meplayer-volume-progress"></div></div></div>\n <div class="meplayer-duration"><i class="icon-clock"></i><span class="meplayer-duration-text">loading</span></div>\n <div class="meplayer-loadingsign"><i class="icon-spin animate-spin"></i>loading</div>\n <div class="meplayer-timeline-bg"><div class="meplayer-timeline"><div class="meplayer-timeline-passed"></div></div></div>\n </div>';u.innerHTML=g;var h,E=u.querySelector("."+v),S=u.querySelector("audio"),L=u.querySelector(".meplayer-control-play"),x=u.querySelector(".meplayer-meta-time-tick-text"),T=u.querySelector(".meplayer-duration"),C=u.querySelector(".meplayer-timeline"),_=u.querySelector(".meplayer-timeline-passed"),q=u.querySelector(".meplayer-volume"),M=u.querySelector(".meplayer-volume-progress"),w=u.querySelector(".meplayer-lyric-area"),A=u.querySelector(".meplayer-spectrum");S.preload="auto",p?(s.parse(o.lrc),s.render(w)):m.init(A),r(),window.mePlayer={play:t,pause:a,toggleTheme:n}}},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var t="default",a="mini",i="meplayer-lyric-current",l="meplayer-lyric-next";r.THEME_DEFAULT=t,r.THEME_MINI=a,r.LYRIC_CURRENT_CLASS=i,r.LYRIC_NEXT_CLASS=l},function(e,r,t){"use strict";function a(e){for(var r=e.split("\n"),t=[],a=r.length,i=/\[(\d{2}):(\d{2})\.(\d{2,3})]/g,l=/\[(\d{2}):(\d{2})\.(\d{2,3})]/,s=0;a>s;s++){var o=r[s].match(i),c=r[s].replace(i,"").replace(/^\s+|\s+$/g,"");if(c&&null!=o)for(var u=o.length,m=0;u>m;m++){var d=l.exec(o[m]),p=60*d[1]+parseInt(d[2])+parseInt(d[3])/(2===(d[3]+"").length?100:1e3);t.push({time:p,text:c})}}return t.sort(function(e,r){return e.time-r.time}),n=t,t}function i(e){if(!n)return void console.error("未指定歌词文本!");for(var r="",t=0;t<n.length;t++)r+="<p>"+n[t].text+"</p>";e.innerHTML=r,e.querySelector("p").className=s.LYRIC_CURRENT_CLASS,e.querySelector("p + p").className=s.LYRIC_NEXT_CLASS}function l(e){if(e<n[0].time)return 0;for(var r=0,t=n.length;t>r&&!(e>=n[r].time&&(!n[r+1]||e<=n[r+1].time));r++);return r}Object.defineProperty(r,"__esModule",{value:!0}),r.currentIndex=r.render=r.parse=void 0;var n,s=t(1);r.parse=a,r.render=i,r.currentIndex=l},function(e,r){"use strict";function t(e,r){if(e.classList)e.classList.toggle(r);else{var t=e.className.split(" "),a=t.indexOf(r);a>=0?t.splice(a,1):t.push(r),e.className=t.join(" ")}}function a(e,r){e.classList?e.classList.add(r):e.className+=" "+r}function i(e,r){e.classList?e.classList.remove(r):e.className=e.className.replace(new RegExp("(^|\\b)"+r.split(" ").join("|")+"(\\b|$)","gi")," ")}function l(e){for(var r=e.offsetLeft;e.offsetParent;)e=e.offsetParent,r+=e.offsetLeft;return r}function n(e){var r=(e/60).toFixed(0),t=(e%60).toFixed(0),a=10>r?"0"+r:r,i=10>t?"0"+t:t;return a+":"+i}Object.defineProperty(r,"__esModule",{value:!0}),r.toggleClass=t,r.addClass=a,r.removeClass=i,r.getAbsLeft=l,r.parseSec=n},function(e,r){"use strict";function t(){return d()>.8?8*d()+11:6*d()+2}function a(){o.clearRect(0,-s.height/2,s.width,s.height);for(var e=0;e<c.length;e++){var r=c[e],t=r.getHeight();o.fillRect(e+c[e].xSpace,-t/2,c[e].width,t)}u||(m=requestAnimationFrame(a))}function i(e){var r=arguments.length<=1||void 0===arguments[1]?220:arguments[1],a=arguments.length<=2||void 0===arguments[2]?30:arguments[2],i=arguments.length<=3||void 0===arguments[3]?"#D94240":arguments[3];s=e,s.width=r,s.height=a,o=s.getContext("2d"),o.fillStyle=i,o.translate(0,a/2);for(var l=0;64>l;l++){var n=0==l?0:5*l,u={xSpace:n,width:1,getHeight:p(t())};c.push(u)}}function l(){u=!1,a()}function n(){u=!0}Object.defineProperty(r,"__esModule",{value:!0});var s,o,c=[],u=!1,m=null,d=Math.random,p=function(e){var r,t=1.5*e>28?28:1.5*e,a=1,i=d()>.5?1:-1,l=e;return function(){return r=i,l+=r,l>=t?(i*=-1,l=t):a>=l&&(i*=-1,l=a),d()>.9&&(i*=-1),l}};r.init=i,r.draw=l,r.stop=n}]);