DPlayer/dist/DPlayer.min.js

4 lines
32 KiB
JavaScript

"use strict";function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},_createClass=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();!function(){var e=function(){function e(t){var n=this;_classCallCheck(this,e),this.svg={play:["0 0 16 32","M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z"],pause:["0 0 17 32","M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z"],"volume-up":["0 0 21 32","M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056zM29.728 16q0 4.096-2.272 7.552t-6.048 5.056q-0.224 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.64 0.704-1.056 0.128-0.064 0.384-0.192t0.416-0.192q0.8-0.448 1.44-0.896 2.208-1.632 3.456-4.064t1.216-5.152-1.216-5.152-3.456-4.064q-0.64-0.448-1.44-0.896-0.128-0.096-0.416-0.192t-0.384-0.192q-0.704-0.416-0.704-1.056 0-0.448 0.32-0.8t0.832-0.352q0.224 0 0.448 0.096 3.776 1.632 6.048 5.056t2.272 7.552z"],"volume-down":["0 0 21 32","M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z"],"volume-off":["0 0 21 32","M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z"],loop:["0 0 32 32","M1.882 16.941c0 4.152 3.221 7.529 7.177 7.529v1.882c-4.996 0-9.060-4.222-9.060-9.412s4.064-9.412 9.060-9.412h7.96l-3.098-3.098 1.331-1.331 5.372 5.37-5.37 5.372-1.333-1.333 3.1-3.098h-7.962c-3.957 0-7.177 3.377-7.177 7.529zM22.94 7.529v1.882c3.957 0 7.177 3.377 7.177 7.529s-3.221 7.529-7.177 7.529h-7.962l3.098-3.098-1.331-1.331-5.37 5.37 5.372 5.372 1.331-1.331-3.1-3.1h7.96c4.998 0 9.062-4.222 9.062-9.412s-4.064-9.412-9.060-9.412z"],full:["0 0 32 33","M6.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v4h4c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333zM30.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h4v-4c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM30.667 12c-0.8 0-1.333-0.533-1.333-1.333v-4h-4c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM1.333 12c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333h-4v4c0 0.8-0.533 1.333-1.333 1.333z"],setting:["0 0 32 28","M28.633 17.104c0.035 0.21 0.026 0.463-0.026 0.76s-0.14 0.598-0.262 0.904c-0.122 0.306-0.271 0.581-0.445 0.825s-0.367 0.419-0.576 0.524c-0.209 0.105-0.393 0.157-0.55 0.157s-0.332-0.035-0.524-0.105c-0.175-0.052-0.393-0.1-0.655-0.144s-0.528-0.052-0.799-0.026c-0.271 0.026-0.541 0.083-0.812 0.17s-0.502 0.236-0.694 0.445c-0.419 0.437-0.664 0.934-0.734 1.493s0.009 1.092 0.236 1.598c0.175 0.349 0.148 0.699-0.079 1.048-0.105 0.14-0.271 0.284-0.498 0.432s-0.476 0.284-0.747 0.406-0.555 0.218-0.851 0.288c-0.297 0.070-0.559 0.105-0.786 0.105-0.157 0-0.306-0.061-0.445-0.183s-0.236-0.253-0.288-0.393h-0.026c-0.192-0.541-0.52-1.009-0.982-1.402s-1-0.589-1.611-0.589c-0.594 0-1.131 0.197-1.611 0.589s-0.816 0.851-1.009 1.375c-0.087 0.21-0.218 0.362-0.393 0.458s-0.367 0.144-0.576 0.144c-0.244 0-0.52-0.044-0.825-0.131s-0.611-0.197-0.917-0.327c-0.306-0.131-0.581-0.284-0.825-0.458s-0.428-0.349-0.55-0.524c-0.087-0.122-0.135-0.266-0.144-0.432s0.057-0.397 0.197-0.694c0.192-0.402 0.266-0.86 0.223-1.375s-0.266-0.991-0.668-1.428c-0.244-0.262-0.541-0.432-0.891-0.511s-0.681-0.109-0.995-0.092c-0.367 0.017-0.742 0.087-1.127 0.21-0.244 0.070-0.489 0.052-0.734-0.052-0.192-0.070-0.371-0.231-0.537-0.485s-0.314-0.533-0.445-0.838c-0.131-0.306-0.231-0.62-0.301-0.943s-0.087-0.59-0.052-0.799c0.052-0.384 0.227-0.629 0.524-0.734 0.524-0.21 0.995-0.555 1.415-1.035s0.629-1.017 0.629-1.611c0-0.611-0.21-1.144-0.629-1.598s-0.891-0.786-1.415-0.996c-0.157-0.052-0.288-0.179-0.393-0.38s-0.157-0.406-0.157-0.616c0-0.227 0.035-0.48 0.105-0.76s0.162-0.55 0.275-0.812 0.244-0.502 0.393-0.72c0.148-0.218 0.31-0.38 0.485-0.485 0.14-0.087 0.275-0.122 0.406-0.105s0.275 0.052 0.432 0.105c0.524 0.21 1.070 0.275 1.637 0.197s1.070-0.327 1.506-0.747c0.21-0.209 0.362-0.467 0.458-0.773s0.157-0.607 0.183-0.904c0.026-0.297 0.026-0.568 0-0.812s-0.048-0.419-0.065-0.524c-0.035-0.105-0.066-0.227-0.092-0.367s-0.013-0.262 0.039-0.367c0.105-0.244 0.293-0.458 0.563-0.642s0.563-0.336 0.878-0.458c0.314-0.122 0.62-0.214 0.917-0.275s0.533-0.092 0.707-0.092c0.227 0 0.406 0.074 0.537 0.223s0.223 0.301 0.275 0.458c0.192 0.471 0.507 0.886 0.943 1.244s0.952 0.537 1.546 0.537c0.611 0 1.153-0.17 1.624-0.511s0.803-0.773 0.996-1.297c0.070-0.14 0.179-0.284 0.327-0.432s0.301-0.223 0.458-0.223c0.244 0 0.511 0.035 0.799 0.105s0.572 0.166 0.851 0.288c0.279 0.122 0.537 0.279 0.773 0.472s0.423 0.402 0.563 0.629c0.087 0.14 0.113 0.293 0.079 0.458s-0.070 0.284-0.105 0.354c-0.227 0.506-0.297 1.039-0.21 1.598s0.341 1.048 0.76 1.467c0.419 0.419 0.934 0.651 1.546 0.694s1.179-0.057 1.703-0.301c0.14-0.087 0.31-0.122 0.511-0.105s0.371 0.096 0.511 0.236c0.262 0.244 0.493 0.616 0.694 1.113s0.336 1 0.406 1.506c0.035 0.297-0.013 0.528-0.144 0.694s-0.266 0.275-0.406 0.327c-0.542 0.192-1.004 0.528-1.388 1.009s-0.576 1.026-0.576 1.637c0 0.594 0.162 1.113 0.485 1.559s0.747 0.764 1.27 0.956c0.122 0.070 0.227 0.14 0.314 0.21 0.192 0.157 0.323 0.358 0.393 0.602v0zM16.451 19.462c0.786 0 1.528-0.149 2.227-0.445s1.305-0.707 1.821-1.231c0.515-0.524 0.921-1.131 1.218-1.821s0.445-1.428 0.445-2.214c0-0.786-0.148-1.524-0.445-2.214s-0.703-1.292-1.218-1.808c-0.515-0.515-1.122-0.921-1.821-1.218s-1.441-0.445-2.227-0.445c-0.786 0-1.524 0.148-2.214 0.445s-1.292 0.703-1.808 1.218c-0.515 0.515-0.921 1.118-1.218 1.808s-0.445 1.428-0.445 2.214c0 0.786 0.149 1.524 0.445 2.214s0.703 1.297 1.218 1.821c0.515 0.524 1.118 0.934 1.808 1.231s1.428 0.445 2.214 0.445v0z"],right:["0 0 32 32","M22 16l-10.105-10.6-1.895 1.987 8.211 8.613-8.211 8.612 1.895 1.988 8.211-8.613z"],comment:["0 0 32 32","M27.128 0.38h-22.553c-2.336 0-4.229 1.825-4.229 4.076v16.273c0 2.251 1.893 4.076 4.229 4.076h4.229v-2.685h8.403l-8.784 8.072 1.566 1.44 7.429-6.827h9.71c2.335 0 4.229-1.825 4.229-4.076v-16.273c0-2.252-1.894-4.076-4.229-4.076zM28.538 19.403c0 1.5-1.262 2.717-2.819 2.717h-8.36l-0.076-0.070-0.076 0.070h-11.223c-1.557 0-2.819-1.217-2.819-2.717v-13.589c0-1.501 1.262-2.718 2.819-2.718h19.734c1.557 0 2.819-0.141 2.819 1.359v14.947zM9.206 10.557c-1.222 0-2.215 0.911-2.215 2.036s0.992 2.035 2.215 2.035c1.224 0 2.216-0.911 2.216-2.035s-0.992-2.036-2.216-2.036zM22.496 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.224 0 2.215-0.911 2.215-2.035s-0.991-2.036-2.215-2.036zM15.852 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.222 0 2.215-0.911 2.215-2.035s-0.992-2.036-2.215-2.036z"],"comment-off":["0 0 32 32","M27.090 0.131h-22.731c-2.354 0-4.262 1.839-4.262 4.109v16.401c0 2.269 1.908 4.109 4.262 4.109h4.262v-2.706h8.469l-8.853 8.135 1.579 1.451 7.487-6.88h9.787c2.353 0 4.262-1.84 4.262-4.109v-16.401c0-2.27-1.909-4.109-4.262-4.109v0zM28.511 19.304c0 1.512-1.272 2.738-2.841 2.738h-8.425l-0.076-0.070-0.076 0.070h-11.311c-1.569 0-2.841-1.226-2.841-2.738v-13.696c0-1.513 1.272-2.739 2.841-2.739h19.889c1.569 0 2.841-0.142 2.841 1.37v15.064z"],send:["0 0 32 32","M13.725 30l3.9-5.325-3.9-1.125v6.45zM0 17.5l11.050 3.35 13.6-11.55-10.55 12.425 11.8 3.65 6.1-23.375-32 15.5z"]},this.getSVG=function(e){return'\n <svg xmlns:xlink="http://www.w3.org/1999/xlink" height="100%" version="1.1" viewBox="'+n.svg[e][0]+'" width="100%">\n <use class="dplayer-svg-shadow" xlink:href="#dplayer-'+e+'"></use>\n <path class="dplayer-fill" d="'+n.svg[e][1]+'" id="dplayer-'+e+'"></path>\n </svg>\n '},this.isMobile=navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(android)|(webOS)/i),this.isMobile&&(t.autoplay=!1);var a={element:document.getElementsByClassName("dplayer")[0],autoplay:!1,theme:"#b7daff",loop:!1};for(var s in a)a.hasOwnProperty(s)&&!t.hasOwnProperty(s)&&(t[s]=a[s]);this.option=t,this.loop=t.loop,this.secondToTime=function(e){var t=function(e){return 10>e?"0"+e:""+e},n=parseInt(e/60),a=parseInt(e-60*n);return t(n)+":"+t(a)},this.updateBar=function(e,t,a){t=t>0?t:0,t=1>t?t:1,n[e+"Bar"].style[a]=100*t+"%"},this.eventTypes=["play","pause","canplay","playing","ended","error"],this.event={};for(var l=0;l<this.eventTypes.length;l++)this.event[this.eventTypes[l]]=[];this.trigger=function(e){for(var t=0;t<n.event[e].length;t++)n.event[e][t]()}}return _createClass(e,[{key:"init",value:function(){var e=this;this.element=this.option.element,this.element.innerHTML='\n <div class="dplayer-mask"></div>\n <div class="dplayer-video-wrap">\n <video class="dplayer-video" poster="'+this.option.video.pic+'">\n <source src="'+this.option.video.url+'" type="video/mp4">\n </video>\n <div class="dplayer-danmaku"></div>\n </div>\n <div class="dplayer-controller-mask"></div>\n <div class="dplayer-controller">\n <div class="dplayer-icons dplayer-icons-left">\n <button class="dplayer-icon dplayer-play-icon">'+this.getSVG("play")+' </button>\n <div class="dplayer-volume">\n <button class="dplayer-icon dplayer-volume-icon">'+this.getSVG("volume-down")+(' </button>\n <div class="dplayer-volume-bar-wrap">\n <div class="dplayer-volume-bar">\n <div class="dplayer-volume-bar-inner" style="width: 70%; background: '+this.option.theme+';">\n <span class="dplayer-thumb" style="background: '+this.option.theme+'"></span>\n </div>\n </div>\n </div>\n </div>\n <span class="dplayer-time"><span class="dplayer-ptime">0:00</span> / <span class="dplayer-dtime">0:00</span></span>\n </div>\n <div class="dplayer-icons dplayer-icons-right">\n <div class="dplayer-comment">\n <button class="dplayer-icon dplayer-comment-icon">')+this.getSVG("comment")+' </button>\n <div class="dplayer-comment-box">\n <div class="dplayer-comment-setting"></div>\n <div class="dplayer-comment-setting-box">\n <div class="dplayer-comment-setting-type">\n <label>\n <input type="radio" name="dplayer-danmaku-type" value="right" checked>\n <span>正常</span>\n </label>\n <label>\n <input type="radio" name="dplayer-danmaku-type" value="top">\n <span>顶部</span>\n </label>\n <label>\n <input type="radio" name="dplayer-danmaku-type" value="bottom">\n <span>底部</span>\n </label>\n </div>\n <div class="dplayer-comment-setting-color">\n <label>\n <input type="radio" name="dplayer-danmaku-color" value="#fff" checked>\n <span style="background: #fff; border: 1px solid rgba(0,0,0,.1);"></span>\n </label>\n <label>\n <input type="radio" name="dplayer-danmaku-color" value="#e54256">\n <span style="background: #e54256"></span>\n </label>\n <label>\n <input type="radio" name="dplayer-danmaku-color" value="#ffe133">\n <span style="background: #ffe133"></span>\n </label>\n <label>\n <input type="radio" name="dplayer-danmaku-color" value="#39ccff">\n <span style="background: #39ccff"></span>\n </label>\n <label>\n <input type="radio" name="dplayer-danmaku-color" value="#f424ff">\n <span style="background: #f424ff"></span>\n </label>\n <label>\n <input type="radio" name="dplayer-danmaku-color" value="#ff9d33">\n <span style="background: #ff9d33"></span>\n </label>\n <label>\n <input type="radio" name="dplayer-danmaku-color" value="#bde846">\n <span style="background: #bde846"></span>\n </label>\n <label>\n <input type="radio" name="dplayer-danmaku-color" value="#444">\n <span style="background: #444;"></span>\n </label>\n </div>\n </div>\n <input class="dplayer-comment-input" type="text" placeholder="输入弹幕,回车发送">\n <button class="dplayer-icon dplayer-send-icon">'+this.getSVG("send")+' </button>\n </div>\n </div>\n <div class="dplayer-setting">\n <button class="dplayer-icon dplayer-setting-icon">'+this.getSVG("setting")+' </button>\n <div class="dplayer-setting-box"></div>\n </div>\n <button class="dplayer-icon dplayer-full-icon">'+this.getSVG("full")+(' </button>\n </div>\n <div class="dplayer-bar-wrap">\n <div class="dplayer-bar">\n <div class="dplayer-loaded" style="width: 0;"></div>\n <div class="dplayer-played" style="width: 0; background: '+this.option.theme+'">\n <span class="dplayer-thumb" style="background: '+this.option.theme+'"></span>\n </div>\n </div>\n </div>\n </div>\n '),this.audio=this.element.getElementsByClassName("dplayer-video")[0],this.ptime=this.element.getElementsByClassName("dplayer-ptime")[0],this.playButton=this.element.getElementsByClassName("dplayer-play-icon")[0],this.toggle=function(){e.audio.paused?e.play():e.pause()},this.playButton.addEventListener("click",this.toggle),this.element.getElementsByClassName("dplayer-video-wrap")[0].addEventListener("click",this.toggle),this.element.getElementsByClassName("dplayer-controller-mask")[0].addEventListener("click",this.toggle);var t=function(t){var n=t.offsetLeft,a=t.offsetParent,s=void 0;if(document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement)for(;null!==a&&a!==e.element;)n+=a.offsetLeft,a=a.offsetParent;else for(;null!==a;)n+=a.offsetLeft,a=a.offsetParent;return s=document.body.scrollLeft+document.documentElement.scrollLeft,n-s};this.playedBar=this.element.getElementsByClassName("dplayer-played")[0],this.loadedBar=this.element.getElementsByClassName("dplayer-loaded")[0],this.bar=this.element.getElementsByClassName("dplayer-bar-wrap")[0];var n=void 0;this.audio.addEventListener("seeked",function(){if(e.option.danmaku)for(var t=0;t<e.dan.length;t++)if(e.dan[t].time>=e.audio.currentTime)return void(e.danIndex=t)}),this.setTime=function(){e.option.danmaku?e.playedTime=setInterval(function(){e.updateBar("played",e.audio.currentTime/e.audio.duration,"width"),e.ptime.innerHTML=e.secondToTime(e.audio.currentTime),e.trigger("playing");var t=e.dan[e.danIndex];t&&e.audio.currentTime>=parseFloat(t.time)&&(e.danmakuIn(t.text,t.color,t.type),e.danIndex++)},100):e.playedTime=setInterval(function(){e.updateBar("played",e.audio.currentTime/e.audio.duration,"width"),e.ptime.innerHTML=e.secondToTime(e.audio.currentTime),e.trigger("playing")},100)},this.bar.addEventListener("click",function(a){var s=a||window.event;n=e.bar.clientWidth;var l=(s.clientX-t(e.bar))/n;l=l>0?l:0,l=1>l?l:1,e.updateBar("played",l,"width"),e.element.getElementsByClassName("dplayer-ptime")[0].innerHTML=e.secondToTime(l*e.audio.duration),e.audio.currentTime=parseFloat(e.playedBar.style.width)/100*e.audio.duration});var a=function(a){var s=a||window.event,l=(s.clientX-t(e.bar))/n;l=l>0?l:0,l=1>l?l:1,e.updateBar("played",l,"width"),e.element.getElementsByClassName("dplayer-ptime")[0].innerHTML=e.secondToTime(l*e.audio.duration)},s=function _(){document.removeEventListener("mouseup",_),document.removeEventListener("mousemove",a),e.audio.currentTime=parseFloat(e.playedBar.style.width)/100*e.audio.duration,e.setTime()};this.bar.addEventListener("mousedown",function(){n=e.bar.clientWidth,clearInterval(e.playedTime),document.addEventListener("mousemove",a),document.addEventListener("mouseup",s)}),this.volumeBar=this.element.getElementsByClassName("dplayer-volume-bar-inner")[0];var l=this.element.getElementsByClassName("dplayer-volume")[0],i=this.element.getElementsByClassName("dplayer-volume-bar-wrap")[0],d=this.element.getElementsByClassName("dplayer-volume-bar")[0],o=this.element.getElementsByClassName("dplayer-volume-icon")[0],r=35,c=function(){e.audio.volume>=.8?o.innerHTML=e.getSVG("volume-up"):e.audio.volume>0?o.innerHTML=e.getSVG("volume-down"):o.innerHTML=e.getSVG("volume-off")},u=function(n){var a=n||window.event,s=(a.clientX-t(d)-5.5)/r;s=s>0?s:0,s=1>s?s:1,e.updateBar("volume",s,"width"),e.audio.volume=s,e.audio.muted&&(e.audio.muted=!1),c()},p=function A(){document.removeEventListener("mouseup",A),document.removeEventListener("mousemove",u),l.classList.remove("dplayer-volume-active")};i.addEventListener("click",function(n){var a=n||window.event,s=(a.clientX-t(d)-5.5)/r;s=s>0?s:0,s=1>s?s:1,e.updateBar("volume",s,"width"),e.audio.volume=s,e.audio.muted&&(e.audio.muted=!1),c()}),i.addEventListener("mousedown",function(){document.addEventListener("mousemove",u),document.addEventListener("mouseup",p),l.classList.add("dplayer-volume-active")}),o.addEventListener("click",function(){e.audio.muted?(e.audio.muted=!1,c(),e.updateBar("volume",e.audio.volume,"width")):(e.audio.muted=!0,o.innerHTML=e.getSVG("volume-off"),e.updateBar("volume",0,"width"))});var m=0,y=function(){e.element.classList.remove("dplayer-hide-controller"),clearTimeout(m),m=setTimeout(function(){e.audio.played.length&&(e.element.classList.add("dplayer-hide-controller"),b(),P())},2e3)};this.element.addEventListener("mousemove",y),this.element.addEventListener("click",y),this.danOpacity=.7;var v={original:'\n <div class="dplayer-setting-item dplayer-setting-loop">\n <span class="dplayer-label">洗脑循环</span>\n <div class="dplayer-toggle">\n <input class="dplayer-toggle-setting-input" type="checkbox" name="dplayer-toggle" id="dplayer-toggle">\n <label for="dplayer-toggle"></label>\n </div>\n </div>\n <div class="dplayer-setting-item dplayer-setting-speed">\n <span class="dplayer-label">速度</span>\n <div class="dplayer-toggle">'+this.getSVG("right")+(' </div>\n </div>\n <div class="dplayer-setting-item dplayer-setting-danmaku">\n <span class="dplayer-label">弹幕透明度</span>\n <div class="dplayer-danmaku-bar-wrap">\n <div class="dplayer-danmaku-bar">\n <div class="dplayer-danmaku-bar-inner" style="width: '+100*this.danOpacity+'%">\n <span class="dplayer-thumb"></span>\n </div>\n </div>\n </div>\n </div>'),speed:'\n <div class="dplayer-setting-speed-item" data-speed="0.5">\n <span class="dplayer-label">0.5</span>\n </div>\n <div class="dplayer-setting-speed-item" data-speed="0.75">\n <span class="dplayer-label">0.75</span>\n </div>\n <div class="dplayer-setting-speed-item" data-speed="1">\n <span class="dplayer-label">正常</span>\n </div>\n <div class="dplayer-setting-speed-item" data-speed="1.25">\n <span class="dplayer-label">1.25</span>\n </div>\n <div class="dplayer-setting-speed-item" data-speed="1.5">\n <span class="dplayer-label">1.5</span>\n </div>\n <div class="dplayer-setting-speed-item" data-speed="2">\n <span class="dplayer-label">2</span>\n </div>'},h=this.element.getElementsByClassName("dplayer-setting-icon")[0],f=this.element.getElementsByClassName("dplayer-setting-box")[0],g=this.element.getElementsByClassName("dplayer-mask")[0];f.innerHTML=v.original;var b=function(){f.classList.contains("dplayer-setting-box-open")&&(f.classList.remove("dplayer-setting-box-open"),g.classList.remove("dplayer-mask-show"),setTimeout(function(){f.classList.remove("dplayer-setting-box-narrow"),f.innerHTML=v.original,L()},300))},k=function(){f.classList.add("dplayer-setting-box-open"),g.classList.add("dplayer-mask-show")};g.addEventListener("click",function(){b()}),h.addEventListener("click",function(){k()});var L=function(){var n=e.element.getElementsByClassName("dplayer-setting-loop")[0],a=n.getElementsByClassName("dplayer-toggle-setting-input")[0];a.checked=e.loop,n.addEventListener("click",function(){a.checked=!a.checked,a.checked?(e.loop=!0,e.audio.loop=e.loop):(e.loop=!1,e.audio.loop=e.loop),b()}),a.addEventListener("change",function(){a.checked?(e.loop=!0,e.audio.loop=e.loop):(e.loop=!1,e.audio.loop=e.loop),b()});var s=e.element.getElementsByClassName("dplayer-setting-speed")[0];s.addEventListener("click",function(){f.classList.add("dplayer-setting-box-narrow"),f.innerHTML=v.speed;for(var t=f.getElementsByClassName("dplayer-setting-speed-item"),n=function(n){t[n].addEventListener("click",function(){e.audio.playbackRate=t[n].dataset.speed,b()})},a=0;a<t.length;a++)n(a)}),e.danmakuBar=e.element.getElementsByClassName("dplayer-danmaku-bar-inner")[0];var l=e.element.getElementsByClassName("dplayer-danmaku-bar-wrap")[0],i=e.element.getElementsByClassName("dplayer-danmaku-bar")[0],d=e.element.getElementsByClassName("dplayer-setting-danmaku")[0],o=130;e.updateBar("danmaku",e.danOpacity,"width");var r=function(n){var a=n||window.event,s=(a.clientX-t(i))/o;s=s>0?s:0,s=1>s?s:1,e.updateBar("danmaku",s,"width");for(var l=e.element.getElementsByClassName("dplayer-danmaku-item"),d=0;d<l.length;d++)l[d].style.opacity=s;e.danOpacity=s},c=function u(){document.removeEventListener("mouseup",u),document.removeEventListener("mousemove",r),d.classList.remove("dplayer-setting-danmaku-active")};l.addEventListener("click",function(n){var a=n||window.event,s=(a.clientX-t(i))/o;s=s>0?s:0,s=1>s?s:1,e.updateBar("danmaku",s,"width");for(var l=e.element.getElementsByClassName("dplayer-danmaku-item"),d=0;d<l.length;d++)l[d].style.opacity=s;e.danOpacity=s}),l.addEventListener("mousedown",function(){document.addEventListener("mousemove",r),document.addEventListener("mouseup",c),d.classList.add("dplayer-setting-danmaku-active")})};L(),this.audio.addEventListener("durationchange",function(){1!==e.audio.duration&&(e.element.getElementsByClassName("dplayer-dtime")[0].innerHTML=e.secondToTime(e.audio.duration))}),this.audio.addEventListener("progress",function(){var t=e.audio.buffered.length?e.audio.buffered.end(e.audio.buffered.length-1)/e.audio.duration:0;e.updateBar("loaded",t,"width")}),this.audio.addEventListener("error",function(){e.element.getElementsByClassName("dplayer-ptime")[0].innerHTML="Error happens ╥﹏╥",e.trigger("pause")}),this.audio.addEventListener("canplay",function(){e.trigger("canplay")}),this.ended=!1,this.audio.addEventListener("ended",function(){e.updateBar("played",1,"width"),e.loop||(e.ended=!0,e.pause(),e.trigger("ended"))}),this.audio.volume=parseInt(this.element.getElementsByClassName("dplayer-volume-bar-inner")[0].style.width)/100,this.audio.loop=this.loop,1!==this.audio.duration&&(this.element.getElementsByClassName("dplayer-dtime")[0].innerHTML=this.audio.duration?this.secondToTime(this.audio.duration):"00:00");var E=this.element.getElementsByClassName("dplayer-danmaku")[0],w=30,B=void 0,C=void 0,T=void 0,q={right:{},top:{},bottom:{}},M=function(e){return E.getBoundingClientRect().right-e.getBoundingClientRect().right},N=function(e){return(B+e.offsetWidth)/5},x=function(e,t){for(var n=B/N(e),a=function(a){var s=q[t][a+""];if(!s||!s.length)return q[t][a+""]=[e],e.addEventListener("animationend",function(){q[t][a+""].splice(0,1)}),{v:a%T};for(var l=0;l<s.length;l++){var i=M(s[l])-10;if(i<=640-n*N(s[l])||0>=i)break;if(l===s.length-1)return q[t][a+""].push(e),e.addEventListener("animationend",function(){q[t][a+""].splice(0,1)}),{v:a%T}}},s=0;;s++){var l=a(s);if("object"===("undefined"==typeof l?"undefined":_typeof(l)))return l.v}};this.danmakuIn=function(t,n,a){B=E.offsetWidth,C=E.offsetHeight,T=C/w;var s=document.createElement("div"),l=document.createTextNode(t);switch(s.classList.add("dplayer-danmaku-item"),s.classList.add("dplayer-danmaku-"+a),s.appendChild(l),s.style.opacity=e.danOpacity,E.appendChild(s),s.style.color=n,a){case"right":s.style.top=w*x(s,a)+"px",s.style.width=s.offsetWidth+1+"px",s.style.transform="translateX(-"+B+"px)",s.addEventListener("animationend",function(){E.removeChild(s)});break;case"top":s.style.top=w*x(s,a)+"px",s.addEventListener("animationend",function(){E.removeChild(s)});break;case"bottom":s.style.bottom=w*x(s,a)+"px",s.addEventListener("animationend",function(){E.removeChild(s)});break;default:console.error("Can't handled danmaku type: "+a)}s.classList.add("dplayer-danmaku-move")},this.option.danmaku?!function(){e.danIndex=0;var t=new XMLHttpRequest;t.onreadystatechange=function(){4===t.readyState&&(t.status>=200&&t.status<300||304===t.status?(e.dan=JSON.parse(t.responseText).danmaku.sort(function(e,t){return e.time-t.time}),console.log(e.dan),e.option.autoplay&&!e.isMobile?e.play():e.isMobile&&e.pause()):console.log("Request was unsuccessful: "+t.status))},t.open("get",e.option.danmaku.api+"?id="+e.option.danmaku.id,!0),t.send(null)}():this.option.autoplay&&!this.isMobile?this.play():this.isMobile&&this.pause();var S=this.element.getElementsByClassName("dplayer-comment-input")[0],z=this.element.getElementsByClassName("dplayer-comment-icon")[0],H=this.element.getElementsByClassName("dplayer-comment-box")[0],F=this.element.getElementsByClassName("dplayer-comment-setting")[0],I=this.element.getElementsByClassName("dplayer-comment-setting-box")[0],G=this.element.getElementsByClassName("dplayer-send-icon")[0],V=function(){I.classList.contains("dplayer-comment-setting-open")&&I.classList.remove("dplayer-comment-setting-open")},O=function(){I.classList.contains("dplayer-comment-setting-open")?I.classList.remove("dplayer-comment-setting-open"):I.classList.add("dplayer-comment-setting-open")},R=0,P=function(){H.classList.contains("dplayer-comment-box-open")&&(H.classList.remove("dplayer-comment-box-open"),g.classList.remove("dplayer-mask-show"),clearInterval(R),e.element.classList.remove("dplayer-show-controller"),V())},X=function(){H.classList.add("dplayer-comment-box-open"),g.classList.add("dplayer-mask-show"),R=setInterval(function(){clearTimeout(m)},1e3),e.element.classList.add("dplayer-show-controller")};g.addEventListener("click",function(){P()}),z.addEventListener("click",function(){X(),setTimeout(function(){S.focus()},300)}),F.addEventListener("click",function(){O()}),this.element.getElementsByClassName("dplayer-comment-setting-color")[0].addEventListener("click",function(){var t=e.element.querySelector('input[name="dplayer-danmaku-color"]:checked+span');t&&F.setAttribute("style",t.getAttribute("style"))}),S.addEventListener("click",function(){V()}),G.addEventListener("click",function(){if(!S.value.replace(/^\s+|\s+$/g,""))return void alert("要输入弹幕内容啊喂!");var t={player:e.option.danmaku.id,time:e.audio.currentTime,text:S.value,color:e.element.querySelector('input[name="dplayer-danmaku-color"]:checked').value,type:e.element.querySelector('input[name="dplayer-danmaku-type"]:checked').value},n=new XMLHttpRequest;n.onreadystatechange=function(){4===n.readyState&&(n.status>=200&&n.status<300||304===n.status?console.log(JSON.parse(n.responseText)):console.log("Request was unsuccessful: "+n.status))},n.open("post",e.option.danmaku.api,!0),n.send(JSON.stringify(t)),S.value="",P(),e.danmakuIn(t.text,t.color,t.type)});var W=function(){B=E.offsetWidth;for(var t=e.element.getElementsByClassName("dplayer-danmaku-item"),n=0;n<t.length;n++)t[n].style.transform="translateX(-"+B+"px)"};this.element.addEventListener("fullscreenchange",function(){W()}),this.element.addEventListener("mozfullscreenchange",function(){W()}),this.element.addEventListener("webkitfullscreenchange",function(){W()}),this.element.getElementsByClassName("dplayer-full-icon")[0].addEventListener("click",function(){document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement?document.cancelFullScreen?document.cancelFullScreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitCancelFullScreen&&document.webkitCancelFullScreen():e.element.requestFullscreen?e.element.requestFullscreen():e.element.mozRequestFullScreen?e.element.mozRequestFullScreen():e.element.webkitRequestFullscreen&&e.element.webkitRequestFullscreen(),
W()})}},{key:"play",value:function(){this.audio.paused&&(this.playButton.innerHTML=this.getSVG("pause"),this.audio.play(),this.playedTime&&clearInterval(this.playedTime),this.setTime(),this.element.classList.add("dplayer-playing"),this.trigger("play"))}},{key:"pause",value:function(){this.audio.paused&&!this.ended||(this.ended=!1,this.playButton.innerHTML=this.getSVG("play"),this.audio.pause(),clearInterval(this.playedTime),this.element.classList.remove("dplayer-playing"),this.trigger("pause"))}},{key:"on",value:function(e,t){"function"==typeof t&&this.event[e].push(t)}}]),e}();"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=e:window.DPlayer=e}();
//# sourceMappingURL=DPlayer.min.js.map