From 504d5b395401abe59f5cd4b97d665bd82f271b32 Mon Sep 17 00:00:00 2001 From: Harvey Zack Date: Wed, 31 Oct 2018 16:32:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=94=BB=E8=B4=A8=E9=80=89?= =?UTF-8?q?=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/index.html | 11 +++++++++++ docs/js/artplayer.js | 41 ++++++++++++++++++++++++++++++++++++---- docs/js/artplayer.js.map | 2 +- src/controls/index.js | 15 +++++++++++---- src/controls/quality.js | 9 +++++++++ src/index.js | 1 + src/scheme/index.js | 8 ++++++++ 7 files changed, 78 insertions(+), 9 deletions(-) create mode 100644 src/controls/quality.js diff --git a/docs/index.html b/docs/index.html index 103e9f2a3..3293fec1e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -37,6 +37,17 @@ width: 190, height: 107 }, + quality: [ + { + default: true, + name: '高清 720P', + url: './video/one-more-time-one-more-chance.mp4' + }, + { + name: '高清 1080P', + url: './video/one-more-time-one-more-chance.mp4' + } + ], highlight: [ { time: 60, diff --git a/docs/js/artplayer.js b/docs/js/artplayer.js index fc3e8e507..4aa555cbe 100644 --- a/docs/js/artplayer.js +++ b/docs/js/artplayer.js @@ -679,6 +679,14 @@ click: 'function' } }, + quality: { + type: 'array', + child: { + default: 'boolean', + name: 'string', + url: 'string' + } + }, loading: 'string', theme: 'string', hotkey: 'boolean', @@ -1935,6 +1943,25 @@ return Screenshot; }(); + var Quality = + /*#__PURE__*/ + function () { + function Quality(option) { + classCallCheck(this, Quality); + + this.option = option; + } + + createClass(Quality, [{ + key: "apply", + value: function apply(art) { + this.art = art; + } + }]); + + return Quality; + }(); + var id = 0; var Controls = @@ -1999,21 +2026,26 @@ position: 'right', index: 30 })); - this.add(new Setting({ - disable: false, + this.add(new Quality({ + disable: this.art.option.quality.length === 0, position: 'right', index: 40 })); - this.add(new Pip({ + this.add(new Setting({ disable: false, position: 'right', index: 50 })); - this.add(new Fullscreen({ + this.add(new Pip({ disable: false, position: 'right', index: 60 })); + this.add(new Fullscreen({ + disable: false, + position: 'right', + index: 70 + })); this.art.option.controls.forEach(function (item) { _this2.add(item); }); @@ -2957,6 +2989,7 @@ mimeCodec: '', layers: [], contextmenu: [], + quality: [], loading: '', theme: '#f00', hotkey: true, diff --git a/docs/js/artplayer.js.map b/docs/js/artplayer.js.map index 39487cd17..45ee01e4a 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/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/construct.js","../../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArray.js","../../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../../node_modules/@babel/runtime/helpers/toConsumableArray.js","../../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/inherits.js","../../node_modules/@babel/runtime/helpers/defineProperty.js","../../node_modules/@babel/runtime/helpers/objectSpread.js","../../node_modules/@babel/runtime/helpers/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../../src/utils/index.js","../../node_modules/kind-of/index.js","../../node_modules/option-validator/index.js","../../src/scheme/validElement.js","../../src/scheme/index.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/controls/danmu.js","../../src/controls/fullscreen.js","../../src/controls/pip.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/icons/index.js","../../src/controls/playAndPause.js","../../src/controls/progress.js","../../src/controls/subtitle.js","../../src/controls/time.js","../../src/controls/volume.js","../../src/controls/setting.js","../../src/controls/thumbnails.js","../../src/controls/screenshot.js","../../src/controls/index.js","../../src/contextmenu.js","../../src/danmu.js","../../src/info.js","../../src/subtitle.js","../../src/events.js","../../src/hotkey.js","../../src/layers.js","../../src/loading.js","../../src/notice.js","../../src/mask.js","../../src/index.js"],"sourcesContent":["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 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;","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","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;","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 _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","var defineProperty = require(\"./defineProperty\");\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","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 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\nexport function errorHandle(condition, msg) {\n const isFun = typeof condition === 'function';\n if (isFun ? !isFun() : !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 getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\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\nexport function append(parent, child) {\n if (child instanceof Element) {\n parent.appendChild(child);\n } else {\n parent.insertAdjacentHTML('beforeend', child);\n }\n return parent.lastElementChild;\n}\n\nexport function setStyle(element, key, value) {\n element.style[key] = value;\n return element;\n}\n\nexport function setStyles(element, styles) {\n Object.keys(styles).forEach(key => {\n setStyle(element, key, styles[key]);\n });\n return element;\n}\n\nexport function secondToTime(second) {\n const add0 = num => num < 10 ? `0${num}` : String(num);\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n\nexport function deepMerge(...sources) {\n const isObject = value => value !== null && typeof value === 'object';\n let returnValue = {};\n for (const source of sources) {\n if (Array.isArray(source)) {\n if (!Array.isArray(returnValue)) {\n returnValue = [];\n }\n returnValue = [...returnValue, ...source];\n } else if (isObject(source)) {\n if (source instanceof Element) {\n return source;\n }\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n let value = source[key];\n if (isObject(value) && key in returnValue) {\n value = deepMerge(returnValue[key], value);\n }\n returnValue = { ...returnValue, [key]: value };\n }\n }\n }\n }\n return returnValue;\n}\n\nexport function getStorage(key) {\n const storage = JSON.parse(localStorage.getItem('artplayer_settings')) || {};\n return key ? storage[key] : storage;\n}\n\nexport function setStorage(key, value) {\n const storage = Object.assign({}, getStorage(), {\n [key]: value\n });\n localStorage.setItem('artplayer_settings', JSON.stringify(storage));\n}\n\nexport function tooltip(target, msg, pos = 'up') {\n target.setAttribute('data-balloon', msg);\n target.setAttribute('data-balloon-pos', pos);\n}\n\nexport function sleep(ms = 0) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nexport function sublings(target) {\n return Array.from(target.parentElement.children).filter(item => item !== target);\n}\n","var toString = Object.prototype.toString;\n\nmodule.exports = function kindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n\n var type = typeof val;\n if (type === 'boolean') return 'boolean';\n if (type === 'string') return 'string';\n if (type === 'number') return 'number';\n if (type === 'symbol') return 'symbol';\n if (type === 'function') {\n return isGeneratorFn(val) ? 'generatorfunction' : 'function';\n }\n\n if (isArray(val)) return 'array';\n if (isBuffer(val)) return 'buffer';\n if (isArguments(val)) return 'arguments';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n if (isRegexp(val)) return 'regexp';\n\n switch (ctorName(val)) {\n case 'Symbol': return 'symbol';\n case 'Promise': return 'promise';\n\n // Set, Map, WeakSet, WeakMap\n case 'WeakMap': return 'weakmap';\n case 'WeakSet': return 'weakset';\n case 'Map': return 'map';\n case 'Set': return 'set';\n\n // 8-bit typed arrays\n case 'Int8Array': return 'int8array';\n case 'Uint8Array': return 'uint8array';\n case 'Uint8ClampedArray': return 'uint8clampedarray';\n\n // 16-bit typed arrays\n case 'Int16Array': return 'int16array';\n case 'Uint16Array': return 'uint16array';\n\n // 32-bit typed arrays\n case 'Int32Array': return 'int32array';\n case 'Uint32Array': return 'uint32array';\n case 'Float32Array': return 'float32array';\n case 'Float64Array': return 'float64array';\n }\n\n if (isGeneratorObj(val)) {\n return 'generator';\n }\n\n // Non-plain objects\n type = toString.call(val);\n switch (type) {\n case '[object Object]': return 'object';\n // iterators\n case '[object Map Iterator]': return 'mapiterator';\n case '[object Set Iterator]': return 'setiterator';\n case '[object String Iterator]': return 'stringiterator';\n case '[object Array Iterator]': return 'arrayiterator';\n }\n\n // other\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n};\n\nfunction ctorName(val) {\n return val.constructor ? val.constructor.name : null;\n}\n\nfunction isArray(val) {\n if (Array.isArray) return Array.isArray(val);\n return val instanceof Array;\n}\n\nfunction isError(val) {\n return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number');\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function'\n && typeof val.getDate === 'function'\n && typeof val.setDate === 'function';\n}\n\nfunction isRegexp(val) {\n if (val instanceof RegExp) return true;\n return typeof val.flags === 'string'\n && typeof val.ignoreCase === 'boolean'\n && typeof val.multiline === 'boolean'\n && typeof val.global === 'boolean';\n}\n\nfunction isGeneratorFn(name, val) {\n return ctorName(name) === 'GeneratorFunction';\n}\n\nfunction isGeneratorObj(val) {\n return typeof val.throw === 'function'\n && typeof val.return === 'function'\n && typeof val.next === 'function';\n}\n\nfunction isArguments(val) {\n try {\n if (typeof val.length === 'number' && typeof val.callee === 'function') {\n return true;\n }\n } catch (err) {\n if (err.message.indexOf('callee') !== -1) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * If you need to support Safari 5-7 (8-10 yr-old browser),\n * take a look at https://github.com/feross/is-buffer\n */\n\nfunction isBuffer(val) {\n if (val.constructor && typeof val.constructor.isBuffer === 'function') {\n return val.constructor.isBuffer(val);\n }\n return false;\n}\n","import kindOf from 'kind-of';\n\nexport default function optionValidator(option, scheme, paths = ['option']) {\n checkType(option, scheme, paths);\n checkValidator(option, scheme, paths);\n checkChild(option, scheme, paths);\n\n for (const key in scheme) {\n if (scheme.hasOwnProperty(key)) {\n const optionValue = option[key];\n const schemeValue = scheme[key];\n const currentPath = paths.concat(key);\n if (checkRequired(option, key, schemeValue, currentPath)) continue;\n checkType(optionValue, schemeValue, currentPath);\n checkValidator(optionValue, schemeValue, currentPath);\n checkChild(optionValue, schemeValue, currentPath);\n }\n }\n}\n\nfunction checkRequired(option, key, schemeValue, paths) {\n if (!Object.prototype.hasOwnProperty.call(option, key)) {\n if (schemeValue.__required__ === true || schemeValue.required === true) {\n throw new TypeError(`'${paths.join('.')}' is required`);\n } else {\n return true;\n }\n }\n}\n\nfunction checkType(optionValue, schemeValue, paths) {\n let schemeType;\n if (kindOf(schemeValue) === 'string') {\n schemeType = schemeValue;\n } else if (schemeValue.__type__) {\n schemeType = schemeValue.__type__;\n } else if (schemeValue.type) {\n schemeType = schemeValue.type;\n }\n\n if (schemeType && kindOf(schemeType) === 'string') {\n schemeType = schemeType.trim().toLowerCase();\n const optionType = kindOf(optionValue);\n if (optionType !== schemeType) {\n throw new TypeError(`'${paths.join('.')}' require '${schemeType}' type, but got '${optionType}'`);\n }\n }\n}\n\nfunction checkValidator(optionValue, schemeValue, paths) {\n let schemeValidator;\n if (schemeValue.___validator__) {\n schemeValidator = schemeValue.___validator__;\n } else if (schemeValue.validator) {\n schemeValidator = schemeValue.validator;\n }\n\n if (kindOf(schemeValidator) === 'function') {\n const optionType = kindOf(optionValue);\n const resule = schemeValidator(paths, optionValue, optionType);\n if (resule !== true) {\n throw new TypeError(`The scheme for '${paths.join('.')}' validator function require return true, but got '${resule}'`);\n }\n }\n}\n\nfunction checkChild(optionValue, schemeValue, paths) {\n let schemeChild;\n if (schemeValue.___child__) {\n schemeChild = schemeValue.___child__;\n } else if (schemeValue.child) {\n schemeChild = schemeValue.child;\n }\n\n if (kindOf(schemeChild) === 'object') {\n const optionType = kindOf(optionValue);\n if (optionType === 'object') {\n optionValidator(optionValue, schemeChild, paths);\n } else if (optionType === 'array') {\n optionValue.forEach((item, index) => {\n optionValidator(item, schemeChild, paths.concat(index));\n });\n }\n }\n}\n\n","import { ArtPlayerError } from '../utils';\n\nexport default function validElement(paths, value, type) {\n if (type === 'string') {\n if (value.trim() === '') {\n throw new ArtPlayerError(`${paths.join('.')} can not be empty'`);\n } else {\n return true;\n }\n }\n\n if (value instanceof Element) {\n return true;\n }\n\n throw new ArtPlayerError(`${paths.join('.')} require 'string' or 'Element' type, but got '${type}'`);\n}\n","import validElement from './validElement';\n\nexport default {\n container: {\n validator: validElement,\n required: true\n },\n url: {\n type: 'string',\n required: true\n },\n volume: 'number',\n thumbnails: {\n type: 'object',\n child: {\n url: 'string',\n number: 'number',\n width: 'number',\n height: 'number',\n column: 'number'\n }\n },\n screenshot: 'boolean',\n autoplay: 'boolean',\n playbackRate: 'boolean',\n aspectRatio: 'boolean',\n loop: 'boolean',\n type: {\n type: 'string'\n },\n mimeCodec: 'string',\n layers: {\n type: 'array',\n child: {\n name: 'string',\n index: 'number',\n html: {\n validator: validElement\n },\n style: 'object'\n }\n },\n contextmenu: {\n type: 'array',\n child: {\n name: 'string',\n html: {\n validator: validElement\n },\n click: 'function'\n }\n },\n loading: 'string',\n theme: 'string',\n hotkey: 'boolean',\n subtitle: {\n type: 'object',\n child: {\n url: 'string',\n style: 'object'\n }\n },\n controls: {\n type: 'array',\n child: {\n option: {\n type: 'object',\n child: {\n disable: 'boolean',\n position: 'boolean',\n index: 'number'\n }\n }\n }\n },\n highlight: {\n type: 'array',\n child: {\n time: 'number',\n text: 'string'\n }\n },\n moreVideoAttr: 'object',\n lang: 'string'\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
\n
\n
[x]
\n
\n
\n `;\n refs.$player = refs.$container.querySelector('.artplayer-video-player');\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.$noticeInner = refs.$container.querySelector('.artplayer-notice-inner');\n refs.$mask = refs.$container.querySelector('.artplayer-mask');\n refs.$info = refs.$container.querySelector('.artplayer-info');\n refs.$infoPanel = refs.$container.querySelector('.artplayer-info-panel');\n refs.$infoClose = refs.$container.querySelector('.artplayer-info-close');\n }\n}\n","let i18nMap = {\n 'zh-cn': {\n 'About author': '关于作者',\n 'Video info': '视频统计信息',\n 'Close': '关闭',\n 'Video load failed': '视频加载失败',\n 'Volume': '音量',\n 'Play': '播放',\n 'Pause': '暂停',\n 'Rate': '速度',\n 'Mute': '静音',\n 'Reconnect': '重新连接',\n 'Hide subtitle': '隐藏字幕',\n 'Show subtitle': '显示字幕',\n 'Screenshot': '截图',\n 'Play speed': '播放速度',\n 'Aspect ratio': '画面比例',\n 'Default': '默认',\n 'Normal': '正常'\n },\n 'zh-tw': {\n 'About author': '關於作者',\n 'Video info': '影片統計訊息',\n 'Close': '關閉',\n 'Video load failed': '影片載入失敗',\n 'Volume': '音量',\n 'Play': '播放',\n 'Pause': '暫停',\n 'Rate': '速度',\n 'Mute': '靜音',\n 'Reconnect': '重新連接',\n 'Hide subtitle': '隱藏字幕',\n 'Show subtitle': '顯示字幕',\n 'Screenshot': '截圖',\n 'Play speed': '播放速度',\n 'Aspect ratio': '畫面比例',\n 'Default': '默認',\n 'Normal': '正常'\n }\n};\n\nexport default class I18n {\n constructor({ option }) {\n this.option = option;\n this.init();\n }\n\n init() {\n this.language = i18nMap[this.option.lang.toLowerCase()] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(callback) {\n i18nMap = callback(i18nMap);\n this.init();\n }\n}\n","import { clamp, secondToTime, setStorage, sleep, setStyle } 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 this.firstCanplay = false;\n this.reconnectTime = 0;\n this.maxReconnectTime = 5;\n }\n\n init() {\n const { option, refs: { $video } } = this.art;\n Object.keys(option.moreVideoAttr).forEach(key => {\n const value = option.moreVideoAttr[key];\n $video[key] = value;\n });\n $video.volume = clamp(option.volume, 0, 1);\n $video.poster = option.poster;\n $video.autoplay = option.autoplay;\n\n // TODO\n $video.src = option.url;\n }\n\n eventBind() {\n const { option, events: { proxy }, refs: { $player, $video }, i18n, notice } = 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:waiting', () => {\n this.art.loading.show();\n });\n\n this.art.on('video:seeking', () => {\n this.art.loading.show();\n });\n\n this.art.on('video:canplay', () => {\n if (!this.firstCanplay) {\n this.firstCanplay = true;\n this.art.emit('firstCanplay');\n }\n\n this.art.controls.show();\n this.art.mask.show();\n this.art.loading.hide();\n if (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.isPlaying = true;\n this.art.controls.hide();\n this.art.mask.hide();\n });\n\n this.art.on('video:pause', () => {\n this.art.isPlaying = false;\n this.art.controls.show();\n this.art.mask.show();\n });\n\n this.art.on('video:ended', () => {\n this.art.isPlaying = false;\n this.art.controls.show();\n this.art.mask.show();\n if (option.loop) {\n this.seek(0);\n this.play();\n }\n });\n\n this.art.on('video:error', () => {\n if (this.reconnectTime < this.maxReconnectTime) {\n sleep(1000).then(() => {\n this.reconnectTime++;\n $video.src = option.url;\n notice.show(`${i18n.get('Reconnect')}: ${this.reconnectTime}`);\n });\n } else {\n this.art.isError = true;\n this.art.isPlaying = false;\n this.art.loading.hide();\n this.art.controls.hide();\n $player.classList.add('artplayer-error');\n notice.show(i18n.get('Video load failed'), false);\n this.art.destroy();\n }\n });\n }\n\n play() {\n const { refs: { $video }, i18n, notice } = this.art;\n const promise = $video.play();\n notice.show(i18n.get('Play'));\n this.art.emit('play', $video);\n return promise;\n }\n\n pause() {\n const { refs: { $video }, i18n, notice } = this.art;\n $video.pause();\n notice.show(i18n.get('Pause'));\n this.art.emit('pause', $video);\n }\n\n toggle() {\n if (this.art.isPlaying) {\n this.pause();\n } else {\n this.play();\n }\n }\n\n seek(time) {\n const { refs: { $video }, notice } = this.art;\n let newTime = Math.max(time, 0);\n if ($video.duration) {\n newTime = Math.min(newTime, $video.duration);\n }\n $video.currentTime = newTime;\n notice.show(`${secondToTime(newTime)} / ${secondToTime($video.duration)}`);\n this.art.emit('seek', newTime);\n }\n\n volume(percentage) {\n const { refs: { $video }, i18n, notice } = this.art;\n if (percentage !== undefined) {\n $video.volume = clamp(percentage, 0, 1);\n notice.show(`${i18n.get('Volume')}: ${parseInt($video.volume * 100)}`);\n if ($video.volume !== 0) {\n setStorage('volume', $video.volume);\n }\n this.art.emit('volume', $video.volume);\n }\n return $video.volume || 0;\n }\n\n currentTime() {\n return this.art.refs.$video.currentTime || 0;\n }\n\n duration() {\n return this.art.refs.$video.duration || 0;\n }\n\n playbackRate(rate) {\n const { refs: { $video, $player }, i18n, notice } = this.art;\n const newRate = clamp(rate, 0.1, 10);\n $video.playbackRate = newRate;\n $player.dataset.playbackRate = newRate;\n notice.show(`${i18n.get('Rate')}: ${newRate === 1 ? i18n.get('Normal') : `${newRate}x`}`);\n this.art.emit('playbackRate', newRate);\n }\n\n aspectRatio(ratio) {\n const { refs: { $video, $player }, i18n, notice } = this.art;\n const ratioName = ratio.length === 2 ? `${ratio[0]}:${ratio[1]}` : i18n.get('Default');\n\n if (ratio.length === 2) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth, clientHeight } = $player;\n const videoRatio = videoWidth / videoHeight;\n const setupRatio = Number(ratio[0]) / Number(ratio[1]);\n\n if (videoRatio > setupRatio) {\n const percentage = setupRatio * videoHeight / videoWidth;\n setStyle($video, 'width', `${percentage * 100}%`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'padding', `0 ${(clientWidth - clientWidth * percentage) / 2}px`);\n } else {\n const percentage = videoWidth / setupRatio / videoHeight;\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${percentage * 100}%`);\n setStyle($video, 'padding', `${(clientHeight - clientHeight * percentage) / 2}px 0`);\n }\n\n $player.dataset.aspectRatio = ratioName;\n } else {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n delete $player.dataset.aspectRatio;\n }\n\n notice.show(`${i18n.get('Aspect ratio')}: ${ratioName}`);\n this.art.emit('aspectRatio', ratio);\n }\n}\n","export default class Danmu {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n }\n}\n","export default class Fullscreen {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n }\n}\n","export default class Pip {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\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 loading from './loading.svg';\nimport playBig from './play-big.svg';\nimport play from './play.svg';\nimport pause from './pause.svg';\nimport volume from './volume.svg';\nimport volumeClose from './volume-close.svg';\nimport subtitle from './subtitle.svg';\nimport subtitleClose from './subtitle-close.svg';\nimport screenshot from './screenshot.svg';\n\nconst icons = {\n loading,\n playBig,\n play,\n pause,\n volume,\n volumeClose,\n subtitle,\n subtitleClose,\n screenshot\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 { append, tooltip, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class PlayAndPause {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n const { events: { proxy }, player, i18n } = art;\n this.$play = append(this.option.$control, icons.play);\n this.$pause = append(this.option.$control, icons.pause);\n tooltip(this.$play, i18n.get('Play'));\n tooltip(this.$pause, i18n.get('Pause'));\n setStyle(this.$pause, 'display', 'none');\n\n proxy(this.$play, 'click', () => {\n player.play();\n });\n\n proxy(this.$pause, 'click', () => {\n player.pause();\n });\n\n art.on('video:playing', () => {\n setStyle(this.$play, 'display', 'none');\n setStyle(this.$pause, 'display', 'block');\n });\n\n art.on('video:pause', () => {\n setStyle(this.$play, 'display', 'block');\n setStyle(this.$pause, 'display', 'none');\n });\n }\n}\n","import { append, clamp, secondToTime, setStyle } from '../utils';\n\nexport default class Progress {\n constructor(option) {\n this.option = option;\n this.isDroging = false;\n this.getLoaded = this.getLoaded.bind(this);\n this.getPlayed = this.getPlayed.bind(this);\n this.set = this.set.bind(this);\n }\n\n apply(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { option: { highlight, theme }, events: { proxy }, refs: { $video }, player } = this.art;\n\n append(\n this.option.$control,\n `\n
\n
\n
\n
\n
\n
\n
\n `\n );\n\n this.$loaded = this.option.$control.querySelector('.art-progress-loaded');\n this.$played = this.option.$control.querySelector('.art-progress-played');\n this.$highlight = this.option.$control.querySelector('.art-progress-highlight');\n this.$indicator = this.option.$control.querySelector('.art-progress-indicator');\n this.$tip = this.option.$control.querySelector('.art-progress-tip');\n\n this.set('loaded', this.getLoaded());\n highlight.forEach(item => {\n const left = Number(item.time) / $video.duration;\n append(this.$highlight, `\n \n `\n );\n });\n\n this.art.on('video:progress', () => {\n this.set('loaded', this.getLoaded());\n });\n\n this.art.on('video:timeupdate', () => {\n this.set('played', this.getPlayed());\n });\n\n this.art.on('video:ended', () => {\n this.set('played', 1);\n });\n\n proxy(this.option.$control, 'mousemove', event => {\n setStyle(this.$tip, 'display', 'block');\n if (event.path.indexOf(this.$highlight) > -1) {\n this.showHighlight(event);\n } else {\n this.showTime(event);\n }\n });\n\n proxy(this.option.$control, 'mouseout', () => {\n setStyle(this.$tip, 'display', 'none');\n });\n\n proxy(this.option.$control, 'click', event => {\n if (event.target !== this.$indicator) {\n const { second, percentage } = this.getPosFromEvent(event);\n this.set('played', percentage);\n player.seek(second);\n }\n });\n\n proxy(this.$indicator, 'mousedown', () => {\n this.isDroging = true;\n });\n\n proxy(document, 'mousemove', event => {\n if (this.isDroging) {\n const { second, percentage } = this.getPosFromEvent(event);\n this.$indicator.classList.add('show-indicator');\n this.set('played', percentage);\n player.seek(second);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (this.isDroging) {\n this.isDroging = false;\n this.$indicator.classList.remove('show-indicator');\n }\n });\n }\n\n showHighlight(event) {\n const { $video } = this.art.refs;\n const { text, time } = event.target.dataset;\n this.$tip.innerHTML = text;\n const left =\n Number(time) / $video.duration * this.option.$control.clientWidth +\n event.target.clientWidth / 2 -\n this.$tip.clientWidth / 2;\n setStyle(this.$tip, 'left', `${left}px`);\n }\n\n showTime(event) {\n const { width, time } = this.getPosFromEvent(event);\n const tipWidth = this.$tip.clientWidth;\n this.$tip.innerHTML = time;\n if (width <= tipWidth / 2) {\n setStyle(this.$tip, 'left', 0);\n } else if (width > this.option.$control.clientWidth - tipWidth / 2) {\n setStyle(this.$tip, 'left', `${this.option.$control.clientWidth - tipWidth}px`);\n } else {\n setStyle(this.$tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n getPlayed() {\n const { $video } = this.art.refs;\n return $video.currentTime / $video.duration;\n }\n\n getLoaded() {\n const { $video } = this.art.refs;\n return $video.buffered.length\n ? $video.buffered.end($video.buffered.length - 1) / $video.duration\n : 0;\n }\n\n getPosFromEvent(event) {\n const { $video, $progress } = this.art.refs;\n const { left } = $progress.getBoundingClientRect();\n const width = clamp(event.x - left, 0, $progress.clientWidth);\n const second = width / $progress.clientWidth * $video.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\n }\n\n set(type, percentage) {\n setStyle(this[`$${type}`], 'width', `${percentage * 100}%`);\n if (type === 'played') {\n setStyle(this.$indicator, 'left', `calc(${percentage * 100}% - 6.5px)`);\n }\n }\n}\n","import { append, tooltip, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class Subtitle {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n const { events: { proxy }, subtitle, i18n } = art;\n this.$subtitle = append(this.option.$control, icons.subtitle);\n this.$subtitleClose = append(this.option.$control, icons.subtitleClose);\n tooltip(this.$subtitle, i18n.get('Hide subtitle'));\n tooltip(this.$subtitleClose, i18n.get('Show subtitle'));\n setStyle(this.$subtitleClose, 'display', 'none');\n\n proxy(this.$subtitle, 'click', () => {\n subtitle.hide();\n setStyle(this.$subtitle, 'display', 'none');\n setStyle(this.$subtitleClose, 'display', 'block');\n });\n\n proxy(this.$subtitleClose, 'click', () => {\n subtitle.show();\n setStyle(this.$subtitle, 'display', 'block');\n setStyle(this.$subtitleClose, 'display', 'none');\n });\n }\n}\n","import { secondToTime } from '../utils';\n\nexport default class Time {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n this.option.$control.innerHTML = '00:00 / 00:00';\n\n this.art.on('video:canplay', () => {\n this.option.$control.innerHTML = this.getTime();\n });\n\n this.art.on('video:timeupdate', () => {\n this.option.$control.innerHTML = this.getTime();\n });\n\n this.art.on('video:seeking', () => {\n this.option.$control.innerHTML = this.getTime();\n });\n }\n\n getTime() {\n const { player } = this.art;\n return `${secondToTime(player.currentTime())} / ${secondToTime(player.duration())}`;\n }\n}\n","import { append, getStorage, clamp, tooltip, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class Volume {\n constructor(option) {\n this.option = option;\n this.isDroging = false;\n }\n\n apply(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { events: { proxy }, player, i18n } = this.art;\n this.$volume = append(this.option.$control, icons.volume);\n this.$volumeClose = append(this.option.$control, icons.volumeClose);\n this.$volumePanel = append(this.option.$control, '
');\n this.$volumeHandle = append(this.$volumePanel, '
');\n tooltip(this.$volume, i18n.get('Mute'));\n setStyle(this.$volumeClose, 'display', 'none');\n\n const volume = getStorage('volume');\n this.setVolumeHandle(volume);\n player.volume(volume);\n\n proxy(this.$volume, 'click', () => {\n setStyle(this.$volume, 'display', 'none');\n setStyle(this.$volumeClose, 'display', 'block');\n player.volume(0);\n });\n\n proxy(this.$volumeClose, 'click', () => {\n setStyle(this.$volume, 'display', 'block');\n setStyle(this.$volumeClose, 'display', 'none');\n player.volume(getStorage('volume'));\n });\n\n proxy(this.option.$control, 'mouseenter', () => {\n this.$volumePanel.classList.add('art-volume-panel-hover');\n\n // TODO\n setTimeout(() => {\n this.setVolumeHandle(player.volume());\n }, 200);\n });\n\n proxy(this.option.$control, 'mouseleave', () => {\n this.$volumePanel.classList.remove('art-volume-panel-hover');\n });\n\n proxy(this.$volumePanel, 'click', event => {\n this.volumeChangeFromEvent(event);\n });\n\n proxy(this.$volumeHandle, 'mousedown', () => {\n this.isDroging = true;\n });\n\n proxy(this.$volumeHandle, 'mousemove', event => {\n if (this.isDroging) {\n this.volumeChangeFromEvent(event);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (this.isDroging) {\n this.isDroging = false;\n }\n });\n\n this.art.on('video:volumechange', () => {\n const percentage = player.volume();\n this.setVolumeHandle(percentage);\n if (percentage === 0) {\n setStyle(this.$volume, 'display', 'none');\n setStyle(this.$volumeClose, 'display', 'block');\n } else {\n setStyle(this.$volume, 'display', 'block');\n setStyle(this.$volumeClose, 'display', 'none');\n }\n });\n }\n\n volumeChangeFromEvent(event) {\n const { player } = this.art;\n const { left: panelLeft, width: panelWidth } = this.$volumePanel.getBoundingClientRect();\n const { width: handleWidth } = this.$volumeHandle.getBoundingClientRect();\n const percentage = clamp(event.x - panelLeft - handleWidth / 2, 0, panelWidth - handleWidth / 2) / (panelWidth - handleWidth);\n player.volume(percentage);\n }\n\n setVolumeHandle(percentage = 0.7) {\n const { width: panelWidth } = this.$volumePanel.getBoundingClientRect();\n const { width: handleWidth } = this.$volumeHandle.getBoundingClientRect();\n const width = handleWidth / 2 + (panelWidth - handleWidth) * percentage - handleWidth / 2;\n setStyle(this.$volumeHandle, 'left', `${width}px`);\n }\n}\n","export default class Setting {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n }\n}\n","import { errorHandle, setStyle } from '../utils';\n\nexport default class Thumbnails {\n constructor(option) {\n this.option = option;\n this.loading = false;\n this.isLoad = false;\n }\n\n apply(art) {\n this.art = art;\n errorHandle(this.art.controls.progress, '\\'thumbnails\\' control dependent on \\'progress\\' control');\n this.init();\n }\n\n init() {\n const { refs: { $progress }, events: { proxy } } = this.art;\n\n proxy($progress, 'mousemove', event => {\n if (!this.loading) {\n this.loading = true;\n this.load(this.art.option.thumbnails.url).then(() => {\n this.isLoad = true;\n });\n }\n\n if (this.isLoad) {\n setStyle(this.option.$control, 'display', 'block');\n this.showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseout', () => {\n setStyle(this.option.$control, 'display', 'none');\n });\n }\n\n load(url) {\n const { proxy } = this.art.events;\n return new Promise((resolve, reject) => {\n const image = new Image();\n image.src = url;\n\n if (image.complete) {\n return resolve(image);\n }\n\n proxy(image, 'load', () => resolve(image));\n\n proxy(image, 'error', () => reject(image));\n });\n }\n\n showThumbnails(event) {\n const { refs: { $progress }, controls } = this.art;\n const { width: posWidth } = controls.progress.getPosFromEvent(event);\n const { url, height, width, number, column } = this.art.option.thumbnails;\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.ceil(posWidth / perWidth);\n let yIndex = Math.ceil(perIndex / column);\n let xIndex = perIndex % column || column;\n\n setStyle(this.option.$control, 'backgroundImage', `url(${url})`);\n setStyle(this.option.$control, 'height', `${height}px`);\n setStyle(this.option.$control, 'width', `${width}px`);\n setStyle(this.option.$control, 'backgroundPosition', `-${--xIndex * width}px -${--yIndex * height}px`);\n\n if (posWidth <= width / 2) {\n setStyle(this.option.$control, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width / 2) {\n setStyle(this.option.$control, 'left', `${$progress.clientWidth - width}px`);\n } else {\n setStyle(this.option.$control, 'left', `${posWidth - width / 2}px`);\n }\n }\n}\n","import { append, tooltip, secondToTime, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class Screenshot {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n const { events: { proxy }, i18n, notice } = this.art;\n this.$screenshot = append(this.option.$control, icons.screenshot);\n tooltip(this.$screenshot, i18n.get('Screenshot'));\n proxy(this.$screenshot, 'click', () => {\n try {\n this.captureFrame();\n } catch (error) {\n notice.show(error);\n }\n });\n }\n\n captureFrame() {\n const { $video } = this.art.refs;\n const canvas = document.createElement('canvas');\n canvas.width = $video.videoWidth;\n canvas.height = $video.videoHeight;\n canvas.getContext('2d').drawImage($video, 0, 0);\n const dataUri = canvas.toDataURL('image/png');\n const elink = document.createElement('a');\n setStyle(elink, 'display', 'none');\n elink.href = dataUri;\n elink.download = `${secondToTime($video.currentTime)}.png`;\n document.body.appendChild(elink);\n elink.click();\n document.body.removeChild(elink);\n }\n}\n","import { setStyle } from '../utils';\nimport Danmu from './danmu';\nimport Fullscreen from './fullscreen';\nimport Pip from './pip';\nimport PlayAndPause from './playAndPause';\nimport Progress from './progress';\nimport Subtitle from './subtitle';\nimport Time from './time';\nimport Volume from './volume';\nimport Setting from './setting';\nimport Thumbnails from './thumbnails';\nimport Screenshot from './screenshot';\n\nlet id = 0;\nexport default class Controls {\n constructor(art) {\n this.art = art;\n this.$map = {};\n this.art.on('firstCanplay', () => {\n this.init();\n this.mount();\n });\n }\n\n init() {\n this.add(new Progress({\n disable: false,\n position: 'top',\n index: 10\n }));\n\n this.add(new Thumbnails({\n disable: !this.art.option.thumbnails.url,\n position: 'top',\n index: 20\n }));\n\n this.add(new PlayAndPause({\n disable: false,\n position: 'left',\n index: 10\n }));\n\n this.add(new Volume({\n disable: false,\n position: 'left',\n index: 20\n }));\n\n this.add(new Time({\n disable: false,\n position: 'left',\n index: 30\n }));\n\n this.add(new Danmu({\n disable: false,\n position: 'right',\n index: 10\n }));\n\n this.add(new Screenshot({\n disable: !this.art.option.screenshot,\n position: 'right',\n index: 20\n }));\n\n this.add(new Subtitle({\n disable: !this.art.option.subtitle.url,\n position: 'right',\n index: 30\n }));\n\n this.add(new Setting({\n disable: false,\n position: 'right',\n index: 40\n }));\n\n this.add(new Pip({\n disable: false,\n position: 'right',\n index: 50\n }));\n\n this.add(new Fullscreen({\n disable: false,\n position: 'right',\n index: 60\n }));\n\n this.art.option.controls.forEach(item => {\n this.add(item);\n });\n }\n\n add(control) {\n const { option } = control;\n if (option && !option.disable) {\n id++;\n const name = control.constructor.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 option.$control = $control;\n this.commonMethod(control);\n (this.$map[option.position] || (this.$map[option.position] = [])).push($control);\n control.apply && control.apply(this.art);\n this[name] = control;\n }\n }\n\n mount() {\n const { $progress, $controlsLeft, $controlsRight } = this.art.refs;\n Object.keys(this.$map).forEach(key => {\n this.$map[key]\n .sort(\n (a, b) =>\n Number(a.dataset.controlIndex) - Number(b.dataset.controlIndex)\n )\n .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(control) {\n Object.defineProperty(control, 'hide', {\n value: () => {\n setStyle(control.option.$control, 'display', 'none');\n this.art.emit('control:hide', control.option.$control);\n }\n });\n\n Object.defineProperty(control, 'show', {\n value: () => {\n setStyle(control.option.$control, 'display', 'block');\n this.art.emit('control:show', control.option.$control);\n }\n });\n }\n\n show() {\n const { $player } = this.art.refs;\n $player.classList.add('controls-show');\n }\n\n hide() {\n const { $player } = this.art.refs;\n $player.classList.remove('controls-show');\n }\n}\n","import { append, setStyles, setStyle, sublings } from './utils';\n\nlet id = 0;\nexport default class Contextmenu {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { option, player, i18n, refs, events: { proxy } } = this.art;\n\n option.contextmenu.push(\n {\n disable: !option.playbackRate,\n name: 'playbackRate',\n html: `\n ${i18n.get('Play speed')}:\n 0.5\n 0.75\n ${i18n.get('Normal')}\n 1.25\n 1.5\n 2.0\n `,\n click: (art, event) => {\n const { target } = event;\n const { rate } = target.dataset;\n if (rate) {\n player.playbackRate(Number(rate));\n sublings(target).forEach(item => item.classList.remove('current'));\n target.classList.add('current');\n this.hide();\n }\n }\n },\n {\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n html: `\n ${i18n.get('Aspect ratio')}:\n ${i18n.get('Default')}\n 4:3\n 16:9\n `,\n click: (art, event) => {\n const { target } = event;\n const { ratio } = target.dataset;\n if (ratio) {\n player.aspectRatio(ratio.split(':'));\n sublings(target).forEach(item => item.classList.remove('current'));\n target.classList.add('current');\n this.hide();\n }\n }\n },\n {\n disable: false,\n name: 'info',\n html: i18n.get('Video info'),\n click: () => {\n this.art.info.show();\n this.hide();\n }\n },\n {\n disable: false,\n name: 'version',\n html: 'ArtPlayer __VERSION__'\n },\n {\n disable: false,\n name: 'close',\n html: i18n.get('Close'),\n click: () => {\n this.hide();\n }\n }\n );\n\n proxy(refs.$player, 'contextmenu', event => {\n event.preventDefault();\n this.art.isFocus = true;\n if (!refs.$contextmenu) {\n this.creatMenu();\n }\n this.show();\n this.setPos(event);\n });\n\n proxy(refs.$player, 'click', event => {\n if (refs.$contextmenu && !event.path.includes(refs.$contextmenu)) {\n this.hide();\n }\n });\n }\n\n creatMenu() {\n const { option, refs, events: { proxy } } = this.art;\n refs.$contextmenu = document.createElement('div');\n refs.$contextmenu.classList.add('artplayer-contextmenu');\n option.contextmenu\n .filter(item => !item.disable)\n .forEach(item => {\n id++;\n const $menu = document.createElement('div');\n $menu.setAttribute('data-art-menu-id', id);\n $menu.setAttribute('class', `art-menu art-menu-${item.name || id}`);\n append($menu, item.html);\n setStyles($menu, item.style || {});\n if (item.click) {\n proxy($menu, 'click', event => {\n event.preventDefault();\n item.click(this.art, event);\n this.art.emit('contextmenu:click', $menu);\n });\n }\n append(refs.$contextmenu, $menu);\n });\n append(refs.$player, 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.$player.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 setStyle(refs.$contextmenu, 'left', `${menuLeft}px`);\n setStyle(refs.$contextmenu, 'top', `${menuTop}px`);\n }\n\n hide() {\n const { refs: { $contextmenu } } = this.art;\n if ($contextmenu) {\n setStyle($contextmenu, 'display', 'none');\n this.art.emit('contextmenu:hide', $contextmenu);\n }\n }\n\n show() {\n const { refs: { $contextmenu } } = this.art;\n if ($contextmenu) {\n setStyle($contextmenu, '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","import { append, setStyle } from './utils';\n\nexport default class Info {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { refs: { $infoClose }, events: { proxy } } = this.art;\n proxy($infoClose, 'click', () => {\n this.hide();\n });\n }\n\n show() {\n const { $info, $infoPanel } = this.art.refs;\n setStyle($info, 'display', 'block');\n if (!$infoPanel.innerHTML) {\n append($infoPanel, this.creatInfo());\n this.getHeader();\n }\n clearTimeout(this.timer);\n this.loop();\n this.art.emit('info:show', $info);\n }\n\n creatInfo() {\n const infoHtml = [];\n\n infoHtml.push(`\n
\n
Player version:
\n
__VERSION__
\n
\n `);\n\n infoHtml.push(`\n
\n
Video url:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video type:
\n
loading...
\n
\n `);\n\n infoHtml.push(`\n
\n
Video size:
\n
loading...
\n
\n `);\n\n infoHtml.push(`\n
\n
Video volume:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video time:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video duration:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video resolution:
\n
\n x \n
\n
\n `);\n\n return infoHtml.join('');\n }\n\n getHeader() {\n const { option: { url }, refs: { $infoPanel } } = this.art;\n const types = Array.from($infoPanel.querySelectorAll('[data-head]'));\n fetch(url, {\n method: 'HEAD'\n }).then(data => {\n types.forEach(item => {\n const value = data.headers.get(item.dataset.head);\n item.innerHTML = value !== undefined ? value : 'unknown';\n });\n }).catch(() => {\n types.forEach(item => {\n item.innerHTML = 'unknown';\n });\n });\n }\n\n readInfo() {\n const { $infoPanel, $video } = this.art.refs;\n const types = Array.from($infoPanel.querySelectorAll('[data-video]'));\n types.forEach(item => {\n const value = $video[item.dataset.video];\n item.innerHTML = value !== undefined ? value : 'unknown';\n });\n }\n\n loop() {\n this.readInfo();\n this.timer = setTimeout(() => {\n this.readInfo();\n this.loop();\n }, 1000);\n }\n\n hide() {\n const { $info } = this.art.refs;\n setStyle($info, 'display', 'none');\n clearTimeout(this.timer);\n this.art.emit('info:hide', $info);\n }\n}\n","import { errorHandle, getExt, setStyles, setStyle } from './utils';\n\nexport default class Subtitle {\n constructor(art) {\n this.art = art;\n\n const { url } = this.art.option.subtitle;\n if (url) {\n this.checkExt(url);\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 setStyles($subtitle, subtitle.style || {});\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\n\n this.load(subtitle.url).then(data => {\n $track.src = data;\n $video.appendChild($track);\n this.art.refs.$track = $track;\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\n load(url) {\n let type;\n return fetch(url)\n .then(response => {\n type = response.headers.get('Content-Type');\n return response.text();\n })\n .then(text => {\n if ((/x-subrip/gi).test(type)) {\n return this.srtToVtt(text);\n }\n return url;\n })\n .catch(err => {\n throw err;\n });\n }\n\n srtToVtt(text) {\n const vttText = 'WEBVTT \\r\\n\\r\\n'.concat(\n text\n .replace(/\\{\\\\([ibu])\\}/g, '')\n .replace(/\\{\\\\([ibu])1\\}/g, '<$1>')\n .replace(/\\{([ibu])\\}/g, '<$1>')\n .replace(/\\{\\/([ibu])\\}/g, '')\n .replace(/(\\d\\d:\\d\\d:\\d\\d),(\\d\\d\\d)/g, '$1.$2')\n .concat('\\r\\n\\r\\n')\n );\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt'\n })\n );\n }\n\n checkExt(url) {\n const ext = getExt(url);\n errorHandle(\n ext === 'vtt' || ext === 'srt',\n `'subtitle.url' option require 'vtt' or 'srt' format, but got '${ext}'.`\n );\n }\n\n show() {\n const { $subtitle } = this.art.refs;\n setStyle($subtitle, 'display', 'block');\n this.art.emit('subtitle:show', $subtitle);\n }\n\n hide() {\n const { $subtitle } = this.art.refs;\n setStyle($subtitle, 'display', 'none');\n this.art.emit('subtitle:hide', $subtitle);\n }\n\n switch(url) {\n const { $track } = this.art.refs;\n this.checkExt(url);\n errorHandle($track, 'You need to initialize the subtitle option first.');\n this.load(url).then(data => {\n if (url !== data) {\n $track.src = data;\n this.art.emit('subtitle:switch', url);\n }\n });\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 if (Array.isArray(name)) {\n name.forEach(item => this.proxy(target, item, callback, option));\n }\n\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 { player, refs: { $player }, events: { proxy } } = this.art;\n\n proxy(document, 'click', event => {\n this.art.isFocus = event.path.indexOf($player) > -1;\n });\n\n proxy(window, 'keydown', event => {\n if (this.art.isFocus) {\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 switch (event.keyCode) {\n case 39:\n event.preventDefault();\n player.seek(player.currentTime() + 10);\n break;\n case 37:\n event.preventDefault();\n player.seek(player.currentTime() - 10);\n break;\n case 38:\n event.preventDefault();\n player.volume(player.volume() + 0.05);\n break;\n case 40:\n event.preventDefault();\n player.volume(player.volume() - 0.05);\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, setStyles, 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.filter(item => item.disable === false).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 setStyle($layer, 'z-index', option.index || id);\n append($layer, option.html);\n setStyles($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 setStyle($layers, 'display', 'block');\n this.art.emit('layers:show', $layers);\n }\n\n hide() {\n const { $layers } = this.art.refs;\n setStyle($layers, 'display', 'none');\n this.art.emit('layers:hide', $layers);\n }\n}\n","import icons from './icons';\nimport { append, setStyle } 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 setStyle($loading, 'display', 'none');\n this.art.emit('loading:hide', $loading);\n }\n\n show() {\n const { $loading } = this.art.refs;\n setStyle($loading, 'display', 'flex');\n this.art.emit('loading:show', $loading);\n }\n}\n","import { setStyle } from './utils';\n\nexport default class Notice {\n constructor(art) {\n this.art = art;\n this.timer = null;\n }\n\n show(msg, autoHide = true, time = 1000) {\n const { $notice, $noticeInner } = this.art.refs;\n setStyle($notice, 'display', 'block');\n $noticeInner.innerHTML = msg instanceof Error ? msg.message.trim() : msg;\n if (autoHide) {\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.hide();\n }, time);\n }\n this.art.emit('notice:show', $notice);\n }\n\n hide() {\n const { $notice } = this.art.refs;\n setStyle($notice, 'display', 'none');\n this.art.emit('notice:hide', $notice);\n }\n}\n","import icons from './icons';\nimport { append, setStyle } from './utils';\n\nexport default class Mask {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { player, refs, events: { proxy } } = this.art;\n\n append(refs.$mask, icons.playBig);\n\n proxy(refs.$mask, 'click', () => {\n player.play();\n this.hide();\n });\n }\n\n show() {\n const { $mask } = this.art.refs;\n setStyle($mask, 'display', 'block');\n this.art.emit('mask:show', $mask);\n }\n\n hide() {\n const { $mask } = this.art.refs;\n setStyle($mask, 'display', 'none');\n this.art.emit('mask:show', $mask);\n }\n}\n","import './style';\nimport 'balloon-css/balloon.min.css';\nimport { deepMerge } from './utils';\nimport optionValidator from 'option-validator';\nimport scheme from './scheme';\nimport config from './config';\nimport Emitter from 'tiny-emitter';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\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 = deepMerge({}, Artplayer.DEFAULTS, option);\n optionValidator(this.option, scheme);\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 thumbnails: {\n url: '',\n number: 60,\n width: 160,\n height: 90,\n column: 10\n },\n screenshot: true,\n autoplay: false,\n playbackRate: true,\n aspectRatio: true,\n loop: false,\n type: '',\n mimeCodec: '',\n layers: [],\n contextmenu: [],\n loading: '',\n theme: '#f00',\n hotkey: true,\n subtitle: {\n url: '',\n style: {}\n },\n controls: [],\n highlight: [],\n moreVideoAttr: {\n 'controls': false,\n 'preload': 'auto',\n 'webkit-playsinline': true,\n 'playsinline': true\n },\n lang: navigator.language.toLowerCase()\n };\n }\n\n static use(Plugin) {\n const name = Plugin.name.toLowerCase();\n const installedPlugins = this.plugins || (this.plugins = {});\n if (!installedPlugins[name]) {\n const args = Array.from(arguments).slice(1);\n args.unshift(this);\n installedPlugins[name] = new Plugin(...args);\n this.prototype.emit('use', Plugin);\n }\n return this;\n }\n\n init() {\n this.isError = false;\n this.isFocus = false;\n this.isPlaying = 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.notice = new Notice(this);\n this.events = new Events(this);\n this.player = new Player(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.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(removeHtml = false) {\n this.events.destroy();\n instances.splice(instances.indexOf(this), 1);\n if (removeHtml) {\n this.refs.$container.innerHTML = '';\n } else {\n this.refs.$player.classList.add('artplayer-destroy');\n }\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","isFun","clamp","num","a","b","Math","max","min","getExt","url","includes","split","trim","toLowerCase","pop","append","parent","child","Element","appendChild","insertAdjacentHTML","lastElementChild","setStyle","element","key","value","style","setStyles","styles","Object","keys","forEach","secondToTime","second","add0","String","hour","floor","sec","map","join","deepMerge","isObject","returnValue","sources","source","Array","isArray","hasOwnProperty","getStorage","storage","JSON","parse","localStorage","getItem","setStorage","assign","setItem","stringify","tooltip","target","pos","setAttribute","sleep","ms","Promise","resolve","setTimeout","sublings","from","parentElement","children","filter","item","validElement","paths","type","container","validator","required","volume","thumbnails","number","width","height","column","screenshot","autoplay","playbackRate","aspectRatio","loop","mimeCodec","layers","index","html","contextmenu","click","loading","theme","hotkey","subtitle","controls","option","disable","position","highlight","time","text","moreVideoAttr","lang","mp4","webm","ts","mediaSource","propertys","methods","events","sourceBuffer","sourceBufferList","mse","video","Template","art","init","refs","$container","innerHTML","$player","querySelector","$video","$subtitle","$bottom","$progress","$controls","$controlsLeft","$controlsRight","$layers","$loading","$notice","$noticeInner","$mask","$info","$infoPanel","$infoClose","i18nMap","I18n","language","callback","Player","eventBind","firstCanplay","reconnectTime","maxReconnectTime","poster","src","proxy","i18n","notice","config","eventName","event","emit","on","show","hide","mask","promise","play","undefined","then","catch","err","console","warn","isPlaying","seek","get","isError","classList","add","destroy","pause","newTime","duration","currentTime","percentage","parseInt","rate","newRate","dataset","ratio","ratioName","length","videoWidth","videoHeight","clientWidth","clientHeight","videoRatio","setupRatio","Number","Danmu","Fullscreen","Pip","icons","playBig","volumeClose","subtitleClose","creatDomFromSvg","result","tmp","document","createElement","childNodes","PlayAndPause","player","$play","$control","$pause","Progress","isDroging","getLoaded","bind","getPlayed","set","$loaded","$played","$highlight","$indicator","$tip","left","path","indexOf","showHighlight","showTime","getPosFromEvent","remove","tipWidth","buffered","end","getBoundingClientRect","x","Subtitle","$subtitleClose","Time","getTime","Volume","$volume","$volumeClose","$volumePanel","$volumeHandle","setVolumeHandle","volumeChangeFromEvent","panelLeft","panelWidth","handleWidth","Setting","Thumbnails","isLoad","progress","load","showThumbnails","reject","image","Image","complete","posWidth","perWidth","perIndex","ceil","yIndex","xIndex","Screenshot","$screenshot","captureFrame","error","canvas","getContext","drawImage","dataUri","toDataURL","elink","href","download","body","removeChild","id","Controls","$map","mount","control","commonMethod","push","apply","sort","controlIndex","defineProperty","Contextmenu","info","preventDefault","isFocus","$contextmenu","creatMenu","setPos","$menu","mouseX","clientX","mouseY","clientY","cHeight","cWidth","cLeft","cTop","top","mHeight","mWidth","menuLeft","menuTop","Info","creatInfo","getHeader","clearTimeout","timer","infoHtml","types","querySelectorAll","fetch","method","data","headers","head","readInfo","checkExt","$track","default","kind","textTracks","track","activeCues","cue","template","getCueAsHTML","response","test","srtToVtt","vttText","concat","replace","URL","createObjectURL","Blob","ext","Events","destroyEvents","addEventListener","removeEventListener","Hotkey","window","tag","activeElement","tagName","toUpperCase","editable","getAttribute","keyCode","toggle","Layers","$layer","Loading","Notice","autoHide","Mask","instances","Artplayer","DEFAULTS","optionValidator","scheme","danmu","removeHtml","splice","Plugin","installedPlugins","plugins","args","arguments","slice","unshift","prototype","navigator","Emitter"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"artplayer.js","sources":["../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/construct.js","../../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArray.js","../../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../../node_modules/@babel/runtime/helpers/toConsumableArray.js","../../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/inherits.js","../../node_modules/@babel/runtime/helpers/defineProperty.js","../../node_modules/@babel/runtime/helpers/objectSpread.js","../../node_modules/@babel/runtime/helpers/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../../src/utils/index.js","../../node_modules/kind-of/index.js","../../node_modules/option-validator/index.js","../../src/scheme/validElement.js","../../src/scheme/index.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/controls/danmu.js","../../src/controls/fullscreen.js","../../src/controls/pip.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/icons/index.js","../../src/controls/playAndPause.js","../../src/controls/progress.js","../../src/controls/subtitle.js","../../src/controls/time.js","../../src/controls/volume.js","../../src/controls/setting.js","../../src/controls/thumbnails.js","../../src/controls/screenshot.js","../../src/controls/quality.js","../../src/controls/index.js","../../src/contextmenu.js","../../src/danmu.js","../../src/info.js","../../src/subtitle.js","../../src/events.js","../../src/hotkey.js","../../src/layers.js","../../src/loading.js","../../src/notice.js","../../src/mask.js","../../src/index.js"],"sourcesContent":["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 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;","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","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;","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 _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","var defineProperty = require(\"./defineProperty\");\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","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 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\nexport function errorHandle(condition, msg) {\n const isFun = typeof condition === 'function';\n if (isFun ? !isFun() : !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 getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\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\nexport function append(parent, child) {\n if (child instanceof Element) {\n parent.appendChild(child);\n } else {\n parent.insertAdjacentHTML('beforeend', child);\n }\n return parent.lastElementChild;\n}\n\nexport function setStyle(element, key, value) {\n element.style[key] = value;\n return element;\n}\n\nexport function setStyles(element, styles) {\n Object.keys(styles).forEach(key => {\n setStyle(element, key, styles[key]);\n });\n return element;\n}\n\nexport function secondToTime(second) {\n const add0 = num => num < 10 ? `0${num}` : String(num);\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n\nexport function deepMerge(...sources) {\n const isObject = value => value !== null && typeof value === 'object';\n let returnValue = {};\n for (const source of sources) {\n if (Array.isArray(source)) {\n if (!Array.isArray(returnValue)) {\n returnValue = [];\n }\n returnValue = [...returnValue, ...source];\n } else if (isObject(source)) {\n if (source instanceof Element) {\n return source;\n }\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n let value = source[key];\n if (isObject(value) && key in returnValue) {\n value = deepMerge(returnValue[key], value);\n }\n returnValue = { ...returnValue, [key]: value };\n }\n }\n }\n }\n return returnValue;\n}\n\nexport function getStorage(key) {\n const storage = JSON.parse(localStorage.getItem('artplayer_settings')) || {};\n return key ? storage[key] : storage;\n}\n\nexport function setStorage(key, value) {\n const storage = Object.assign({}, getStorage(), {\n [key]: value\n });\n localStorage.setItem('artplayer_settings', JSON.stringify(storage));\n}\n\nexport function tooltip(target, msg, pos = 'up') {\n target.setAttribute('data-balloon', msg);\n target.setAttribute('data-balloon-pos', pos);\n}\n\nexport function sleep(ms = 0) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nexport function sublings(target) {\n return Array.from(target.parentElement.children).filter(item => item !== target);\n}\n","var toString = Object.prototype.toString;\n\nmodule.exports = function kindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n\n var type = typeof val;\n if (type === 'boolean') return 'boolean';\n if (type === 'string') return 'string';\n if (type === 'number') return 'number';\n if (type === 'symbol') return 'symbol';\n if (type === 'function') {\n return isGeneratorFn(val) ? 'generatorfunction' : 'function';\n }\n\n if (isArray(val)) return 'array';\n if (isBuffer(val)) return 'buffer';\n if (isArguments(val)) return 'arguments';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n if (isRegexp(val)) return 'regexp';\n\n switch (ctorName(val)) {\n case 'Symbol': return 'symbol';\n case 'Promise': return 'promise';\n\n // Set, Map, WeakSet, WeakMap\n case 'WeakMap': return 'weakmap';\n case 'WeakSet': return 'weakset';\n case 'Map': return 'map';\n case 'Set': return 'set';\n\n // 8-bit typed arrays\n case 'Int8Array': return 'int8array';\n case 'Uint8Array': return 'uint8array';\n case 'Uint8ClampedArray': return 'uint8clampedarray';\n\n // 16-bit typed arrays\n case 'Int16Array': return 'int16array';\n case 'Uint16Array': return 'uint16array';\n\n // 32-bit typed arrays\n case 'Int32Array': return 'int32array';\n case 'Uint32Array': return 'uint32array';\n case 'Float32Array': return 'float32array';\n case 'Float64Array': return 'float64array';\n }\n\n if (isGeneratorObj(val)) {\n return 'generator';\n }\n\n // Non-plain objects\n type = toString.call(val);\n switch (type) {\n case '[object Object]': return 'object';\n // iterators\n case '[object Map Iterator]': return 'mapiterator';\n case '[object Set Iterator]': return 'setiterator';\n case '[object String Iterator]': return 'stringiterator';\n case '[object Array Iterator]': return 'arrayiterator';\n }\n\n // other\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n};\n\nfunction ctorName(val) {\n return val.constructor ? val.constructor.name : null;\n}\n\nfunction isArray(val) {\n if (Array.isArray) return Array.isArray(val);\n return val instanceof Array;\n}\n\nfunction isError(val) {\n return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number');\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function'\n && typeof val.getDate === 'function'\n && typeof val.setDate === 'function';\n}\n\nfunction isRegexp(val) {\n if (val instanceof RegExp) return true;\n return typeof val.flags === 'string'\n && typeof val.ignoreCase === 'boolean'\n && typeof val.multiline === 'boolean'\n && typeof val.global === 'boolean';\n}\n\nfunction isGeneratorFn(name, val) {\n return ctorName(name) === 'GeneratorFunction';\n}\n\nfunction isGeneratorObj(val) {\n return typeof val.throw === 'function'\n && typeof val.return === 'function'\n && typeof val.next === 'function';\n}\n\nfunction isArguments(val) {\n try {\n if (typeof val.length === 'number' && typeof val.callee === 'function') {\n return true;\n }\n } catch (err) {\n if (err.message.indexOf('callee') !== -1) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * If you need to support Safari 5-7 (8-10 yr-old browser),\n * take a look at https://github.com/feross/is-buffer\n */\n\nfunction isBuffer(val) {\n if (val.constructor && typeof val.constructor.isBuffer === 'function') {\n return val.constructor.isBuffer(val);\n }\n return false;\n}\n","import kindOf from 'kind-of';\n\nexport default function optionValidator(option, scheme, paths = ['option']) {\n checkType(option, scheme, paths);\n checkValidator(option, scheme, paths);\n checkChild(option, scheme, paths);\n\n for (const key in scheme) {\n if (scheme.hasOwnProperty(key)) {\n const optionValue = option[key];\n const schemeValue = scheme[key];\n const currentPath = paths.concat(key);\n if (checkRequired(option, key, schemeValue, currentPath)) continue;\n checkType(optionValue, schemeValue, currentPath);\n checkValidator(optionValue, schemeValue, currentPath);\n checkChild(optionValue, schemeValue, currentPath);\n }\n }\n}\n\nfunction checkRequired(option, key, schemeValue, paths) {\n if (!Object.prototype.hasOwnProperty.call(option, key)) {\n if (schemeValue.__required__ === true || schemeValue.required === true) {\n throw new TypeError(`'${paths.join('.')}' is required`);\n } else {\n return true;\n }\n }\n}\n\nfunction checkType(optionValue, schemeValue, paths) {\n let schemeType;\n if (kindOf(schemeValue) === 'string') {\n schemeType = schemeValue;\n } else if (schemeValue.__type__) {\n schemeType = schemeValue.__type__;\n } else if (schemeValue.type) {\n schemeType = schemeValue.type;\n }\n\n if (schemeType && kindOf(schemeType) === 'string') {\n schemeType = schemeType.trim().toLowerCase();\n const optionType = kindOf(optionValue);\n if (optionType !== schemeType) {\n throw new TypeError(`'${paths.join('.')}' require '${schemeType}' type, but got '${optionType}'`);\n }\n }\n}\n\nfunction checkValidator(optionValue, schemeValue, paths) {\n let schemeValidator;\n if (schemeValue.___validator__) {\n schemeValidator = schemeValue.___validator__;\n } else if (schemeValue.validator) {\n schemeValidator = schemeValue.validator;\n }\n\n if (kindOf(schemeValidator) === 'function') {\n const optionType = kindOf(optionValue);\n const resule = schemeValidator(paths, optionValue, optionType);\n if (resule !== true) {\n throw new TypeError(`The scheme for '${paths.join('.')}' validator function require return true, but got '${resule}'`);\n }\n }\n}\n\nfunction checkChild(optionValue, schemeValue, paths) {\n let schemeChild;\n if (schemeValue.___child__) {\n schemeChild = schemeValue.___child__;\n } else if (schemeValue.child) {\n schemeChild = schemeValue.child;\n }\n\n if (kindOf(schemeChild) === 'object') {\n const optionType = kindOf(optionValue);\n if (optionType === 'object') {\n optionValidator(optionValue, schemeChild, paths);\n } else if (optionType === 'array') {\n optionValue.forEach((item, index) => {\n optionValidator(item, schemeChild, paths.concat(index));\n });\n }\n }\n}\n\n","import { ArtPlayerError } from '../utils';\n\nexport default function validElement(paths, value, type) {\n if (type === 'string') {\n if (value.trim() === '') {\n throw new ArtPlayerError(`${paths.join('.')} can not be empty'`);\n } else {\n return true;\n }\n }\n\n if (value instanceof Element) {\n return true;\n }\n\n throw new ArtPlayerError(`${paths.join('.')} require 'string' or 'Element' type, but got '${type}'`);\n}\n","import validElement from './validElement';\n\nexport default {\n container: {\n validator: validElement,\n required: true\n },\n url: {\n type: 'string',\n required: true\n },\n volume: 'number',\n thumbnails: {\n type: 'object',\n child: {\n url: 'string',\n number: 'number',\n width: 'number',\n height: 'number',\n column: 'number'\n }\n },\n screenshot: 'boolean',\n autoplay: 'boolean',\n playbackRate: 'boolean',\n aspectRatio: 'boolean',\n loop: 'boolean',\n type: {\n type: 'string'\n },\n mimeCodec: 'string',\n layers: {\n type: 'array',\n child: {\n name: 'string',\n index: 'number',\n html: {\n validator: validElement\n },\n style: 'object'\n }\n },\n contextmenu: {\n type: 'array',\n child: {\n name: 'string',\n html: {\n validator: validElement\n },\n click: 'function'\n }\n },\n quality: {\n type: 'array',\n child: {\n default: 'boolean',\n name: 'string',\n url: 'string'\n }\n },\n loading: 'string',\n theme: 'string',\n hotkey: 'boolean',\n subtitle: {\n type: 'object',\n child: {\n url: 'string',\n style: 'object'\n }\n },\n controls: {\n type: 'array',\n child: {\n option: {\n type: 'object',\n child: {\n disable: 'boolean',\n position: 'boolean',\n index: 'number'\n }\n }\n }\n },\n highlight: {\n type: 'array',\n child: {\n time: 'number',\n text: 'string'\n }\n },\n moreVideoAttr: 'object',\n lang: 'string'\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
\n
\n
[x]
\n
\n
\n `;\n refs.$player = refs.$container.querySelector('.artplayer-video-player');\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.$noticeInner = refs.$container.querySelector('.artplayer-notice-inner');\n refs.$mask = refs.$container.querySelector('.artplayer-mask');\n refs.$info = refs.$container.querySelector('.artplayer-info');\n refs.$infoPanel = refs.$container.querySelector('.artplayer-info-panel');\n refs.$infoClose = refs.$container.querySelector('.artplayer-info-close');\n }\n}\n","let i18nMap = {\n 'zh-cn': {\n 'About author': '关于作者',\n 'Video info': '视频统计信息',\n 'Close': '关闭',\n 'Video load failed': '视频加载失败',\n 'Volume': '音量',\n 'Play': '播放',\n 'Pause': '暂停',\n 'Rate': '速度',\n 'Mute': '静音',\n 'Reconnect': '重新连接',\n 'Hide subtitle': '隐藏字幕',\n 'Show subtitle': '显示字幕',\n 'Screenshot': '截图',\n 'Play speed': '播放速度',\n 'Aspect ratio': '画面比例',\n 'Default': '默认',\n 'Normal': '正常'\n },\n 'zh-tw': {\n 'About author': '關於作者',\n 'Video info': '影片統計訊息',\n 'Close': '關閉',\n 'Video load failed': '影片載入失敗',\n 'Volume': '音量',\n 'Play': '播放',\n 'Pause': '暫停',\n 'Rate': '速度',\n 'Mute': '靜音',\n 'Reconnect': '重新連接',\n 'Hide subtitle': '隱藏字幕',\n 'Show subtitle': '顯示字幕',\n 'Screenshot': '截圖',\n 'Play speed': '播放速度',\n 'Aspect ratio': '畫面比例',\n 'Default': '默認',\n 'Normal': '正常'\n }\n};\n\nexport default class I18n {\n constructor({ option }) {\n this.option = option;\n this.init();\n }\n\n init() {\n this.language = i18nMap[this.option.lang.toLowerCase()] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(callback) {\n i18nMap = callback(i18nMap);\n this.init();\n }\n}\n","import { clamp, secondToTime, setStorage, sleep, setStyle } 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 this.firstCanplay = false;\n this.reconnectTime = 0;\n this.maxReconnectTime = 5;\n }\n\n init() {\n const { option, refs: { $video } } = this.art;\n Object.keys(option.moreVideoAttr).forEach(key => {\n const value = option.moreVideoAttr[key];\n $video[key] = value;\n });\n $video.volume = clamp(option.volume, 0, 1);\n $video.poster = option.poster;\n $video.autoplay = option.autoplay;\n\n // TODO\n $video.src = option.url;\n }\n\n eventBind() {\n const { option, events: { proxy }, refs: { $player, $video }, i18n, notice } = 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:waiting', () => {\n this.art.loading.show();\n });\n\n this.art.on('video:seeking', () => {\n this.art.loading.show();\n });\n\n this.art.on('video:canplay', () => {\n if (!this.firstCanplay) {\n this.firstCanplay = true;\n this.art.emit('firstCanplay');\n }\n\n this.art.controls.show();\n this.art.mask.show();\n this.art.loading.hide();\n if (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.isPlaying = true;\n this.art.controls.hide();\n this.art.mask.hide();\n });\n\n this.art.on('video:pause', () => {\n this.art.isPlaying = false;\n this.art.controls.show();\n this.art.mask.show();\n });\n\n this.art.on('video:ended', () => {\n this.art.isPlaying = false;\n this.art.controls.show();\n this.art.mask.show();\n if (option.loop) {\n this.seek(0);\n this.play();\n }\n });\n\n this.art.on('video:error', () => {\n if (this.reconnectTime < this.maxReconnectTime) {\n sleep(1000).then(() => {\n this.reconnectTime++;\n $video.src = option.url;\n notice.show(`${i18n.get('Reconnect')}: ${this.reconnectTime}`);\n });\n } else {\n this.art.isError = true;\n this.art.isPlaying = false;\n this.art.loading.hide();\n this.art.controls.hide();\n $player.classList.add('artplayer-error');\n notice.show(i18n.get('Video load failed'), false);\n this.art.destroy();\n }\n });\n }\n\n play() {\n const { refs: { $video }, i18n, notice } = this.art;\n const promise = $video.play();\n notice.show(i18n.get('Play'));\n this.art.emit('play', $video);\n return promise;\n }\n\n pause() {\n const { refs: { $video }, i18n, notice } = this.art;\n $video.pause();\n notice.show(i18n.get('Pause'));\n this.art.emit('pause', $video);\n }\n\n toggle() {\n if (this.art.isPlaying) {\n this.pause();\n } else {\n this.play();\n }\n }\n\n seek(time) {\n const { refs: { $video }, notice } = this.art;\n let newTime = Math.max(time, 0);\n if ($video.duration) {\n newTime = Math.min(newTime, $video.duration);\n }\n $video.currentTime = newTime;\n notice.show(`${secondToTime(newTime)} / ${secondToTime($video.duration)}`);\n this.art.emit('seek', newTime);\n }\n\n volume(percentage) {\n const { refs: { $video }, i18n, notice } = this.art;\n if (percentage !== undefined) {\n $video.volume = clamp(percentage, 0, 1);\n notice.show(`${i18n.get('Volume')}: ${parseInt($video.volume * 100)}`);\n if ($video.volume !== 0) {\n setStorage('volume', $video.volume);\n }\n this.art.emit('volume', $video.volume);\n }\n return $video.volume || 0;\n }\n\n currentTime() {\n return this.art.refs.$video.currentTime || 0;\n }\n\n duration() {\n return this.art.refs.$video.duration || 0;\n }\n\n playbackRate(rate) {\n const { refs: { $video, $player }, i18n, notice } = this.art;\n const newRate = clamp(rate, 0.1, 10);\n $video.playbackRate = newRate;\n $player.dataset.playbackRate = newRate;\n notice.show(`${i18n.get('Rate')}: ${newRate === 1 ? i18n.get('Normal') : `${newRate}x`}`);\n this.art.emit('playbackRate', newRate);\n }\n\n aspectRatio(ratio) {\n const { refs: { $video, $player }, i18n, notice } = this.art;\n const ratioName = ratio.length === 2 ? `${ratio[0]}:${ratio[1]}` : i18n.get('Default');\n\n if (ratio.length === 2) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth, clientHeight } = $player;\n const videoRatio = videoWidth / videoHeight;\n const setupRatio = Number(ratio[0]) / Number(ratio[1]);\n\n if (videoRatio > setupRatio) {\n const percentage = setupRatio * videoHeight / videoWidth;\n setStyle($video, 'width', `${percentage * 100}%`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'padding', `0 ${(clientWidth - clientWidth * percentage) / 2}px`);\n } else {\n const percentage = videoWidth / setupRatio / videoHeight;\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${percentage * 100}%`);\n setStyle($video, 'padding', `${(clientHeight - clientHeight * percentage) / 2}px 0`);\n }\n\n $player.dataset.aspectRatio = ratioName;\n } else {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n delete $player.dataset.aspectRatio;\n }\n\n notice.show(`${i18n.get('Aspect ratio')}: ${ratioName}`);\n this.art.emit('aspectRatio', ratio);\n }\n}\n","export default class Danmu {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n }\n}\n","export default class Fullscreen {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n }\n}\n","export default class Pip {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\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 loading from './loading.svg';\nimport playBig from './play-big.svg';\nimport play from './play.svg';\nimport pause from './pause.svg';\nimport volume from './volume.svg';\nimport volumeClose from './volume-close.svg';\nimport subtitle from './subtitle.svg';\nimport subtitleClose from './subtitle-close.svg';\nimport screenshot from './screenshot.svg';\n\nconst icons = {\n loading,\n playBig,\n play,\n pause,\n volume,\n volumeClose,\n subtitle,\n subtitleClose,\n screenshot\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 { append, tooltip, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class PlayAndPause {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n const { events: { proxy }, player, i18n } = art;\n this.$play = append(this.option.$control, icons.play);\n this.$pause = append(this.option.$control, icons.pause);\n tooltip(this.$play, i18n.get('Play'));\n tooltip(this.$pause, i18n.get('Pause'));\n setStyle(this.$pause, 'display', 'none');\n\n proxy(this.$play, 'click', () => {\n player.play();\n });\n\n proxy(this.$pause, 'click', () => {\n player.pause();\n });\n\n art.on('video:playing', () => {\n setStyle(this.$play, 'display', 'none');\n setStyle(this.$pause, 'display', 'block');\n });\n\n art.on('video:pause', () => {\n setStyle(this.$play, 'display', 'block');\n setStyle(this.$pause, 'display', 'none');\n });\n }\n}\n","import { append, clamp, secondToTime, setStyle } from '../utils';\n\nexport default class Progress {\n constructor(option) {\n this.option = option;\n this.isDroging = false;\n this.getLoaded = this.getLoaded.bind(this);\n this.getPlayed = this.getPlayed.bind(this);\n this.set = this.set.bind(this);\n }\n\n apply(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { option: { highlight, theme }, events: { proxy }, refs: { $video }, player } = this.art;\n\n append(\n this.option.$control,\n `\n
\n
\n
\n
\n
\n
\n
\n `\n );\n\n this.$loaded = this.option.$control.querySelector('.art-progress-loaded');\n this.$played = this.option.$control.querySelector('.art-progress-played');\n this.$highlight = this.option.$control.querySelector('.art-progress-highlight');\n this.$indicator = this.option.$control.querySelector('.art-progress-indicator');\n this.$tip = this.option.$control.querySelector('.art-progress-tip');\n\n this.set('loaded', this.getLoaded());\n highlight.forEach(item => {\n const left = Number(item.time) / $video.duration;\n append(this.$highlight, `\n \n `\n );\n });\n\n this.art.on('video:progress', () => {\n this.set('loaded', this.getLoaded());\n });\n\n this.art.on('video:timeupdate', () => {\n this.set('played', this.getPlayed());\n });\n\n this.art.on('video:ended', () => {\n this.set('played', 1);\n });\n\n proxy(this.option.$control, 'mousemove', event => {\n setStyle(this.$tip, 'display', 'block');\n if (event.path.indexOf(this.$highlight) > -1) {\n this.showHighlight(event);\n } else {\n this.showTime(event);\n }\n });\n\n proxy(this.option.$control, 'mouseout', () => {\n setStyle(this.$tip, 'display', 'none');\n });\n\n proxy(this.option.$control, 'click', event => {\n if (event.target !== this.$indicator) {\n const { second, percentage } = this.getPosFromEvent(event);\n this.set('played', percentage);\n player.seek(second);\n }\n });\n\n proxy(this.$indicator, 'mousedown', () => {\n this.isDroging = true;\n });\n\n proxy(document, 'mousemove', event => {\n if (this.isDroging) {\n const { second, percentage } = this.getPosFromEvent(event);\n this.$indicator.classList.add('show-indicator');\n this.set('played', percentage);\n player.seek(second);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (this.isDroging) {\n this.isDroging = false;\n this.$indicator.classList.remove('show-indicator');\n }\n });\n }\n\n showHighlight(event) {\n const { $video } = this.art.refs;\n const { text, time } = event.target.dataset;\n this.$tip.innerHTML = text;\n const left =\n Number(time) / $video.duration * this.option.$control.clientWidth +\n event.target.clientWidth / 2 -\n this.$tip.clientWidth / 2;\n setStyle(this.$tip, 'left', `${left}px`);\n }\n\n showTime(event) {\n const { width, time } = this.getPosFromEvent(event);\n const tipWidth = this.$tip.clientWidth;\n this.$tip.innerHTML = time;\n if (width <= tipWidth / 2) {\n setStyle(this.$tip, 'left', 0);\n } else if (width > this.option.$control.clientWidth - tipWidth / 2) {\n setStyle(this.$tip, 'left', `${this.option.$control.clientWidth - tipWidth}px`);\n } else {\n setStyle(this.$tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n getPlayed() {\n const { $video } = this.art.refs;\n return $video.currentTime / $video.duration;\n }\n\n getLoaded() {\n const { $video } = this.art.refs;\n return $video.buffered.length\n ? $video.buffered.end($video.buffered.length - 1) / $video.duration\n : 0;\n }\n\n getPosFromEvent(event) {\n const { $video, $progress } = this.art.refs;\n const { left } = $progress.getBoundingClientRect();\n const width = clamp(event.x - left, 0, $progress.clientWidth);\n const second = width / $progress.clientWidth * $video.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\n }\n\n set(type, percentage) {\n setStyle(this[`$${type}`], 'width', `${percentage * 100}%`);\n if (type === 'played') {\n setStyle(this.$indicator, 'left', `calc(${percentage * 100}% - 6.5px)`);\n }\n }\n}\n","import { append, tooltip, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class Subtitle {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n const { events: { proxy }, subtitle, i18n } = art;\n this.$subtitle = append(this.option.$control, icons.subtitle);\n this.$subtitleClose = append(this.option.$control, icons.subtitleClose);\n tooltip(this.$subtitle, i18n.get('Hide subtitle'));\n tooltip(this.$subtitleClose, i18n.get('Show subtitle'));\n setStyle(this.$subtitleClose, 'display', 'none');\n\n proxy(this.$subtitle, 'click', () => {\n subtitle.hide();\n setStyle(this.$subtitle, 'display', 'none');\n setStyle(this.$subtitleClose, 'display', 'block');\n });\n\n proxy(this.$subtitleClose, 'click', () => {\n subtitle.show();\n setStyle(this.$subtitle, 'display', 'block');\n setStyle(this.$subtitleClose, 'display', 'none');\n });\n }\n}\n","import { secondToTime } from '../utils';\n\nexport default class Time {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n this.option.$control.innerHTML = '00:00 / 00:00';\n\n this.art.on('video:canplay', () => {\n this.option.$control.innerHTML = this.getTime();\n });\n\n this.art.on('video:timeupdate', () => {\n this.option.$control.innerHTML = this.getTime();\n });\n\n this.art.on('video:seeking', () => {\n this.option.$control.innerHTML = this.getTime();\n });\n }\n\n getTime() {\n const { player } = this.art;\n return `${secondToTime(player.currentTime())} / ${secondToTime(player.duration())}`;\n }\n}\n","import { append, getStorage, clamp, tooltip, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class Volume {\n constructor(option) {\n this.option = option;\n this.isDroging = false;\n }\n\n apply(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { events: { proxy }, player, i18n } = this.art;\n this.$volume = append(this.option.$control, icons.volume);\n this.$volumeClose = append(this.option.$control, icons.volumeClose);\n this.$volumePanel = append(this.option.$control, '
');\n this.$volumeHandle = append(this.$volumePanel, '
');\n tooltip(this.$volume, i18n.get('Mute'));\n setStyle(this.$volumeClose, 'display', 'none');\n\n const volume = getStorage('volume');\n this.setVolumeHandle(volume);\n player.volume(volume);\n\n proxy(this.$volume, 'click', () => {\n setStyle(this.$volume, 'display', 'none');\n setStyle(this.$volumeClose, 'display', 'block');\n player.volume(0);\n });\n\n proxy(this.$volumeClose, 'click', () => {\n setStyle(this.$volume, 'display', 'block');\n setStyle(this.$volumeClose, 'display', 'none');\n player.volume(getStorage('volume'));\n });\n\n proxy(this.option.$control, 'mouseenter', () => {\n this.$volumePanel.classList.add('art-volume-panel-hover');\n\n // TODO\n setTimeout(() => {\n this.setVolumeHandle(player.volume());\n }, 200);\n });\n\n proxy(this.option.$control, 'mouseleave', () => {\n this.$volumePanel.classList.remove('art-volume-panel-hover');\n });\n\n proxy(this.$volumePanel, 'click', event => {\n this.volumeChangeFromEvent(event);\n });\n\n proxy(this.$volumeHandle, 'mousedown', () => {\n this.isDroging = true;\n });\n\n proxy(this.$volumeHandle, 'mousemove', event => {\n if (this.isDroging) {\n this.volumeChangeFromEvent(event);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (this.isDroging) {\n this.isDroging = false;\n }\n });\n\n this.art.on('video:volumechange', () => {\n const percentage = player.volume();\n this.setVolumeHandle(percentage);\n if (percentage === 0) {\n setStyle(this.$volume, 'display', 'none');\n setStyle(this.$volumeClose, 'display', 'block');\n } else {\n setStyle(this.$volume, 'display', 'block');\n setStyle(this.$volumeClose, 'display', 'none');\n }\n });\n }\n\n volumeChangeFromEvent(event) {\n const { player } = this.art;\n const { left: panelLeft, width: panelWidth } = this.$volumePanel.getBoundingClientRect();\n const { width: handleWidth } = this.$volumeHandle.getBoundingClientRect();\n const percentage = clamp(event.x - panelLeft - handleWidth / 2, 0, panelWidth - handleWidth / 2) / (panelWidth - handleWidth);\n player.volume(percentage);\n }\n\n setVolumeHandle(percentage = 0.7) {\n const { width: panelWidth } = this.$volumePanel.getBoundingClientRect();\n const { width: handleWidth } = this.$volumeHandle.getBoundingClientRect();\n const width = handleWidth / 2 + (panelWidth - handleWidth) * percentage - handleWidth / 2;\n setStyle(this.$volumeHandle, 'left', `${width}px`);\n }\n}\n","export default class Setting {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n }\n}\n","import { errorHandle, setStyle } from '../utils';\n\nexport default class Thumbnails {\n constructor(option) {\n this.option = option;\n this.loading = false;\n this.isLoad = false;\n }\n\n apply(art) {\n this.art = art;\n errorHandle(this.art.controls.progress, '\\'thumbnails\\' control dependent on \\'progress\\' control');\n this.init();\n }\n\n init() {\n const { refs: { $progress }, events: { proxy } } = this.art;\n\n proxy($progress, 'mousemove', event => {\n if (!this.loading) {\n this.loading = true;\n this.load(this.art.option.thumbnails.url).then(() => {\n this.isLoad = true;\n });\n }\n\n if (this.isLoad) {\n setStyle(this.option.$control, 'display', 'block');\n this.showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseout', () => {\n setStyle(this.option.$control, 'display', 'none');\n });\n }\n\n load(url) {\n const { proxy } = this.art.events;\n return new Promise((resolve, reject) => {\n const image = new Image();\n image.src = url;\n\n if (image.complete) {\n return resolve(image);\n }\n\n proxy(image, 'load', () => resolve(image));\n\n proxy(image, 'error', () => reject(image));\n });\n }\n\n showThumbnails(event) {\n const { refs: { $progress }, controls } = this.art;\n const { width: posWidth } = controls.progress.getPosFromEvent(event);\n const { url, height, width, number, column } = this.art.option.thumbnails;\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.ceil(posWidth / perWidth);\n let yIndex = Math.ceil(perIndex / column);\n let xIndex = perIndex % column || column;\n\n setStyle(this.option.$control, 'backgroundImage', `url(${url})`);\n setStyle(this.option.$control, 'height', `${height}px`);\n setStyle(this.option.$control, 'width', `${width}px`);\n setStyle(this.option.$control, 'backgroundPosition', `-${--xIndex * width}px -${--yIndex * height}px`);\n\n if (posWidth <= width / 2) {\n setStyle(this.option.$control, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width / 2) {\n setStyle(this.option.$control, 'left', `${$progress.clientWidth - width}px`);\n } else {\n setStyle(this.option.$control, 'left', `${posWidth - width / 2}px`);\n }\n }\n}\n","import { append, tooltip, secondToTime, setStyle } from '../utils';\nimport icons from '../icons';\n\nexport default class Screenshot {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n const { events: { proxy }, i18n, notice } = this.art;\n this.$screenshot = append(this.option.$control, icons.screenshot);\n tooltip(this.$screenshot, i18n.get('Screenshot'));\n proxy(this.$screenshot, 'click', () => {\n try {\n this.captureFrame();\n } catch (error) {\n notice.show(error);\n }\n });\n }\n\n captureFrame() {\n const { $video } = this.art.refs;\n const canvas = document.createElement('canvas');\n canvas.width = $video.videoWidth;\n canvas.height = $video.videoHeight;\n canvas.getContext('2d').drawImage($video, 0, 0);\n const dataUri = canvas.toDataURL('image/png');\n const elink = document.createElement('a');\n setStyle(elink, 'display', 'none');\n elink.href = dataUri;\n elink.download = `${secondToTime($video.currentTime)}.png`;\n document.body.appendChild(elink);\n elink.click();\n document.body.removeChild(elink);\n }\n}\n","export default class Quality {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n }\n}\n","import { setStyle } from '../utils';\nimport Danmu from './danmu';\nimport Fullscreen from './fullscreen';\nimport Pip from './pip';\nimport PlayAndPause from './playAndPause';\nimport Progress from './progress';\nimport Subtitle from './subtitle';\nimport Time from './time';\nimport Volume from './volume';\nimport Setting from './setting';\nimport Thumbnails from './thumbnails';\nimport Screenshot from './screenshot';\nimport Quality from './quality';\n\nlet id = 0;\nexport default class Controls {\n constructor(art) {\n this.art = art;\n this.$map = {};\n this.art.on('firstCanplay', () => {\n this.init();\n this.mount();\n });\n }\n\n init() {\n this.add(new Progress({\n disable: false,\n position: 'top',\n index: 10\n }));\n\n this.add(new Thumbnails({\n disable: !this.art.option.thumbnails.url,\n position: 'top',\n index: 20\n }));\n\n this.add(new PlayAndPause({\n disable: false,\n position: 'left',\n index: 10\n }));\n\n this.add(new Volume({\n disable: false,\n position: 'left',\n index: 20\n }));\n\n this.add(new Time({\n disable: false,\n position: 'left',\n index: 30\n }));\n\n this.add(new Danmu({\n disable: false,\n position: 'right',\n index: 10\n }));\n\n this.add(new Screenshot({\n disable: !this.art.option.screenshot,\n position: 'right',\n index: 20\n }));\n\n this.add(new Subtitle({\n disable: !this.art.option.subtitle.url,\n position: 'right',\n index: 30\n }));\n\n this.add(new Quality({\n disable: this.art.option.quality.length === 0,\n position: 'right',\n index: 40\n }));\n\n this.add(new Setting({\n disable: false,\n position: 'right',\n index: 50\n }));\n\n this.add(new Pip({\n disable: false,\n position: 'right',\n index: 60\n }));\n\n this.add(new Fullscreen({\n disable: false,\n position: 'right',\n index: 70\n }));\n\n this.art.option.controls.forEach(item => {\n this.add(item);\n });\n }\n\n add(control) {\n const { option } = control;\n if (option && !option.disable) {\n id++;\n const name = control.constructor.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 option.$control = $control;\n this.commonMethod(control);\n (this.$map[option.position] || (this.$map[option.position] = [])).push($control);\n control.apply && control.apply(this.art);\n this[name] = control;\n }\n }\n\n mount() {\n const { $progress, $controlsLeft, $controlsRight } = this.art.refs;\n Object.keys(this.$map).forEach(key => {\n this.$map[key]\n .sort(\n (a, b) =>\n Number(a.dataset.controlIndex) - Number(b.dataset.controlIndex)\n )\n .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(control) {\n Object.defineProperty(control, 'hide', {\n value: () => {\n setStyle(control.option.$control, 'display', 'none');\n this.art.emit('control:hide', control.option.$control);\n }\n });\n\n Object.defineProperty(control, 'show', {\n value: () => {\n setStyle(control.option.$control, 'display', 'block');\n this.art.emit('control:show', control.option.$control);\n }\n });\n }\n\n show() {\n const { $player } = this.art.refs;\n $player.classList.add('controls-show');\n }\n\n hide() {\n const { $player } = this.art.refs;\n $player.classList.remove('controls-show');\n }\n}\n","import { append, setStyles, setStyle, sublings } from './utils';\n\nlet id = 0;\nexport default class Contextmenu {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { option, player, i18n, refs, events: { proxy } } = this.art;\n\n option.contextmenu.push(\n {\n disable: !option.playbackRate,\n name: 'playbackRate',\n html: `\n ${i18n.get('Play speed')}:\n 0.5\n 0.75\n ${i18n.get('Normal')}\n 1.25\n 1.5\n 2.0\n `,\n click: (art, event) => {\n const { target } = event;\n const { rate } = target.dataset;\n if (rate) {\n player.playbackRate(Number(rate));\n sublings(target).forEach(item => item.classList.remove('current'));\n target.classList.add('current');\n this.hide();\n }\n }\n },\n {\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n html: `\n ${i18n.get('Aspect ratio')}:\n ${i18n.get('Default')}\n 4:3\n 16:9\n `,\n click: (art, event) => {\n const { target } = event;\n const { ratio } = target.dataset;\n if (ratio) {\n player.aspectRatio(ratio.split(':'));\n sublings(target).forEach(item => item.classList.remove('current'));\n target.classList.add('current');\n this.hide();\n }\n }\n },\n {\n disable: false,\n name: 'info',\n html: i18n.get('Video info'),\n click: () => {\n this.art.info.show();\n this.hide();\n }\n },\n {\n disable: false,\n name: 'version',\n html: 'ArtPlayer __VERSION__'\n },\n {\n disable: false,\n name: 'close',\n html: i18n.get('Close'),\n click: () => {\n this.hide();\n }\n }\n );\n\n proxy(refs.$player, 'contextmenu', event => {\n event.preventDefault();\n this.art.isFocus = true;\n if (!refs.$contextmenu) {\n this.creatMenu();\n }\n this.show();\n this.setPos(event);\n });\n\n proxy(refs.$player, 'click', event => {\n if (refs.$contextmenu && !event.path.includes(refs.$contextmenu)) {\n this.hide();\n }\n });\n }\n\n creatMenu() {\n const { option, refs, events: { proxy } } = this.art;\n refs.$contextmenu = document.createElement('div');\n refs.$contextmenu.classList.add('artplayer-contextmenu');\n option.contextmenu\n .filter(item => !item.disable)\n .forEach(item => {\n id++;\n const $menu = document.createElement('div');\n $menu.setAttribute('data-art-menu-id', id);\n $menu.setAttribute('class', `art-menu art-menu-${item.name || id}`);\n append($menu, item.html);\n setStyles($menu, item.style || {});\n if (item.click) {\n proxy($menu, 'click', event => {\n event.preventDefault();\n item.click(this.art, event);\n this.art.emit('contextmenu:click', $menu);\n });\n }\n append(refs.$contextmenu, $menu);\n });\n append(refs.$player, 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.$player.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 setStyle(refs.$contextmenu, 'left', `${menuLeft}px`);\n setStyle(refs.$contextmenu, 'top', `${menuTop}px`);\n }\n\n hide() {\n const { refs: { $contextmenu } } = this.art;\n if ($contextmenu) {\n setStyle($contextmenu, 'display', 'none');\n this.art.emit('contextmenu:hide', $contextmenu);\n }\n }\n\n show() {\n const { refs: { $contextmenu } } = this.art;\n if ($contextmenu) {\n setStyle($contextmenu, '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","import { append, setStyle } from './utils';\n\nexport default class Info {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { refs: { $infoClose }, events: { proxy } } = this.art;\n proxy($infoClose, 'click', () => {\n this.hide();\n });\n }\n\n show() {\n const { $info, $infoPanel } = this.art.refs;\n setStyle($info, 'display', 'block');\n if (!$infoPanel.innerHTML) {\n append($infoPanel, this.creatInfo());\n this.getHeader();\n }\n clearTimeout(this.timer);\n this.loop();\n this.art.emit('info:show', $info);\n }\n\n creatInfo() {\n const infoHtml = [];\n\n infoHtml.push(`\n
\n
Player version:
\n
__VERSION__
\n
\n `);\n\n infoHtml.push(`\n
\n
Video url:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video type:
\n
loading...
\n
\n `);\n\n infoHtml.push(`\n
\n
Video size:
\n
loading...
\n
\n `);\n\n infoHtml.push(`\n
\n
Video volume:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video time:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video duration:
\n
\n
\n `);\n\n infoHtml.push(`\n
\n
Video resolution:
\n
\n x \n
\n
\n `);\n\n return infoHtml.join('');\n }\n\n getHeader() {\n const { option: { url }, refs: { $infoPanel } } = this.art;\n const types = Array.from($infoPanel.querySelectorAll('[data-head]'));\n fetch(url, {\n method: 'HEAD'\n }).then(data => {\n types.forEach(item => {\n const value = data.headers.get(item.dataset.head);\n item.innerHTML = value !== undefined ? value : 'unknown';\n });\n }).catch(() => {\n types.forEach(item => {\n item.innerHTML = 'unknown';\n });\n });\n }\n\n readInfo() {\n const { $infoPanel, $video } = this.art.refs;\n const types = Array.from($infoPanel.querySelectorAll('[data-video]'));\n types.forEach(item => {\n const value = $video[item.dataset.video];\n item.innerHTML = value !== undefined ? value : 'unknown';\n });\n }\n\n loop() {\n this.readInfo();\n this.timer = setTimeout(() => {\n this.readInfo();\n this.loop();\n }, 1000);\n }\n\n hide() {\n const { $info } = this.art.refs;\n setStyle($info, 'display', 'none');\n clearTimeout(this.timer);\n this.art.emit('info:hide', $info);\n }\n}\n","import { errorHandle, getExt, setStyles, setStyle } from './utils';\n\nexport default class Subtitle {\n constructor(art) {\n this.art = art;\n\n const { url } = this.art.option.subtitle;\n if (url) {\n this.checkExt(url);\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 setStyles($subtitle, subtitle.style || {});\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\n\n this.load(subtitle.url).then(data => {\n $track.src = data;\n $video.appendChild($track);\n this.art.refs.$track = $track;\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\n load(url) {\n let type;\n return fetch(url)\n .then(response => {\n type = response.headers.get('Content-Type');\n return response.text();\n })\n .then(text => {\n if ((/x-subrip/gi).test(type)) {\n return this.srtToVtt(text);\n }\n return url;\n })\n .catch(err => {\n throw err;\n });\n }\n\n srtToVtt(text) {\n const vttText = 'WEBVTT \\r\\n\\r\\n'.concat(\n text\n .replace(/\\{\\\\([ibu])\\}/g, '')\n .replace(/\\{\\\\([ibu])1\\}/g, '<$1>')\n .replace(/\\{([ibu])\\}/g, '<$1>')\n .replace(/\\{\\/([ibu])\\}/g, '')\n .replace(/(\\d\\d:\\d\\d:\\d\\d),(\\d\\d\\d)/g, '$1.$2')\n .concat('\\r\\n\\r\\n')\n );\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt'\n })\n );\n }\n\n checkExt(url) {\n const ext = getExt(url);\n errorHandle(\n ext === 'vtt' || ext === 'srt',\n `'subtitle.url' option require 'vtt' or 'srt' format, but got '${ext}'.`\n );\n }\n\n show() {\n const { $subtitle } = this.art.refs;\n setStyle($subtitle, 'display', 'block');\n this.art.emit('subtitle:show', $subtitle);\n }\n\n hide() {\n const { $subtitle } = this.art.refs;\n setStyle($subtitle, 'display', 'none');\n this.art.emit('subtitle:hide', $subtitle);\n }\n\n switch(url) {\n const { $track } = this.art.refs;\n this.checkExt(url);\n errorHandle($track, 'You need to initialize the subtitle option first.');\n this.load(url).then(data => {\n if (url !== data) {\n $track.src = data;\n this.art.emit('subtitle:switch', url);\n }\n });\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 if (Array.isArray(name)) {\n name.forEach(item => this.proxy(target, item, callback, option));\n }\n\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 { player, refs: { $player }, events: { proxy } } = this.art;\n\n proxy(document, 'click', event => {\n this.art.isFocus = event.path.indexOf($player) > -1;\n });\n\n proxy(window, 'keydown', event => {\n if (this.art.isFocus) {\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 switch (event.keyCode) {\n case 39:\n event.preventDefault();\n player.seek(player.currentTime() + 10);\n break;\n case 37:\n event.preventDefault();\n player.seek(player.currentTime() - 10);\n break;\n case 38:\n event.preventDefault();\n player.volume(player.volume() + 0.05);\n break;\n case 40:\n event.preventDefault();\n player.volume(player.volume() - 0.05);\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, setStyles, 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.filter(item => item.disable === false).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 setStyle($layer, 'z-index', option.index || id);\n append($layer, option.html);\n setStyles($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 setStyle($layers, 'display', 'block');\n this.art.emit('layers:show', $layers);\n }\n\n hide() {\n const { $layers } = this.art.refs;\n setStyle($layers, 'display', 'none');\n this.art.emit('layers:hide', $layers);\n }\n}\n","import icons from './icons';\nimport { append, setStyle } 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 setStyle($loading, 'display', 'none');\n this.art.emit('loading:hide', $loading);\n }\n\n show() {\n const { $loading } = this.art.refs;\n setStyle($loading, 'display', 'flex');\n this.art.emit('loading:show', $loading);\n }\n}\n","import { setStyle } from './utils';\n\nexport default class Notice {\n constructor(art) {\n this.art = art;\n this.timer = null;\n }\n\n show(msg, autoHide = true, time = 1000) {\n const { $notice, $noticeInner } = this.art.refs;\n setStyle($notice, 'display', 'block');\n $noticeInner.innerHTML = msg instanceof Error ? msg.message.trim() : msg;\n if (autoHide) {\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.hide();\n }, time);\n }\n this.art.emit('notice:show', $notice);\n }\n\n hide() {\n const { $notice } = this.art.refs;\n setStyle($notice, 'display', 'none');\n this.art.emit('notice:hide', $notice);\n }\n}\n","import icons from './icons';\nimport { append, setStyle } from './utils';\n\nexport default class Mask {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { player, refs, events: { proxy } } = this.art;\n\n append(refs.$mask, icons.playBig);\n\n proxy(refs.$mask, 'click', () => {\n player.play();\n this.hide();\n });\n }\n\n show() {\n const { $mask } = this.art.refs;\n setStyle($mask, 'display', 'block');\n this.art.emit('mask:show', $mask);\n }\n\n hide() {\n const { $mask } = this.art.refs;\n setStyle($mask, 'display', 'none');\n this.art.emit('mask:show', $mask);\n }\n}\n","import './style';\nimport 'balloon-css/balloon.min.css';\nimport { deepMerge } from './utils';\nimport optionValidator from 'option-validator';\nimport scheme from './scheme';\nimport config from './config';\nimport Emitter from 'tiny-emitter';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\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 = deepMerge({}, Artplayer.DEFAULTS, option);\n optionValidator(this.option, scheme);\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 thumbnails: {\n url: '',\n number: 60,\n width: 160,\n height: 90,\n column: 10\n },\n screenshot: true,\n autoplay: false,\n playbackRate: true,\n aspectRatio: true,\n loop: false,\n type: '',\n mimeCodec: '',\n layers: [],\n contextmenu: [],\n quality: [],\n loading: '',\n theme: '#f00',\n hotkey: true,\n subtitle: {\n url: '',\n style: {}\n },\n controls: [],\n highlight: [],\n moreVideoAttr: {\n 'controls': false,\n 'preload': 'auto',\n 'webkit-playsinline': true,\n 'playsinline': true\n },\n lang: navigator.language.toLowerCase()\n };\n }\n\n static use(Plugin) {\n const name = Plugin.name.toLowerCase();\n const installedPlugins = this.plugins || (this.plugins = {});\n if (!installedPlugins[name]) {\n const args = Array.from(arguments).slice(1);\n args.unshift(this);\n installedPlugins[name] = new Plugin(...args);\n this.prototype.emit('use', Plugin);\n }\n return this;\n }\n\n init() {\n this.isError = false;\n this.isFocus = false;\n this.isPlaying = 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.notice = new Notice(this);\n this.events = new Events(this);\n this.player = new Player(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.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(removeHtml = false) {\n this.events.destroy();\n instances.splice(instances.indexOf(this), 1);\n if (removeHtml) {\n this.refs.$container.innerHTML = '';\n } else {\n this.refs.$player.classList.add('artplayer-destroy');\n }\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","isFun","clamp","num","a","b","Math","max","min","getExt","url","includes","split","trim","toLowerCase","pop","append","parent","child","Element","appendChild","insertAdjacentHTML","lastElementChild","setStyle","element","key","value","style","setStyles","styles","Object","keys","forEach","secondToTime","second","add0","String","hour","floor","sec","map","join","deepMerge","isObject","returnValue","sources","source","Array","isArray","hasOwnProperty","getStorage","storage","JSON","parse","localStorage","getItem","setStorage","assign","setItem","stringify","tooltip","target","pos","setAttribute","sleep","ms","Promise","resolve","setTimeout","sublings","from","parentElement","children","filter","item","validElement","paths","type","container","validator","required","volume","thumbnails","number","width","height","column","screenshot","autoplay","playbackRate","aspectRatio","loop","mimeCodec","layers","index","html","contextmenu","click","quality","default","loading","theme","hotkey","subtitle","controls","option","disable","position","highlight","time","text","moreVideoAttr","lang","mp4","webm","ts","mediaSource","propertys","methods","events","sourceBuffer","sourceBufferList","mse","video","Template","art","init","refs","$container","innerHTML","$player","querySelector","$video","$subtitle","$bottom","$progress","$controls","$controlsLeft","$controlsRight","$layers","$loading","$notice","$noticeInner","$mask","$info","$infoPanel","$infoClose","i18nMap","I18n","language","callback","Player","eventBind","firstCanplay","reconnectTime","maxReconnectTime","poster","src","proxy","i18n","notice","config","eventName","event","emit","on","show","hide","mask","promise","play","undefined","then","catch","err","console","warn","isPlaying","seek","get","isError","classList","add","destroy","pause","newTime","duration","currentTime","percentage","parseInt","rate","newRate","dataset","ratio","ratioName","length","videoWidth","videoHeight","clientWidth","clientHeight","videoRatio","setupRatio","Number","Danmu","Fullscreen","Pip","icons","playBig","volumeClose","subtitleClose","creatDomFromSvg","result","tmp","document","createElement","childNodes","PlayAndPause","player","$play","$control","$pause","Progress","isDroging","getLoaded","bind","getPlayed","set","$loaded","$played","$highlight","$indicator","$tip","left","path","indexOf","showHighlight","showTime","getPosFromEvent","remove","tipWidth","buffered","end","getBoundingClientRect","x","Subtitle","$subtitleClose","Time","getTime","Volume","$volume","$volumeClose","$volumePanel","$volumeHandle","setVolumeHandle","volumeChangeFromEvent","panelLeft","panelWidth","handleWidth","Setting","Thumbnails","isLoad","progress","load","showThumbnails","reject","image","Image","complete","posWidth","perWidth","perIndex","ceil","yIndex","xIndex","Screenshot","$screenshot","captureFrame","error","canvas","getContext","drawImage","dataUri","toDataURL","elink","href","download","body","removeChild","Quality","id","Controls","$map","mount","control","commonMethod","push","apply","sort","controlIndex","defineProperty","Contextmenu","info","preventDefault","isFocus","$contextmenu","creatMenu","setPos","$menu","mouseX","clientX","mouseY","clientY","cHeight","cWidth","cLeft","cTop","top","mHeight","mWidth","menuLeft","menuTop","Info","creatInfo","getHeader","clearTimeout","timer","infoHtml","types","querySelectorAll","fetch","method","data","headers","head","readInfo","checkExt","$track","kind","textTracks","track","activeCues","cue","template","getCueAsHTML","response","test","srtToVtt","vttText","concat","replace","URL","createObjectURL","Blob","ext","Events","destroyEvents","addEventListener","removeEventListener","Hotkey","window","tag","activeElement","tagName","toUpperCase","editable","getAttribute","keyCode","toggle","Layers","$layer","Loading","Notice","autoHide","Mask","instances","Artplayer","DEFAULTS","optionValidator","scheme","danmu","removeHtml","splice","Plugin","installedPlugins","plugins","args","arguments","slice","unshift","prototype","navigator","Emitter"],"mappings":"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"} \ No newline at end of file diff --git a/src/controls/index.js b/src/controls/index.js index aaf418745..3c0b877cf 100644 --- a/src/controls/index.js +++ b/src/controls/index.js @@ -10,6 +10,7 @@ import Volume from './volume'; import Setting from './setting'; import Thumbnails from './thumbnails'; import Screenshot from './screenshot'; +import Quality from './quality'; let id = 0; export default class Controls { @@ -71,24 +72,30 @@ export default class Controls { index: 30 })); - this.add(new Setting({ - disable: false, + this.add(new Quality({ + disable: this.art.option.quality.length === 0, position: 'right', index: 40 })); - this.add(new Pip({ + this.add(new Setting({ disable: false, position: 'right', index: 50 })); - this.add(new Fullscreen({ + this.add(new Pip({ disable: false, position: 'right', index: 60 })); + this.add(new Fullscreen({ + disable: false, + position: 'right', + index: 70 + })); + this.art.option.controls.forEach(item => { this.add(item); }); diff --git a/src/controls/quality.js b/src/controls/quality.js new file mode 100644 index 000000000..1e56c9e88 --- /dev/null +++ b/src/controls/quality.js @@ -0,0 +1,9 @@ +export default class Quality { + constructor(option) { + this.option = option; + } + + apply(art) { + this.art = art; + } +} diff --git a/src/index.js b/src/index.js index e365a9af1..adf55bb79 100644 --- a/src/index.js +++ b/src/index.js @@ -63,6 +63,7 @@ class Artplayer extends Emitter { mimeCodec: '', layers: [], contextmenu: [], + quality: [], loading: '', theme: '#f00', hotkey: true, diff --git a/src/scheme/index.js b/src/scheme/index.js index 6ab312689..9b3263fc9 100644 --- a/src/scheme/index.js +++ b/src/scheme/index.js @@ -50,6 +50,14 @@ export default { click: 'function' } }, + quality: { + type: 'array', + child: { + default: 'boolean', + name: 'string', + url: 'string' + } + }, loading: 'string', theme: 'string', hotkey: 'boolean',