diff --git a/DPlayer.min.css b/DPlayer.min.css deleted file mode 100644 index a23dfa9..0000000 --- a/DPlayer.min.css +++ /dev/null @@ -1 +0,0 @@ -.dplayer{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:1}.dplayer:-webkit-full-screen{width:100%;height:100%;background:#000}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{-webkit-animation:b 6s linear;animation:b 6s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{-webkit-animation:a 8s linear;animation:a 8s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{height:60px}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-comment,.dplayer.dplayer-no-danmaku .dplayer-danmaku{display:none}.dplayer.dplayer-playing .dplayer-controller,.dplayer.dplayer-playing .dplayer-controller-mask{opacity:0}.dplayer.dplayer-playing .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:running!important;animation-play-state:running!important}.dplayer.dplayer-playing:hover .dplayer-controller,.dplayer.dplayer-playing:hover .dplayer-controller-mask{opacity:1}.dplayer.dplayer-loading .dplayer-bezel .diplayer-loading-icon{display:block}.dplayer.dplayer-loading .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}.dplayer.dplayer-hide-controller .dplayer-controller,.dplayer.dplayer-hide-controller .dplayer-controller-mask{opacity:0;-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.dplayer.dplayer-show-controller .dplayer-controller,.dplayer.dplayer-show-controller .dplayer-controller-mask{opacity:1}.dplayer .dplayer-mask{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.dplayer .dplayer-mask.dplayer-mask-show{display:block}.dplayer .dplayer-video-wrap{position:relative;background:#000;font-size:0;width:100%;height:100%}.dplayer .dplayer-video-wrap .dplayer-video{width:100%;height:100%}.dplayer .dplayer-danmaku{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff}.dplayer .dplayer-danmaku .dplayer-danmaku-item{display:inline-block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;white-space:nowrap;font-weight:bolder;text-shadow:.5px .5px .5px rgba(0,0,0,.5)}.dplayer .dplayer-danmaku .dplayer-danmaku-right{position:absolute;right:0;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.dplayer .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{will-change:transform;-webkit-animation:a 5s linear;animation:a 5s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes a{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes a{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom,.dplayer .dplayer-danmaku .dplayer-danmaku-top{position:absolute;width:100%;text-align:center;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{will-change:visibility;-webkit-animation:b 4s linear;animation:b 4s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes b{0%,to{visibility:visible}}@keyframes b{0%,to{visibility:visible}}.dplayer .dplayer-bezel{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff;pointer-events:none}.dplayer .dplayer-bezel .dplayer-fill{fill:hsla(0,0%,100%,.8)}.dplayer .dplayer-bezel .dplayer-bezel-icon{position:absolute;top:50%;left:50%;margin:-26px 0 0 -26px;height:52px;width:52px;padding:12px;box-sizing:border-box;background:rgba(0,0,0,.5);border-radius:50%;opacity:0;pointer-events:none}.dplayer .dplayer-bezel .dplayer-bezel-icon.dplayer-bezel-transition{-webkit-animation:c .5s linear;animation:c .5s linear}@-webkit-keyframes c{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}@keyframes c{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}.dplayer .dplayer-bezel .diplayer-loading-icon{display:none;position:absolute;top:50%;left:50%;margin:-18px 0 0 -18px;height:36px;width:36px;pointer-events:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-hide{display:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot{-webkit-animation:d .8s ease infinite;animation:d .8s ease infinite;opacity:0;fill:#fff;-webkit-transform-origin:4px 4px;-ms-transform-origin:4px 4px;transform-origin:4px 4px}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-7{-webkit-animation-delay:.7s;animation-delay:.7s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-6{-webkit-animation-delay:.6s;animation-delay:.6s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-5{-webkit-animation-delay:.5s;animation-delay:.5s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-4{-webkit-animation-delay:.4s;animation-delay:.4s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-3{-webkit-animation-delay:.3s;animation-delay:.3s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-2{-webkit-animation-delay:.2s;animation-delay:.2s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-1{-webkit-animation-delay:.1s;animation-delay:.1s}@-webkit-keyframes d{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{-webkit-transform:scale(.9);transform:scale(.9)}50%,to{opacity:.25}to{-webkit-transform:scale(.85);transform:scale(.85)}}@keyframes d{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{-webkit-transform:scale(.9);transform:scale(.9)}50%,to{opacity:.25}to{-webkit-transform:scale(.85);transform:scale(.85)}}.dplayer .dplayer-controller-mask{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom;height:98px;width:100%}.dplayer .dplayer-controller,.dplayer .dplayer-controller-mask{position:absolute;bottom:0;-webkit-transition:all .3s ease;transition:all .3s ease}.dplayer .dplayer-controller{left:0;right:0;height:41px;padding:0 20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dplayer .dplayer-controller .dplayer-bar-wrap{padding:5px 0;cursor:pointer;position:absolute;bottom:33px;width:calc(100% - 40px);height:3px}.dplayer .dplayer-controller .dplayer-bar-wrap:hover .dplayer-thumb{-webkit-transform:scale(1)!important;-ms-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar{position:relative;height:3px;width:100%;background:hsla(0,0%,100%,.2);cursor:pointer!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-loaded{position:absolute;left:0;top:0;bottom:0;background:hsla(0,0%,100%,.4);height:3px;-webkit-transition:all .5s ease;transition:all .5s ease;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played{position:absolute;left:0;top:0;bottom:0;height:3px;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons{height:38px;position:absolute;bottom:0}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-left .dplayer-icon{padding:7px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right{right:20px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right .dplayer-icon{padding:8px}.dplayer .dplayer-controller .dplayer-icons .dplayer-time{line-height:38px;color:#eee;text-shadow:0 0 2px rgba(0,0,0,.5);vertical-align:middle;font-size:13px;cursor:default}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon{width:46px;height:100%;border:none;background-color:transparent;outline:none;cursor:pointer;opacity:.8;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:middle}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon:hover{opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-comment-icon{padding:10px 9px 9px}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-setting-icon{padding-top:8.5px}.dplayer .dplayer-controller .dplayer-icons .dplayer-fill{fill:#fff}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume{position:relative;display:inline-block;cursor:pointer!important;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-thumb{-webkit-transform:scale(1)!important;-ms-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-thumb{-webkit-transform:scale(1)!important;-ms-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap{display:inline-block;margin:0 5px 0 -5px;vertical-align:middle;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar{position:relative;top:17px;width:0;height:3px;background:#aaa;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(170px);-ms-transform:translateX(170px);transform:translateX(170px);width:150px;height:90px;border-radius:2px;background:rgba(28,28,28,.9);padding:7px 0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;overflow:hidden;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-open{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-narrow{width:70px;height:180px;text-align:center}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item:hover,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku{padding:5px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-label{padding:0 10px;display:inline}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap{padding:0 10px;box-sizing:border-box;display:none;vertical-align:middle;height:100%;width:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar{position:relative;top:8.5px;width:100%;height:3px;background:#fff;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;background:#aaa;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;background:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(382px);-ms-transform:translateX(382px);transform:translateX(382px);border-radius:2px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box.dplayer-comment-box-open{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon{height:24px;width:24px;position:absolute;top:5px;left:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box{position:absolute;background:#fff;bottom:40px;left:-82.5px;box-shadow:0 0 25px rgba(0,0,0,.3);border-radius:4px;padding:5px;font-size:14px;width:193px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box.dplayer-comment-setting-open{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box:after{content:'';position:absolute;top:100%;left:50%;margin-left:-12px;background:url('data:image/svg+xml;utf8,');width:24px;height:12px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box input[type=radio]{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box label{cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type{width:44px;float:left;margin-right:5px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type span{padding:4px 6px;line-height:16px;display:inline-block;border-radius:4px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type span:hover{-webkit-animation:e 5s infinite ease-in-out;animation:e 5s infinite ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type input:checked+span{background:#aaa;color:#fff}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color label{font-size:0;padding:6px;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span{width:24px;height:24px;display:inline-block;border-radius:7px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span:hover{-webkit-animation:e 5s infinite ease-in-out;animation:e 5s infinite ease-in-out;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color input:checked+span{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);border:none!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-input{outline:none;border:none;padding:8px 31px;font-size:14px;line-height:18px;text-align:center;border-radius:4px;width:300px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon{height:22px;width:22px;position:absolute;top:6px;right:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-label{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle{width:32px;height:100%;text-align:center;display:inline-block;font-size:0;vertical-align:middle;float:right}.dplayer .dplayer-controller .dplayer-icons input#dplayer-toggle{max-height:0;max-width:0;display:none}.dplayer .dplayer-controller .dplayer-icons input#dplayer-toggle+label{display:inline-block;position:relative;box-shadow:#dfdfdf 0 0 0 0 inset;border:1px solid #dfdfdf;height:20px;width:32px;border-radius:10px;box-sizing:border-box;cursor:pointer;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons input#dplayer-toggle+label:after,.dplayer .dplayer-controller .dplayer-icons input#dplayer-toggle+label:before{content:"";position:absolute;display:block;height:18px;width:18px;top:0;left:0;border-radius:15px;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons input#dplayer-toggle+label:after{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}.dplayer .dplayer-controller .dplayer-icons input#dplayer-toggle:checked+label{border-color:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons input#dplayer-toggle:checked+label:before{width:30px;background:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons input#dplayer-toggle:checked+label:after{left:12px}.dplayer .dplayer-menu{position:absolute;width:150px;border-radius:2px;background:rgba(28,28,28,.9);padding:5px 0;overflow:hidden;z-index:3;display:none}.dplayer .dplayer-menu.dplayer-menu-show{display:block}.dplayer .dplayer-menu .dplayer-menu-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-menu .dplayer-menu-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-menu .dplayer-menu-item .dplayer-menu-label a{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}@-webkit-keyframes e{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%,34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}@keyframes e{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%,34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}} \ No newline at end of file diff --git a/DPlayer.min.js b/DPlayer.min.js index 66cb3f9..b7c063f 100644 --- a/DPlayer.min.js +++ b/DPlayer.min.js @@ -1,3 +1,4 @@ -"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\n \n \n \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\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n \n
\n
\n
\n
\n 0:00 / 0:00\n
\n
\n
\n \n
\n \n
\n
\n \n \n \n
\n
\n \n \n \n \n \n \n \n \n
\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n '),this.audio=this.element.getElementsByClassName("dplayer-video")[0],this.bezel=this.element.getElementsByClassName("dplayer-bezel-icon")[0],this.bezel.addEventListener("animationend",function(){e.bezel.classList.remove("dplayer-bezel-transition")}),this.ptime=this.element.getElementsByClassName("dplayer-ptime")[0],this.playButton=this.element.getElementsByClassName("dplayer-play-icon")[0],this.shouldpause=!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.option.danmaku&&this.audio.addEventListener("seeking",function(){for(var t=0;t=e.audio.currentTime)return void(e.danIndex=t);e.danIndex=e.dan.length}});var a=0,s=0,l=!1;this.setTime=function(){e.playedTime=setInterval(function(){s=e.audio.currentTime,!l&&a+.01>s&&!e.audio.paused&&(e.element.classList.add("dplayer-loading"),l=!0),l&&s>a+.01&&!e.audio.paused&&(e.element.classList.remove("dplayer-loading"),l=!1),a=s,e.updateBar("played",e.audio.currentTime/e.audio.duration,"width"),e.ptime.innerHTML=e.secondToTime(e.audio.currentTime),e.trigger("playing")},100),e.option.danmaku&&(e.danmakuTime=setInterval(function(){for(var t=e.dan[e.danIndex];t&&e.audio.currentTime>=parseFloat(t.time);)e.danmakuIn(t.text,t.color,t.type),e.danIndex++,t=e.dan[e.danIndex]},0))},this.clearTime=function(){clearInterval(e.playedTime),e.option.danmaku&&clearInterval(e.danmakuTime)},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.audio.currentTime=parseFloat(e.playedBar.style.width)/100*e.audio.duration});var i=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)},d=function $(){document.removeEventListener("mouseup",$),document.removeEventListener("mousemove",i),e.audio.currentTime=parseFloat(e.playedBar.style.width)/100*e.audio.duration,e.setTime()};this.bar.addEventListener("mousedown",function(){n=e.bar.clientWidth,e.clearTime(),document.addEventListener("mousemove",i),document.addEventListener("mouseup",d)}),this.volumeBar=this.element.getElementsByClassName("dplayer-volume-bar-inner")[0];var o=this.element.getElementsByClassName("dplayer-volume")[0],r=this.element.getElementsByClassName("dplayer-volume-bar-wrap")[0],c=this.element.getElementsByClassName("dplayer-volume-bar")[0],u=this.element.getElementsByClassName("dplayer-volume-icon")[0],p=35,m=function(){e.audio.volume>=.8?u.innerHTML=e.getSVG("volume-up"):e.audio.volume>0?u.innerHTML=e.getSVG("volume-down"):u.innerHTML=e.getSVG("volume-off")},y=function(n){var a=n||window.event,s=(a.clientX-t(c)-5.5)/p;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),m()},v=function K(){document.removeEventListener("mouseup",K),document.removeEventListener("mousemove",y),o.classList.remove("dplayer-volume-active")};r.addEventListener("click",function(n){var a=n||window.event,s=(a.clientX-t(c)-5.5)/p;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),m()}),r.addEventListener("mousedown",function(){document.addEventListener("mousemove",y),document.addEventListener("mouseup",v),o.classList.add("dplayer-volume-active")}),u.addEventListener("click",function(){e.audio.muted?(e.audio.muted=!1,m(),e.updateBar("volume",e.audio.volume,"width")):(e.audio.muted=!0,u.innerHTML=e.getSVG("volume-off"),e.updateBar("volume",0,"width"))});var h=0,g=function(){e.element.classList.remove("dplayer-hide-controller"),clearTimeout(h),h=setTimeout(function(){e.audio.played.length&&(e.element.classList.add("dplayer-hide-controller"),E(),J())},2e3)};this.element.addEventListener("mousemove",g),this.element.addEventListener("click",g),this.danOpacity=.7;var f={original:'\n
\n 洗脑循环\n
\n \n \n
\n
\n
\n 速度\n
'+this.getSVG("right")+('
\n
\n
\n 弹幕透明度\n
\n
\n
\n \n
\n
\n
\n
'),speed:'\n
\n 0.5\n
\n
\n 0.75\n
\n
\n 正常\n
\n
\n 1.25\n
\n
\n 1.5\n
\n
\n 2\n
'},b=this.element.getElementsByClassName("dplayer-setting-icon")[0],k=this.element.getElementsByClassName("dplayer-setting-box")[0],L=this.element.getElementsByClassName("dplayer-mask")[0];k.innerHTML=f.original;var E=function(){k.classList.contains("dplayer-setting-box-open")&&(k.classList.remove("dplayer-setting-box-open"),L.classList.remove("dplayer-mask-show"),setTimeout(function(){k.classList.remove("dplayer-setting-box-narrow"),k.innerHTML=f.original,B()},300))},w=function(){k.classList.add("dplayer-setting-box-open"),L.classList.add("dplayer-mask-show")};L.addEventListener("click",function(){E()}),b.addEventListener("click",function(){w()});var B=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),E()}),a.addEventListener("change",function(){a.checked?(e.loop=!0,e.audio.loop=e.loop):(e.loop=!1,e.audio.loop=e.loop),E()});var s=e.element.getElementsByClassName("dplayer-setting-speed")[0];s.addEventListener("click",function(){k.classList.add("dplayer-setting-box-narrow"),k.innerHTML=f.speed;for(var t=k.getElementsByClassName("dplayer-setting-speed-item"),n=function(n){t[n].addEventListener("click",function(){e.audio.playbackRate=t[n].dataset.speed,E()})},a=0;a0?i:0,i=1>i?i:1,e.updateBar("danmaku",i,"width");for(var d=e.element.getElementsByClassName("dplayer-danmaku-item"),o=0;o0?i:0,i=1>i?i:1,e.updateBar("danmaku",i,"width");for(var d=e.element.getElementsByClassName("dplayer-danmaku-item"),o=0;o=i)break;if(l===s.length-1)return N[t][a+""].push(e),e.addEventListener("animationend",function(){N[t][a+""].splice(0,1)}),{v:a%M}}},s=0;;s++){var l=a(s);if("object"===("undefined"==typeof l?"undefined":_typeof(l)))return l.v}};this.danmakuIn=function(t,n,a){T=x.offsetWidth,q=x.offsetHeight,M=parseInt(q/C);var s=document.createElement("div");switch(s.classList.add("dplayer-danmaku-item"),s.classList.add("dplayer-danmaku-"+a),s.innerHTML=t,s.style.opacity=e.danOpacity,x.appendChild(s),s.style.color=n,a){case"right":s.style.top=C*F(s,a)+"px", -s.style.width=s.offsetWidth+1+"px",s.style.transform="translateX(-"+T+"px)",s.addEventListener("animationend",function(){x.removeChild(s)});break;case"top":s.style.top=C*F(s,a)+"px",s.addEventListener("animationend",function(){x.removeChild(s)});break;case"bottom":s.style.bottom=C*F(s,a)+"px",s.addEventListener("animationend",function(){x.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(){if(4===t.readyState)if(t.status>=200&&t.status<300||304===t.status){var n=JSON.parse(t.responseText);1!==n.code?alert(n.msg):(e.dan=n.danmaku.sort(function(e,t){return e.time-t.time}),e.option.autoplay&&!e.isMobile?e.play():e.isMobile&&e.pause())}else console.log("Request was unsuccessful: "+t.status)};var n=void 0;n=e.option.danmaku.maximum?e.option.danmaku.api+"?id="+e.option.danmaku.id+"&max="+e.option.danmaku.maximum:e.option.danmaku.api+"?id="+e.option.danmaku.id,t.open("get",n,!0),t.send(null)}():this.option.autoplay&&!this.isMobile?this.play():this.isMobile&&this.pause();var I=this.element.getElementsByClassName("dplayer-comment-input")[0],H=this.element.getElementsByClassName("dplayer-comment-icon")[0],D=this.element.getElementsByClassName("dplayer-comment-box")[0],G=this.element.getElementsByClassName("dplayer-comment-setting-icon")[0],V=this.element.getElementsByClassName("dplayer-comment-setting-box")[0],O=this.element.getElementsByClassName("dplayer-send-icon")[0],P=function(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")},R=function(){if(I.blur(),!I.value.replace(/^\s+|\s+$/g,""))return void alert("要输入弹幕内容啊喂!");var t={token:e.option.danmaku.token,player:e.option.danmaku.id,author:"DIYgod",time:e.audio.currentTime,text:I.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(){if(4===n.readyState)if(n.status>=200&&n.status<300||304===n.status){var e=JSON.parse(n.responseText);1!==e.code?alert(e.msg):console.log("Post danmaku: ",JSON.parse(n.responseText))}else console.log("Request was unsuccessful: "+n.status)},n.open("post",e.option.danmaku.api,!0),n.send(JSON.stringify(t)),I.value="",J(),e.dan.splice(e.danIndex,0,t),e.danIndex++,e.danmakuIn(P(t.text),t.color,t.type)},X=function(){V.classList.contains("dplayer-comment-setting-open")&&V.classList.remove("dplayer-comment-setting-open")},_=function(){V.classList.contains("dplayer-comment-setting-open")?V.classList.remove("dplayer-comment-setting-open"):V.classList.add("dplayer-comment-setting-open")},W=0,J=function(){D.classList.contains("dplayer-comment-box-open")&&(D.classList.remove("dplayer-comment-box-open"),L.classList.remove("dplayer-mask-show"),clearInterval(W),e.element.classList.remove("dplayer-show-controller"),X(),document.addEventListener("keydown",j))},Y=function(){D.classList.add("dplayer-comment-box-open"),L.classList.add("dplayer-mask-show"),W=setInterval(function(){clearTimeout(h)},1e3),e.element.classList.add("dplayer-show-controller"),document.removeEventListener("keydown",j)};L.addEventListener("click",function(){J()}),H.addEventListener("click",function(){Y(),setTimeout(function(){I.focus()},300)}),G.addEventListener("click",function(){_()}),this.element.getElementsByClassName("dplayer-comment-setting-color")[0].addEventListener("click",function(){var t=e.element.querySelector('input[name="dplayer-danmaku-color"]:checked+span');t&&(G.getElementsByClassName("dplayer-fill")[0].style.fill=e.element.querySelector('input[name="dplayer-danmaku-color"]:checked').value)}),I.addEventListener("click",function(){X()}),I.addEventListener("keydown",function(e){var t=e||window.event;13===t.keyCode&&R()}),O.addEventListener("click",R);var A=function(){T=x.offsetWidth;for(var t=e.element.getElementsByClassName("dplayer-danmaku-item"),n=0;n0?a:0,a=1>a?a:1,e.updateBar("volume",a,"width"),e.audio.volume=a,e.audio.muted&&(e.audio.muted=!1),m();break;case 40:n.preventDefault(),a=e.audio.volume-.1,a=a>0?a:0,a=1>a?a:1,e.updateBar("volume",a,"width"),e.audio.volume=a,e.audio.muted&&(e.audio.muted=!1),m()}};document.addEventListener("keydown",j),this.menu=this.element.getElementsByClassName("dplayer-menu")[0],this.element.addEventListener("contextmenu",function(t){var n=t||window.event;n.preventDefault(),e.menu.style.left=n.clientX-e.element.getBoundingClientRect().left+"px",e.menu.style.top=n.clientY-e.element.getBoundingClientRect().top+"px",e.menu.classList.add("dplayer-menu-show"),L.classList.add("dplayer-mask-show"),L.addEventListener("click",function(){L.classList.remove("dplayer-mask-show"),e.menu.classList.remove("dplayer-menu-show")})})}},{key:"play",value:function(){this.audio.paused&&(this.shouldpause=!1,this.bezel.innerHTML=this.getSVG("play"),this.bezel.classList.add("dplayer-bezel-transition"),this.playButton.innerHTML=this.getSVG("pause"),this.audio.play(),this.playedTime&&this.clearTime(),this.setTime(),this.element.classList.add("dplayer-playing"),this.trigger("play"))}},{key:"pause",value:function(){this.shouldpause&&!this.ended||(this.shouldpause=!0,this.element.classList.remove("dplayer-loading"),this.bezel.innerHTML=this.getSVG("pause"),this.bezel.classList.add("dplayer-bezel-transition"),this.ended=!1,this.playButton.innerHTML=this.getSVG("play"),this.audio.pause(),this.clearTime(),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 +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var a=t();for(var r in a)("object"==typeof exports?exports:e)[r]=a[r]}}(this,function(){return function(e){function t(r){if(a[r])return a[r].exports;var n=a[r]={exports:{},id:r,loaded:!1};return e[r].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var a={};return t.m=e,t.c=a,t.p="",t(0)}([function(e,t,a){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var n="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},l=function(){function e(e,t){for(var a=0;a\n \n \n \n '},this.isMobile=navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(android)|(webOS)/i),this.isMobile&&(t.autoplay=!1);var n={element:document.getElementsByClassName("dplayer")[0],autoplay:!1,theme:"#b7daff",loop:!1,lang:"en"};for(var l in n)n.hasOwnProperty(l)&&!t.hasOwnProperty(l)&&(t[l]=n[l]);this.option=t,this.loop=t.loop,this.tranZH={"Danmaku is loading":"弹幕加载中",Top:"顶部",Bottom:"底部",Rolling:"滚动","Input danmaku, hit Enter":"输入弹幕,回车发送","About author":"关于作者","DPlayer feedback":"播放器意见反馈","About DPlayer":"关于 DPlay 播放器",Loop:"洗脑循环",Speed:"速度","Opacity for danmaku":"弹幕透明度",Normal:"正常","Please input danmaku!":"要输入弹幕内容啊喂!"},this.getTran=function(e){return"en"===a.option.lang?e:"zh"===a.option.lang?a.tranZH[e]:void 0},this.secondToTime=function(e){var t=function(e){return e<10?"0"+e:""+e},a=parseInt(e/60),r=parseInt(e-60*a);return t(a)+":"+t(r)},this.updateBar=function(e,t,r){t=t>0?t:0,t=t<1?t:1,a[e+"Bar"].style[r]=100*t+"%"},this.eventTypes=["play","pause","canplay","playing","ended","error"],this.event={};for(var o=0;o\n
\n \n
\n
\n \n '+(this.option.danmaku?''+this.getTran("Danmaku is loading")+"":"")+'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n \n
\n
\n
\n
\n 0:00 / 0:00\n
\n
\n
\n \n
\n \n
\n
\n
设置弹幕颜色
\n \n \n \n \n \n \n
\n
\n
设置弹幕类型
\n \n \n \n
\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n "),this.audio=this.element.getElementsByClassName("dplayer-video")[0],this.bezel=this.element.getElementsByClassName("dplayer-bezel-icon")[0],this.bezel.addEventListener("animationend",function(){e.bezel.classList.remove("dplayer-bezel-transition")}),this.ptime=this.element.getElementsByClassName("dplayer-ptime")[0],this.playButton=this.element.getElementsByClassName("dplayer-play-icon")[0],this.shouldpause=!0,this.toggle=function(){e.audio.paused?e.play():e.pause()},this.playButton.addEventListener("click",this.toggle);var t=this.element.getElementsByClassName("dplayer-video-wrap")[0],a=this.element.getElementsByClassName("dplayer-controller-mask")[0];if(this.isMobile){var r=function(){e.element.classList.contains("dplayer-hide-controller")?e.element.classList.remove("dplayer-hide-controller"):e.element.classList.add("dplayer-hide-controller")};t.addEventListener("click",r),a.addEventListener("click",r)}else t.addEventListener("click",this.toggle),a.addEventListener("click",this.toggle);var l=function(t){var a=t.offsetLeft,r=t.offsetParent,n=void 0;if(document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement)for(;null!==r&&r!==e.element;)a+=r.offsetLeft,r=r.offsetParent;else for(;null!==r;)a+=r.offsetLeft,r=r.offsetParent;return n=document.body.scrollLeft+document.documentElement.scrollLeft,a-n};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 o=void 0;this.option.danmaku&&this.audio.addEventListener("seeking",function(){for(var t=0;t=e.audio.currentTime)return void(e.danIndex=t);e.danIndex=e.dan.length}});var i=0,s=0,d=!1;this.setTime=function(){e.playedTime=setInterval(function(){s=e.audio.currentTime,!d&&si+.01&&!e.audio.paused&&(e.element.classList.remove("dplayer-loading"),d=!1),i=s,e.updateBar("played",e.audio.currentTime/e.audio.duration,"width"),e.ptime.innerHTML=e.secondToTime(e.audio.currentTime),e.trigger("playing")},100),e.option.danmaku&&(e.danmakuTime=setInterval(function(){for(var t=e.dan[e.danIndex];t&&e.audio.currentTime>=parseFloat(t.time);)e.danmakuIn(t.text,t.color,t.type),e.danIndex++,t=e.dan[e.danIndex]},0))},this.clearTime=function(){clearInterval(e.playedTime),e.option.danmaku&&clearInterval(e.danmakuTime)},this.bar.addEventListener("click",function(t){var a=t||window.event;o=e.bar.clientWidth;var r=(a.clientX-l(e.bar))/o;r=r>0?r:0,r=r<1?r:1,e.updateBar("played",r,"width"),e.audio.currentTime=parseFloat(e.playedBar.style.width)/100*e.audio.duration});var p=function(t){var a=t||window.event,r=(a.clientX-l(e.bar))/o;r=r>0?r:0,r=r<1?r:1,e.updateBar("played",r,"width"),e.element.getElementsByClassName("dplayer-ptime")[0].innerHTML=e.secondToTime(r*e.audio.duration)},m=function _(){document.removeEventListener("mouseup",_),document.removeEventListener("mousemove",p),e.audio.currentTime=parseFloat(e.playedBar.style.width)/100*e.audio.duration,e.setTime()};this.bar.addEventListener("mousedown",function(){o=e.bar.clientWidth,e.clearTime(),document.addEventListener("mousemove",p),document.addEventListener("mouseup",m)}),this.volumeBar=this.element.getElementsByClassName("dplayer-volume-bar-inner")[0];var c=this.element.getElementsByClassName("dplayer-volume")[0],y=this.element.getElementsByClassName("dplayer-volume-bar-wrap")[0],u=this.element.getElementsByClassName("dplayer-volume-bar")[0],g=this.element.getElementsByClassName("dplayer-volume-icon")[0],f=35,b=function(){e.audio.volume>=.8?g.innerHTML=e.getSVG("volume-up"):e.audio.volume>0?g.innerHTML=e.getSVG("volume-down"):g.innerHTML=e.getSVG("volume-off")},h=function(t){var a=t||window.event,r=(a.clientX-l(u)-5.5)/f;r=r>0?r:0,r=r<1?r:1,e.updateBar("volume",r,"width"),e.audio.volume=r,e.audio.muted&&(e.audio.muted=!1),b()},v=function K(){document.removeEventListener("mouseup",K),document.removeEventListener("mousemove",h),c.classList.remove("dplayer-volume-active")};y.addEventListener("click",function(t){var a=t||window.event,r=(a.clientX-l(u)-5.5)/f;r=r>0?r:0,r=r<1?r:1,e.updateBar("volume",r,"width"),e.audio.volume=r,e.audio.muted&&(e.audio.muted=!1),b()}),y.addEventListener("mousedown",function(){document.addEventListener("mousemove",h),document.addEventListener("mouseup",v),c.classList.add("dplayer-volume-active")}),g.addEventListener("click",function(){e.audio.muted?(e.audio.muted=!1,b(),e.updateBar("volume",e.audio.volume,"width")):(e.audio.muted=!0,g.innerHTML=e.getSVG("volume-off"),e.updateBar("volume",0,"width"))}),this.isMobile||!function(){var t=0,a=function(){e.element.classList.remove("dplayer-hide-controller"),clearTimeout(t),t=setTimeout(function(){e.audio.played.length&&(e.element.classList.add("dplayer-hide-controller"),L(),J())},2e3)};e.element.addEventListener("mousemove",a),e.element.addEventListener("click",a)}(),this.danOpacity=.7;var x={original:'\n
\n '+this.getTran("Loop")+'\n
\n \n \n
\n
\n
\n '+this.getTran("Speed")+'\n
'+this.getSVG("right")+('
\n
\n
\n '+this.getTran("Opacity for danmaku")+'\n
\n
\n
\n \n
\n
\n
\n
'),speed:'\n
\n 0.5\n
\n
\n 0.75\n
\n
\n '+this.getTran("Normal")+'\n
\n
\n 1.25\n
\n
\n 1.5\n
\n
\n 2\n
'},k=this.element.getElementsByClassName("dplayer-setting-icon")[0],w=this.element.getElementsByClassName("dplayer-setting-box")[0],Y=this.element.getElementsByClassName("dplayer-mask")[0];w.innerHTML=x.original;var L=function(){w.classList.contains("dplayer-setting-box-open")&&(w.classList.remove("dplayer-setting-box-open"),Y.classList.remove("dplayer-mask-show"),setTimeout(function(){w.classList.remove("dplayer-setting-box-narrow"),w.innerHTML=x.original,z()},300))},E=function(){w.classList.add("dplayer-setting-box-open"),Y.classList.add("dplayer-mask-show")};Y.addEventListener("click",function(){L()}),k.addEventListener("click",function(){E()});var z=function(){var t=e.element.getElementsByClassName("dplayer-setting-loop")[0],a=t.getElementsByClassName("dplayer-toggle-setting-input")[0];a.checked=e.loop,t.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),L()}),a.addEventListener("change",function(){a.checked?(e.loop=!0,e.audio.loop=e.loop):(e.loop=!1,e.audio.loop=e.loop),L()});var r=e.element.getElementsByClassName("dplayer-setting-speed")[0];r.addEventListener("click",function(){w.classList.add("dplayer-setting-box-narrow"),w.innerHTML=x.speed;for(var t=w.getElementsByClassName("dplayer-setting-speed-item"),a=function(a){t[a].addEventListener("click",function(){e.audio.playbackRate=t[a].dataset.speed,L()})},r=0;r0?o:0,o=o<1?o:1,e.updateBar("danmaku",o,"width");for(var i=e.element.getElementsByClassName("dplayer-danmaku-item"),s=0;s0?o:0,o=o<1?o:1,e.updateBar("danmaku",o,"width");for(var i=e.element.getElementsByClassName("dplayer-danmaku-item"),s=0;s=200&&t.status<300||304===t.status){var a=JSON.parse(t.responseText);1!==a.code?alert(a.msg):(e.dan=a.danmaku.sort(function(e,t){return e.time-t.time}),e.element.getElementsByClassName("dplayer-danloading")[0].style.display="none",e.option.autoplay&&!e.isMobile?e.play():e.isMobile&&e.pause())}else console.log("Request was unsuccessful: "+t.status)};var a=void 0;a=e.option.danmaku.maximum?e.option.danmaku.api+"?id="+e.option.danmaku.id+"&max="+e.option.danmaku.maximum:e.option.danmaku.api+"?id="+e.option.danmaku.id,t.open("get",a,!0),t.send(null)}():this.option.autoplay&&!this.isMobile?this.play():this.isMobile&&this.pause();var I=this.element.getElementsByClassName("dplayer-comment-input")[0],F=this.element.getElementsByClassName("dplayer-comment-icon")[0],O=this.element.getElementsByClassName("dplayer-comment-box")[0],D=this.element.getElementsByClassName("dplayer-comment-setting-icon")[0],X=this.element.getElementsByClassName("dplayer-comment-setting-box")[0],H=this.element.getElementsByClassName("dplayer-send-icon")[0],P=function(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")},V=function(){if(I.blur(),!I.value.replace(/^\s+|\s+$/g,""))return void alert(e.getTran("Please input danmaku!"));var t={token:e.option.danmaku.token,player:e.option.danmaku.id,author:"DIYgod",time:e.audio.currentTime,text:I.value,color:e.element.querySelector('input[name="dplayer-danmaku-color"]:checked').value,type:e.element.querySelector('input[name="dplayer-danmaku-type"]:checked').value},a=new XMLHttpRequest;a.onreadystatechange=function(){if(4===a.readyState)if(a.status>=200&&a.status<300||304===a.status){var e=JSON.parse(a.responseText);1!==e.code?alert(e.msg):console.log("Post danmaku: ",JSON.parse(a.responseText))}else console.log("Request was unsuccessful: "+a.status)},a.open("post",e.option.danmaku.api,!0),a.send(JSON.stringify(t)),I.value="",J(),e.dan.splice(e.danIndex,0,t),e.danIndex++,e.danmakuIn(P(t.text),t.color,t.type)},G=function(){X.classList.contains("dplayer-comment-setting-open")&&X.classList.remove("dplayer-comment-setting-open")},U=function(){X.classList.contains("dplayer-comment-setting-open")?X.classList.remove("dplayer-comment-setting-open"):X.classList.add("dplayer-comment-setting-open")},j=0,J=function(){O.classList.contains("dplayer-comment-box-open")&&(O.classList.remove("dplayer-comment-box-open"),Y.classList.remove("dplayer-mask-show"),clearInterval(j),e.element.classList.remove("dplayer-show-controller"),G(),document.addEventListener("keydown",Z))},W=function(){O.classList.add("dplayer-comment-box-open"),Y.classList.add("dplayer-mask-show"),j=setInterval(function(){clearTimeout(hideTime)},1e3),e.element.classList.add("dplayer-show-controller"),document.removeEventListener("keydown",Z)};Y.addEventListener("click",function(){J()}),F.addEventListener("click",function(){W(),setTimeout(function(){I.focus()},300)}),D.addEventListener("click",function(){U()}),this.element.getElementsByClassName("dplayer-comment-setting-color")[0].addEventListener("click",function(){var t=e.element.querySelector('input[name="dplayer-danmaku-color"]:checked+span');t&&(D.getElementsByClassName("dplayer-fill")[0].style.fill=e.element.querySelector('input[name="dplayer-danmaku-color"]:checked').value)}),I.addEventListener("click",function(){G()}),I.addEventListener("keydown",function(e){var t=e||window.event;13===t.keyCode&&V()}),H.addEventListener("click",V);var Q=function(){C=B.offsetWidth;for(var t=e.element.getElementsByClassName("dplayer-danmaku-item"),a=0;a0?r:0,r=r<1?r:1,e.updateBar("volume",r,"width"),e.audio.volume=r,e.audio.muted&&(e.audio.muted=!1),b();break;case 40:a.preventDefault(),r=e.audio.volume-.1,r=r>0?r:0,r=r<1?r:1,e.updateBar("volume",r,"width"),e.audio.volume=r,e.audio.muted&&(e.audio.muted=!1),b()}};document.addEventListener("keydown",Z),this.menu=this.element.getElementsByClassName("dplayer-menu")[0],this.element.addEventListener("contextmenu",function(t){var a=t||window.event;a.preventDefault(),e.menu.style.left=a.clientX-e.element.getBoundingClientRect().left+"px",e.menu.style.top=a.clientY-e.element.getBoundingClientRect().top+"px",e.menu.classList.add("dplayer-menu-show"),Y.classList.add("dplayer-mask-show"),Y.addEventListener("click",function(){Y.classList.remove("dplayer-mask-show"),e.menu.classList.remove("dplayer-menu-show")})})}},{key:"play",value:function(){this.audio.paused&&(this.shouldpause=!1,this.bezel.innerHTML=this.getSVG("play"),this.bezel.classList.add("dplayer-bezel-transition"),this.playButton.innerHTML=this.getSVG("pause"),this.audio.play(),this.playedTime&&this.clearTime(),this.setTime(),this.element.classList.add("dplayer-playing"),this.trigger("play"))}},{key:"pause",value:function(){this.shouldpause&&!this.ended||(this.shouldpause=!0,this.element.classList.remove("dplayer-loading"),this.bezel.innerHTML=this.getSVG("pause"),this.bezel.classList.add("dplayer-bezel-transition"),this.ended=!1,this.playButton.innerHTML=this.getSVG("play"),this.audio.pause(),this.clearTime(),this.element.classList.remove("dplayer-playing"),this.trigger("pause"))}},{key:"on",value:function(e,t){"function"==typeof t&&this.event[e].push(t)}}]),e}();t.DPlayer=o},function(e,t,a){var r=a(2);"string"==typeof r&&(r=[[e.id,r,""]]);a(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,a){t=e.exports=a(3)(),t.push([e.id,'.dplayer{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:1}.dplayer:-webkit-full-screen{width:100%;height:100%;background:#000}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{-webkit-animation:danmaku-center 6s linear;animation:danmaku-center 6s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{-webkit-animation:danmaku 8s linear;animation:danmaku 8s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{height:60px}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-comment,.dplayer.dplayer-no-danmaku .dplayer-danmaku{display:none}.dplayer.dplayer-playing .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:running!important;animation-play-state:running!important}@media (min-width:900px){.dplayer.dplayer-playing .dplayer-controller,.dplayer.dplayer-playing .dplayer-controller-mask{opacity:0}.dplayer.dplayer-playing:hover .dplayer-controller,.dplayer.dplayer-playing:hover .dplayer-controller-mask{opacity:1}}.dplayer.dplayer-loading .dplayer-bezel .diplayer-loading-icon{display:block}.dplayer.dplayer-loading .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}.dplayer.dplayer-hide-controller .dplayer-controller,.dplayer.dplayer-hide-controller .dplayer-controller-mask{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}.dplayer.dplayer-show-controller .dplayer-controller,.dplayer.dplayer-show-controller .dplayer-controller-mask{opacity:1}.dplayer .dplayer-mask{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.dplayer .dplayer-mask.dplayer-mask-show{display:block}.dplayer .dplayer-video-wrap{position:relative;background:#000;font-size:0;width:100%;height:100%}.dplayer .dplayer-video-wrap .dplayer-video{width:100%;height:100%}.dplayer .dplayer-danmaku{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff}.dplayer .dplayer-danmaku .dplayer-danmaku-item{display:inline-block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;white-space:nowrap;font-weight:bolder;text-shadow:.5px .5px .5px rgba(0,0,0,.5)}.dplayer .dplayer-danmaku .dplayer-danmaku-right{position:absolute;right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.dplayer .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{will-change:transform;-webkit-animation:danmaku 5s linear;animation:danmaku 5s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom,.dplayer .dplayer-danmaku .dplayer-danmaku-top{position:absolute;width:100%;text-align:center;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{will-change:visibility;-webkit-animation:danmaku-center 4s linear;animation:danmaku-center 4s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}@keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}.dplayer .dplayer-bezel{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff;pointer-events:none}.dplayer .dplayer-bezel .dplayer-fill{fill:hsla(0,0%,100%,.8)}.dplayer .dplayer-bezel .dplayer-bezel-icon{position:absolute;top:50%;left:50%;margin:-26px 0 0 -26px;height:52px;width:52px;padding:12px;box-sizing:border-box;background:rgba(0,0,0,.5);border-radius:50%;opacity:0;pointer-events:none}.dplayer .dplayer-bezel .dplayer-bezel-icon.dplayer-bezel-transition{-webkit-animation:bezel-hide .5s linear;animation:bezel-hide .5s linear}@-webkit-keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}@keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}.dplayer .dplayer-bezel .dplayer-danloading{position:absolute;top:50%;margin-top:-7px;width:100%;text-align:center;font-size:14px;line-height:14px;-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out}.dplayer .dplayer-bezel .diplayer-loading-icon{display:none;position:absolute;top:50%;left:50%;margin:-18px 0 0 -18px;height:36px;width:36px;pointer-events:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-hide{display:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot{-webkit-animation:diplayer-loading-dot-fade .8s ease infinite;animation:diplayer-loading-dot-fade .8s ease infinite;opacity:0;fill:#fff;-webkit-transform-origin:4px 4px;transform-origin:4px 4px}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-7{-webkit-animation-delay:.7s;animation-delay:.7s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-6{-webkit-animation-delay:.6s;animation-delay:.6s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-5{-webkit-animation-delay:.5s;animation-delay:.5s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-4{-webkit-animation-delay:.4s;animation-delay:.4s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-3{-webkit-animation-delay:.3s;animation-delay:.3s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-2{-webkit-animation-delay:.2s;animation-delay:.2s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-1{-webkit-animation-delay:.1s;animation-delay:.1s}@-webkit-keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}@keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}.dplayer .dplayer-controller-mask{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom;height:98px;width:100%}.dplayer .dplayer-controller,.dplayer .dplayer-controller-mask{position:absolute;bottom:0;-webkit-transition:all .3s ease;transition:all .3s ease}.dplayer .dplayer-controller{left:0;right:0;height:41px;padding:0 20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dplayer .dplayer-controller .dplayer-bar-wrap{padding:5px 0;cursor:pointer;position:absolute;bottom:33px;width:calc(100% - 40px);height:3px}.dplayer .dplayer-controller .dplayer-bar-wrap:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar{position:relative;height:3px;width:100%;background:hsla(0,0%,100%,.2);cursor:pointer!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-loaded{position:absolute;left:0;top:0;bottom:0;background:hsla(0,0%,100%,.4);height:3px;-webkit-transition:all .5s ease;transition:all .5s ease;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played{position:absolute;left:0;top:0;bottom:0;height:3px;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons{height:38px;position:absolute;bottom:0}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-left .dplayer-icon{padding:7px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right{right:20px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right .dplayer-icon{padding:8px}.dplayer .dplayer-controller .dplayer-icons #dplayer-menu{stroke:#ddd;stroke-width:1px}.dplayer .dplayer-controller .dplayer-icons .dplayer-time{line-height:38px;color:#eee;text-shadow:0 0 2px rgba(0,0,0,.5);vertical-align:middle;font-size:13px;cursor:default}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon{width:46px;height:100%;border:none;background-color:transparent;outline:none;cursor:pointer;opacity:.8;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:middle}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon:hover{opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-comment-icon{padding:10px 9px 9px}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-setting-icon{padding-top:8.5px}.dplayer .dplayer-controller .dplayer-icons .dplayer-fill{fill:#fff}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume{position:relative;display:inline-block;cursor:pointer!important;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap{display:inline-block;margin:0 5px 0 -5px;vertical-align:middle;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar{position:relative;top:17px;width:0;height:3px;background:#aaa;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(170px);transform:translateX(170px);width:150px;height:90px;border-radius:2px;background:rgba(28,28,28,.9);padding:7px 0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;overflow:hidden;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-narrow{width:70px;height:180px;text-align:center}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item:hover,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku{padding:5px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-label{padding:0 10px;display:inline}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap{padding:0 10px;box-sizing:border-box;display:none;vertical-align:middle;height:100%;width:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar{position:relative;top:8.5px;width:100%;height:3px;background:#fff;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;background:#aaa;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;background:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(382px);transform:translateX(382px);border-radius:2px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box.dplayer-comment-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon{height:24px;width:24px;position:absolute;top:5px;left:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box{position:absolute;background:#fff;bottom:40px;left:-93px;box-shadow:0 0 25px rgba(0,0,0,.3);border-radius:4px;padding:10px 10px 16px;font-size:14px;width:204px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box.dplayer-comment-setting-open{-webkit-transform:scale(1);transform:scale(1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box:after{content:\'\';position:absolute;top:100%;left:50%;margin-left:-12px;background:url(\'data:image/svg+xml;utf8,\');width:24px;height:12px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box input[type=radio]{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box label{cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-title{font-size:14px;color:#555;padding:6px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(2) span{border-radius:4px 0 0 4px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(4) span{border-radius:0 4px 4px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type span{width:33%;padding:4px 6px;line-height:16px;display:inline-block;font-size:12px;color:#555;border:1px solid #e4e4e6;margin-right:-1px;box-sizing:border-box;text-align:center;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type input:checked+span{background:#e4e4e6}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color label{font-size:0;padding:6px;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span{width:22px;height:22px;display:inline-block;border-radius:50%;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span:hover{-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color input:checked+span{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);border:none!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-input{outline:none;border:none;padding:8px 31px;font-size:14px;line-height:18px;text-align:center;border-radius:4px;width:300px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon{height:22px;width:22px;position:absolute;top:6px;right:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-label{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle{width:32px;height:100%;text-align:center;display:inline-block;font-size:0;vertical-align:middle;float:right}.dplayer .dplayer-controller .dplayer-icons input#dplayer-toggle{max-height:0;max-width:0;display:none}.dplayer .dplayer-controller .dplayer-icons input#dplayer-toggle+label{display:inline-block;position:relative;box-shadow:inset 0 0 0 0 #dfdfdf;border:1px solid #dfdfdf;height:20px;width:32px;border-radius:10px;box-sizing:border-box;cursor:pointer;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons input#dplayer-toggle+label:after,.dplayer .dplayer-controller .dplayer-icons input#dplayer-toggle+label:before{content:"";position:absolute;display:block;height:18px;width:18px;top:0;left:0;border-radius:15px;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons input#dplayer-toggle+label:after{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}.dplayer .dplayer-controller .dplayer-icons input#dplayer-toggle:checked+label{border-color:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons input#dplayer-toggle:checked+label:before{width:30px;background:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons input#dplayer-toggle:checked+label:after{left:12px}.dplayer .dplayer-menu{position:absolute;width:150px;border-radius:2px;background:rgba(28,28,28,.9);padding:5px 0;overflow:hidden;z-index:3;display:none}.dplayer .dplayer-menu.dplayer-menu-show{display:block}.dplayer .dplayer-menu .dplayer-menu-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-menu .dplayer-menu-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-menu .dplayer-menu-item .dplayer-menu-label a{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}@-webkit-keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}@keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}',""]); +},function(e,t){e.exports=function(){var e=[];return e.toString=function(){for(var e=[],t=0;t=0&&v.splice(t,1)}function i(e){var t=document.createElement("style");return t.type="text/css",l(e,t),t}function s(e){var t=document.createElement("link");return t.rel="stylesheet",l(e,t),t}function d(e,t){var a,r,n;if(t.singleton){var l=h++;a=b||(b=i(t)),r=p.bind(null,a,l,!1),n=p.bind(null,a,l,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(a=s(t),r=c.bind(null,a),n=function(){o(a),a.href&&URL.revokeObjectURL(a.href)}):(a=i(t),r=m.bind(null,a),n=function(){o(a)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else n()}}function p(e,t,a,r){var n=a?"":r.css;if(e.styleSheet)e.styleSheet.cssText=x(t,n);else{var l=document.createTextNode(n),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(l,o[t]):e.appendChild(l)}}function m(e,t){var a=t.css,r=t.media;if(r&&e.setAttribute("media",r),e.styleSheet)e.styleSheet.cssText=a;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(a))}}function c(e,t){var a=t.css,r=t.sourceMap;r&&(a+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var n=new Blob([a],{type:"text/css"}),l=e.href;e.href=URL.createObjectURL(n),l&&URL.revokeObjectURL(l)}var y={},u=function(e){var t;return function(){return"undefined"==typeof t&&(t=e.apply(this,arguments)),t}},g=u(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),f=u(function(){return document.head||document.getElementsByTagName("head")[0]}),b=null,h=0,v=[];e.exports=function(e,t){t=t||{},"undefined"==typeof t.singleton&&(t.singleton=g()),"undefined"==typeof t.insertAt&&(t.insertAt="bottom");var a=n(e);return r(a,t),function(e){for(var l=[],o=0;o {\n\n class DPlayer {\n /**\n * DPlayer constructor function\n *\n * @param {Object} option - See README\n * @constructor\n */\n constructor(option) {\n this.svg = {\n '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'],\n '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'],\n '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'],\n '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'],\n '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'],\n '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'],\n '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'],\n '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'],\n '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'],\n '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'],\n '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'],\n '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']\n };\n this.getSVG = (type) => {\n return `\n \n \n \n \n `;\n };\n \n this.isMobile = navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(android)|(webOS)/i);\n // compatibility: some mobile browsers don't suppose autoplay\n if (this.isMobile) {\n option.autoplay = false;\n }\n \n // default options\n const defaultOption = {\n element: document.getElementsByClassName('dplayer')[0],\n autoplay: false,\n theme: '#b7daff',\n loop: false\n };\n for (let defaultKey in defaultOption) {\n if (defaultOption.hasOwnProperty(defaultKey) && !option.hasOwnProperty(defaultKey)) {\n option[defaultKey] = defaultOption[defaultKey];\n }\n }\n \n this.option = option;\n this.loop = option.loop;\n \n /**\n * Parse second to 00:00 format\n *\n * @param {Number} second\n * @return {String} 00:00 format\n */\n this.secondToTime = (second) => {\n const add0 = (num) => {\n return num < 10 ? '0' + num : '' + num;\n };\n const min = parseInt(second / 60);\n const sec = parseInt(second - min * 60);\n return add0(min) + ':' + add0(sec);\n };\n \n /**\n * Update progress bar, including loading progress bar and play progress bar\n *\n * @param {String} type - Point out which bar it is, should be played loaded or volume\n * @param {Number} percentage\n * @param {String} direction - Point out the direction of this bar, Should be height or width\n */\n this.updateBar = (type, percentage, direction) => {\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n this[type + 'Bar'].style[direction] = percentage * 100 + '%';\n };\n \n // define DPlayer events\n this.eventTypes = ['play', 'pause', 'canplay', 'playing', 'ended', 'error'];\n this.event = {};\n for (let i = 0; i < this.eventTypes.length; i++) {\n this.event[this.eventTypes[i]] = [];\n }\n this.trigger = (type) => {\n for (let i = 0; i < this.event[type].length; i++) {\n this.event[type][i]();\n }\n }\n }\n \n /**\n * AutoLink initialization function\n */\n init() {\n this.element = this.option.element;\n if (!this.option.danmaku) {\n this.element.classList.add('dplayer-no-danmaku');\n }\n \n this.element.innerHTML = `\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n \n
\n
\n
\n
\n 0:00 / 0:00\n
\n
\n
\n \n
\n \n
\n
\n \n \n \n
\n
\n \n \n \n \n \n \n \n \n
\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n `;\n \n // get this audio object\n this.audio = this.element.getElementsByClassName('dplayer-video')[0];\n\n this.bezel = this.element.getElementsByClassName('dplayer-bezel-icon')[0];\n this.bezel.addEventListener('animationend', () => {\n this.bezel.classList.remove('dplayer-bezel-transition');\n });\n\n this.ptime = this.element.getElementsByClassName('dplayer-ptime')[0];\n \n // play and pause button\n this.playButton = this.element.getElementsByClassName('dplayer-play-icon')[0];\n this.shouldpause = true;\n this.toggle = () => {\n if (this.audio.paused) {\n this.play();\n }\n else {\n this.pause();\n }\n };\n this.playButton.addEventListener('click', this.toggle);\n this.element.getElementsByClassName('dplayer-video-wrap')[0].addEventListener('click', this.toggle);\n this.element.getElementsByClassName('dplayer-controller-mask')[0].addEventListener('click', this.toggle);\n \n \n /**\n * control play progress\n */\n // get element's view position\n const getElementViewLeft = (element) => {\n let actualLeft = element.offsetLeft;\n let current = element.offsetParent;\n let elementScrollLeft;\n if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n while (current !== null) {\n actualLeft += current.offsetLeft;\n current = current.offsetParent;\n }\n }\n else {\n while (current !== null && current !== this.element) {\n actualLeft += current.offsetLeft;\n current = current.offsetParent;\n }\n }\n elementScrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;\n return actualLeft - elementScrollLeft;\n };\n \n const getElementViewTop = (element) => {\n let actualTop = element.offsetTop;\n let current = element.offsetParent;\n let elementScrollTop;\n if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n while (current !== null) {\n actualTop += current.offsetTop;\n current = current.offsetParent;\n }\n }\n else {\n while (current !== null && current !== this.element) {\n actualTop += current.offsetTop;\n current = current.offsetParent;\n }\n }\n elementScrollTop = document.body.scrollTop + document.documentElement.scrollTop;\n return actualTop - elementScrollTop;\n };\n \n this.playedBar = this.element.getElementsByClassName('dplayer-played')[0];\n this.loadedBar = this.element.getElementsByClassName('dplayer-loaded')[0];\n this.bar = this.element.getElementsByClassName('dplayer-bar-wrap')[0];\n let barWidth;\n\n if (this.option.danmaku) {\n this.audio.addEventListener('seeking', () => {\n for (let i = 0; i < this.dan.length; i++) {\n if (this.dan[i].time >= this.audio.currentTime) {\n this.danIndex = i;\n return;\n }\n this.danIndex = this.dan.length;\n }\n });\n }\n\n let lastPlayPos = 0;\n let currentPlayPos = 0;\n let bufferingDetected = false;\n this.setTime = () => {\n this.playedTime = setInterval(() => {\n // whether the video is buffering\n currentPlayPos = this.audio.currentTime;\n if (!bufferingDetected\n && currentPlayPos < (lastPlayPos + 0.01)\n && !this.audio.paused) {\n this.element.classList.add('dplayer-loading');\n bufferingDetected = true;\n }\n if (bufferingDetected\n && currentPlayPos > (lastPlayPos + 0.01)\n && !this.audio.paused) {\n this.element.classList.remove('dplayer-loading');\n bufferingDetected = false;\n }\n lastPlayPos = currentPlayPos;\n\n this.updateBar('played', this.audio.currentTime / this.audio.duration, 'width');\n this.ptime.innerHTML = this.secondToTime(this.audio.currentTime);\n this.trigger('playing');\n }, 100);\n if (this.option.danmaku) {\n this.danmakuTime = setInterval(() => {\n let item = this.dan[this.danIndex];\n while (item && this.audio.currentTime >= parseFloat(item.time)) {\n this.danmakuIn(item.text, item.color, item.type);\n this.danIndex++;\n item = this.dan[this.danIndex];\n }\n }, 0);\n }\n };\n this.clearTime = () => {\n clearInterval(this.playedTime);\n if (this.option.danmaku) {\n clearInterval(this.danmakuTime);\n }\n };\n \n this.bar.addEventListener('click', (event) => {\n const e = event || window.event;\n barWidth = this.bar.clientWidth;\n let percentage = (e.clientX - getElementViewLeft(this.bar)) / barWidth;\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n this.updateBar('played', percentage, 'width');\n this.audio.currentTime = parseFloat(this.playedBar.style.width) / 100 * this.audio.duration;\n });\n \n const thumbMove = (event) => {\n const e = event || window.event;\n let percentage = (e.clientX - getElementViewLeft(this.bar)) / barWidth;\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n this.updateBar('played', percentage, 'width');\n this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = this.secondToTime(percentage * this.audio.duration);\n };\n \n const thumbUp = () => {\n document.removeEventListener('mouseup', thumbUp);\n document.removeEventListener('mousemove', thumbMove);\n this.audio.currentTime = parseFloat(this.playedBar.style.width) / 100 * this.audio.duration;\n this.setTime();\n };\n \n this.bar.addEventListener('mousedown', () => {\n barWidth = this.bar.clientWidth;\n this.clearTime();\n document.addEventListener('mousemove', thumbMove);\n document.addEventListener('mouseup', thumbUp);\n });\n \n \n /**\n * control volume\n */\n this.volumeBar = this.element.getElementsByClassName('dplayer-volume-bar-inner')[0];\n const volumeEle = this.element.getElementsByClassName('dplayer-volume')[0];\n const volumeBarWrapWrap = this.element.getElementsByClassName('dplayer-volume-bar-wrap')[0];\n const volumeBarWrap = this.element.getElementsByClassName('dplayer-volume-bar')[0];\n const volumeicon = this.element.getElementsByClassName('dplayer-volume-icon')[0];\n const vWidth = 35;\n const switchVolumeIcon = () => {\n if (this.audio.volume >= 0.8) {\n volumeicon.innerHTML = this.getSVG('volume-up');\n }\n else if (this.audio.volume > 0) {\n volumeicon.innerHTML = this.getSVG('volume-down');\n }\n else {\n volumeicon.innerHTML = this.getSVG('volume-off');\n }\n };\n const volumeMove = (event) => {\n const e = event || window.event;\n let percentage = (e.clientX - getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n this.updateBar('volume', percentage, 'width');\n this.audio.volume = percentage;\n if (this.audio.muted) {\n this.audio.muted = false;\n }\n switchVolumeIcon();\n };\n const volumeUp = () => {\n document.removeEventListener('mouseup', volumeUp);\n document.removeEventListener('mousemove', volumeMove);\n volumeEle.classList.remove('dplayer-volume-active');\n };\n \n volumeBarWrapWrap.addEventListener('click', (event) => {\n const e = event || window.event;\n let percentage = (e.clientX - getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n this.updateBar('volume', percentage, 'width');\n this.audio.volume = percentage;\n if (this.audio.muted) {\n this.audio.muted = false;\n }\n switchVolumeIcon();\n });\n volumeBarWrapWrap.addEventListener('mousedown', () => {\n document.addEventListener('mousemove', volumeMove);\n document.addEventListener('mouseup', volumeUp);\n volumeEle.classList.add('dplayer-volume-active');\n });\n volumeicon.addEventListener('click', () => {\n if (this.audio.muted) {\n this.audio.muted = false;\n switchVolumeIcon();\n this.updateBar('volume', this.audio.volume, 'width');\n }\n else {\n this.audio.muted = true;\n volumeicon.innerHTML = this.getSVG('volume-off');\n this.updateBar('volume', 0, 'width');\n }\n });\n\n\n /**\n * auto hide controller\n */\n let hideTime = 0;\n const hideController = () => {\n this.element.classList.remove('dplayer-hide-controller');\n clearTimeout(hideTime);\n hideTime = setTimeout(() => {\n if (this.audio.played.length) {\n this.element.classList.add('dplayer-hide-controller');\n closeSetting();\n closeComment();\n }\n }, 2000);\n };\n this.element.addEventListener('mousemove', hideController);\n this.element.addEventListener('click', hideController);\n \n \n /***\n * setting\n */\n this.danOpacity = 0.7;\n const settingHTML = {\n 'original': `\n
\n 洗脑循环\n
\n \n \n
\n
\n
\n 速度\n
`\n + this.getSVG('right')\n + `
\n
\n
\n 弹幕透明度\n
\n
\n
\n \n
\n
\n
\n
`,\n 'speed': `\n
\n 0.5\n
\n
\n 0.75\n
\n
\n 正常\n
\n
\n 1.25\n
\n
\n 1.5\n
\n
\n 2\n
`\n };\n \n // toggle setting box\n const settingIcon = this.element.getElementsByClassName('dplayer-setting-icon')[0];\n const settingBox = this.element.getElementsByClassName('dplayer-setting-box')[0];\n const mask = this.element.getElementsByClassName('dplayer-mask')[0];\n settingBox.innerHTML = settingHTML.original;\n \n const closeSetting = () => {\n if (settingBox.classList.contains('dplayer-setting-box-open')) {\n settingBox.classList.remove('dplayer-setting-box-open');\n mask.classList.remove('dplayer-mask-show');\n setTimeout(() => {\n settingBox.classList.remove('dplayer-setting-box-narrow');\n settingBox.innerHTML = settingHTML.original;\n settingEvent();\n }, 300);\n }\n };\n const openSetting = () => {\n settingBox.classList.add('dplayer-setting-box-open');\n mask.classList.add('dplayer-mask-show');\n };\n \n mask.addEventListener('click', () => {\n closeSetting();\n });\n settingIcon.addEventListener('click', () => {\n openSetting();\n });\n \n const settingEvent = () => {\n // loop control\n const loopEle = this.element.getElementsByClassName('dplayer-setting-loop')[0];\n const loopToggle = loopEle.getElementsByClassName('dplayer-toggle-setting-input')[0];\n \n loopToggle.checked = this.loop;\n \n loopEle.addEventListener('click', () => {\n loopToggle.checked = !loopToggle.checked;\n if (loopToggle.checked) {\n this.loop = true;\n this.audio.loop = this.loop;\n }\n else {\n this.loop = false;\n this.audio.loop = this.loop;\n }\n closeSetting();\n });\n loopToggle.addEventListener('change', () => {\n if (loopToggle.checked) {\n this.loop = true;\n this.audio.loop = this.loop;\n }\n else {\n this.loop = false;\n this.audio.loop = this.loop;\n }\n closeSetting();\n });\n \n // speed control\n const speedEle = this.element.getElementsByClassName('dplayer-setting-speed')[0];\n speedEle.addEventListener('click', () => {\n settingBox.classList.add('dplayer-setting-box-narrow');\n settingBox.innerHTML = settingHTML.speed;\n \n const speedItem = settingBox.getElementsByClassName('dplayer-setting-speed-item');\n for (let i = 0; i < speedItem.length; i++) {\n speedItem[i].addEventListener('click', () => {\n this.audio.playbackRate = speedItem[i].dataset.speed;\n closeSetting();\n });\n }\n });\n\n if (this.option.danmaku) {\n // danmaku opacity\n this.danmakuBar = this.element.getElementsByClassName('dplayer-danmaku-bar-inner')[0];\n const danmakuBarWrapWrap = this.element.getElementsByClassName('dplayer-danmaku-bar-wrap')[0];\n const danmakuBarWrap = this.element.getElementsByClassName('dplayer-danmaku-bar')[0];\n const danmakuSettingBox = this.element.getElementsByClassName('dplayer-setting-danmaku')[0];\n const dWidth = 130;\n this.updateBar('danmaku', this.danOpacity, 'width');\n\n const danmakuMove = (event) => {\n const e = event || window.event;\n let percentage = (e.clientX - getElementViewLeft(danmakuBarWrap)) / dWidth;\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n this.updateBar('danmaku', percentage, 'width');\n const items = this.element.getElementsByClassName('dplayer-danmaku-item');\n for (let i = 0; i < items.length; i++) {\n items[i].style.opacity = percentage;\n }\n this.danOpacity = percentage;\n };\n const danmakuUp = () => {\n document.removeEventListener('mouseup', danmakuUp);\n document.removeEventListener('mousemove', danmakuMove);\n danmakuSettingBox.classList.remove('dplayer-setting-danmaku-active');\n };\n\n danmakuBarWrapWrap.addEventListener('click', (event) => {\n const e = event || window.event;\n let percentage = (e.clientX - getElementViewLeft(danmakuBarWrap)) / dWidth;\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n this.updateBar('danmaku', percentage, 'width');\n const items = this.element.getElementsByClassName('dplayer-danmaku-item');\n for (let i = 0; i < items.length; i++) {\n items[i].style.opacity = percentage;\n }\n this.danOpacity = percentage;\n });\n danmakuBarWrapWrap.addEventListener('mousedown', () => {\n document.addEventListener('mousemove', danmakuMove);\n document.addEventListener('mouseup', danmakuUp);\n danmakuSettingBox.classList.add('dplayer-setting-danmaku-active');\n });\n }\n };\n settingEvent();\n \n \n /**\n * audio events\n */\n // show audio time: the metadata has loaded or changed\n this.audio.addEventListener('durationchange', () => {\n if (this.audio.duration !== 1) { // compatibility: Android browsers will output 1 at first\n this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = this.secondToTime(this.audio.duration);\n }\n });\n \n // show audio loaded bar: to inform interested parties of progress downloading the media\n this.audio.addEventListener('progress', () => {\n const percentage = this.audio.buffered.length ? this.audio.buffered.end(this.audio.buffered.length - 1) / this.audio.duration : 0;\n this.updateBar('loaded', percentage, 'width');\n });\n \n // audio download error: an error occurs\n this.audio.addEventListener('error', () => {\n this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = `Error happens ╥﹏╥`;\n this.trigger('pause');\n });\n \n // audio can play: enough data is available that the media can be played\n this.audio.addEventListener('canplay', () => {\n this.trigger('canplay');\n });\n \n // music end\n this.ended = false;\n this.audio.addEventListener('ended', () => {\n this.updateBar('played', 1, 'width');\n if (!this.loop) {\n this.ended = true;\n this.pause();\n this.trigger('ended');\n }\n });\n \n // control volume\n this.audio.volume = parseInt(this.element.getElementsByClassName('dplayer-volume-bar-inner')[0].style.width) / 100;\n \n // loop\n this.audio.loop = this.loop;\n \n // set duration time\n if (this.audio.duration !== 1) { // compatibility: Android browsers will output 1 at first\n this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = this.audio.duration ? this.secondToTime(this.audio.duration) : '00:00';\n }\n\n\n /**\n * danmaku display\n */\n const danContainer = this.element.getElementsByClassName('dplayer-danmaku')[0];\n const itemHeight = 30;\n let danWidth;\n let danHeight;\n let itemY;\n let danTunnel = {\n right: {},\n top: {},\n bottom: {}\n };\n\n const danItemRight = (ele) => {\n return danContainer.getBoundingClientRect().right - ele.getBoundingClientRect().right;\n };\n\n const danSpeed = (ele) => {\n return (danWidth + ele.offsetWidth) / 5;\n };\n\n const getTunnel = (ele, type) => {\n const tmp = danWidth / danSpeed(ele);\n\n for (let i = 0; ; i++) {\n let item = danTunnel[type][i + ''];\n if (item && item.length) {\n for (let j = 0; j < item.length; j++) {\n const danRight = danItemRight(item[j]) - 10;\n if (danRight <= danWidth - (tmp * danSpeed(item[j])) || danRight <= 0) {\n break;\n }\n if (j === item.length - 1) {\n danTunnel[type][i + ''].push(ele);\n ele.addEventListener('animationend', () => {\n danTunnel[type][i + ''].splice(0, 1);\n });\n return i % itemY;\n }\n }\n }\n else {\n danTunnel[type][i + ''] = [ele];\n ele.addEventListener('animationend', () => {\n danTunnel[type][i + ''].splice(0, 1);\n });\n return i % itemY;\n }\n }\n };\n\n this.danmakuIn = (text, color, type) => {\n danWidth = danContainer.offsetWidth;\n danHeight = danContainer.offsetHeight;\n itemY = parseInt(danHeight / itemHeight);\n let item = document.createElement(`div`);\n item.classList.add(`dplayer-danmaku-item`);\n item.classList.add(`dplayer-danmaku-${type}`);\n item.innerHTML = text;\n item.style.opacity = this.danOpacity;\n\n // insert\n danContainer.appendChild(item);\n\n // adjust\n item.style.color = color;\n switch (type) {\n case 'right':\n item.style.top = itemHeight * getTunnel(item, type) + 'px';\n item.style.width = (item.offsetWidth + 1) + 'px';\n item.style.transform = `translateX(-${danWidth}px)`;\n item.addEventListener('animationend', () => {\n danContainer.removeChild(item);\n });\n break;\n case 'top':\n item.style.top = itemHeight * getTunnel(item, type) + 'px';\n item.addEventListener('animationend', () => {\n danContainer.removeChild(item);\n });\n break;\n case 'bottom':\n item.style.bottom = itemHeight * getTunnel(item, type) + 'px';\n item.addEventListener('animationend', () => {\n danContainer.removeChild(item);\n });\n break;\n default:\n console.error(`Can't handled danmaku type: ${type}`);\n }\n\n // move\n item.classList.add(`dplayer-danmaku-move`);\n };\n\n // danmaku\n if (this.option.danmaku) {\n this.danIndex = 0;\n const xhr = new XMLHttpRequest();\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n const response = JSON.parse(xhr.responseText);\n if (response.code !== 1) {\n alert(response.msg);\n }\n else {\n this.dan = response.danmaku.sort((a, b) => a.time - b.time);\n\n // autoplay\n if (this.option.autoplay && !this.isMobile) {\n this.play();\n }\n else if (this.isMobile) {\n this.pause();\n }\n }\n }\n else {\n console.log('Request was unsuccessful: ' + xhr.status);\n }\n }\n };\n let apiurl;\n if (this.option.danmaku.maximum) {\n apiurl = `${this.option.danmaku.api}?id=${this.option.danmaku.id}&max=${this.option.danmaku.maximum}`;\n }\n else {\n apiurl = `${this.option.danmaku.api}?id=${this.option.danmaku.id}`;\n }\n xhr.open('get', apiurl, true);\n xhr.send(null);\n }\n else {\n // autoplay\n if (this.option.autoplay && !this.isMobile) {\n this.play();\n }\n else if (this.isMobile) {\n this.pause();\n }\n }\n\n\n /**\n * comment\n */\n const commentInput = this.element.getElementsByClassName('dplayer-comment-input')[0];\n const commentIcon = this.element.getElementsByClassName('dplayer-comment-icon')[0];\n const commentBox = this.element.getElementsByClassName('dplayer-comment-box')[0];\n const commentSettingIcon = this.element.getElementsByClassName('dplayer-comment-setting-icon')[0];\n const commentSettingBox = this.element.getElementsByClassName('dplayer-comment-setting-box')[0];\n const commentSendIcon = this.element.getElementsByClassName('dplayer-send-icon')[0];\n\n const htmlEncode = (str) => {\n return str.replace(/&/g, \"&\")\n .replace(//g, \">\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\")\n .replace(/\\//g, \"/\");\n };\n\n const sendComment = () => {\n commentInput.blur();\n\n // text can't be empty\n if (!commentInput.value.replace(/^\\s+|\\s+$/g, '')) {\n alert('要输入弹幕内容啊喂!');\n return;\n }\n\n const danmakuData = {\n token: this.option.danmaku.token,\n player: this.option.danmaku.id,\n author: 'DIYgod',\n time: this.audio.currentTime,\n text: commentInput.value,\n color: this.element.querySelector('input[name=\"dplayer-danmaku-color\"]:checked').value,\n type: this.element.querySelector('input[name=\"dplayer-danmaku-type\"]:checked').value\n };\n const xhr = new XMLHttpRequest();\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n const response = JSON.parse(xhr.responseText);\n if (response.code !== 1) {\n alert(response.msg);\n }\n else {\n console.log('Post danmaku: ', JSON.parse(xhr.responseText));\n }\n }\n else {\n console.log('Request was unsuccessful: ' + xhr.status);\n }\n }\n };\n xhr.open('post', this.option.danmaku.api, true);\n xhr.send(JSON.stringify(danmakuData));\n\n commentInput.value = '';\n closeComment();\n this.dan.splice(this.danIndex, 0, danmakuData);\n this.danIndex++;\n this.danmakuIn(htmlEncode(danmakuData.text), danmakuData.color, danmakuData.type);\n };\n\n const closeCommentSetting = () => {\n if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n commentSettingBox.classList.remove('dplayer-comment-setting-open');\n }\n };\n const toggleCommentSetting = () => {\n if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n commentSettingBox.classList.remove('dplayer-comment-setting-open');\n }\n else {\n commentSettingBox.classList.add('dplayer-comment-setting-open');\n }\n };\n\n let disableHide = 0;\n const closeComment = () => {\n if (commentBox.classList.contains('dplayer-comment-box-open')) {\n commentBox.classList.remove('dplayer-comment-box-open');\n mask.classList.remove('dplayer-mask-show');\n clearInterval(disableHide);\n this.element.classList.remove('dplayer-show-controller');\n closeCommentSetting();\n document.addEventListener('keydown', handleKeyDown);\n }\n };\n const openComment = () => {\n commentBox.classList.add('dplayer-comment-box-open');\n mask.classList.add('dplayer-mask-show');\n disableHide = setInterval(() => {\n clearTimeout(hideTime);\n }, 1000);\n this.element.classList.add('dplayer-show-controller');\n document.removeEventListener('keydown', handleKeyDown);\n };\n\n mask.addEventListener('click', () => {\n closeComment();\n });\n commentIcon.addEventListener('click', () => {\n openComment();\n setTimeout(() => {\n commentInput.focus();\n }, 300);\n });\n commentSettingIcon.addEventListener('click', () => {\n toggleCommentSetting();\n });\n\n // comment setting box\n this.element.getElementsByClassName('dplayer-comment-setting-color')[0].addEventListener('click', () => {\n const sele = this.element.querySelector('input[name=\"dplayer-danmaku-color\"]:checked+span');\n if (sele) {\n commentSettingIcon.getElementsByClassName('dplayer-fill')[0].style.fill = this.element.querySelector('input[name=\"dplayer-danmaku-color\"]:checked').value;\n }\n });\n\n commentInput.addEventListener('click', () => {\n closeCommentSetting();\n });\n commentInput.addEventListener('keydown', (e) => {\n const event = e || window.event;\n if (event.keyCode === 13) {\n sendComment();\n }\n });\n\n commentSendIcon.addEventListener('click', sendComment);\n \n \n /**\n * full screen\n */\n const resetAnimation = () => {\n danWidth = danContainer.offsetWidth;\n const items = this.element.getElementsByClassName('dplayer-danmaku-item');\n for (let i = 0; i < items.length; i++) {\n items[i].style.transform = `translateX(-${danWidth}px)`;\n }\n };\n \n this.element.addEventListener('fullscreenchange', () => {\n resetAnimation();\n });\n this.element.addEventListener('mozfullscreenchange', () => {\n resetAnimation();\n });\n this.element.addEventListener('webkitfullscreenchange', () => {\n resetAnimation();\n });\n this.element.getElementsByClassName('dplayer-full-icon')[0].addEventListener('click', () => {\n if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n if (this.element.requestFullscreen) {\n this.element.requestFullscreen();\n }\n else if (this.element.mozRequestFullScreen) {\n this.element.mozRequestFullScreen();\n }\n else if (this.element.webkitRequestFullscreen) {\n this.element.webkitRequestFullscreen();\n }\n }\n else {\n if (document.cancelFullScreen) {\n document.cancelFullScreen();\n }\n else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n }\n else if (document.webkitCancelFullScreen) {\n document.webkitCancelFullScreen();\n }\n }\n resetAnimation();\n });\n\n /**\n * hot key\n */\n const handleKeyDown = (e) => {\n const event = e || window.event;\n let percentage;\n switch (event.keyCode) {\n case 32:\n event.preventDefault();\n this.toggle();\n break;\n case 37:\n event.preventDefault();\n this.audio.currentTime = this.audio.currentTime -5;\n break;\n case 39:\n event.preventDefault();\n this.audio.currentTime = this.audio.currentTime + 5;\n break;\n case 38:\n event.preventDefault();\n percentage = this.audio.volume + 0.1;\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n this.updateBar('volume', percentage, 'width');\n this.audio.volume = percentage;\n if (this.audio.muted) {\n this.audio.muted = false;\n }\n switchVolumeIcon();\n break;\n case 40:\n event.preventDefault();\n percentage = this.audio.volume - 0.1;\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n this.updateBar('volume', percentage, 'width');\n this.audio.volume = percentage;\n if (this.audio.muted) {\n this.audio.muted = false;\n }\n switchVolumeIcon();\n break;\n }\n };\n document.addEventListener('keydown', handleKeyDown);\n\n /**\n * right key\n */\n this.menu = this.element.getElementsByClassName('dplayer-menu')[0];\n this.element.addEventListener('contextmenu', (e) => {\n const event = e || window.event;\n event.preventDefault();\n this.menu.style.left = event.clientX - this.element.getBoundingClientRect().left + 'px';\n this.menu.style.top = event.clientY - this.element.getBoundingClientRect().top + 'px';\n this.menu.classList.add('dplayer-menu-show');\n\n mask.classList.add('dplayer-mask-show');\n mask.addEventListener('click', () => {\n mask.classList.remove('dplayer-mask-show');\n this.menu.classList.remove('dplayer-menu-show');\n });\n });\n }\n \n /**\n * Play music\n */\n play() {\n if (this.audio.paused) {\n this.shouldpause = false;\n\n this.bezel.innerHTML = this.getSVG('play');\n this.bezel.classList.add('dplayer-bezel-transition');\n\n this.playButton.innerHTML = this.getSVG('pause');\n\n this.audio.play();\n if (this.playedTime) {\n this.clearTime();\n }\n this.setTime();\n this.element.classList.add('dplayer-playing');\n this.trigger('play');\n }\n }\n \n /**\n * Pause music\n */\n pause() {\n if (!this.shouldpause || this.ended) {\n this.shouldpause = true;\n this.element.classList.remove('dplayer-loading');\n\n this.bezel.innerHTML = this.getSVG('pause');\n this.bezel.classList.add('dplayer-bezel-transition');\n\n this.ended = false;\n this.playButton.innerHTML = this.getSVG('play');\n this.audio.pause();\n this.clearTime();\n this.element.classList.remove('dplayer-playing');\n this.trigger('pause');\n }\n }\n \n /**\n * attach event\n */\n on(name, func) {\n if (typeof func === 'function') {\n this.event[name].push(func);\n }\n }\n }\n\n if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = DPlayer;\n }\n else {\n window.DPlayer = DPlayer;\n }\n})();"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///DPlayer.min.js","webpack:///webpack/bootstrap f8ff19f19f70f6f62586","webpack:///./src/DPlayer.js","webpack:///./src/DPlayer.scss?8fa9","webpack:///./src/DPlayer.scss","webpack:///./~/css-loader/lib/css-base.js","webpack:///./~/style-loader/addStyles.js"],"names":["root","factory","exports","module","define","amd","a","i","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_classCallCheck","instance","Constructor","TypeError","Object","defineProperty","value","_typeof","Symbol","iterator","obj","constructor","_createClass","defineProperties","target","props","length","descriptor","enumerable","configurable","writable","key","protoProps","staticProps","prototype","DPlayer","option","_this","svg","play","pause","volume-up","volume-down","volume-off","loop","full","setting","right","comment","comment-off","send","menu","getSVG","type","isMobile","navigator","userAgent","match","autoplay","defaultOption","element","document","getElementsByClassName","theme","lang","defaultKey","hasOwnProperty","tranZH","Danmaku is loading","Top","Bottom","Rolling","Input danmaku, hit Enter","About author","DPlayer feedback","About DPlayer","Loop","Speed","Opacity for danmaku","Normal","Please input danmaku!","getTran","text","secondToTime","second","add0","num","min","parseInt","sec","updateBar","percentage","direction","style","eventTypes","event","trigger","_i","_this2","danmaku","classList","add","innerHTML","video","pic","url","audio","bezel","addEventListener","remove","ptime","playButton","shouldpause","toggle","paused","videoWrap","conMask","toggleController","contains","getElementViewLeft","actualLeft","offsetLeft","current","offsetParent","elementScrollLeft","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","body","scrollLeft","documentElement","playedBar","loadedBar","bar","barWidth","dan","time","currentTime","danIndex","lastPlayPos","currentPlayPos","bufferingDetected","setTime","playedTime","setInterval","duration","danmakuTime","item","parseFloat","danmakuIn","color","clearTime","clearInterval","e","window","clientWidth","clientX","width","thumbMove","thumbUp","removeEventListener","volumeBar","volumeEle","volumeBarWrapWrap","volumeBarWrap","volumeicon","vWidth","switchVolumeIcon","volume","volumeMove","muted","volumeUp","hideTime","hideController","clearTimeout","setTimeout","played","closeSetting","closeComment","danOpacity","settingHTML","original","speed","settingIcon","settingBox","mask","settingEvent","openSetting","loopEle","loopToggle","checked","speedEle","speedItem","_loop","playbackRate","dataset","danmakuBar","danmakuBarWrapWrap","danmakuBarWrap","danmakuSettingBox","dWidth","danmakuMove","items","opacity","danmakuUp","buffered","end","ended","danContainer","itemHeight","danWidth","danHeight","itemY","danTunnel","top","bottom","danItemRight","ele","getBoundingClientRect","danSpeed","offsetWidth","getTunnel","tmp","_loop2","splice","v","j","danRight","push","_ret4","offsetHeight","createElement","appendChild","transform","removeChild","console","error","xhr","XMLHttpRequest","onreadystatechange","readyState","status","response","JSON","parse","responseText","code","alert","msg","sort","b","display","log","apiurl","maximum","api","open","commentInput","commentIcon","commentBox","commentSettingIcon","commentSettingBox","commentSendIcon","htmlEncode","str","replace","sendComment","blur","danmakuData","token","player","author","querySelector","stringify","closeCommentSetting","toggleCommentSetting","disableHide","handleKeyDown","openComment","focus","sele","fill","keyCode","resetAnimation","cancelFullScreen","mozCancelFullScreen","webkitCancelFullScreen","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","preventDefault","left","clientY","name","func","content","locals","list","toString","result","join","mediaQuery","alreadyImportedModules","addStylesToDom","styles","options","domStyle","stylesInDom","refs","parts","addStyle","listToStyles","newStyles","css","media","sourceMap","part","insertStyleElement","styleElement","head","getHeadElement","lastStyleElementInsertedAtTop","styleElementsInsertedAtTop","insertAt","nextSibling","insertBefore","firstChild","Error","removeStyleElement","parentNode","idx","indexOf","createStyleElement","createLinkElement","linkElement","rel","update","singleton","styleIndex","singletonCounter","singletonElement","applyToSingletonTag","bind","URL","createObjectURL","revokeObjectURL","Blob","btoa","updateLink","href","applyToTag","newObj","index","styleSheet","cssText","replaceText","cssNode","createTextNode","childNodes","setAttribute","unescape","encodeURIComponent","blob","oldSrc","memoize","fn","memo","apply","arguments","isOldIE","test","toLowerCase","getElementsByTagName","newList","mayRemove","textStore","replacement","filter","Boolean"],"mappings":"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","file":"DPlayer.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t__webpack_require__(1);\n\t// const Hls = require('hls.js');\n\t\n\tvar DPlayer = function () {\n\t /**\n\t * DPlayer constructor function\n\t *\n\t * @param {Object} option - See README\n\t * @constructor\n\t */\n\t\n\t function DPlayer(option) {\n\t var _this = this;\n\t\n\t _classCallCheck(this, DPlayer);\n\t\n\t this.svg = {\n\t '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'],\n\t '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'],\n\t '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'],\n\t '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'],\n\t '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'],\n\t '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'],\n\t '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'],\n\t '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'],\n\t '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'],\n\t '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'],\n\t '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'],\n\t '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'],\n\t 'menu': ['0 0 22 32', 'M20.8 14.4q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2zM1.6 11.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2zM20.8 20.8q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2z']\n\t };\n\t this.getSVG = function (type) {\n\t return '\\n \\n \\n \\n \\n ';\n\t };\n\t\n\t this.isMobile = navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(android)|(webOS)/i);\n\t // compatibility: some mobile browsers don't suppose autoplay\n\t if (this.isMobile) {\n\t option.autoplay = false;\n\t }\n\t\n\t // default options\n\t var defaultOption = {\n\t element: document.getElementsByClassName('dplayer')[0],\n\t autoplay: false,\n\t theme: '#b7daff',\n\t loop: false,\n\t lang: 'en'\n\t };\n\t for (var defaultKey in defaultOption) {\n\t if (defaultOption.hasOwnProperty(defaultKey) && !option.hasOwnProperty(defaultKey)) {\n\t option[defaultKey] = defaultOption[defaultKey];\n\t }\n\t }\n\t\n\t this.option = option;\n\t this.loop = option.loop;\n\t\n\t this.tranZH = {\n\t 'Danmaku is loading': '弹幕加载中',\n\t 'Top': '顶部',\n\t 'Bottom': '底部',\n\t 'Rolling': '滚动',\n\t 'Input danmaku, hit Enter': '输入弹幕,回车发送',\n\t 'About author': '关于作者',\n\t 'DPlayer feedback': '播放器意见反馈',\n\t 'About DPlayer': '关于 DPlay 播放器',\n\t 'Loop': '洗脑循环',\n\t 'Speed': '速度',\n\t 'Opacity for danmaku': '弹幕透明度',\n\t 'Normal': '正常',\n\t 'Please input danmaku!': '要输入弹幕内容啊喂!'\n\t };\n\t this.getTran = function (text) {\n\t if (_this.option.lang === 'en') {\n\t return text;\n\t } else if (_this.option.lang === 'zh') {\n\t return _this.tranZH[text];\n\t }\n\t };\n\t\n\t /**\n\t * Parse second to 00:00 format\n\t *\n\t * @param {Number} second\n\t * @return {String} 00:00 format\n\t */\n\t this.secondToTime = function (second) {\n\t var add0 = function add0(num) {\n\t return num < 10 ? '0' + num : '' + num;\n\t };\n\t var min = parseInt(second / 60);\n\t var sec = parseInt(second - min * 60);\n\t return add0(min) + ':' + add0(sec);\n\t };\n\t\n\t /**\n\t * Update progress bar, including loading progress bar and play progress bar\n\t *\n\t * @param {String} type - Point out which bar it is, should be played loaded or volume\n\t * @param {Number} percentage\n\t * @param {String} direction - Point out the direction of this bar, Should be height or width\n\t */\n\t this.updateBar = function (type, percentage, direction) {\n\t percentage = percentage > 0 ? percentage : 0;\n\t percentage = percentage < 1 ? percentage : 1;\n\t _this[type + 'Bar'].style[direction] = percentage * 100 + '%';\n\t };\n\t\n\t // define DPlayer events\n\t this.eventTypes = ['play', 'pause', 'canplay', 'playing', 'ended', 'error'];\n\t this.event = {};\n\t for (var i = 0; i < this.eventTypes.length; i++) {\n\t this.event[this.eventTypes[i]] = [];\n\t }\n\t this.trigger = function (type) {\n\t for (var _i = 0; _i < _this.event[type].length; _i++) {\n\t _this.event[type][_i]();\n\t }\n\t };\n\t }\n\t\n\t /**\n\t * AutoLink initialization function\n\t */\n\t\n\t\n\t _createClass(DPlayer, [{\n\t key: 'init',\n\t value: function init() {\n\t var _this2 = this;\n\t\n\t this.element = this.option.element;\n\t if (!this.option.danmaku) {\n\t this.element.classList.add('dplayer-no-danmaku');\n\t }\n\t\n\t this.element.innerHTML = '\\n
\\n
\\n \\n
\\n
\\n \\n ' + (this.option.danmaku ? '' + this.getTran('Danmaku is loading') + '' : '') + '\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n 0:00 / 0:00\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
设置弹幕颜色
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n
设置弹幕类型
\\n \\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n ');\n\t\n\t // get this audio object\n\t this.audio = this.element.getElementsByClassName('dplayer-video')[0];\n\t\n\t // Support HTTP Live Streaming\n\t // if (this.option.video.url.match(/(m3u8)$/i) || Hls.isSupported()) {\n\t // const hls = new Hls();\n\t // hls.attachMedia(this.audio);\n\t // hls.on(Hls.Events.MEDIA_ATTACHED, () => {\n\t // hls.loadSource(this.option.video.url);\n\t // hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {\n\t // console.log(\"manifest loaded, found \" + data.levels.length + \" quality level\");\n\t // });\n\t // });\n\t // }\n\t\n\t this.bezel = this.element.getElementsByClassName('dplayer-bezel-icon')[0];\n\t this.bezel.addEventListener('animationend', function () {\n\t _this2.bezel.classList.remove('dplayer-bezel-transition');\n\t });\n\t\n\t this.ptime = this.element.getElementsByClassName('dplayer-ptime')[0];\n\t\n\t // play and pause button\n\t this.playButton = this.element.getElementsByClassName('dplayer-play-icon')[0];\n\t this.shouldpause = true;\n\t this.toggle = function () {\n\t if (_this2.audio.paused) {\n\t _this2.play();\n\t } else {\n\t _this2.pause();\n\t }\n\t };\n\t this.playButton.addEventListener('click', this.toggle);\n\t\n\t var videoWrap = this.element.getElementsByClassName('dplayer-video-wrap')[0];\n\t var conMask = this.element.getElementsByClassName('dplayer-controller-mask')[0];\n\t if (!this.isMobile) {\n\t videoWrap.addEventListener('click', this.toggle);\n\t conMask.addEventListener('click', this.toggle);\n\t } else {\n\t var toggleController = function toggleController() {\n\t if (_this2.element.classList.contains('dplayer-hide-controller')) {\n\t _this2.element.classList.remove('dplayer-hide-controller');\n\t } else {\n\t _this2.element.classList.add('dplayer-hide-controller');\n\t }\n\t };\n\t videoWrap.addEventListener('click', toggleController);\n\t conMask.addEventListener('click', toggleController);\n\t }\n\t\n\t /**\n\t * control play progress\n\t */\n\t // get element's view position\n\t var getElementViewLeft = function getElementViewLeft(element) {\n\t var actualLeft = element.offsetLeft;\n\t var current = element.offsetParent;\n\t var elementScrollLeft = void 0;\n\t if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n\t while (current !== null) {\n\t actualLeft += current.offsetLeft;\n\t current = current.offsetParent;\n\t }\n\t } else {\n\t while (current !== null && current !== _this2.element) {\n\t actualLeft += current.offsetLeft;\n\t current = current.offsetParent;\n\t }\n\t }\n\t elementScrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;\n\t return actualLeft - elementScrollLeft;\n\t };\n\t\n\t var getElementViewTop = function getElementViewTop(element) {\n\t var actualTop = element.offsetTop;\n\t var current = element.offsetParent;\n\t var elementScrollTop = void 0;\n\t if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n\t while (current !== null) {\n\t actualTop += current.offsetTop;\n\t current = current.offsetParent;\n\t }\n\t } else {\n\t while (current !== null && current !== _this2.element) {\n\t actualTop += current.offsetTop;\n\t current = current.offsetParent;\n\t }\n\t }\n\t elementScrollTop = document.body.scrollTop + document.documentElement.scrollTop;\n\t return actualTop - elementScrollTop;\n\t };\n\t\n\t this.playedBar = this.element.getElementsByClassName('dplayer-played')[0];\n\t this.loadedBar = this.element.getElementsByClassName('dplayer-loaded')[0];\n\t this.bar = this.element.getElementsByClassName('dplayer-bar-wrap')[0];\n\t var barWidth = void 0;\n\t\n\t if (this.option.danmaku) {\n\t this.audio.addEventListener('seeking', function () {\n\t for (var i = 0; i < _this2.dan.length; i++) {\n\t if (_this2.dan[i].time >= _this2.audio.currentTime) {\n\t _this2.danIndex = i;\n\t return;\n\t }\n\t _this2.danIndex = _this2.dan.length;\n\t }\n\t });\n\t }\n\t\n\t var lastPlayPos = 0;\n\t var currentPlayPos = 0;\n\t var bufferingDetected = false;\n\t this.setTime = function () {\n\t _this2.playedTime = setInterval(function () {\n\t // whether the video is buffering\n\t currentPlayPos = _this2.audio.currentTime;\n\t if (!bufferingDetected && currentPlayPos < lastPlayPos + 0.01 && !_this2.audio.paused) {\n\t _this2.element.classList.add('dplayer-loading');\n\t bufferingDetected = true;\n\t }\n\t if (bufferingDetected && currentPlayPos > lastPlayPos + 0.01 && !_this2.audio.paused) {\n\t _this2.element.classList.remove('dplayer-loading');\n\t bufferingDetected = false;\n\t }\n\t lastPlayPos = currentPlayPos;\n\t\n\t _this2.updateBar('played', _this2.audio.currentTime / _this2.audio.duration, 'width');\n\t _this2.ptime.innerHTML = _this2.secondToTime(_this2.audio.currentTime);\n\t _this2.trigger('playing');\n\t }, 100);\n\t if (_this2.option.danmaku) {\n\t _this2.danmakuTime = setInterval(function () {\n\t var item = _this2.dan[_this2.danIndex];\n\t while (item && _this2.audio.currentTime >= parseFloat(item.time)) {\n\t _this2.danmakuIn(item.text, item.color, item.type);\n\t _this2.danIndex++;\n\t item = _this2.dan[_this2.danIndex];\n\t }\n\t }, 0);\n\t }\n\t };\n\t this.clearTime = function () {\n\t clearInterval(_this2.playedTime);\n\t if (_this2.option.danmaku) {\n\t clearInterval(_this2.danmakuTime);\n\t }\n\t };\n\t\n\t this.bar.addEventListener('click', function (event) {\n\t var e = event || window.event;\n\t barWidth = _this2.bar.clientWidth;\n\t var percentage = (e.clientX - getElementViewLeft(_this2.bar)) / barWidth;\n\t percentage = percentage > 0 ? percentage : 0;\n\t percentage = percentage < 1 ? percentage : 1;\n\t _this2.updateBar('played', percentage, 'width');\n\t _this2.audio.currentTime = parseFloat(_this2.playedBar.style.width) / 100 * _this2.audio.duration;\n\t });\n\t\n\t var thumbMove = function thumbMove(event) {\n\t var e = event || window.event;\n\t var percentage = (e.clientX - getElementViewLeft(_this2.bar)) / barWidth;\n\t percentage = percentage > 0 ? percentage : 0;\n\t percentage = percentage < 1 ? percentage : 1;\n\t _this2.updateBar('played', percentage, 'width');\n\t _this2.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = _this2.secondToTime(percentage * _this2.audio.duration);\n\t };\n\t\n\t var thumbUp = function thumbUp() {\n\t document.removeEventListener('mouseup', thumbUp);\n\t document.removeEventListener('mousemove', thumbMove);\n\t _this2.audio.currentTime = parseFloat(_this2.playedBar.style.width) / 100 * _this2.audio.duration;\n\t _this2.setTime();\n\t };\n\t\n\t this.bar.addEventListener('mousedown', function () {\n\t barWidth = _this2.bar.clientWidth;\n\t _this2.clearTime();\n\t document.addEventListener('mousemove', thumbMove);\n\t document.addEventListener('mouseup', thumbUp);\n\t });\n\t\n\t /**\n\t * control volume\n\t */\n\t this.volumeBar = this.element.getElementsByClassName('dplayer-volume-bar-inner')[0];\n\t var volumeEle = this.element.getElementsByClassName('dplayer-volume')[0];\n\t var volumeBarWrapWrap = this.element.getElementsByClassName('dplayer-volume-bar-wrap')[0];\n\t var volumeBarWrap = this.element.getElementsByClassName('dplayer-volume-bar')[0];\n\t var volumeicon = this.element.getElementsByClassName('dplayer-volume-icon')[0];\n\t var vWidth = 35;\n\t var switchVolumeIcon = function switchVolumeIcon() {\n\t if (_this2.audio.volume >= 0.8) {\n\t volumeicon.innerHTML = _this2.getSVG('volume-up');\n\t } else if (_this2.audio.volume > 0) {\n\t volumeicon.innerHTML = _this2.getSVG('volume-down');\n\t } else {\n\t volumeicon.innerHTML = _this2.getSVG('volume-off');\n\t }\n\t };\n\t var volumeMove = function volumeMove(event) {\n\t var e = event || window.event;\n\t var percentage = (e.clientX - getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n\t percentage = percentage > 0 ? percentage : 0;\n\t percentage = percentage < 1 ? percentage : 1;\n\t _this2.updateBar('volume', percentage, 'width');\n\t _this2.audio.volume = percentage;\n\t if (_this2.audio.muted) {\n\t _this2.audio.muted = false;\n\t }\n\t switchVolumeIcon();\n\t };\n\t var volumeUp = function volumeUp() {\n\t document.removeEventListener('mouseup', volumeUp);\n\t document.removeEventListener('mousemove', volumeMove);\n\t volumeEle.classList.remove('dplayer-volume-active');\n\t };\n\t\n\t volumeBarWrapWrap.addEventListener('click', function (event) {\n\t var e = event || window.event;\n\t var percentage = (e.clientX - getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n\t percentage = percentage > 0 ? percentage : 0;\n\t percentage = percentage < 1 ? percentage : 1;\n\t _this2.updateBar('volume', percentage, 'width');\n\t _this2.audio.volume = percentage;\n\t if (_this2.audio.muted) {\n\t _this2.audio.muted = false;\n\t }\n\t switchVolumeIcon();\n\t });\n\t volumeBarWrapWrap.addEventListener('mousedown', function () {\n\t document.addEventListener('mousemove', volumeMove);\n\t document.addEventListener('mouseup', volumeUp);\n\t volumeEle.classList.add('dplayer-volume-active');\n\t });\n\t volumeicon.addEventListener('click', function () {\n\t if (_this2.audio.muted) {\n\t _this2.audio.muted = false;\n\t switchVolumeIcon();\n\t _this2.updateBar('volume', _this2.audio.volume, 'width');\n\t } else {\n\t _this2.audio.muted = true;\n\t volumeicon.innerHTML = _this2.getSVG('volume-off');\n\t _this2.updateBar('volume', 0, 'width');\n\t }\n\t });\n\t\n\t /**\n\t * auto hide controller\n\t */\n\t if (!this.isMobile) {\n\t (function () {\n\t var hideTime = 0;\n\t var hideController = function hideController() {\n\t _this2.element.classList.remove('dplayer-hide-controller');\n\t clearTimeout(hideTime);\n\t hideTime = setTimeout(function () {\n\t if (_this2.audio.played.length) {\n\t _this2.element.classList.add('dplayer-hide-controller');\n\t closeSetting();\n\t closeComment();\n\t }\n\t }, 2000);\n\t };\n\t _this2.element.addEventListener('mousemove', hideController);\n\t _this2.element.addEventListener('click', hideController);\n\t })();\n\t }\n\t\n\t /***\n\t * setting\n\t */\n\t this.danOpacity = 0.7;\n\t var settingHTML = {\n\t 'original': '\\n
\\n ' + this.getTran('Loop') + '\\n
\\n \\n \\n
\\n
\\n
\\n ' + this.getTran('Speed') + '\\n
' + this.getSVG('right') + ('
\\n
\\n
\\n ' + this.getTran('Opacity for danmaku') + '\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
'),\n\t 'speed': '\\n
\\n 0.5\\n
\\n
\\n 0.75\\n
\\n
\\n ' + this.getTran('Normal') + '\\n
\\n
\\n 1.25\\n
\\n
\\n 1.5\\n
\\n
\\n 2\\n
'\n\t };\n\t\n\t // toggle setting box\n\t var settingIcon = this.element.getElementsByClassName('dplayer-setting-icon')[0];\n\t var settingBox = this.element.getElementsByClassName('dplayer-setting-box')[0];\n\t var mask = this.element.getElementsByClassName('dplayer-mask')[0];\n\t settingBox.innerHTML = settingHTML.original;\n\t\n\t var closeSetting = function closeSetting() {\n\t if (settingBox.classList.contains('dplayer-setting-box-open')) {\n\t settingBox.classList.remove('dplayer-setting-box-open');\n\t mask.classList.remove('dplayer-mask-show');\n\t setTimeout(function () {\n\t settingBox.classList.remove('dplayer-setting-box-narrow');\n\t settingBox.innerHTML = settingHTML.original;\n\t settingEvent();\n\t }, 300);\n\t }\n\t };\n\t var openSetting = function openSetting() {\n\t settingBox.classList.add('dplayer-setting-box-open');\n\t mask.classList.add('dplayer-mask-show');\n\t };\n\t\n\t mask.addEventListener('click', function () {\n\t closeSetting();\n\t });\n\t settingIcon.addEventListener('click', function () {\n\t openSetting();\n\t });\n\t\n\t var settingEvent = function settingEvent() {\n\t // loop control\n\t var loopEle = _this2.element.getElementsByClassName('dplayer-setting-loop')[0];\n\t var loopToggle = loopEle.getElementsByClassName('dplayer-toggle-setting-input')[0];\n\t\n\t loopToggle.checked = _this2.loop;\n\t\n\t loopEle.addEventListener('click', function () {\n\t loopToggle.checked = !loopToggle.checked;\n\t if (loopToggle.checked) {\n\t _this2.loop = true;\n\t _this2.audio.loop = _this2.loop;\n\t } else {\n\t _this2.loop = false;\n\t _this2.audio.loop = _this2.loop;\n\t }\n\t closeSetting();\n\t });\n\t loopToggle.addEventListener('change', function () {\n\t if (loopToggle.checked) {\n\t _this2.loop = true;\n\t _this2.audio.loop = _this2.loop;\n\t } else {\n\t _this2.loop = false;\n\t _this2.audio.loop = _this2.loop;\n\t }\n\t closeSetting();\n\t });\n\t\n\t // speed control\n\t var speedEle = _this2.element.getElementsByClassName('dplayer-setting-speed')[0];\n\t speedEle.addEventListener('click', function () {\n\t settingBox.classList.add('dplayer-setting-box-narrow');\n\t settingBox.innerHTML = settingHTML.speed;\n\t\n\t var speedItem = settingBox.getElementsByClassName('dplayer-setting-speed-item');\n\t\n\t var _loop = function _loop(i) {\n\t speedItem[i].addEventListener('click', function () {\n\t _this2.audio.playbackRate = speedItem[i].dataset.speed;\n\t closeSetting();\n\t });\n\t };\n\t\n\t for (var i = 0; i < speedItem.length; i++) {\n\t _loop(i);\n\t }\n\t });\n\t\n\t if (_this2.option.danmaku) {\n\t (function () {\n\t // danmaku opacity\n\t _this2.danmakuBar = _this2.element.getElementsByClassName('dplayer-danmaku-bar-inner')[0];\n\t var danmakuBarWrapWrap = _this2.element.getElementsByClassName('dplayer-danmaku-bar-wrap')[0];\n\t var danmakuBarWrap = _this2.element.getElementsByClassName('dplayer-danmaku-bar')[0];\n\t var danmakuSettingBox = _this2.element.getElementsByClassName('dplayer-setting-danmaku')[0];\n\t var dWidth = 130;\n\t _this2.updateBar('danmaku', _this2.danOpacity, 'width');\n\t\n\t var danmakuMove = function danmakuMove(event) {\n\t var e = event || window.event;\n\t var percentage = (e.clientX - getElementViewLeft(danmakuBarWrap)) / dWidth;\n\t percentage = percentage > 0 ? percentage : 0;\n\t percentage = percentage < 1 ? percentage : 1;\n\t _this2.updateBar('danmaku', percentage, 'width');\n\t var items = _this2.element.getElementsByClassName('dplayer-danmaku-item');\n\t for (var i = 0; i < items.length; i++) {\n\t items[i].style.opacity = percentage;\n\t }\n\t _this2.danOpacity = percentage;\n\t };\n\t var danmakuUp = function danmakuUp() {\n\t document.removeEventListener('mouseup', danmakuUp);\n\t document.removeEventListener('mousemove', danmakuMove);\n\t danmakuSettingBox.classList.remove('dplayer-setting-danmaku-active');\n\t };\n\t\n\t danmakuBarWrapWrap.addEventListener('click', function (event) {\n\t var e = event || window.event;\n\t var percentage = (e.clientX - getElementViewLeft(danmakuBarWrap)) / dWidth;\n\t percentage = percentage > 0 ? percentage : 0;\n\t percentage = percentage < 1 ? percentage : 1;\n\t _this2.updateBar('danmaku', percentage, 'width');\n\t var items = _this2.element.getElementsByClassName('dplayer-danmaku-item');\n\t for (var i = 0; i < items.length; i++) {\n\t items[i].style.opacity = percentage;\n\t }\n\t _this2.danOpacity = percentage;\n\t });\n\t danmakuBarWrapWrap.addEventListener('mousedown', function () {\n\t document.addEventListener('mousemove', danmakuMove);\n\t document.addEventListener('mouseup', danmakuUp);\n\t danmakuSettingBox.classList.add('dplayer-setting-danmaku-active');\n\t });\n\t })();\n\t }\n\t };\n\t settingEvent();\n\t\n\t /**\n\t * audio events\n\t */\n\t // show audio time: the metadata has loaded or changed\n\t this.audio.addEventListener('durationchange', function () {\n\t if (_this2.audio.duration !== 1) {\n\t // compatibility: Android browsers will output 1 at first\n\t _this2.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = _this2.secondToTime(_this2.audio.duration);\n\t }\n\t });\n\t\n\t // show audio loaded bar: to inform interested parties of progress downloading the media\n\t this.audio.addEventListener('progress', function () {\n\t var percentage = _this2.audio.buffered.length ? _this2.audio.buffered.end(_this2.audio.buffered.length - 1) / _this2.audio.duration : 0;\n\t _this2.updateBar('loaded', percentage, 'width');\n\t });\n\t\n\t // audio download error: an error occurs\n\t this.audio.addEventListener('error', function () {\n\t _this2.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = 'Error happens ╥﹏╥';\n\t _this2.trigger('pause');\n\t });\n\t\n\t // audio can play: enough data is available that the media can be played\n\t this.audio.addEventListener('canplay', function () {\n\t _this2.trigger('canplay');\n\t });\n\t\n\t // music end\n\t this.ended = false;\n\t this.audio.addEventListener('ended', function () {\n\t _this2.updateBar('played', 1, 'width');\n\t if (!_this2.loop) {\n\t _this2.ended = true;\n\t _this2.pause();\n\t _this2.trigger('ended');\n\t }\n\t });\n\t\n\t // control volume\n\t this.audio.volume = parseInt(this.element.getElementsByClassName('dplayer-volume-bar-inner')[0].style.width) / 100;\n\t\n\t // loop\n\t this.audio.loop = this.loop;\n\t\n\t // set duration time\n\t if (this.audio.duration !== 1) {\n\t // compatibility: Android browsers will output 1 at first\n\t this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = this.audio.duration ? this.secondToTime(this.audio.duration) : '00:00';\n\t }\n\t\n\t /**\n\t * danmaku display\n\t */\n\t var danContainer = this.element.getElementsByClassName('dplayer-danmaku')[0];\n\t var itemHeight = 30;\n\t var danWidth = void 0;\n\t var danHeight = void 0;\n\t var itemY = void 0;\n\t var danTunnel = {\n\t right: {},\n\t top: {},\n\t bottom: {}\n\t };\n\t\n\t var danItemRight = function danItemRight(ele) {\n\t return danContainer.getBoundingClientRect().right - ele.getBoundingClientRect().right;\n\t };\n\t\n\t var danSpeed = function danSpeed(ele) {\n\t return (danWidth + ele.offsetWidth) / 5;\n\t };\n\t\n\t var getTunnel = function getTunnel(ele, type) {\n\t var tmp = danWidth / danSpeed(ele);\n\t\n\t var _loop2 = function _loop2(i) {\n\t var item = danTunnel[type][i + ''];\n\t if (item && item.length) {\n\t for (var j = 0; j < item.length; j++) {\n\t var danRight = danItemRight(item[j]) - 10;\n\t if (danRight <= danWidth - tmp * danSpeed(item[j]) || danRight <= 0) {\n\t break;\n\t }\n\t if (j === item.length - 1) {\n\t danTunnel[type][i + ''].push(ele);\n\t ele.addEventListener('animationend', function () {\n\t danTunnel[type][i + ''].splice(0, 1);\n\t });\n\t return {\n\t v: i % itemY\n\t };\n\t }\n\t }\n\t } else {\n\t danTunnel[type][i + ''] = [ele];\n\t ele.addEventListener('animationend', function () {\n\t danTunnel[type][i + ''].splice(0, 1);\n\t });\n\t return {\n\t v: i % itemY\n\t };\n\t }\n\t };\n\t\n\t for (var i = 0;; i++) {\n\t var _ret4 = _loop2(i);\n\t\n\t if ((typeof _ret4 === 'undefined' ? 'undefined' : _typeof(_ret4)) === \"object\") return _ret4.v;\n\t }\n\t };\n\t\n\t this.danmakuIn = function (text, color, type) {\n\t danWidth = danContainer.offsetWidth;\n\t danHeight = danContainer.offsetHeight;\n\t itemY = parseInt(danHeight / itemHeight);\n\t var item = document.createElement('div');\n\t item.classList.add('dplayer-danmaku-item');\n\t item.classList.add('dplayer-danmaku-' + type);\n\t item.innerHTML = text;\n\t item.style.opacity = _this2.danOpacity;\n\t\n\t // insert\n\t danContainer.appendChild(item);\n\t\n\t // adjust\n\t item.style.color = color;\n\t switch (type) {\n\t case 'right':\n\t item.style.top = itemHeight * getTunnel(item, type) + 'px';\n\t item.style.width = item.offsetWidth + 1 + 'px';\n\t item.style.transform = 'translateX(-' + danWidth + 'px)';\n\t item.addEventListener('animationend', function () {\n\t danContainer.removeChild(item);\n\t });\n\t break;\n\t case 'top':\n\t item.style.top = itemHeight * getTunnel(item, type) + 'px';\n\t item.addEventListener('animationend', function () {\n\t danContainer.removeChild(item);\n\t });\n\t break;\n\t case 'bottom':\n\t item.style.bottom = itemHeight * getTunnel(item, type) + 'px';\n\t item.addEventListener('animationend', function () {\n\t danContainer.removeChild(item);\n\t });\n\t break;\n\t default:\n\t console.error('Can\\'t handled danmaku type: ' + type);\n\t }\n\t\n\t // move\n\t item.classList.add('dplayer-danmaku-move');\n\t };\n\t\n\t // danmaku\n\t if (this.option.danmaku) {\n\t (function () {\n\t _this2.danIndex = 0;\n\t var xhr = new XMLHttpRequest();\n\t xhr.onreadystatechange = function () {\n\t if (xhr.readyState === 4) {\n\t if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t var response = JSON.parse(xhr.responseText);\n\t if (response.code !== 1) {\n\t alert(response.msg);\n\t } else {\n\t _this2.dan = response.danmaku.sort(function (a, b) {\n\t return a.time - b.time;\n\t });\n\t _this2.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\t\n\t // autoplay\n\t if (_this2.option.autoplay && !_this2.isMobile) {\n\t _this2.play();\n\t } else if (_this2.isMobile) {\n\t _this2.pause();\n\t }\n\t }\n\t } else {\n\t console.log('Request was unsuccessful: ' + xhr.status);\n\t }\n\t }\n\t };\n\t var apiurl = void 0;\n\t if (_this2.option.danmaku.maximum) {\n\t apiurl = _this2.option.danmaku.api + '?id=' + _this2.option.danmaku.id + '&max=' + _this2.option.danmaku.maximum;\n\t } else {\n\t apiurl = _this2.option.danmaku.api + '?id=' + _this2.option.danmaku.id;\n\t }\n\t xhr.open('get', apiurl, true);\n\t xhr.send(null);\n\t })();\n\t } else {\n\t // autoplay\n\t if (this.option.autoplay && !this.isMobile) {\n\t this.play();\n\t } else if (this.isMobile) {\n\t this.pause();\n\t }\n\t }\n\t\n\t /**\n\t * comment\n\t */\n\t var commentInput = this.element.getElementsByClassName('dplayer-comment-input')[0];\n\t var commentIcon = this.element.getElementsByClassName('dplayer-comment-icon')[0];\n\t var commentBox = this.element.getElementsByClassName('dplayer-comment-box')[0];\n\t var commentSettingIcon = this.element.getElementsByClassName('dplayer-comment-setting-icon')[0];\n\t var commentSettingBox = this.element.getElementsByClassName('dplayer-comment-setting-box')[0];\n\t var commentSendIcon = this.element.getElementsByClassName('dplayer-send-icon')[0];\n\t\n\t var htmlEncode = function htmlEncode(str) {\n\t return str.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/\\//g, \"/\");\n\t };\n\t\n\t var sendComment = function sendComment() {\n\t commentInput.blur();\n\t\n\t // text can't be empty\n\t if (!commentInput.value.replace(/^\\s+|\\s+$/g, '')) {\n\t alert(_this2.getTran('Please input danmaku!'));\n\t return;\n\t }\n\t\n\t var danmakuData = {\n\t token: _this2.option.danmaku.token,\n\t player: _this2.option.danmaku.id,\n\t author: 'DIYgod',\n\t time: _this2.audio.currentTime,\n\t text: commentInput.value,\n\t color: _this2.element.querySelector('input[name=\"dplayer-danmaku-color\"]:checked').value,\n\t type: _this2.element.querySelector('input[name=\"dplayer-danmaku-type\"]:checked').value\n\t };\n\t var xhr = new XMLHttpRequest();\n\t xhr.onreadystatechange = function () {\n\t if (xhr.readyState === 4) {\n\t if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t var response = JSON.parse(xhr.responseText);\n\t if (response.code !== 1) {\n\t alert(response.msg);\n\t } else {\n\t console.log('Post danmaku: ', JSON.parse(xhr.responseText));\n\t }\n\t } else {\n\t console.log('Request was unsuccessful: ' + xhr.status);\n\t }\n\t }\n\t };\n\t xhr.open('post', _this2.option.danmaku.api, true);\n\t xhr.send(JSON.stringify(danmakuData));\n\t\n\t commentInput.value = '';\n\t closeComment();\n\t _this2.dan.splice(_this2.danIndex, 0, danmakuData);\n\t _this2.danIndex++;\n\t _this2.danmakuIn(htmlEncode(danmakuData.text), danmakuData.color, danmakuData.type);\n\t };\n\t\n\t var closeCommentSetting = function closeCommentSetting() {\n\t if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n\t commentSettingBox.classList.remove('dplayer-comment-setting-open');\n\t }\n\t };\n\t var toggleCommentSetting = function toggleCommentSetting() {\n\t if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n\t commentSettingBox.classList.remove('dplayer-comment-setting-open');\n\t } else {\n\t commentSettingBox.classList.add('dplayer-comment-setting-open');\n\t }\n\t };\n\t\n\t var disableHide = 0;\n\t var closeComment = function closeComment() {\n\t if (commentBox.classList.contains('dplayer-comment-box-open')) {\n\t commentBox.classList.remove('dplayer-comment-box-open');\n\t mask.classList.remove('dplayer-mask-show');\n\t clearInterval(disableHide);\n\t _this2.element.classList.remove('dplayer-show-controller');\n\t closeCommentSetting();\n\t document.addEventListener('keydown', handleKeyDown);\n\t }\n\t };\n\t var openComment = function openComment() {\n\t commentBox.classList.add('dplayer-comment-box-open');\n\t mask.classList.add('dplayer-mask-show');\n\t disableHide = setInterval(function () {\n\t clearTimeout(hideTime);\n\t }, 1000);\n\t _this2.element.classList.add('dplayer-show-controller');\n\t document.removeEventListener('keydown', handleKeyDown);\n\t };\n\t\n\t mask.addEventListener('click', function () {\n\t closeComment();\n\t });\n\t commentIcon.addEventListener('click', function () {\n\t openComment();\n\t setTimeout(function () {\n\t commentInput.focus();\n\t }, 300);\n\t });\n\t commentSettingIcon.addEventListener('click', function () {\n\t toggleCommentSetting();\n\t });\n\t\n\t // comment setting box\n\t this.element.getElementsByClassName('dplayer-comment-setting-color')[0].addEventListener('click', function () {\n\t var sele = _this2.element.querySelector('input[name=\"dplayer-danmaku-color\"]:checked+span');\n\t if (sele) {\n\t commentSettingIcon.getElementsByClassName('dplayer-fill')[0].style.fill = _this2.element.querySelector('input[name=\"dplayer-danmaku-color\"]:checked').value;\n\t }\n\t });\n\t\n\t commentInput.addEventListener('click', function () {\n\t closeCommentSetting();\n\t });\n\t commentInput.addEventListener('keydown', function (e) {\n\t var event = e || window.event;\n\t if (event.keyCode === 13) {\n\t sendComment();\n\t }\n\t });\n\t\n\t commentSendIcon.addEventListener('click', sendComment);\n\t\n\t /**\n\t * full screen\n\t */\n\t var resetAnimation = function resetAnimation() {\n\t danWidth = danContainer.offsetWidth;\n\t var items = _this2.element.getElementsByClassName('dplayer-danmaku-item');\n\t for (var i = 0; i < items.length; i++) {\n\t items[i].style.transform = 'translateX(-' + danWidth + 'px)';\n\t }\n\t };\n\t\n\t this.element.addEventListener('fullscreenchange', function () {\n\t resetAnimation();\n\t });\n\t this.element.addEventListener('mozfullscreenchange', function () {\n\t resetAnimation();\n\t });\n\t this.element.addEventListener('webkitfullscreenchange', function () {\n\t resetAnimation();\n\t });\n\t this.element.getElementsByClassName('dplayer-full-icon')[0].addEventListener('click', function () {\n\t if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n\t if (_this2.element.requestFullscreen) {\n\t _this2.element.requestFullscreen();\n\t } else if (_this2.element.mozRequestFullScreen) {\n\t _this2.element.mozRequestFullScreen();\n\t } else if (_this2.element.webkitRequestFullscreen) {\n\t _this2.element.webkitRequestFullscreen();\n\t }\n\t } else {\n\t if (document.cancelFullScreen) {\n\t document.cancelFullScreen();\n\t } else if (document.mozCancelFullScreen) {\n\t document.mozCancelFullScreen();\n\t } else if (document.webkitCancelFullScreen) {\n\t document.webkitCancelFullScreen();\n\t }\n\t }\n\t resetAnimation();\n\t });\n\t\n\t /**\n\t * hot key\n\t */\n\t var handleKeyDown = function handleKeyDown(e) {\n\t var event = e || window.event;\n\t var percentage = void 0;\n\t switch (event.keyCode) {\n\t case 32:\n\t event.preventDefault();\n\t _this2.toggle();\n\t break;\n\t case 37:\n\t event.preventDefault();\n\t _this2.audio.currentTime = _this2.audio.currentTime - 5;\n\t break;\n\t case 39:\n\t event.preventDefault();\n\t _this2.audio.currentTime = _this2.audio.currentTime + 5;\n\t break;\n\t case 38:\n\t event.preventDefault();\n\t percentage = _this2.audio.volume + 0.1;\n\t percentage = percentage > 0 ? percentage : 0;\n\t percentage = percentage < 1 ? percentage : 1;\n\t _this2.updateBar('volume', percentage, 'width');\n\t _this2.audio.volume = percentage;\n\t if (_this2.audio.muted) {\n\t _this2.audio.muted = false;\n\t }\n\t switchVolumeIcon();\n\t break;\n\t case 40:\n\t event.preventDefault();\n\t percentage = _this2.audio.volume - 0.1;\n\t percentage = percentage > 0 ? percentage : 0;\n\t percentage = percentage < 1 ? percentage : 1;\n\t _this2.updateBar('volume', percentage, 'width');\n\t _this2.audio.volume = percentage;\n\t if (_this2.audio.muted) {\n\t _this2.audio.muted = false;\n\t }\n\t switchVolumeIcon();\n\t break;\n\t }\n\t };\n\t document.addEventListener('keydown', handleKeyDown);\n\t\n\t /**\n\t * right key\n\t */\n\t this.menu = this.element.getElementsByClassName('dplayer-menu')[0];\n\t this.element.addEventListener('contextmenu', function (e) {\n\t var event = e || window.event;\n\t event.preventDefault();\n\t _this2.menu.style.left = event.clientX - _this2.element.getBoundingClientRect().left + 'px';\n\t _this2.menu.style.top = event.clientY - _this2.element.getBoundingClientRect().top + 'px';\n\t _this2.menu.classList.add('dplayer-menu-show');\n\t\n\t mask.classList.add('dplayer-mask-show');\n\t mask.addEventListener('click', function () {\n\t mask.classList.remove('dplayer-mask-show');\n\t _this2.menu.classList.remove('dplayer-menu-show');\n\t });\n\t });\n\t }\n\t\n\t /**\n\t * Play music\n\t */\n\t\n\t }, {\n\t key: 'play',\n\t value: function play() {\n\t if (this.audio.paused) {\n\t this.shouldpause = false;\n\t\n\t this.bezel.innerHTML = this.getSVG('play');\n\t this.bezel.classList.add('dplayer-bezel-transition');\n\t\n\t this.playButton.innerHTML = this.getSVG('pause');\n\t\n\t this.audio.play();\n\t if (this.playedTime) {\n\t this.clearTime();\n\t }\n\t this.setTime();\n\t this.element.classList.add('dplayer-playing');\n\t this.trigger('play');\n\t }\n\t }\n\t\n\t /**\n\t * Pause music\n\t */\n\t\n\t }, {\n\t key: 'pause',\n\t value: function pause() {\n\t if (!this.shouldpause || this.ended) {\n\t this.shouldpause = true;\n\t this.element.classList.remove('dplayer-loading');\n\t\n\t this.bezel.innerHTML = this.getSVG('pause');\n\t this.bezel.classList.add('dplayer-bezel-transition');\n\t\n\t this.ended = false;\n\t this.playButton.innerHTML = this.getSVG('play');\n\t this.audio.pause();\n\t this.clearTime();\n\t this.element.classList.remove('dplayer-playing');\n\t this.trigger('pause');\n\t }\n\t }\n\t\n\t /**\n\t * attach event\n\t */\n\t\n\t }, {\n\t key: 'on',\n\t value: function on(name, func) {\n\t if (typeof func === 'function') {\n\t this.event[name].push(func);\n\t }\n\t }\n\t }]);\n\t\n\t return DPlayer;\n\t}();\n\t\n\texports.DPlayer = DPlayer;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// style-loader: Adds some css to the DOM by adding a