diff --git a/docs/css/artplayer.css b/docs/css/artplayer.css index 7544cd26f..085b7d914 100644 --- a/docs/css/artplayer.css +++ b/docs/css/artplayer.css @@ -1 +1,3 @@ -.artplayer-wrap{position:relative;width:100%;height:100%;text-align:left;overflow:hidden;font-family:Roboto,Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.artplayer-wrap .art-icon svg{fill:#fff}.artplayer-wrap .artplayer-video{position:absolute;z-index:1;left:0;top:0;right:0;bottom:0;width:100%;height:100%}.artplayer-wrap .artplayer-subtitle{position:absolute;z-index:2;bottom:40px;width:100%;padding:0 20px;text-align:center;color:#fff;text-shadow:.5px .5px .5px rgba(0,0,0,.5);font-size:20px;box-sizing:border-box}.artplayer-wrap .artplayer-layers{z-index:3}.artplayer-wrap .artplayer-layers,.artplayer-wrap .artplayer-mask{position:absolute;left:0;top:0;right:0;bottom:0;width:100%;height:100%}.artplayer-wrap .artplayer-mask{display:none;z-index:4;align-items:center;justify-content:center;cursor:pointer}.artplayer-wrap .artplayer-mask .art-icon-play{opacity:.8;display:flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:50px}.artplayer-wrap .artplayer-contextmenu{position:absolute;z-index:7;left:0;top:0;width:200px;padding:5px 0;background:rgba(0,0,0,.8)}.artplayer-wrap .artplayer-contextmenu a{font-size:13px;display:block;color:#fff;padding:7px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;text-shadow:0 0 2px rgba(0,0,0,.5)}.artplayer-wrap .artplayer-contextmenu a:hover{background-color:hsla(0,0%,100%,.1)}.artplayer-wrap .artplayer-controls{position:absolute;z-index:4;left:0;right:0;bottom:0;height:100px;opacity:0;visibility:hidden;transition:all .2s ease-in-out;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom}.artplayer-wrap.controls-show .artplayer-controls,.artplayer-wrap:hover .artplayer-controls{opacity:1;visibility:visible}.artplayer-wrap .artplayer-loading{display:none;position:absolute;z-index:5;left:0;top:0;right:0;bottom:0;width:100%;height:100%;align-items:center;justify-content:center}.artplayer-wrap .artplayer-notice{display:none;font-size:13px;position:absolute;z-index:6;left:10px;top:10px;height:30px;line-height:30px;padding:0 10px;color:#fff;background:rgba(0,0,0,.6)} \ No newline at end of file +.artplayer-wrap{position:relative;width:100%;height:100%;text-align:left;overflow:hidden;font-family:Roboto,Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.artplayer-wrap .art-icon svg{fill:#fff}.artplayer-wrap .artplayer-video{position:absolute;z-index:1;left:0;top:0;right:0;bottom:0;width:100%;height:100%}.artplayer-wrap .artplayer-subtitle{position:absolute;z-index:2;bottom:40px;width:100%;padding:0 20px;text-align:center;color:#fff;text-shadow:.5px .5px .5px rgba(0,0,0,.5);font-size:20px;box-sizing:border-box}.artplayer-wrap .artplayer-layers{z-index:3}.artplayer-wrap .artplayer-layers,.artplayer-wrap .artplayer-mask{position:absolute;left:0;top:0;right:0;bottom:0;width:100%;height:100%}.artplayer-wrap .artplayer-mask{display:none;z-index:4;align-items:center;justify-content:center;cursor:pointer}.artplayer-wrap .artplayer-mask .art-icon-play{opacity:.8;display:flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:50px}.artplayer-wrap .artplayer-contextmenu{position:absolute;z-index:7;left:0;top:0;width:200px;padding:5px 0;background:rgba(0,0,0,.8)}.artplayer-wrap .artplayer-contextmenu a{font-size:13px;display:block;color:#fff;padding:7px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;text-shadow:0 0 2px rgba(0,0,0,.5)}.artplayer-wrap .artplayer-contextmenu a:hover{background-color:hsla(0,0%,100%,.1)}.artplayer-wrap .artplayer-controls{position:absolute;z-index:4;left:0;right:0;bottom:0;height:100px;opacity:0;visibility:hidden;transition:all .2s ease-in-out;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom}.artplayer-wrap.controls-show .artplayer-controls,.artplayer-wrap:hover .artplayer-controls{opacity:1;visibility:visible}.artplayer-wrap .artplayer-loading{display:none;position:absolute;z-index:5;left:0;top:0;right:0;bottom:0;width:100%;height:100%;align-items:center;justify-content:center}.artplayer-wrap .artplayer-notice{display:none;font-size:13px;position:absolute;z-index:6;left:10px;top:10px;height:30px;line-height:30px;padding:0 10px;color:#fff;background:rgba(0,0,0,.6)} +button[data-balloon]{overflow:visible}[data-balloon]{position:relative;cursor:pointer}[data-balloon]:after{font-family:sans-serif!important;font-weight:400!important;font-style:normal!important;text-shadow:none!important;font-size:12px!important;background:rgba(17,17,17,.9);border-radius:4px;color:#fff;content:attr(data-balloon);padding:.5em 1em;white-space:nowrap}[data-balloon]:after,[data-balloon]:before{filter:alpha(opactiy=0);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";-moz-opacity:0;-khtml-opacity:0;opacity:0;pointer-events:none;transition:all .18s ease-out .18s;position:absolute;z-index:10}[data-balloon]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17, 17, 17, 0.9)' d='M2.658 0h32.004c-6 0-11.627 12.002-16.002 12.002C14.285 12.002 8.594 0 2.658 0z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;content:""}[data-balloon]:hover:after,[data-balloon]:hover:before,[data-balloon][data-balloon-visible]:after,[data-balloon][data-balloon-visible]:before{filter:alpha(opactiy=100);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";-moz-opacity:1;-khtml-opacity:1;opacity:1;pointer-events:auto}[data-balloon].font-awesome:after{font-family:FontAwesome}[data-balloon][data-balloon-break]:after{white-space:pre}[data-balloon][data-balloon-blunt]:after,[data-balloon][data-balloon-blunt]:before{transition:none}[data-balloon][data-balloon-pos=up]:after{margin-bottom:11px}[data-balloon][data-balloon-pos=up]:after,[data-balloon][data-balloon-pos=up]:before{bottom:100%;left:50%;-webkit-transform:translate(-50%,10px);transform:translate(-50%,10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up]:before{margin-bottom:5px}[data-balloon][data-balloon-pos=up]:hover:after,[data-balloon][data-balloon-pos=up]:hover:before,[data-balloon][data-balloon-pos=up][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up][data-balloon-visible]:before{-webkit-transform:translate(-50%);transform:translate(-50%)}[data-balloon][data-balloon-pos=up-left]:after{left:0;margin-bottom:11px}[data-balloon][data-balloon-pos=up-left]:after,[data-balloon][data-balloon-pos=up-left]:before{bottom:100%;-webkit-transform:translateY(10px);transform:translateY(10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up-left]:before{left:5px;margin-bottom:5px}[data-balloon][data-balloon-pos=up-left]:hover:after,[data-balloon][data-balloon-pos=up-left]:hover:before,[data-balloon][data-balloon-pos=up-left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up-left][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=up-right]:after{right:0;margin-bottom:11px}[data-balloon][data-balloon-pos=up-right]:after,[data-balloon][data-balloon-pos=up-right]:before{bottom:100%;-webkit-transform:translateY(10px);transform:translateY(10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up-right]:before{right:5px;margin-bottom:5px}[data-balloon][data-balloon-pos=up-right]:hover:after,[data-balloon][data-balloon-pos=up-right]:hover:before,[data-balloon][data-balloon-pos=up-right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up-right][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=down]:after{margin-top:11px}[data-balloon][data-balloon-pos=down]:after,[data-balloon][data-balloon-pos=down]:before{left:50%;top:100%;-webkit-transform:translate(-50%,-10px);transform:translate(-50%,-10px)}[data-balloon][data-balloon-pos=down]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17, 17, 17, 0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;margin-top:5px}[data-balloon][data-balloon-pos=down]:hover:after,[data-balloon][data-balloon-pos=down]:hover:before,[data-balloon][data-balloon-pos=down][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down][data-balloon-visible]:before{-webkit-transform:translate(-50%);transform:translate(-50%)}[data-balloon][data-balloon-pos=down-left]:after{left:0;margin-top:11px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-left]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17, 17, 17, 0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;left:5px;margin-top:5px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-left]:hover:after,[data-balloon][data-balloon-pos=down-left]:hover:before,[data-balloon][data-balloon-pos=down-left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down-left][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=down-right]:after{right:0;margin-top:11px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-right]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17, 17, 17, 0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;right:5px;margin-top:5px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-right]:hover:after,[data-balloon][data-balloon-pos=down-right]:hover:before,[data-balloon][data-balloon-pos=down-right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down-right][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=left]:after{margin-right:11px;right:100%;top:50%;-webkit-transform:translate(10px,-50%);transform:translate(10px,-50%)}[data-balloon][data-balloon-pos=left]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='36'%3E%3Cpath fill='rgba(17, 17, 17, 0.9)' d='M0 33.342V1.338c0 6 12.002 11.627 12.002 16.002C12.002 21.715 0 27.406 0 33.342z'/%3E%3C/svg%3E");background-size:100% auto;width:6px;height:18px;margin-right:5px;right:100%;top:50%;-webkit-transform:translate(10px,-50%);transform:translate(10px,-50%)}[data-balloon][data-balloon-pos=left]:hover:after,[data-balloon][data-balloon-pos=left]:hover:before,[data-balloon][data-balloon-pos=left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=left][data-balloon-visible]:before{-webkit-transform:translateY(-50%);transform:translateY(-50%)}[data-balloon][data-balloon-pos=right]:after{left:100%;margin-left:11px;top:50%;-webkit-transform:translate(-10px,-50%);transform:translate(-10px,-50%)}[data-balloon][data-balloon-pos=right]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='36'%3E%3Cpath fill='rgba(17, 17, 17, 0.9)' d='M12 2.658v32.004c0-6-12.002-11.627-12.002-16.002C-.002 14.285 12 8.594 12 2.658z'/%3E%3C/svg%3E");background-size:100% auto;width:6px;height:18px;left:100%;margin-left:5px;top:50%;-webkit-transform:translate(-10px,-50%);transform:translate(-10px,-50%)}[data-balloon][data-balloon-pos=right]:hover:after,[data-balloon][data-balloon-pos=right]:hover:before,[data-balloon][data-balloon-pos=right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=right][data-balloon-visible]:before{-webkit-transform:translateY(-50%);transform:translateY(-50%)}[data-balloon][data-balloon-length=small]:after{white-space:normal;width:80px}[data-balloon][data-balloon-length=medium]:after{white-space:normal;width:150px}[data-balloon][data-balloon-length=large]:after{white-space:normal;width:260px}[data-balloon][data-balloon-length=xlarge]:after{white-space:normal;width:380px}@media screen and (max-width:768px){[data-balloon][data-balloon-length=xlarge]:after{white-space:normal;width:90vw}}[data-balloon][data-balloon-length=fit]:after{white-space:normal;width:100%} +button[data-balloon]{overflow:visible}[data-balloon]{position:relative;cursor:pointer}[data-balloon]:after{font-family:sans-serif!important;font-weight:400!important;font-style:normal!important;text-shadow:none!important;font-size:12px!important;background:rgba(17,17,17,.9);border-radius:4px;color:#fff;content:attr(data-balloon);padding:.5em 1em;white-space:nowrap}[data-balloon]:after,[data-balloon]:before{filter:alpha(opactiy=0);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";-moz-opacity:0;-khtml-opacity:0;opacity:0;pointer-events:none;transition:all .18s ease-out .18s;position:absolute;z-index:10}[data-balloon]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M2.658 0h32.004c-6 0-11.627 12.002-16.002 12.002C14.285 12.002 8.594 0 2.658 0z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;content:""}[data-balloon]:hover:after,[data-balloon]:hover:before,[data-balloon][data-balloon-visible]:after,[data-balloon][data-balloon-visible]:before{filter:alpha(opactiy=100);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";-moz-opacity:1;-khtml-opacity:1;opacity:1;pointer-events:auto}[data-balloon].font-awesome:after{font-family:FontAwesome}[data-balloon][data-balloon-break]:after{white-space:pre}[data-balloon][data-balloon-blunt]:after,[data-balloon][data-balloon-blunt]:before{transition:none}[data-balloon][data-balloon-pos=up]:after{margin-bottom:11px}[data-balloon][data-balloon-pos=up]:after,[data-balloon][data-balloon-pos=up]:before{bottom:100%;left:50%;-webkit-transform:translate(-50%,10px);transform:translate(-50%,10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up]:before{margin-bottom:5px}[data-balloon][data-balloon-pos=up]:hover:after,[data-balloon][data-balloon-pos=up]:hover:before,[data-balloon][data-balloon-pos=up][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up][data-balloon-visible]:before{-webkit-transform:translate(-50%);transform:translate(-50%)}[data-balloon][data-balloon-pos=up-left]:after{left:0;margin-bottom:11px}[data-balloon][data-balloon-pos=up-left]:after,[data-balloon][data-balloon-pos=up-left]:before{bottom:100%;-webkit-transform:translateY(10px);transform:translateY(10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up-left]:before{left:5px;margin-bottom:5px}[data-balloon][data-balloon-pos=up-left]:hover:after,[data-balloon][data-balloon-pos=up-left]:hover:before,[data-balloon][data-balloon-pos=up-left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up-left][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=up-right]:after{right:0;margin-bottom:11px}[data-balloon][data-balloon-pos=up-right]:after,[data-balloon][data-balloon-pos=up-right]:before{bottom:100%;-webkit-transform:translateY(10px);transform:translateY(10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up-right]:before{right:5px;margin-bottom:5px}[data-balloon][data-balloon-pos=up-right]:hover:after,[data-balloon][data-balloon-pos=up-right]:hover:before,[data-balloon][data-balloon-pos=up-right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up-right][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=down]:after{margin-top:11px}[data-balloon][data-balloon-pos=down]:after,[data-balloon][data-balloon-pos=down]:before{left:50%;top:100%;-webkit-transform:translate(-50%,-10px);transform:translate(-50%,-10px)}[data-balloon][data-balloon-pos=down]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;margin-top:5px}[data-balloon][data-balloon-pos=down]:hover:after,[data-balloon][data-balloon-pos=down]:hover:before,[data-balloon][data-balloon-pos=down][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down][data-balloon-visible]:before{-webkit-transform:translate(-50%);transform:translate(-50%)}[data-balloon][data-balloon-pos=down-left]:after{left:0;margin-top:11px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-left]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;left:5px;margin-top:5px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-left]:hover:after,[data-balloon][data-balloon-pos=down-left]:hover:before,[data-balloon][data-balloon-pos=down-left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down-left][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=down-right]:after{right:0;margin-top:11px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-right]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;right:5px;margin-top:5px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-right]:hover:after,[data-balloon][data-balloon-pos=down-right]:hover:before,[data-balloon][data-balloon-pos=down-right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down-right][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=left]:after{margin-right:11px;right:100%;top:50%;-webkit-transform:translate(10px,-50%);transform:translate(10px,-50%)}[data-balloon][data-balloon-pos=left]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='36'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M0 33.342V1.338c0 6 12.002 11.627 12.002 16.002C12.002 21.715 0 27.406 0 33.342z'/%3E%3C/svg%3E");background-size:100% auto;width:6px;height:18px;margin-right:5px;right:100%;top:50%;-webkit-transform:translate(10px,-50%);transform:translate(10px,-50%)}[data-balloon][data-balloon-pos=left]:hover:after,[data-balloon][data-balloon-pos=left]:hover:before,[data-balloon][data-balloon-pos=left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=left][data-balloon-visible]:before{-webkit-transform:translateY(-50%);transform:translateY(-50%)}[data-balloon][data-balloon-pos=right]:after{left:100%;margin-left:11px;top:50%;-webkit-transform:translate(-10px,-50%);transform:translate(-10px,-50%)}[data-balloon][data-balloon-pos=right]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='36'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M12 2.658v32.004c0-6-12.002-11.627-12.002-16.002C-.002 14.285 12 8.594 12 2.658z'/%3E%3C/svg%3E");background-size:100% auto;width:6px;height:18px;left:100%;margin-left:5px;top:50%;-webkit-transform:translate(-10px,-50%);transform:translate(-10px,-50%)}[data-balloon][data-balloon-pos=right]:hover:after,[data-balloon][data-balloon-pos=right]:hover:before,[data-balloon][data-balloon-pos=right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=right][data-balloon-visible]:before{-webkit-transform:translateY(-50%);transform:translateY(-50%)}[data-balloon][data-balloon-length=small]:after{white-space:normal;width:80px}[data-balloon][data-balloon-length=medium]:after{white-space:normal;width:150px}[data-balloon][data-balloon-length=large]:after{white-space:normal;width:260px}[data-balloon][data-balloon-length=xlarge]:after{white-space:normal;width:380px}@media screen and (max-width:768px){[data-balloon][data-balloon-length=xlarge]:after{white-space:normal;width:90vw}}[data-balloon][data-balloon-length=fit]:after{white-space:normal;width:100%} \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index aa3367ebf..e7d3ba083 100644 --- a/docs/index.html +++ b/docs/index.html @@ -29,7 +29,9 @@ container: '.artplayer-app', url: 'https://blog.zhw-island.com/cdn-assets/video/YUI-Again-subbed-web.mp4', poster: './img/poster.png', - subtitle: './subtitle/dw_trailer_low.vtt' + subtitle: { + url: './subtitle/dw_trailer_low.vtt' + } }); player.layers.add({ diff --git a/docs/js/artplayer.js b/docs/js/artplayer.js index 5765a3dd0..c2eeb403f 100644 --- a/docs/js/artplayer.js +++ b/docs/js/artplayer.js @@ -271,8 +271,8 @@ errorHandle(typeof option.loading === 'string' || option.loading instanceof Element, "'loading' option require 'string' type, but got '".concat(_typeof_1(option.loading), "'.")); errorHandle(typeof option.theme === 'string', "'theme' option require 'string' type, but got '".concat(_typeof_1(option.theme), "'.")); errorHandle(typeof option.hotkey === 'boolean', "'hotkey' option require 'boolean' type, but got '".concat(_typeof_1(option.hotkey), "'.")); - errorHandle(typeof option.subtitle === 'string', "'subtitle' option require 'string' type, but got '".concat(_typeof_1(option.subtitle), "'.")); - errorHandle(Object.prototype.toString.call(option.subtitleStyle) === '[object Object]', "'subtitleStyle' option require 'object' type, but got '".concat(_typeof_1(option.subtitleStyle), "'.")); + errorHandle(Object.prototype.toString.call(option.subtitle) === '[object Object]', "'subtitle' option require 'object' type, but got '".concat(_typeof_1(option.subtitle), "'.")); + errorHandle(Array.isArray(option.controls), "'controls' option require 'array' type, but got '".concat(_typeof_1(option.controls), "'.")); } var mimeCodec = { @@ -737,75 +737,86 @@ function validControl(option) { errorHandle(typeof option.control === 'function', "'control' option require 'function' type, but got '".concat(_typeof_1(option.control), "'.")); errorHandle(typeof option.disable === 'boolean', "'disable' option require 'boolean' type, but got '".concat(_typeof_1(option.disable), "'.")); - errorHandle(typeof option.icon === 'string' || option.icon instanceof Element, "'icon' option require 'string' or 'Element' type, but got '".concat(_typeof_1(option.icon), "'.")); + errorHandle(typeof option.html === 'string' || option.html instanceof Element, "'html' option require 'string' or 'Element' type, but got '".concat(_typeof_1(option.html), "'.")); errorHandle(['top', 'left', 'right'].indexOf(option.position) > -1, "'position' option require one of 'top\u3001left\u3001right', but got '".concat(option.position, "'.")); errorHandle(typeof option.index === 'number', "'index' option require 'number' type, but got '".concat(_typeof_1(option.index), "'.")); } - var Danmu = function Danmu(art) { + var Danmu = function Danmu(art, option) { classCallCheck(this, Danmu); this.art = art; + this.option = option; }; - var Fullscreen = function Fullscreen(art) { + var Fullscreen = function Fullscreen(art, option) { classCallCheck(this, Fullscreen); this.art = art; + this.option = option; }; - var Highlight = function Highlight(art) { + var Highlight = function Highlight(art, option) { classCallCheck(this, Highlight); this.art = art; + this.option = option; }; - var Pip = function Pip(art) { + var Pip = function Pip(art, option) { classCallCheck(this, Pip); this.art = art; + this.option = option; }; - var PlayAndPause = function PlayAndPause(art) { + var PlayAndPause = function PlayAndPause(art, option) { classCallCheck(this, PlayAndPause); this.art = art; + this.option = option; }; - var Progress = function Progress(art) { + var Progress = function Progress(art, option) { classCallCheck(this, Progress); this.art = art; + this.option = option; }; - var Screenshot = function Screenshot(art) { + var Screenshot = function Screenshot(art, option) { classCallCheck(this, Screenshot); this.art = art; + this.option = option; }; - var Subtitle = function Subtitle(art) { + var Subtitle = function Subtitle(art, option) { classCallCheck(this, Subtitle); this.art = art; + this.option = option; }; - var Time = function Time(art) { + var Time = function Time(art, option) { classCallCheck(this, Time); this.art = art; + this.option = option; }; - var Volume = function Volume(art) { + var Volume = function Volume(art, option) { classCallCheck(this, Volume); this.art = art; + this.option = option; }; - var Setting = function Setting(art) { + var Setting = function Setting(art, option) { classCallCheck(this, Setting); this.art = art; + this.option = option; }; var id = 0; @@ -817,7 +828,13 @@ classCallCheck(this, Controls); this.art = art; + this.$map = { + top: [], + left: [], + right: [] + }; this.init(); + this.mount(); } createClass(Controls, [{ @@ -825,62 +842,88 @@ value: function init() { var _this = this; - this.progress = new Progress(this.art); - this.highlight = new Highlight(this.art); - this.screenshot = new Screenshot(this.art); + this.add({ + control: Progress, + disable: false, + html: 'Progress', + position: 'top', + index: 0 + }); + this.add({ + control: Highlight, + disable: false, + html: 'Highlight', + position: 'top', + index: 10 + }); + this.add({ + control: Screenshot, + disable: false, + html: 'Screenshot', + position: 'top', + index: 20 + }); this.add({ control: PlayAndPause, disable: false, - icon: 'PlayAndPause', + html: 'PlayAndPause', + tooltip: 'PlayAndPause', position: 'left', index: 0 }); this.add({ control: Volume, disable: false, - icon: 'Volume', + html: 'Volume', + tooltip: 'Volume', position: 'left', index: 10 }); this.add({ control: Time, disable: false, - icon: 'Time', + html: 'Time', + tooltip: 'Volume', position: 'left', index: 20 }); this.add({ control: Danmu, disable: false, - icon: 'Danmu', + html: 'Danmu', + tooltip: 'Danmu', position: 'right', index: 0 }); this.add({ control: Subtitle, disable: false, - icon: 'Subtitle', + html: 'Subtitle', + tooltip: 'Subtitle', position: 'right', index: 10 }); this.add({ control: Setting, disable: false, - icon: 'Setting', + html: 'Setting', + tooltip: 'Setting', position: 'right', index: 20 }); this.add({ control: Pip, disable: false, - icon: 'Pip', + html: 'Pip', + tooltip: 'Pip', position: 'right', index: 30 }); this.add({ control: Fullscreen, disable: false, - icon: 'Fullscreen', + html: 'Fullscreen', + tooltip: 'Fullscreen', position: 'right', index: 40 }); @@ -892,30 +935,80 @@ key: "add", value: function add(option) { validControl(option); - var _this$art$refs = this.art.refs, - $progress = _this$art$refs.$progress, - $controlsLeft = _this$art$refs.$controlsLeft, - $controlsRight = _this$art$refs.$controlsRight; if (!option.disable) { id++; var name = option.control.name.toLowerCase() || "control".concat(id); var $control = document.createElement('div'); $control.setAttribute('class', "art-control art-control-".concat(name)); - $control.setAttribute('data-control-index', option.index || id); - append($control, option.icon); - this[name] = new option.control(this.art); - this[name].ref = $control; - - this[name].show = function show() { - $control.style.display = 'inline-block'; - }; - - this[name].hide = function show() { - $control.style.display = 'none'; - }; + $control.setAttribute('data-control-index', String(option.index) || id); + setStyle($control, option.style || {}); + append($control, option.html); + option.ref = $control; + this.commonMethod(option); + this[name] = new option.control(this.art, option); + this.$map[option.position].push($control); } } + }, { + key: "mount", + value: function mount() { + var _this2 = this; + + var _this$art$refs = this.art.refs, + $progress = _this$art$refs.$progress, + $controlsLeft = _this$art$refs.$controlsLeft, + $controlsRight = _this$art$refs.$controlsRight; + Object.keys(this.$map).forEach(function (key) { + var $list = _this2.$map[key].sort(function (a, b) { + return Number(a.dataset.controlIndex) - Number(b.dataset.controlIndex); + }); + + $list.forEach(function ($control) { + switch (key) { + case 'top': + $progress.appendChild($control); + break; + + case 'left': + $controlsLeft.appendChild($control); + break; + + case 'right': + $controlsRight.appendChild($control); + break; + + default: + break; + } + }); + }); + } + }, { + key: "commonMethod", + value: function commonMethod(option) { + var _this3 = this; + + Object.defineProperty(option.control.prototype, 'hide', { + value: function value() { + option.ref.style.display = 'none'; + + _this3.art.emit('control:hide', option.ref); + } + }); + Object.defineProperty(option.control.prototype, 'show', { + value: function value() { + option.ref.style.display = option.position === 'top' ? 'block' : 'inline-block'; + + _this3.art.emit('control:show', option.ref); + } + }); + Object.defineProperty(option.control.prototype, 'addMenu', { + value: function value(menus) { + console.log(menus); + } + }); + } }, { key: "show", value: function show() { @@ -1162,7 +1255,7 @@ this.art = art; if (this.art.option.subtitle) { - errorHandle(getExt(this.art.option.subtitle) === 'vtt', "'subtitle' option require 'vtt' format, but got '".concat(getExt(this.art.option.subtitle), "'.")); + errorHandle(getExt(this.art.option.subtitle.url) === 'vtt', "'url' option require 'vtt' format, but got '".concat(getExt(this.art.option.subtitle.url), "'.")); this.init(); } } @@ -1174,17 +1267,15 @@ var _this$art = this.art, proxy = _this$art.events.proxy, - _this$art$option = _this$art.option, - subtitle = _this$art$option.subtitle, - subtitleStyle = _this$art$option.subtitleStyle, + subtitle = _this$art.option.subtitle, _this$art$refs = _this$art.refs, $video = _this$art$refs.$video, $subtitle = _this$art$refs.$subtitle; - setStyle($subtitle, subtitleStyle); + setStyle($subtitle, subtitle.style || {}); var $track = document.createElement('track'); $track.default = true; $track.kind = 'metadata'; - $track.src = subtitle; + $track.src = subtitle.url; $video.appendChild($track); this.art.refs.$track = $track; @@ -1660,7 +1751,7 @@ key: "DEFAULTS", get: function get() { return { - container: document.querySelector('.artplayer'), + container: '.artplayer', url: '', poster: '', volume: 0.7, @@ -1673,8 +1764,10 @@ loading: '', theme: '#1aafff', hotkey: true, - subtitle: '', - subtitleStyle: {}, + subtitle: { + url: '', + style: {} + }, controls: [], lang: navigator.language.toLowerCase() }; diff --git a/docs/js/artplayer.js.map b/docs/js/artplayer.js.map index 202cbf6b0..5e07d159b 100644 --- a/docs/js/artplayer.js.map +++ b/docs/js/artplayer.js.map @@ -1 +1 @@ -{"version":3,"file":"artplayer.js","sources":["../../node_modules/@babel/runtime/helpers/classCallCheck.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../node_modules/@babel/runtime/helpers/typeof.js","../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/inherits.js","../../node_modules/@babel/runtime/helpers/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/construct.js","../../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../../src/utils/ArtPlayerError.js","../../src/utils/index.js","../../src/utils/validOption.js","../../src/config/mimeCodec.js","../../src/config/mse.js","../../src/config/video.js","../../src/config/index.js","../../node_modules/tiny-emitter/index.js","../../src/template.js","../../src/i18n.js","../../src/player.js","../../src/mse.js","../../src/utils/validControl.js","../../src/controls/danmu.js","../../src/controls/fullscreen.js","../../src/controls/highlight.js","../../src/controls/pip.js","../../src/controls/playAndPause.js","../../src/controls/progress.js","../../src/controls/screenshot.js","../../src/controls/subtitle.js","../../src/controls/time.js","../../src/controls/volume.js","../../src/controls/setting.js","../../src/controls/index.js","../../src/contextmenu.js","../../src/danmu.js","../../src/info.js","../../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/slicedToArray.js","../../src/subtitle.js","../../src/events.js","../../src/hotkey.js","../../src/layers.js","../../src/icons/index.js","../../src/loading.js","../../src/notice.js","../../src/mask.js","../../src/index.js"],"sourcesContent":["function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeFunction = require(\"./isNativeFunction\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","export default class ArtPlayerError extends Error {\n constructor(message, context) {\n super(message);\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, context || this.constructor);\n }\n this.name = 'ArtPlayerError';\n }\n}\n","import ArtPlayerError from './ArtPlayerError';\n\nexport function errorHandle(condition, msg) {\n if (!condition) {\n throw new ArtPlayerError(msg);\n }\n}\n\nexport function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function request(url) {\n return fetch(url)\n .then(response => response.arrayBuffer())\n .catch(err => {\n throw new ArtPlayerError(err.message);\n });\n}\n\nexport function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n return url\n .trim()\n .toLowerCase()\n .split('.')\n .pop();\n}\n\n\nexport function append(parent, child) {\n if (child instanceof Element) {\n parent.appendChild(child);\n } else {\n parent.innerHTML = child;\n }\n return parent;\n}\n\nexport function setStyle(element, styles) {\n Object.keys(styles).forEach(key => {\n element.style[key] = styles[key];\n });\n return element;\n}\n","import { errorHandle } from '.';\n\nexport default function validOption(option) {\n errorHandle(\n option.container,\n '\\'container\\' option is required.'\n );\n\n errorHandle(\n option.url,\n '\\'url\\' option is required.'\n );\n\n errorHandle(\n typeof option.container === 'string' || option.container instanceof Element,\n `'container' option require 'string' or 'Element' type, but got '${typeof option.container}'.`\n );\n\n errorHandle(\n typeof option.url === 'string',\n `'url' option require 'string' type, but got '${typeof option.url}'.`\n );\n\n errorHandle(\n typeof option.poster === 'string',\n `'poster' option require 'string' type, but got '${typeof option.poster}'.`\n );\n\n errorHandle(\n typeof option.volume === 'number',\n `'volume' option require 'number' type, but got '${typeof option.volume}'.`\n );\n\n errorHandle(\n typeof option.autoplay === 'boolean',\n `'autoplay' option require 'boolean' type, but got '${typeof option.autoplay}'.`\n );\n\n errorHandle(\n ['none', 'metadata', 'auto'].indexOf(option.preload) > -1,\n `'preload' option require one of 'none、metadata、auto', but got '${option.preload}.`\n );\n\n errorHandle(\n typeof option.lang === 'string',\n `'lang' option require 'string' type, but got '${typeof option.lang}'.`\n );\n\n errorHandle(\n typeof option.type === 'string',\n `'type' option require 'string' type, but got '${typeof option.type}'.`\n );\n\n errorHandle(\n typeof option.mimeCodec === 'string',\n `'mimeCodec' option require 'string' type, but got '${typeof option.mimeCodec}'.`\n );\n\n errorHandle(\n Array.isArray(option.layers),\n `'layers' option require 'array' type, but got '${typeof option.layers}'.`\n );\n\n errorHandle(\n Array.isArray(option.contextmenu),\n `'contextmenu' option require 'array' type, but got '${typeof option.contextmenu}'.`\n );\n\n errorHandle(\n typeof option.loading === 'string' || option.loading instanceof Element,\n `'loading' option require 'string' type, but got '${typeof option.loading}'.`\n );\n\n errorHandle(\n typeof option.theme === 'string',\n `'theme' option require 'string' type, but got '${typeof option.theme}'.`\n );\n\n errorHandle(\n typeof option.hotkey === 'boolean',\n `'hotkey' option require 'boolean' type, but got '${typeof option.hotkey}'.`\n );\n\n errorHandle(\n typeof option.subtitle === 'string',\n `'subtitle' option require 'string' type, but got '${typeof option.subtitle}'.`\n );\n\n errorHandle(\n Object.prototype.toString.call(option.subtitleStyle) === '[object Object]',\n `'subtitleStyle' option require 'object' type, but got '${typeof option.subtitleStyle}'.`\n );\n}\n","export default {\n mp4: 'video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"',\n webm: 'video/webm; codecs=\"vorbis, vp8\"',\n ts: 'video/mp2t; codecs=\"avc1.42E01E, mp4a.40.2\"'\n};\n","export default {\n mediaSource: {\n propertys: [\n 'activeSourceBuffers',\n 'duration',\n 'readyState',\n 'sourceBuffers'\n ],\n methods: [\n 'addSourceBuffer',\n 'endOfStream',\n 'removeSourceBuffer',\n 'clearLiveSeekableRange',\n 'setLiveSeekableRange'\n ],\n events: [\n 'sourceclose',\n 'sourceended',\n 'sourceopen'\n ]\n },\n sourceBuffer: {\n propertys: [\n 'mode',\n 'updating',\n 'buffered',\n 'timestampOffset',\n 'audioTracks',\n 'videoTracks',\n 'textTracks',\n 'appendWindowStart',\n 'appendWindowEnd',\n 'trackDefaults'\n ],\n methods: [\n 'appendBuffer',\n 'appendStream',\n 'abort',\n 'remove'\n ],\n events: [\n 'abort',\n 'error',\n 'update',\n 'updateend',\n 'updatestart'\n ]\n },\n sourceBufferList: {\n propertys: [\n 'length'\n ],\n events: [\n 'addsourcebuffer',\n 'removesourcebuffer'\n ]\n }\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume'\n ],\n methods: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting'\n ]\n};\n","import mimeCodec from './mimeCodec';\nimport mse from './mse';\nimport video from './video';\n\nexport default {\n mimeCodec,\n mse,\n video\n};\n","function E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n","export default class Template {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { refs } = this.art;\n refs.$container.innerHTML = `\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n `;\n refs.$wrap = refs.$container.querySelector('.artplayer-wrap');\n refs.$video = refs.$container.querySelector('.artplayer-video');\n refs.$subtitle = refs.$container.querySelector('.artplayer-subtitle');\n refs.$bottom = refs.$container.querySelector('.artplayer-bottom');\n refs.$progress = refs.$container.querySelector('.artplayer-progress');\n refs.$controls = refs.$container.querySelector('.artplayer-controls');\n refs.$controlsLeft = refs.$container.querySelector('.artplayer-controls-left');\n refs.$controlsRight = refs.$container.querySelector('.artplayer-controls-right');\n refs.$layers = refs.$container.querySelector('.artplayer-layers');\n refs.$loading = refs.$container.querySelector('.artplayer-loading');\n refs.$notice = refs.$container.querySelector('.artplayer-notice');\n refs.$mask = refs.$container.querySelector('.artplayer-mask');\n }\n}\n","const i18nMap = {\n 'zh-cn': {\n 'About author': '关于作者',\n 'Video info': '视频统计信息',\n 'Close': '关闭',\n 'Video load failed': '视频加载失败',\n 'Fast forward 10 seconds': '快进10秒',\n 'Rewind 10 seconds': '快退10秒',\n '10% increase in volume': '音量增加10%',\n '10% reduction in volume': '音量减少10%'\n },\n 'zh-tw': {\n 'About author': '關於作者',\n 'Video info': '影片統計訊息',\n 'Close': '關閉',\n 'Video load failed': '影片載入失敗',\n 'Fast forward 10 seconds': '快進10秒',\n 'Rewind 10 seconds': '快退10秒',\n '10% increase in volume': '音量增加10%',\n '10% reduction in volume': '音量減少10%'\n }\n};\n\nexport default class I18n {\n constructor({ option }) {\n this.language = i18nMap[option.lang.toLowerCase()] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n}\n","import { clamp } from './utils';\nimport config from './config';\n\nexport default class Player {\n constructor(art) {\n this.art = art;\n this.init();\n this.eventBind();\n }\n\n init() {\n const { option } = this.art;\n const { $video } = this.art.refs;\n $video.controls = true;\n $video.poster = option.poster;\n $video.volume = clamp(option.volume, 0, 1);\n $video.autoplay = option.autoplay;\n $video.preload = option.preload;\n $video.src = option.url;\n }\n\n eventBind() {\n const { events: { proxy }, refs: { $video } } = this.art;\n\n config.video.events.forEach(eventName => {\n proxy($video, eventName, event => {\n this.art.emit(`video:${event.type}`, event);\n });\n });\n\n this.art.on('video:loadstart', () => {\n this.art.loading.show();\n });\n\n this.art.on('video:loadeddata', () => {\n this.art.loading.hide();\n });\n\n this.art.on('video:canplay', () => {\n this.art.controls.show();\n this.art.mask.show();\n if (this.art.option.autoplay) {\n const promise = this.play();\n if (promise !== undefined) {\n promise.then().catch(err => {\n console.warn(err);\n });\n }\n }\n });\n\n this.art.on('video:playing', () => {\n this.art.playing = true;\n this.art.controls.hide();\n this.art.mask.hide();\n });\n\n this.art.on('video:pause', () => {\n this.art.playing = false;\n this.art.controls.show();\n this.art.mask.show();\n });\n\n this.art.on('video:ended', () => {\n this.art.playing = false;\n this.art.controls.show();\n this.art.mask.show();\n });\n }\n\n play() {\n const { $video } = this.art.refs;\n const promise = $video.play();\n this.art.emit('play', $video);\n return promise;\n }\n\n pause() {\n const { $video } = this.art.refs;\n $video.pause();\n this.art.emit('pause', $video);\n }\n\n toggle() {\n if (this.art.playing) {\n this.pause();\n } else {\n this.play();\n }\n }\n\n seek(time) {\n const { $video } = this.art.refs;\n let newTime = Math.max(time, 0);\n if ($video.duration) {\n newTime = Math.min(newTime, $video.duration);\n }\n\n $video.currentTime = newTime;\n this.art.emit('seek', newTime);\n }\n\n currentTime() {\n return this.art.refs.$video.currentTime;\n }\n\n volume(percentage) {\n const { $video } = this.art.refs;\n if (percentage) {\n $video.volume = clamp(percentage, 0, 1);\n }\n this.art.emit('volume', $video.volume);\n }\n\n switchVolumeIcon() {\n //\n }\n\n switchVideo() {\n //\n }\n\n switchQuality() {\n //\n }\n\n resize() {\n //\n }\n\n speed(rate) {\n const { $video } = this.art.refs;\n $video.playbackRate = rate;\n this.art.emit('speed', rate);\n }\n}\n","import { errorHandle, request, getExt } from './utils';\nimport config from './config';\n\nexport default class Mse {\n constructor(art) {\n this.art = art;\n this.setMimeCodec();\n this.init();\n this.eventBind();\n this.eventStart();\n this.repeat = 0;\n this.maxRepeat = 5;\n }\n\n setMimeCodec() {\n const { option } = this.art;\n if (!option.type) {\n const type = getExt(option.url);\n errorHandle(\n Object.keys(config.mimeCodec).includes(type),\n `Can't find video's type '${type}' from '${option.url}'`\n );\n option.type = type;\n }\n\n if (!option.mimeCodec) {\n const mimeCodec = config.mimeCodec[option.type];\n errorHandle(\n mimeCodec,\n `Can't find video's mimeCodec from ${option.type}`\n );\n option.mimeCodec = mimeCodec;\n }\n }\n\n init() {\n const {\n option,\n refs: { $video }\n } = this.art;\n errorHandle(\n MediaSource.isTypeSupported(option.mimeCodec),\n `Unsupported MIME type or codec: ${option.mimeCodec}`\n );\n this.mediaSource = new MediaSource();\n $video.src = URL.createObjectURL(this.mediaSource);\n this.art.events.destroyEvents.push(() => {\n URL.revokeObjectURL($video.src);\n });\n }\n\n eventBind() {\n const { proxy } = this.art.events;\n const { mediaSource, sourceBufferList } = config.mse;\n\n mediaSource.events.forEach(eventName => {\n proxy(this.mediaSource, eventName, event => {\n this.art.emit(`mediaSource:${event.type}`, event);\n });\n });\n\n sourceBufferList.events.forEach(eventName => {\n proxy(this.mediaSource.sourceBuffers, eventName, event => {\n this.art.emit(`sourceBuffers:${event.type}`, event);\n });\n proxy(this.mediaSource.activeSourceBuffers, eventName, event => {\n this.art.emit(`activeSourceBuffers:${event.type}`, event);\n });\n });\n }\n\n eventStart() {\n const { option } = this.art;\n const { proxy } = this.art.events;\n const { sourceBuffer } = config.mse;\n\n this.art.on('mediaSource:sourceopen', () => {\n this.sourceBuffer = this.mediaSource.addSourceBuffer(option.mimeCodec);\n sourceBuffer.events.forEach(eventName => {\n proxy(this.sourceBuffer, eventName, event => {\n this.art.emit(`sourceBuffer:${event.type}`, event);\n });\n });\n });\n\n this.art.on('sourceBuffer:updateend', () => {\n this.mediaSource.endOfStream();\n });\n\n this.fetchUrl();\n }\n\n fetchUrl() {\n const { option: { url }, notice, i18n, loading } = this.art;\n this.art.emit('player:fetch:start', url);\n request(url)\n .then(response => {\n this.sourceBuffer.appendBuffer(response);\n this.art.emit('player:fetch:success', url);\n })\n .catch(err => {\n if (this.repeat++ < this.maxRepeat) {\n this.fetchUrl();\n } else {\n notice.show(i18n.get('Video load failed'));\n console.warn(err);\n loading.hide();\n this.art.emit('player:fetch:failure', url);\n }\n });\n }\n}\n","import { errorHandle } from '.';\n\nexport default function validControl(option) {\n errorHandle(\n typeof option.control === 'function',\n `'control' option require 'function' type, but got '${typeof option.control}'.`\n );\n\n errorHandle(\n typeof option.disable === 'boolean',\n `'disable' option require 'boolean' type, but got '${typeof option.disable}'.`\n );\n\n errorHandle(\n typeof option.icon === 'string' || option.icon instanceof Element,\n `'icon' option require 'string' or 'Element' type, but got '${typeof option.icon}'.`\n );\n\n errorHandle(\n ['top', 'left', 'right'].indexOf(option.position) > -1,\n `'position' option require one of 'top、left、right', but got '${option.position}'.`\n );\n\n errorHandle(\n typeof option.index === 'number',\n `'index' option require 'number' type, but got '${typeof option.index}'.`\n );\n}\n","export default class Danmu {\n constructor(art) {\n this.art = art;\n }\n}\n","export default class Fullscreen {\n constructor(art) {\n this.art = art;\n }\n}\n","export default class Highlight {\n constructor(art) {\n this.art = art;\n }\n}\n","export default class Pip {\n constructor(art) {\n this.art = art;\n }\n}\n","export default class PlayAndPause {\n constructor(art) {\n this.art = art;\n }\n}\n","export default class Progress {\n constructor(art) {\n this.art = art;\n }\n}\n","export default class Screenshot {\n constructor(art) {\n this.art = art;\n }\n}\n","export default class Subtitle {\n constructor(art) {\n this.art = art;\n }\n}\n","export default class Time {\n constructor(art) {\n this.art = art;\n }\n}\n","export default class Volume {\n constructor(art) {\n this.art = art;\n }\n}\n","export default class Setting {\n constructor(art) {\n this.art = art;\n }\n}\n","import { append } from '../utils';\nimport validControl from '../utils/validControl';\nimport Danmu from './danmu';\nimport Fullscreen from './fullscreen';\nimport Highlight from './highlight';\nimport Pip from './pip';\nimport PlayAndPause from './playAndPause';\nimport Progress from './progress';\nimport Screenshot from './screenshot';\nimport Subtitle from './subtitle';\nimport Time from './time';\nimport Volume from './volume';\nimport Setting from './setting';\n\nlet id = 0;\nexport default class Controls {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n this.progress = new Progress(this.art);\n this.highlight = new Highlight(this.art);\n this.screenshot = new Screenshot(this.art);\n\n this.add({\n control: PlayAndPause,\n disable: false,\n icon: 'PlayAndPause',\n position: 'left',\n index: 0\n });\n\n this.add({\n control: Volume,\n disable: false,\n icon: 'Volume',\n position: 'left',\n index: 10\n });\n\n this.add({\n control: Time,\n disable: false,\n icon: 'Time',\n position: 'left',\n index: 20\n });\n\n this.add({\n control: Danmu,\n disable: false,\n icon: 'Danmu',\n position: 'right',\n index: 0\n });\n\n this.add({\n control: Subtitle,\n disable: false,\n icon: 'Subtitle',\n position: 'right',\n index: 10\n });\n\n this.add({\n control: Setting,\n disable: false,\n icon: 'Setting',\n position: 'right',\n index: 20\n });\n\n this.add({\n control: Pip,\n disable: false,\n icon: 'Pip',\n position: 'right',\n index: 30\n });\n\n this.add({\n control: Fullscreen,\n disable: false,\n icon: 'Fullscreen',\n position: 'right',\n index: 40\n });\n\n this.art.option.controls.forEach(item => {\n this.add(item);\n });\n }\n\n add(option) {\n validControl(option);\n const { $progress, $controlsLeft, $controlsRight } = this.art.refs;\n if (!option.disable) {\n id++;\n const name = option.control.name.toLowerCase() || `control${id}`;\n const $control = document.createElement('div');\n $control.setAttribute('class', `art-control art-control-${name}`);\n $control.setAttribute('data-control-index', option.index || id);\n append($control, option.icon);\n this[name] = new option.control(this.art);\n this[name].ref = $control;\n this[name].show = function show() {\n $control.style.display = 'inline-block';\n };\n this[name].hide = function show() {\n $control.style.display = 'none';\n };\n }\n }\n\n show() {\n const { $wrap } = this.art.refs;\n $wrap.classList.add('controls-show');\n }\n\n hide() {\n const { $wrap } = this.art.refs;\n $wrap.classList.remove('controls-show');\n }\n}\n","import { append } from './utils';\n\nexport default class Contextmenu {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const {\n option,\n i18n,\n refs,\n events: { proxy }\n } = this.art;\n\n option.contextmenu.push(\n {\n text: i18n.get('Video info'),\n click: () => {\n this.art.info.show();\n }\n },\n {\n text: i18n.get('About author'),\n link: 'https://github.com/zhw2590582'\n },\n {\n text: 'ArtPlayer __VERSION__',\n link: 'https://github.com/zhw2590582/artplayer'\n },\n {\n text: i18n.get('Close'),\n click: () => {\n this.hide();\n }\n }\n );\n\n proxy(refs.$container, 'contextmenu', event => {\n event.preventDefault();\n this.art.focus = true;\n if (!refs.$contextmenu) {\n this.creatMenu();\n }\n this.show();\n this.setPos(event);\n });\n\n proxy(refs.$container, 'click', event => {\n if (refs.$contextmenu && !event.path.includes(refs.$contextmenu)) {\n this.hide();\n }\n });\n }\n\n creatMenu() {\n const {\n option,\n refs,\n events: { proxy }\n } = this.art;\n refs.$contextmenu = document.createElement('div');\n refs.$contextmenu.classList.add('artplayer-contextmenu');\n option.contextmenu.forEach(item => {\n const $menu = document.createElement('a');\n $menu.innerHTML = item.text;\n $menu.classList.add('art-menu');\n if (item.link) {\n $menu.target = '_blank';\n $menu.href = item.link;\n } else if (item.click) {\n $menu.href = '#';\n proxy($menu, 'click', event => {\n event.preventDefault();\n item.click(this.art, event);\n this.hide();\n });\n }\n append(refs.$contextmenu, $menu);\n });\n append(refs.$wrap, refs.$contextmenu);\n }\n\n setPos(event) {\n const { refs } = this.art;\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = refs.$container.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = refs.$contextmenu.getBoundingClientRect();\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n refs.$contextmenu.style.left = `${menuLeft}px`;\n refs.$contextmenu.style.top = `${menuTop}px`;\n }\n\n hide() {\n const { refs: { $contextmenu } } = this.art;\n if ($contextmenu) {\n $contextmenu.style.display = 'none';\n this.art.emit('contextmenu:hide', $contextmenu);\n }\n }\n\n show() {\n const { refs: { $contextmenu } } = this.art;\n if ($contextmenu) {\n $contextmenu.style.display = 'block';\n this.art.emit('contextmenu:show', $contextmenu);\n }\n }\n}\n","export default class Danmu {\n constructor(art) {\n this.art = art;\n }\n}\n","export default class Info {\n constructor(art) {\n this.art = art;\n }\n\n show() {\n console.log('info show');\n }\n\n hide() {\n console.log('info hide');\n }\n}\n","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","import { errorHandle, getExt, setStyle } from './utils';\n\nexport default class Subtitle {\n constructor(art) {\n this.art = art;\n if (this.art.option.subtitle) {\n errorHandle(\n getExt(this.art.option.subtitle) === 'vtt',\n `'subtitle' option require 'vtt' format, but got '${getExt(this.art.option.subtitle)}'.`\n );\n this.init();\n }\n }\n\n init() {\n const {\n events: { proxy },\n option: { subtitle, subtitleStyle },\n refs: { $video, $subtitle }\n } = this.art;\n\n setStyle($subtitle, subtitleStyle);\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\n $track.src = subtitle;\n $video.appendChild($track);\n this.art.refs.$track = $track;\n\n if ($video.textTracks && $video.textTracks[0]) {\n const [track] = $video.textTracks;\n proxy(track, 'cuechange', () => {\n const [cue] = track.activeCues;\n $subtitle.innerHTML = '';\n if (cue) {\n const template = document.createElement('div');\n template.appendChild(cue.getCueAsHTML());\n $subtitle.innerHTML = template.innerHTML\n .split(/\\r?\\n/)\n .map(item => `

${item}

`)\n .join('');\n }\n this.art.emit('subtitle:update', $subtitle);\n });\n }\n }\n\n show() {\n const { $subtitle } = this.art.refs;\n $subtitle.style.display = 'block';\n this.art.emit('subtitle:show', $subtitle);\n }\n\n hide() {\n const { $subtitle } = this.art.refs;\n $subtitle.style.display = 'none';\n this.art.emit('subtitle:hide', $subtitle);\n }\n\n switch(url) {\n const { $track } = this.art.refs;\n errorHandle(\n getExt(url) === 'vtt',\n `'url' option require 'vtt' format, but got '${getExt(url)}'.`\n );\n errorHandle(\n $track,\n 'You need to initialize the subtitle option first.'\n );\n $track.src = url;\n this.art.emit('subtitle:switch', url);\n }\n}\n","export default class Events {\n constructor(art) {\n this.art = art;\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n }\n\n proxy(target, name, callback, option = {}) {\n target.addEventListener(name, callback, option);\n this.destroyEvents.push(() => {\n target.removeEventListener(name, callback, option);\n });\n }\n\n destroy() {\n this.destroyEvents.forEach(event => event());\n }\n}\n","export default class Hotkey {\n constructor(art) {\n this.art = art;\n if (this.art.option.hotkey) {\n this.init();\n }\n }\n\n init() {\n const {\n player,\n notice,\n i18n,\n refs: { $container },\n events: { proxy }\n } = this.art;\n\n proxy(document, 'click', event => {\n this.art.focus = event.path.indexOf($container) > -1;\n });\n\n proxy(window, 'keydown', event => {\n if (this.art.focus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (\n tag !== 'INPUT' &&\n tag !== 'TEXTAREA' &&\n editable !== '' &&\n editable !== 'true'\n ) {\n let percentage;\n switch (event.keyCode) {\n case 39:\n event.preventDefault();\n player.seek(player.currentTime() + 10);\n notice.show(i18n.get('Fast forward 10 seconds'), true);\n break;\n case 37:\n event.preventDefault();\n player.seek(player.currentTime() - 10);\n notice.show(i18n.get('Rewind 10 seconds'), true);\n break;\n case 38:\n event.preventDefault();\n percentage = player.volume() + 0.1;\n player.volume(percentage);\n notice.show(i18n.get('10% increase in volume'), true);\n break;\n case 40:\n event.preventDefault();\n percentage = player.volume() - 0.1;\n player.volume(percentage);\n notice.show(i18n.get('10% reduction in volume'), true);\n break;\n case 32:\n event.preventDefault();\n player.toggle();\n break;\n default:\n break;\n }\n }\n }\n });\n }\n}\n","import { append, setStyle } from './utils';\n\nlet id = 0;\nexport default class Layers {\n constructor(art) {\n this.art = art;\n this.add = this.add.bind(this);\n this.art.option.layers.forEach(this.add);\n this.init();\n }\n\n init() {\n const { refs, player, events: { proxy } } = this.art;\n proxy(refs.$layers, 'click', event => {\n if (event.path[0] === refs.$layers) {\n player.pause();\n }\n });\n }\n\n add(option, callback) {\n const { refs } = this.art;\n id++;\n\n const $layer = document.createElement('div');\n $layer.setAttribute('data-art-layer-id', id);\n $layer.setAttribute('class', `art-layer art-layer-${option.name || id}`);\n $layer.style.zIndex = option.index || id;\n append($layer, option.html);\n setStyle($layer, option.style || {});\n refs.$layers.appendChild($layer);\n this.art.emit('layers:add', $layer);\n callback && callback($layer);\n }\n\n show() {\n const { $layers } = this.art.refs;\n $layers.style.display = 'block';\n this.art.emit('layers:show', $layers);\n }\n\n hide() {\n const { $layers } = this.art.refs;\n $layers.style.display = 'none';\n this.art.emit('layers:hide', $layers);\n }\n}\n","import loading from './loading.svg';\nimport play from './play.svg';\n\nconst icons = {\n loading,\n play\n};\n\nfunction creatDomFromSvg(map) {\n const result = {};\n Object.keys(map).forEach(name => {\n const tmp = document.createElement('div');\n tmp.innerHTML = `${map[name]}`;\n [result[name]] = tmp.childNodes;\n });\n return result;\n}\n\nexport default creatDomFromSvg(icons);\n","import icons from './icons';\nimport { append } from './utils';\n\nexport default class Loading {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { option, refs: { $loading } } = this.art;\n append($loading, option.loading || icons.loading);\n }\n\n hide() {\n const { $loading } = this.art.refs;\n $loading.style.display = 'none';\n this.art.emit('loading:hide', $loading);\n }\n\n show() {\n const { $loading } = this.art.refs;\n $loading.style.display = 'flex';\n this.art.emit('loading:show', $loading);\n }\n}\n","export default class Notice {\n constructor(art) {\n this.art = art;\n this.timer = null;\n }\n\n show(msg, autoHide) {\n const { $notice } = this.art.refs;\n $notice.style.display = 'block';\n $notice.innerHTML = msg instanceof Error ? msg.message.trim() : msg;\n if (autoHide) {\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.hide();\n }, 1000);\n }\n this.art.emit('notice:show', $notice);\n }\n\n hide() {\n const { $notice } = this.art.refs;\n $notice.style.display = 'none';\n this.art.emit('notice:hide', $notice);\n }\n}\n","import icons from './icons';\nimport { append } from './utils';\n\nexport default class Mask {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const {\n player,\n option,\n refs,\n events: { proxy }\n } = this.art;\n\n icons.play.style.backgroundColor = option.theme;\n append(refs.$mask, icons.play);\n\n proxy(refs.$mask, 'click', () => {\n player.play();\n this.hide();\n });\n }\n\n show() {\n const { $mask } = this.art.refs;\n $mask.style.display = 'flex';\n this.art.emit('mask:show', $mask);\n }\n\n hide() {\n const { $mask } = this.art.refs;\n $mask.style.display = 'none';\n this.art.emit('mask:show', $mask);\n }\n}\n","import './style/index.scss';\nimport validOption from './utils/validOption';\nimport config from './config';\nimport Emitter from 'tiny-emitter';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Mse from './mse';\nimport Controls from './controls';\nimport Contextmenu from './contextmenu';\nimport Danmu from './danmu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layers from './layers';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\n\nlet id = 0;\nexport const instances = [];\n\nclass Artplayer extends Emitter {\n constructor(option) {\n super();\n this.emit('init:start');\n this.option = Object.assign({}, Artplayer.DEFAULTS, option);\n validOption(this.option);\n this.init();\n this.emit('init:end');\n }\n\n static get version() {\n return '__VERSION__';\n }\n\n static get config() {\n return config;\n }\n\n static get DEFAULTS() {\n return {\n container: document.querySelector('.artplayer'),\n url: '',\n poster: '',\n volume: 0.7,\n autoplay: false,\n preload: 'auto',\n type: '',\n mimeCodec: '',\n layers: [],\n contextmenu: [],\n loading: '',\n theme: '#1aafff',\n hotkey: true,\n subtitle: '',\n subtitleStyle: {},\n controls: [],\n lang: navigator.language.toLowerCase()\n };\n }\n\n static use(plugin) {\n const installedPlugins = this.plugins || (this.plugins = []);\n if (installedPlugins.indexOf(plugin) > -1) {\n return this;\n }\n\n const args = Array.from(arguments).slice(1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this;\n }\n\n init() {\n this.focus = false;\n this.playing = false;\n this.refs = {};\n\n if (this.option.container instanceof Element) {\n this.refs.$container = this.option.container;\n } else {\n this.refs.$container = document.querySelector(this.option.container);\n }\n\n this.template = new Template(this);\n this.i18n = new I18n(this);\n this.events = new Events(this);\n this.player = new Player(this);\n // this.mse = new Mse(this);\n this.layers = new Layers(this);\n this.controls = new Controls(this);\n this.contextmenu = new Contextmenu(this);\n this.danmu = new Danmu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.notice = new Notice(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n\n this.id = id++;\n instances.push(this);\n return this;\n }\n\n destroy() {\n this.events.destroy();\n this.refs.$container.innerHTML = '';\n instances.splice(instances.indexOf(this), 1);\n this.emit('destroy');\n }\n}\n\nwindow.Artplayer = Artplayer;\nexport default Artplayer;\n"],"names":["_typeof","ArtPlayerError","message","context","Error","captureStackTrace","constructor","name","errorHandle","condition","msg","clamp","num","a","b","Math","max","min","request","url","fetch","then","response","arrayBuffer","catch","err","getExt","includes","split","trim","toLowerCase","pop","append","parent","child","Element","appendChild","innerHTML","setStyle","element","styles","Object","keys","forEach","key","style","validOption","option","container","poster","volume","autoplay","indexOf","preload","lang","type","mimeCodec","Array","isArray","layers","contextmenu","loading","theme","hotkey","subtitle","prototype","toString","call","subtitleStyle","mp4","webm","ts","mediaSource","propertys","methods","events","sourceBuffer","sourceBufferList","mse","video","Template","art","init","refs","$container","$wrap","querySelector","$video","$subtitle","$bottom","$progress","$controls","$controlsLeft","$controlsRight","$layers","$loading","$notice","$mask","i18nMap","I18n","language","Player","eventBind","controls","src","proxy","config","eventName","event","emit","on","show","hide","mask","promise","play","undefined","console","warn","playing","pause","time","newTime","duration","currentTime","percentage","rate","playbackRate","Mse","setMimeCodec","eventStart","repeat","maxRepeat","MediaSource","isTypeSupported","URL","createObjectURL","destroyEvents","push","revokeObjectURL","sourceBuffers","activeSourceBuffers","addSourceBuffer","endOfStream","fetchUrl","notice","i18n","appendBuffer","get","validControl","control","disable","icon","position","index","Danmu","Fullscreen","Highlight","Pip","PlayAndPause","Progress","Screenshot","Subtitle","Time","Volume","Setting","id","Controls","progress","highlight","screenshot","add","item","$control","document","createElement","setAttribute","ref","display","classList","remove","Contextmenu","text","click","info","link","preventDefault","focus","$contextmenu","creatMenu","setPos","path","$menu","target","href","mouseX","clientX","mouseY","clientY","getBoundingClientRect","cHeight","height","cWidth","width","cLeft","left","cTop","top","mHeight","mWidth","menuLeft","menuTop","Info","log","$track","default","kind","textTracks","track","activeCues","cue","template","getCueAsHTML","map","join","Events","bind","callback","addEventListener","removeEventListener","Hotkey","player","window","tag","activeElement","tagName","toUpperCase","editable","getAttribute","keyCode","seek","toggle","Layers","$layer","zIndex","html","icons","creatDomFromSvg","result","tmp","childNodes","Loading","Notice","timer","autoHide","clearTimeout","setTimeout","Mask","backgroundColor","instances","Artplayer","assign","DEFAULTS","danmu","destroy","splice","plugin","installedPlugins","plugins","args","from","arguments","slice","unshift","install","apply","navigator","Emitter"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"artplayer.js","sources":["../../node_modules/@babel/runtime/helpers/classCallCheck.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../node_modules/@babel/runtime/helpers/typeof.js","../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/inherits.js","../../node_modules/@babel/runtime/helpers/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/construct.js","../../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../../src/utils/ArtPlayerError.js","../../src/utils/index.js","../../src/verification/player.js","../../src/config/mimeCodec.js","../../src/config/mse.js","../../src/config/video.js","../../src/config/index.js","../../node_modules/tiny-emitter/index.js","../../src/template.js","../../src/i18n.js","../../src/player.js","../../src/mse.js","../../src/verification/control.js","../../src/controls/danmu.js","../../src/controls/fullscreen.js","../../src/controls/highlight.js","../../src/controls/pip.js","../../src/controls/playAndPause.js","../../src/controls/progress.js","../../src/controls/screenshot.js","../../src/controls/subtitle.js","../../src/controls/time.js","../../src/controls/volume.js","../../src/controls/setting.js","../../src/controls/index.js","../../src/contextmenu.js","../../src/danmu.js","../../src/info.js","../../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/slicedToArray.js","../../src/subtitle.js","../../src/events.js","../../src/hotkey.js","../../src/layers.js","../../src/icons/index.js","../../src/loading.js","../../src/notice.js","../../src/mask.js","../../src/index.js"],"sourcesContent":["function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeFunction = require(\"./isNativeFunction\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","export default class ArtPlayerError extends Error {\n constructor(message, context) {\n super(message);\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, context || this.constructor);\n }\n this.name = 'ArtPlayerError';\n }\n}\n","import ArtPlayerError from './ArtPlayerError';\n\nexport function errorHandle(condition, msg) {\n if (!condition) {\n throw new ArtPlayerError(msg);\n }\n}\n\nexport function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function request(url) {\n return fetch(url)\n .then(response => response.arrayBuffer())\n .catch(err => {\n throw new ArtPlayerError(err.message);\n });\n}\n\nexport function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n return url\n .trim()\n .toLowerCase()\n .split('.')\n .pop();\n}\n\n\nexport function append(parent, child) {\n if (child instanceof Element) {\n parent.appendChild(child);\n } else {\n parent.innerHTML = child;\n }\n return parent;\n}\n\nexport function setStyle(element, styles) {\n Object.keys(styles).forEach(key => {\n element.style[key] = styles[key];\n });\n return element;\n}\n","import { errorHandle } from '../utils';\n\nexport default function validOption(option) {\n errorHandle(\n option.container,\n '\\'container\\' option is required.'\n );\n\n errorHandle(\n option.url,\n '\\'url\\' option is required.'\n );\n\n errorHandle(\n typeof option.container === 'string' || option.container instanceof Element,\n `'container' option require 'string' or 'Element' type, but got '${typeof option.container}'.`\n );\n\n errorHandle(\n typeof option.url === 'string',\n `'url' option require 'string' type, but got '${typeof option.url}'.`\n );\n\n errorHandle(\n typeof option.poster === 'string',\n `'poster' option require 'string' type, but got '${typeof option.poster}'.`\n );\n\n errorHandle(\n typeof option.volume === 'number',\n `'volume' option require 'number' type, but got '${typeof option.volume}'.`\n );\n\n errorHandle(\n typeof option.autoplay === 'boolean',\n `'autoplay' option require 'boolean' type, but got '${typeof option.autoplay}'.`\n );\n\n errorHandle(\n ['none', 'metadata', 'auto'].indexOf(option.preload) > -1,\n `'preload' option require one of 'none、metadata、auto', but got '${option.preload}.`\n );\n\n errorHandle(\n typeof option.lang === 'string',\n `'lang' option require 'string' type, but got '${typeof option.lang}'.`\n );\n\n errorHandle(\n typeof option.type === 'string',\n `'type' option require 'string' type, but got '${typeof option.type}'.`\n );\n\n errorHandle(\n typeof option.mimeCodec === 'string',\n `'mimeCodec' option require 'string' type, but got '${typeof option.mimeCodec}'.`\n );\n\n errorHandle(\n Array.isArray(option.layers),\n `'layers' option require 'array' type, but got '${typeof option.layers}'.`\n );\n\n errorHandle(\n Array.isArray(option.contextmenu),\n `'contextmenu' option require 'array' type, but got '${typeof option.contextmenu}'.`\n );\n\n errorHandle(\n typeof option.loading === 'string' || option.loading instanceof Element,\n `'loading' option require 'string' type, but got '${typeof option.loading}'.`\n );\n\n errorHandle(\n typeof option.theme === 'string',\n `'theme' option require 'string' type, but got '${typeof option.theme}'.`\n );\n\n errorHandle(\n typeof option.hotkey === 'boolean',\n `'hotkey' option require 'boolean' type, but got '${typeof option.hotkey}'.`\n );\n\n errorHandle(\n Object.prototype.toString.call(option.subtitle) === '[object Object]',\n `'subtitle' option require 'object' type, but got '${typeof option.subtitle}'.`\n );\n\n errorHandle(\n Array.isArray(option.controls),\n `'controls' option require 'array' type, but got '${typeof option.controls}'.`\n );\n}\n","export default {\n mp4: 'video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"',\n webm: 'video/webm; codecs=\"vorbis, vp8\"',\n ts: 'video/mp2t; codecs=\"avc1.42E01E, mp4a.40.2\"'\n};\n","export default {\n mediaSource: {\n propertys: [\n 'activeSourceBuffers',\n 'duration',\n 'readyState',\n 'sourceBuffers'\n ],\n methods: [\n 'addSourceBuffer',\n 'endOfStream',\n 'removeSourceBuffer',\n 'clearLiveSeekableRange',\n 'setLiveSeekableRange'\n ],\n events: [\n 'sourceclose',\n 'sourceended',\n 'sourceopen'\n ]\n },\n sourceBuffer: {\n propertys: [\n 'mode',\n 'updating',\n 'buffered',\n 'timestampOffset',\n 'audioTracks',\n 'videoTracks',\n 'textTracks',\n 'appendWindowStart',\n 'appendWindowEnd',\n 'trackDefaults'\n ],\n methods: [\n 'appendBuffer',\n 'appendStream',\n 'abort',\n 'remove'\n ],\n events: [\n 'abort',\n 'error',\n 'update',\n 'updateend',\n 'updatestart'\n ]\n },\n sourceBufferList: {\n propertys: [\n 'length'\n ],\n events: [\n 'addsourcebuffer',\n 'removesourcebuffer'\n ]\n }\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume'\n ],\n methods: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting'\n ]\n};\n","import mimeCodec from './mimeCodec';\nimport mse from './mse';\nimport video from './video';\n\nexport default {\n mimeCodec,\n mse,\n video\n};\n","function E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n","export default class Template {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { refs } = this.art;\n refs.$container.innerHTML = `\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n `;\n refs.$wrap = refs.$container.querySelector('.artplayer-wrap');\n refs.$video = refs.$container.querySelector('.artplayer-video');\n refs.$subtitle = refs.$container.querySelector('.artplayer-subtitle');\n refs.$bottom = refs.$container.querySelector('.artplayer-bottom');\n refs.$progress = refs.$container.querySelector('.artplayer-progress');\n refs.$controls = refs.$container.querySelector('.artplayer-controls');\n refs.$controlsLeft = refs.$container.querySelector('.artplayer-controls-left');\n refs.$controlsRight = refs.$container.querySelector('.artplayer-controls-right');\n refs.$layers = refs.$container.querySelector('.artplayer-layers');\n refs.$loading = refs.$container.querySelector('.artplayer-loading');\n refs.$notice = refs.$container.querySelector('.artplayer-notice');\n refs.$mask = refs.$container.querySelector('.artplayer-mask');\n }\n}\n","const i18nMap = {\n 'zh-cn': {\n 'About author': '关于作者',\n 'Video info': '视频统计信息',\n 'Close': '关闭',\n 'Video load failed': '视频加载失败',\n 'Fast forward 10 seconds': '快进10秒',\n 'Rewind 10 seconds': '快退10秒',\n '10% increase in volume': '音量增加10%',\n '10% reduction in volume': '音量减少10%'\n },\n 'zh-tw': {\n 'About author': '關於作者',\n 'Video info': '影片統計訊息',\n 'Close': '關閉',\n 'Video load failed': '影片載入失敗',\n 'Fast forward 10 seconds': '快進10秒',\n 'Rewind 10 seconds': '快退10秒',\n '10% increase in volume': '音量增加10%',\n '10% reduction in volume': '音量減少10%'\n }\n};\n\nexport default class I18n {\n constructor({ option }) {\n this.language = i18nMap[option.lang.toLowerCase()] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n}\n","import { clamp } from './utils';\nimport config from './config';\n\nexport default class Player {\n constructor(art) {\n this.art = art;\n this.init();\n this.eventBind();\n }\n\n init() {\n const { option } = this.art;\n const { $video } = this.art.refs;\n $video.controls = true;\n $video.poster = option.poster;\n $video.volume = clamp(option.volume, 0, 1);\n $video.autoplay = option.autoplay;\n $video.preload = option.preload;\n $video.src = option.url;\n }\n\n eventBind() {\n const { events: { proxy }, refs: { $video } } = this.art;\n\n config.video.events.forEach(eventName => {\n proxy($video, eventName, event => {\n this.art.emit(`video:${event.type}`, event);\n });\n });\n\n this.art.on('video:loadstart', () => {\n this.art.loading.show();\n });\n\n this.art.on('video:loadeddata', () => {\n this.art.loading.hide();\n });\n\n this.art.on('video:canplay', () => {\n this.art.controls.show();\n this.art.mask.show();\n if (this.art.option.autoplay) {\n const promise = this.play();\n if (promise !== undefined) {\n promise.then().catch(err => {\n console.warn(err);\n });\n }\n }\n });\n\n this.art.on('video:playing', () => {\n this.art.playing = true;\n this.art.controls.hide();\n this.art.mask.hide();\n });\n\n this.art.on('video:pause', () => {\n this.art.playing = false;\n this.art.controls.show();\n this.art.mask.show();\n });\n\n this.art.on('video:ended', () => {\n this.art.playing = false;\n this.art.controls.show();\n this.art.mask.show();\n });\n }\n\n play() {\n const { $video } = this.art.refs;\n const promise = $video.play();\n this.art.emit('play', $video);\n return promise;\n }\n\n pause() {\n const { $video } = this.art.refs;\n $video.pause();\n this.art.emit('pause', $video);\n }\n\n toggle() {\n if (this.art.playing) {\n this.pause();\n } else {\n this.play();\n }\n }\n\n seek(time) {\n const { $video } = this.art.refs;\n let newTime = Math.max(time, 0);\n if ($video.duration) {\n newTime = Math.min(newTime, $video.duration);\n }\n\n $video.currentTime = newTime;\n this.art.emit('seek', newTime);\n }\n\n currentTime() {\n return this.art.refs.$video.currentTime;\n }\n\n volume(percentage) {\n const { $video } = this.art.refs;\n if (percentage) {\n $video.volume = clamp(percentage, 0, 1);\n }\n this.art.emit('volume', $video.volume);\n }\n\n switchVolumeIcon() {\n //\n }\n\n switchVideo() {\n //\n }\n\n switchQuality() {\n //\n }\n\n resize() {\n //\n }\n\n speed(rate) {\n const { $video } = this.art.refs;\n $video.playbackRate = rate;\n this.art.emit('speed', rate);\n }\n}\n","import { errorHandle, request, getExt } from './utils';\nimport config from './config';\n\nexport default class Mse {\n constructor(art) {\n this.art = art;\n this.setMimeCodec();\n this.init();\n this.eventBind();\n this.eventStart();\n this.repeat = 0;\n this.maxRepeat = 5;\n }\n\n setMimeCodec() {\n const { option } = this.art;\n if (!option.type) {\n const type = getExt(option.url);\n errorHandle(\n Object.keys(config.mimeCodec).includes(type),\n `Can't find video's type '${type}' from '${option.url}'`\n );\n option.type = type;\n }\n\n if (!option.mimeCodec) {\n const mimeCodec = config.mimeCodec[option.type];\n errorHandle(\n mimeCodec,\n `Can't find video's mimeCodec from ${option.type}`\n );\n option.mimeCodec = mimeCodec;\n }\n }\n\n init() {\n const {\n option,\n refs: { $video }\n } = this.art;\n errorHandle(\n MediaSource.isTypeSupported(option.mimeCodec),\n `Unsupported MIME type or codec: ${option.mimeCodec}`\n );\n this.mediaSource = new MediaSource();\n $video.src = URL.createObjectURL(this.mediaSource);\n this.art.events.destroyEvents.push(() => {\n URL.revokeObjectURL($video.src);\n });\n }\n\n eventBind() {\n const { proxy } = this.art.events;\n const { mediaSource, sourceBufferList } = config.mse;\n\n mediaSource.events.forEach(eventName => {\n proxy(this.mediaSource, eventName, event => {\n this.art.emit(`mediaSource:${event.type}`, event);\n });\n });\n\n sourceBufferList.events.forEach(eventName => {\n proxy(this.mediaSource.sourceBuffers, eventName, event => {\n this.art.emit(`sourceBuffers:${event.type}`, event);\n });\n proxy(this.mediaSource.activeSourceBuffers, eventName, event => {\n this.art.emit(`activeSourceBuffers:${event.type}`, event);\n });\n });\n }\n\n eventStart() {\n const { option } = this.art;\n const { proxy } = this.art.events;\n const { sourceBuffer } = config.mse;\n\n this.art.on('mediaSource:sourceopen', () => {\n this.sourceBuffer = this.mediaSource.addSourceBuffer(option.mimeCodec);\n sourceBuffer.events.forEach(eventName => {\n proxy(this.sourceBuffer, eventName, event => {\n this.art.emit(`sourceBuffer:${event.type}`, event);\n });\n });\n });\n\n this.art.on('sourceBuffer:updateend', () => {\n this.mediaSource.endOfStream();\n });\n\n this.fetchUrl();\n }\n\n fetchUrl() {\n const { option: { url }, notice, i18n, loading } = this.art;\n this.art.emit('player:fetch:start', url);\n request(url)\n .then(response => {\n this.sourceBuffer.appendBuffer(response);\n this.art.emit('player:fetch:success', url);\n })\n .catch(err => {\n if (this.repeat++ < this.maxRepeat) {\n this.fetchUrl();\n } else {\n notice.show(i18n.get('Video load failed'));\n console.warn(err);\n loading.hide();\n this.art.emit('player:fetch:failure', url);\n }\n });\n }\n}\n","import { errorHandle } from '../utils';\n\nexport default function validControl(option) {\n errorHandle(\n typeof option.control === 'function',\n `'control' option require 'function' type, but got '${typeof option.control}'.`\n );\n\n errorHandle(\n typeof option.disable === 'boolean',\n `'disable' option require 'boolean' type, but got '${typeof option.disable}'.`\n );\n\n errorHandle(\n typeof option.html === 'string' || option.html instanceof Element,\n `'html' option require 'string' or 'Element' type, but got '${typeof option.html}'.`\n );\n\n errorHandle(\n ['top', 'left', 'right'].indexOf(option.position) > -1,\n `'position' option require one of 'top、left、right', but got '${option.position}'.`\n );\n\n errorHandle(\n typeof option.index === 'number',\n `'index' option require 'number' type, but got '${typeof option.index}'.`\n );\n}\n","export default class Danmu {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class Fullscreen {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class Highlight {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class Pip {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class PlayAndPause {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class Progress {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class Screenshot {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class Subtitle {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class Time {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class Volume {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","export default class Setting {\n constructor(art, option) {\n this.art = art;\n this.option = option;\n }\n}\n","import { append, setStyle } from '../utils';\nimport validControl from '../verification/control';\nimport Danmu from './danmu';\nimport Fullscreen from './fullscreen';\nimport Highlight from './highlight';\nimport Pip from './pip';\nimport PlayAndPause from './playAndPause';\nimport Progress from './progress';\nimport Screenshot from './screenshot';\nimport Subtitle from './subtitle';\nimport Time from './time';\nimport Volume from './volume';\nimport Setting from './setting';\n\nlet id = 0;\nexport default class Controls {\n constructor(art) {\n this.art = art;\n this.$map = {\n top: [],\n left: [],\n right: []\n };\n this.init();\n this.mount();\n }\n\n init() {\n this.add({\n control: Progress,\n disable: false,\n html: 'Progress',\n position: 'top',\n index: 0\n });\n\n this.add({\n control: Highlight,\n disable: false,\n html: 'Highlight',\n position: 'top',\n index: 10\n });\n\n this.add({\n control: Screenshot,\n disable: false,\n html: 'Screenshot',\n position: 'top',\n index: 20\n });\n\n this.add({\n control: PlayAndPause,\n disable: false,\n html: 'PlayAndPause',\n tooltip: 'PlayAndPause',\n position: 'left',\n index: 0\n });\n\n this.add({\n control: Volume,\n disable: false,\n html: 'Volume',\n tooltip: 'Volume',\n position: 'left',\n index: 10\n });\n\n this.add({\n control: Time,\n disable: false,\n html: 'Time',\n tooltip: 'Volume',\n position: 'left',\n index: 20\n });\n\n this.add({\n control: Danmu,\n disable: false,\n html: 'Danmu',\n tooltip: 'Danmu',\n position: 'right',\n index: 0\n });\n\n this.add({\n control: Subtitle,\n disable: false,\n html: 'Subtitle',\n tooltip: 'Subtitle',\n position: 'right',\n index: 10\n });\n\n this.add({\n control: Setting,\n disable: false,\n html: 'Setting',\n tooltip: 'Setting',\n position: 'right',\n index: 20\n });\n\n this.add({\n control: Pip,\n disable: false,\n html: 'Pip',\n tooltip: 'Pip',\n position: 'right',\n index: 30\n });\n\n this.add({\n control: Fullscreen,\n disable: false,\n html: 'Fullscreen',\n tooltip: 'Fullscreen',\n position: 'right',\n index: 40\n });\n\n this.art.option.controls.forEach(item => {\n this.add(item);\n });\n }\n\n add(option) {\n validControl(option);\n if (!option.disable) {\n id++;\n const name = option.control.name.toLowerCase() || `control${id}`;\n const $control = document.createElement('div');\n $control.setAttribute('class', `art-control art-control-${name}`);\n $control.setAttribute('data-control-index', String(option.index) || id);\n setStyle($control, option.style || {});\n append($control, option.html);\n option.ref = $control;\n this.commonMethod(option);\n this[name] = new option.control(this.art, option);\n this.$map[option.position].push($control);\n }\n }\n\n mount() {\n const { $progress, $controlsLeft, $controlsRight } = this.art.refs;\n Object.keys(this.$map).forEach(key => {\n const $list = this.$map[key].sort(\n (a, b) =>\n Number(a.dataset.controlIndex) - Number(b.dataset.controlIndex)\n );\n\n $list.forEach($control => {\n switch (key) {\n case 'top':\n $progress.appendChild($control);\n break;\n case 'left':\n $controlsLeft.appendChild($control);\n break;\n case 'right':\n $controlsRight.appendChild($control);\n break;\n default:\n break;\n }\n });\n });\n }\n\n commonMethod(option) {\n Object.defineProperty(option.control.prototype, 'hide', {\n value: () => {\n option.ref.style.display = 'none';\n this.art.emit('control:hide', option.ref);\n }\n });\n\n Object.defineProperty(option.control.prototype, 'show', {\n value: () => {\n option.ref.style.display = option.position === 'top' ? 'block' : 'inline-block';\n this.art.emit('control:show', option.ref);\n }\n });\n\n Object.defineProperty(option.control.prototype, 'addMenu', {\n value: (menus) => {\n console.log(menus);\n }\n });\n }\n\n show() {\n const { $wrap } = this.art.refs;\n $wrap.classList.add('controls-show');\n }\n\n hide() {\n const { $wrap } = this.art.refs;\n $wrap.classList.remove('controls-show');\n }\n}\n","import { append } from './utils';\n\nexport default class Contextmenu {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const {\n option,\n i18n,\n refs,\n events: { proxy }\n } = this.art;\n\n option.contextmenu.push(\n {\n text: i18n.get('Video info'),\n click: () => {\n this.art.info.show();\n }\n },\n {\n text: i18n.get('About author'),\n link: 'https://github.com/zhw2590582'\n },\n {\n text: 'ArtPlayer __VERSION__',\n link: 'https://github.com/zhw2590582/artplayer'\n },\n {\n text: i18n.get('Close'),\n click: () => {\n this.hide();\n }\n }\n );\n\n proxy(refs.$container, 'contextmenu', event => {\n event.preventDefault();\n this.art.focus = true;\n if (!refs.$contextmenu) {\n this.creatMenu();\n }\n this.show();\n this.setPos(event);\n });\n\n proxy(refs.$container, 'click', event => {\n if (refs.$contextmenu && !event.path.includes(refs.$contextmenu)) {\n this.hide();\n }\n });\n }\n\n creatMenu() {\n const {\n option,\n refs,\n events: { proxy }\n } = this.art;\n refs.$contextmenu = document.createElement('div');\n refs.$contextmenu.classList.add('artplayer-contextmenu');\n option.contextmenu.forEach(item => {\n const $menu = document.createElement('a');\n $menu.innerHTML = item.text;\n $menu.classList.add('art-menu');\n if (item.link) {\n $menu.target = '_blank';\n $menu.href = item.link;\n } else if (item.click) {\n $menu.href = '#';\n proxy($menu, 'click', event => {\n event.preventDefault();\n item.click(this.art, event);\n this.hide();\n });\n }\n append(refs.$contextmenu, $menu);\n });\n append(refs.$wrap, refs.$contextmenu);\n }\n\n setPos(event) {\n const { refs } = this.art;\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = refs.$container.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = refs.$contextmenu.getBoundingClientRect();\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n refs.$contextmenu.style.left = `${menuLeft}px`;\n refs.$contextmenu.style.top = `${menuTop}px`;\n }\n\n hide() {\n const { refs: { $contextmenu } } = this.art;\n if ($contextmenu) {\n $contextmenu.style.display = 'none';\n this.art.emit('contextmenu:hide', $contextmenu);\n }\n }\n\n show() {\n const { refs: { $contextmenu } } = this.art;\n if ($contextmenu) {\n $contextmenu.style.display = 'block';\n this.art.emit('contextmenu:show', $contextmenu);\n }\n }\n}\n","export default class Danmu {\n constructor(art) {\n this.art = art;\n }\n}\n","export default class Info {\n constructor(art) {\n this.art = art;\n }\n\n show() {\n console.log('info show');\n }\n\n hide() {\n console.log('info hide');\n }\n}\n","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","import { errorHandle, getExt, setStyle } from './utils';\n\nexport default class Subtitle {\n constructor(art) {\n this.art = art;\n if (this.art.option.subtitle) {\n errorHandle(\n getExt(this.art.option.subtitle.url) === 'vtt',\n `'url' option require 'vtt' format, but got '${getExt(this.art.option.subtitle.url)}'.`\n );\n this.init();\n }\n }\n\n init() {\n const {\n events: { proxy },\n option: { subtitle },\n refs: { $video, $subtitle }\n } = this.art;\n\n setStyle($subtitle, subtitle.style || {});\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\n $track.src = subtitle.url;\n $video.appendChild($track);\n this.art.refs.$track = $track;\n\n if ($video.textTracks && $video.textTracks[0]) {\n const [track] = $video.textTracks;\n proxy(track, 'cuechange', () => {\n const [cue] = track.activeCues;\n $subtitle.innerHTML = '';\n if (cue) {\n const template = document.createElement('div');\n template.appendChild(cue.getCueAsHTML());\n $subtitle.innerHTML = template.innerHTML\n .split(/\\r?\\n/)\n .map(item => `

${item}

`)\n .join('');\n }\n this.art.emit('subtitle:update', $subtitle);\n });\n }\n }\n\n show() {\n const { $subtitle } = this.art.refs;\n $subtitle.style.display = 'block';\n this.art.emit('subtitle:show', $subtitle);\n }\n\n hide() {\n const { $subtitle } = this.art.refs;\n $subtitle.style.display = 'none';\n this.art.emit('subtitle:hide', $subtitle);\n }\n\n switch(url) {\n const { $track } = this.art.refs;\n errorHandle(\n getExt(url) === 'vtt',\n `'url' option require 'vtt' format, but got '${getExt(url)}'.`\n );\n errorHandle(\n $track,\n 'You need to initialize the subtitle option first.'\n );\n $track.src = url;\n this.art.emit('subtitle:switch', url);\n }\n}\n","export default class Events {\n constructor(art) {\n this.art = art;\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n }\n\n proxy(target, name, callback, option = {}) {\n target.addEventListener(name, callback, option);\n this.destroyEvents.push(() => {\n target.removeEventListener(name, callback, option);\n });\n }\n\n destroy() {\n this.destroyEvents.forEach(event => event());\n }\n}\n","export default class Hotkey {\n constructor(art) {\n this.art = art;\n if (this.art.option.hotkey) {\n this.init();\n }\n }\n\n init() {\n const {\n player,\n notice,\n i18n,\n refs: { $container },\n events: { proxy }\n } = this.art;\n\n proxy(document, 'click', event => {\n this.art.focus = event.path.indexOf($container) > -1;\n });\n\n proxy(window, 'keydown', event => {\n if (this.art.focus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (\n tag !== 'INPUT' &&\n tag !== 'TEXTAREA' &&\n editable !== '' &&\n editable !== 'true'\n ) {\n let percentage;\n switch (event.keyCode) {\n case 39:\n event.preventDefault();\n player.seek(player.currentTime() + 10);\n notice.show(i18n.get('Fast forward 10 seconds'), true);\n break;\n case 37:\n event.preventDefault();\n player.seek(player.currentTime() - 10);\n notice.show(i18n.get('Rewind 10 seconds'), true);\n break;\n case 38:\n event.preventDefault();\n percentage = player.volume() + 0.1;\n player.volume(percentage);\n notice.show(i18n.get('10% increase in volume'), true);\n break;\n case 40:\n event.preventDefault();\n percentage = player.volume() - 0.1;\n player.volume(percentage);\n notice.show(i18n.get('10% reduction in volume'), true);\n break;\n case 32:\n event.preventDefault();\n player.toggle();\n break;\n default:\n break;\n }\n }\n }\n });\n }\n}\n","import { append, setStyle } from './utils';\n\nlet id = 0;\nexport default class Layers {\n constructor(art) {\n this.art = art;\n this.add = this.add.bind(this);\n this.art.option.layers.forEach(this.add);\n this.init();\n }\n\n init() {\n const { refs, player, events: { proxy } } = this.art;\n proxy(refs.$layers, 'click', event => {\n if (event.path[0] === refs.$layers) {\n player.pause();\n }\n });\n }\n\n add(option, callback) {\n const { refs } = this.art;\n id++;\n\n const $layer = document.createElement('div');\n $layer.setAttribute('data-art-layer-id', id);\n $layer.setAttribute('class', `art-layer art-layer-${option.name || id}`);\n $layer.style.zIndex = option.index || id;\n append($layer, option.html);\n setStyle($layer, option.style || {});\n refs.$layers.appendChild($layer);\n this.art.emit('layers:add', $layer);\n callback && callback($layer);\n }\n\n show() {\n const { $layers } = this.art.refs;\n $layers.style.display = 'block';\n this.art.emit('layers:show', $layers);\n }\n\n hide() {\n const { $layers } = this.art.refs;\n $layers.style.display = 'none';\n this.art.emit('layers:hide', $layers);\n }\n}\n","import loading from './loading.svg';\nimport play from './play.svg';\n\nconst icons = {\n loading,\n play\n};\n\nfunction creatDomFromSvg(map) {\n const result = {};\n Object.keys(map).forEach(name => {\n const tmp = document.createElement('div');\n tmp.innerHTML = `${map[name]}`;\n [result[name]] = tmp.childNodes;\n });\n return result;\n}\n\nexport default creatDomFromSvg(icons);\n","import icons from './icons';\nimport { append } from './utils';\n\nexport default class Loading {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { option, refs: { $loading } } = this.art;\n append($loading, option.loading || icons.loading);\n }\n\n hide() {\n const { $loading } = this.art.refs;\n $loading.style.display = 'none';\n this.art.emit('loading:hide', $loading);\n }\n\n show() {\n const { $loading } = this.art.refs;\n $loading.style.display = 'flex';\n this.art.emit('loading:show', $loading);\n }\n}\n","export default class Notice {\n constructor(art) {\n this.art = art;\n this.timer = null;\n }\n\n show(msg, autoHide) {\n const { $notice } = this.art.refs;\n $notice.style.display = 'block';\n $notice.innerHTML = msg instanceof Error ? msg.message.trim() : msg;\n if (autoHide) {\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.hide();\n }, 1000);\n }\n this.art.emit('notice:show', $notice);\n }\n\n hide() {\n const { $notice } = this.art.refs;\n $notice.style.display = 'none';\n this.art.emit('notice:hide', $notice);\n }\n}\n","import icons from './icons';\nimport { append } from './utils';\n\nexport default class Mask {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const {\n player,\n option,\n refs,\n events: { proxy }\n } = this.art;\n\n icons.play.style.backgroundColor = option.theme;\n append(refs.$mask, icons.play);\n\n proxy(refs.$mask, 'click', () => {\n player.play();\n this.hide();\n });\n }\n\n show() {\n const { $mask } = this.art.refs;\n $mask.style.display = 'flex';\n this.art.emit('mask:show', $mask);\n }\n\n hide() {\n const { $mask } = this.art.refs;\n $mask.style.display = 'none';\n this.art.emit('mask:show', $mask);\n }\n}\n","import './style/index.scss';\nimport 'balloon-css/balloon.min.css';\nimport validOption from './verification/player';\nimport config from './config';\nimport Emitter from 'tiny-emitter';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Mse from './mse';\nimport Controls from './controls';\nimport Contextmenu from './contextmenu';\nimport Danmu from './danmu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layers from './layers';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\n\nlet id = 0;\nexport const instances = [];\n\nclass Artplayer extends Emitter {\n constructor(option) {\n super();\n this.emit('init:start');\n this.option = Object.assign({}, Artplayer.DEFAULTS, option);\n validOption(this.option);\n this.init();\n this.emit('init:end');\n }\n\n static get version() {\n return '__VERSION__';\n }\n\n static get config() {\n return config;\n }\n\n static get DEFAULTS() {\n return {\n container: '.artplayer',\n url: '',\n poster: '',\n volume: 0.7,\n autoplay: false,\n preload: 'auto',\n type: '',\n mimeCodec: '',\n layers: [],\n contextmenu: [],\n loading: '',\n theme: '#1aafff',\n hotkey: true,\n subtitle: {\n url: '',\n style: {}\n },\n controls: [],\n lang: navigator.language.toLowerCase()\n };\n }\n\n static use(plugin) {\n const installedPlugins = this.plugins || (this.plugins = []);\n if (installedPlugins.indexOf(plugin) > -1) {\n return this;\n }\n\n const args = Array.from(arguments).slice(1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this;\n }\n\n init() {\n this.focus = false;\n this.playing = false;\n this.refs = {};\n\n if (this.option.container instanceof Element) {\n this.refs.$container = this.option.container;\n } else {\n this.refs.$container = document.querySelector(this.option.container);\n }\n\n this.template = new Template(this);\n this.i18n = new I18n(this);\n this.events = new Events(this);\n this.player = new Player(this);\n // this.mse = new Mse(this);\n this.layers = new Layers(this);\n this.controls = new Controls(this);\n this.contextmenu = new Contextmenu(this);\n this.danmu = new Danmu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.notice = new Notice(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n\n this.id = id++;\n instances.push(this);\n return this;\n }\n\n destroy() {\n this.events.destroy();\n this.refs.$container.innerHTML = '';\n instances.splice(instances.indexOf(this), 1);\n this.emit('destroy');\n }\n}\n\nwindow.Artplayer = Artplayer;\nexport default Artplayer;\n"],"names":["_typeof","ArtPlayerError","message","context","Error","captureStackTrace","constructor","name","errorHandle","condition","msg","clamp","num","a","b","Math","max","min","request","url","fetch","then","response","arrayBuffer","catch","err","getExt","includes","split","trim","toLowerCase","pop","append","parent","child","Element","appendChild","innerHTML","setStyle","element","styles","Object","keys","forEach","key","style","validOption","option","container","poster","volume","autoplay","indexOf","preload","lang","type","mimeCodec","Array","isArray","layers","contextmenu","loading","theme","hotkey","prototype","toString","call","subtitle","controls","mp4","webm","ts","mediaSource","propertys","methods","events","sourceBuffer","sourceBufferList","mse","video","Template","art","init","refs","$container","$wrap","querySelector","$video","$subtitle","$bottom","$progress","$controls","$controlsLeft","$controlsRight","$layers","$loading","$notice","$mask","i18nMap","I18n","language","Player","eventBind","src","proxy","config","eventName","event","emit","on","show","hide","mask","promise","play","undefined","console","warn","playing","pause","time","newTime","duration","currentTime","percentage","rate","playbackRate","Mse","setMimeCodec","eventStart","repeat","maxRepeat","MediaSource","isTypeSupported","URL","createObjectURL","destroyEvents","push","revokeObjectURL","sourceBuffers","activeSourceBuffers","addSourceBuffer","endOfStream","fetchUrl","notice","i18n","appendBuffer","get","validControl","control","disable","html","position","index","Danmu","Fullscreen","Highlight","Pip","PlayAndPause","Progress","Screenshot","Subtitle","Time","Volume","Setting","id","Controls","$map","top","left","right","mount","add","tooltip","item","$control","document","createElement","setAttribute","String","ref","commonMethod","$list","sort","Number","dataset","controlIndex","defineProperty","value","display","menus","log","classList","remove","Contextmenu","text","click","info","link","preventDefault","focus","$contextmenu","creatMenu","setPos","path","$menu","target","href","mouseX","clientX","mouseY","clientY","getBoundingClientRect","cHeight","height","cWidth","width","cLeft","cTop","mHeight","mWidth","menuLeft","menuTop","Info","$track","default","kind","textTracks","track","activeCues","cue","template","getCueAsHTML","map","join","Events","bind","callback","addEventListener","removeEventListener","Hotkey","player","window","tag","activeElement","tagName","toUpperCase","editable","getAttribute","keyCode","seek","toggle","Layers","$layer","zIndex","icons","creatDomFromSvg","result","tmp","childNodes","Loading","Notice","timer","autoHide","clearTimeout","setTimeout","Mask","backgroundColor","instances","Artplayer","assign","DEFAULTS","danmu","destroy","splice","plugin","installedPlugins","plugins","args","from","arguments","slice","unshift","install","apply","navigator","Emitter"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index a61758b24..7e218b3f2 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "rollup-plugin-uglify": "^6.0.0" }, "dependencies": { + "balloon-css": "^0.5.0", "tiny-emitter": "^2.0.2" } } diff --git a/src/controls/danmu.js b/src/controls/danmu.js index 509789a66..60d52c5db 100644 --- a/src/controls/danmu.js +++ b/src/controls/danmu.js @@ -1,5 +1,6 @@ export default class Danmu { - constructor(art) { + constructor(art, option) { this.art = art; + this.option = option; } } diff --git a/src/controls/fullscreen.js b/src/controls/fullscreen.js index 19c8757a9..0a7160298 100644 --- a/src/controls/fullscreen.js +++ b/src/controls/fullscreen.js @@ -1,5 +1,6 @@ export default class Fullscreen { - constructor(art) { + constructor(art, option) { this.art = art; + this.option = option; } } diff --git a/src/controls/highlight.js b/src/controls/highlight.js index 4447d12be..1854a5c70 100644 --- a/src/controls/highlight.js +++ b/src/controls/highlight.js @@ -1,5 +1,6 @@ export default class Highlight { - constructor(art) { + constructor(art, option) { this.art = art; + this.option = option; } } diff --git a/src/controls/index.js b/src/controls/index.js index eaf35307e..d3982cd09 100644 --- a/src/controls/index.js +++ b/src/controls/index.js @@ -1,5 +1,5 @@ -import { append } from '../utils'; -import validControl from '../utils/validControl'; +import { append, setStyle } from '../utils'; +import validControl from '../verification/control'; import Danmu from './danmu'; import Fullscreen from './fullscreen'; import Highlight from './highlight'; @@ -16,18 +16,45 @@ let id = 0; export default class Controls { constructor(art) { this.art = art; + this.$map = { + top: [], + left: [], + right: [] + }; this.init(); + this.mount(); } init() { - this.progress = new Progress(this.art); - this.highlight = new Highlight(this.art); - this.screenshot = new Screenshot(this.art); + this.add({ + control: Progress, + disable: false, + html: 'Progress', + position: 'top', + index: 0 + }); + + this.add({ + control: Highlight, + disable: false, + html: 'Highlight', + position: 'top', + index: 10 + }); + + this.add({ + control: Screenshot, + disable: false, + html: 'Screenshot', + position: 'top', + index: 20 + }); this.add({ control: PlayAndPause, disable: false, - icon: 'PlayAndPause', + html: 'PlayAndPause', + tooltip: 'PlayAndPause', position: 'left', index: 0 }); @@ -35,7 +62,8 @@ export default class Controls { this.add({ control: Volume, disable: false, - icon: 'Volume', + html: 'Volume', + tooltip: 'Volume', position: 'left', index: 10 }); @@ -43,7 +71,8 @@ export default class Controls { this.add({ control: Time, disable: false, - icon: 'Time', + html: 'Time', + tooltip: 'Volume', position: 'left', index: 20 }); @@ -51,7 +80,8 @@ export default class Controls { this.add({ control: Danmu, disable: false, - icon: 'Danmu', + html: 'Danmu', + tooltip: 'Danmu', position: 'right', index: 0 }); @@ -59,7 +89,8 @@ export default class Controls { this.add({ control: Subtitle, disable: false, - icon: 'Subtitle', + html: 'Subtitle', + tooltip: 'Subtitle', position: 'right', index: 10 }); @@ -67,7 +98,8 @@ export default class Controls { this.add({ control: Setting, disable: false, - icon: 'Setting', + html: 'Setting', + tooltip: 'Setting', position: 'right', index: 20 }); @@ -75,7 +107,8 @@ export default class Controls { this.add({ control: Pip, disable: false, - icon: 'Pip', + html: 'Pip', + tooltip: 'Pip', position: 'right', index: 30 }); @@ -83,7 +116,8 @@ export default class Controls { this.add({ control: Fullscreen, disable: false, - icon: 'Fullscreen', + html: 'Fullscreen', + tooltip: 'Fullscreen', position: 'right', index: 40 }); @@ -95,25 +129,69 @@ export default class Controls { add(option) { validControl(option); - const { $progress, $controlsLeft, $controlsRight } = this.art.refs; if (!option.disable) { id++; const name = option.control.name.toLowerCase() || `control${id}`; const $control = document.createElement('div'); $control.setAttribute('class', `art-control art-control-${name}`); - $control.setAttribute('data-control-index', option.index || id); - append($control, option.icon); - this[name] = new option.control(this.art); - this[name].ref = $control; - this[name].show = function show() { - $control.style.display = 'inline-block'; - }; - this[name].hide = function show() { - $control.style.display = 'none'; - }; + $control.setAttribute('data-control-index', String(option.index) || id); + setStyle($control, option.style || {}); + append($control, option.html); + option.ref = $control; + this.commonMethod(option); + this[name] = new option.control(this.art, option); + this.$map[option.position].push($control); } } + mount() { + const { $progress, $controlsLeft, $controlsRight } = this.art.refs; + Object.keys(this.$map).forEach(key => { + const $list = this.$map[key].sort( + (a, b) => + Number(a.dataset.controlIndex) - Number(b.dataset.controlIndex) + ); + + $list.forEach($control => { + switch (key) { + case 'top': + $progress.appendChild($control); + break; + case 'left': + $controlsLeft.appendChild($control); + break; + case 'right': + $controlsRight.appendChild($control); + break; + default: + break; + } + }); + }); + } + + commonMethod(option) { + Object.defineProperty(option.control.prototype, 'hide', { + value: () => { + option.ref.style.display = 'none'; + this.art.emit('control:hide', option.ref); + } + }); + + Object.defineProperty(option.control.prototype, 'show', { + value: () => { + option.ref.style.display = option.position === 'top' ? 'block' : 'inline-block'; + this.art.emit('control:show', option.ref); + } + }); + + Object.defineProperty(option.control.prototype, 'addMenu', { + value: (menus) => { + console.log(menus); + } + }); + } + show() { const { $wrap } = this.art.refs; $wrap.classList.add('controls-show'); diff --git a/src/controls/pip.js b/src/controls/pip.js index f6ffda866..5896941c3 100644 --- a/src/controls/pip.js +++ b/src/controls/pip.js @@ -1,5 +1,6 @@ export default class Pip { - constructor(art) { + constructor(art, option) { this.art = art; + this.option = option; } } diff --git a/src/controls/playAndPause.js b/src/controls/playAndPause.js index 40e03f6e9..9f6d126ba 100644 --- a/src/controls/playAndPause.js +++ b/src/controls/playAndPause.js @@ -1,5 +1,6 @@ export default class PlayAndPause { - constructor(art) { + constructor(art, option) { this.art = art; + this.option = option; } } diff --git a/src/controls/progress.js b/src/controls/progress.js index faf2e923a..96b111199 100644 --- a/src/controls/progress.js +++ b/src/controls/progress.js @@ -1,5 +1,6 @@ export default class Progress { - constructor(art) { + constructor(art, option) { this.art = art; + this.option = option; } } diff --git a/src/controls/screenshot.js b/src/controls/screenshot.js index 580ca64b8..f15006364 100644 --- a/src/controls/screenshot.js +++ b/src/controls/screenshot.js @@ -1,5 +1,6 @@ export default class Screenshot { - constructor(art) { + constructor(art, option) { this.art = art; + this.option = option; } } diff --git a/src/controls/setting.js b/src/controls/setting.js index 32a654249..dbfe052bc 100644 --- a/src/controls/setting.js +++ b/src/controls/setting.js @@ -1,5 +1,6 @@ export default class Setting { - constructor(art) { + constructor(art, option) { this.art = art; + this.option = option; } } diff --git a/src/controls/subtitle.js b/src/controls/subtitle.js index 6eda80696..ba319063e 100644 --- a/src/controls/subtitle.js +++ b/src/controls/subtitle.js @@ -1,5 +1,6 @@ export default class Subtitle { - constructor(art) { + constructor(art, option) { this.art = art; + this.option = option; } } diff --git a/src/controls/time.js b/src/controls/time.js index 3710d5aca..186c9fa07 100644 --- a/src/controls/time.js +++ b/src/controls/time.js @@ -1,5 +1,6 @@ export default class Time { - constructor(art) { + constructor(art, option) { this.art = art; + this.option = option; } } diff --git a/src/controls/volume.js b/src/controls/volume.js index e1ed19120..85f68810b 100644 --- a/src/controls/volume.js +++ b/src/controls/volume.js @@ -1,5 +1,6 @@ export default class Volume { - constructor(art) { + constructor(art, option) { this.art = art; + this.option = option; } } diff --git a/src/index.js b/src/index.js index 4dcc10108..bf2d05d09 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,6 @@ import './style/index.scss'; -import validOption from './utils/validOption'; +import 'balloon-css/balloon.min.css'; +import validOption from './verification/player'; import config from './config'; import Emitter from 'tiny-emitter'; import Template from './template'; @@ -41,7 +42,7 @@ class Artplayer extends Emitter { static get DEFAULTS() { return { - container: document.querySelector('.artplayer'), + container: '.artplayer', url: '', poster: '', volume: 0.7, @@ -54,8 +55,10 @@ class Artplayer extends Emitter { loading: '', theme: '#1aafff', hotkey: true, - subtitle: '', - subtitleStyle: {}, + subtitle: { + url: '', + style: {} + }, controls: [], lang: navigator.language.toLowerCase() }; diff --git a/src/subtitle.js b/src/subtitle.js index c8a6fd757..a934988de 100644 --- a/src/subtitle.js +++ b/src/subtitle.js @@ -5,8 +5,8 @@ export default class Subtitle { this.art = art; if (this.art.option.subtitle) { errorHandle( - getExt(this.art.option.subtitle) === 'vtt', - `'subtitle' option require 'vtt' format, but got '${getExt(this.art.option.subtitle)}'.` + getExt(this.art.option.subtitle.url) === 'vtt', + `'url' option require 'vtt' format, but got '${getExt(this.art.option.subtitle.url)}'.` ); this.init(); } @@ -15,15 +15,15 @@ export default class Subtitle { init() { const { events: { proxy }, - option: { subtitle, subtitleStyle }, + option: { subtitle }, refs: { $video, $subtitle } } = this.art; - setStyle($subtitle, subtitleStyle); + setStyle($subtitle, subtitle.style || {}); const $track = document.createElement('track'); $track.default = true; $track.kind = 'metadata'; - $track.src = subtitle; + $track.src = subtitle.url; $video.appendChild($track); this.art.refs.$track = $track; diff --git a/src/utils/validControl.js b/src/verification/control.js similarity index 77% rename from src/utils/validControl.js rename to src/verification/control.js index a39dbede1..fd3b0a1ac 100644 --- a/src/utils/validControl.js +++ b/src/verification/control.js @@ -1,4 +1,4 @@ -import { errorHandle } from '.'; +import { errorHandle } from '../utils'; export default function validControl(option) { errorHandle( @@ -12,8 +12,8 @@ export default function validControl(option) { ); errorHandle( - typeof option.icon === 'string' || option.icon instanceof Element, - `'icon' option require 'string' or 'Element' type, but got '${typeof option.icon}'.` + typeof option.html === 'string' || option.html instanceof Element, + `'html' option require 'string' or 'Element' type, but got '${typeof option.html}'.` ); errorHandle( diff --git a/src/utils/validOption.js b/src/verification/player.js similarity index 88% rename from src/utils/validOption.js rename to src/verification/player.js index 89127bb17..34e52de37 100644 --- a/src/utils/validOption.js +++ b/src/verification/player.js @@ -1,4 +1,4 @@ -import { errorHandle } from '.'; +import { errorHandle } from '../utils'; export default function validOption(option) { errorHandle( @@ -82,12 +82,12 @@ export default function validOption(option) { ); errorHandle( - typeof option.subtitle === 'string', - `'subtitle' option require 'string' type, but got '${typeof option.subtitle}'.` + Object.prototype.toString.call(option.subtitle) === '[object Object]', + `'subtitle' option require 'object' type, but got '${typeof option.subtitle}'.` ); errorHandle( - Object.prototype.toString.call(option.subtitleStyle) === '[object Object]', - `'subtitleStyle' option require 'object' type, but got '${typeof option.subtitleStyle}'.` + Array.isArray(option.controls), + `'controls' option require 'array' type, but got '${typeof option.controls}'.` ); }