From 4da0ac7650bea093e8eeda1c728b03318b2530bd Mon Sep 17 00:00:00 2001 From: Harvey Zack Date: Thu, 25 Oct 2018 18:04:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=82=E6=AD=A5=E5=8A=A0=E8=BD=BDurl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/js/artplayer.js | 14 +++++++++++--- docs/js/artplayer.js.map | 2 +- src/player.js | 10 ++++++---- src/utils/index.js | 4 ++++ 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/docs/js/artplayer.js b/docs/js/artplayer.js index 84e796950..ba00ec803 100644 --- a/docs/js/artplayer.js +++ b/docs/js/artplayer.js @@ -384,6 +384,12 @@ target.setAttribute('data-balloon', msg); target.setAttribute('data-balloon-pos', pos); } + function sleep() { + var ms = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + return new Promise(function (resolve) { + return setTimeout(resolve, ms); + }); + } function validOption(DEFAULTS, option) { var path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ['option']; @@ -674,7 +680,9 @@ $video.volume = clamp(option.volume, 0, 1); $video.poster = option.poster; $video.autoplay = option.autoplay; - $video.src = option.url; + sleep().then(function () { + $video.src = option.url; + }); } }, { key: "eventBind", @@ -758,11 +766,11 @@ }); this.art.on('video:error', function () { if (_this.reconnectTime < _this.maxReconnectTime) { - setTimeout(function () { + sleep(100).then(function () { _this.reconnectTime++; $video.src = option.url; notice.show("".concat(i18n.get('Reconnect'), ": ").concat(_this.reconnectTime)); - }, 1000); + }); } else { _this.art.isError = true; _this.art.isPlaying = false; diff --git a/docs/js/artplayer.js.map b/docs/js/artplayer.js.map index 3d0c4f9c1..c90ab7d4a 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","../../src/verification/player.js","../../src/config/mimeCodec.js","../../src/config/mse.js","../../src/config/video.js","../../src/config/index.js","../../node_modules/tiny-emitter/index.js","../../src/template.js","../../src/i18n.js","../../src/player.js","../../src/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/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, styles) {\n Object.keys(styles).forEach(key => {\n element.style[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 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 getType(val) {\n const { toString } = Object.prototype;\n const type = toString.call(val).slice(8, -1).toLowerCase().replace(/\\s/g, '');\n return type;\n}\n\nexport function tooltip(target, msg, pos = 'up') {\n target.setAttribute('data-balloon', msg);\n target.setAttribute('data-balloon-pos', pos);\n}\n","import { errorHandle, getType } from '../utils';\n\nexport default function validOption(DEFAULTS, option, path = ['option']) {\n Object.keys(DEFAULTS).forEach(key => {\n const defaultValue = DEFAULTS[key];\n const value = option[key];\n const defaultType = getType(defaultValue);\n const type = getType(value);\n\n if (key === 'container' || key === 'html') {\n errorHandle(\n type === 'string' || value instanceof Element,\n `'${path.join('.')}.${key}' require 'string' or 'Element' type, but got '${type}'`\n );\n } else {\n errorHandle(\n defaultType === type,\n `'${path.join('.')}.${key}' require '${defaultType}' type, but got '${type}'`\n );\n }\n\n if (type === 'object') {\n validOption(defaultValue, value, path.concat(key));\n }\n\n if (path.length === 1) {\n if (key === 'layers') {\n value.forEach((item, index) => {\n validOption(\n {\n name: '',\n index: 0,\n html: '',\n style: {}\n },\n item,\n path.concat(`${key}[${index}]`)\n );\n });\n }\n\n if (key === 'contextmenu') {\n value.forEach((item, index) => {\n validOption(\n {\n name: '',\n click: new Function(),\n html: '',\n style: {}\n },\n item,\n path.concat(`${key}[${index}]`)\n );\n });\n }\n\n if (key === 'highlight') {\n value.forEach((item, index) => {\n validOption(\n {\n time: 0,\n text: ''\n },\n item,\n path.concat(`${key}[${index}]`)\n );\n });\n }\n\n if (key === 'controls') {\n value.forEach((item, index) => {\n if (item.option) {\n validOption(\n {\n disable: false,\n position: '',\n index: 0\n },\n item.option,\n path.concat(`${key}[${index}]`)\n );\n }\n });\n }\n }\n });\n}\n","export default {\n mp4: 'video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"',\n webm: 'video/webm; codecs=\"vorbis, vp8\"',\n ts: 'video/mp2t; codecs=\"avc1.42E01E, mp4a.40.2\"'\n};\n","export default {\n mediaSource: {\n propertys: [\n 'activeSourceBuffers',\n 'duration',\n 'readyState',\n 'sourceBuffers'\n ],\n methods: [\n 'addSourceBuffer',\n 'endOfStream',\n 'removeSourceBuffer',\n 'clearLiveSeekableRange',\n 'setLiveSeekableRange'\n ],\n events: [\n 'sourceclose',\n 'sourceended',\n 'sourceopen'\n ]\n },\n sourceBuffer: {\n propertys: [\n 'mode',\n 'updating',\n 'buffered',\n 'timestampOffset',\n 'audioTracks',\n 'videoTracks',\n 'textTracks',\n 'appendWindowStart',\n 'appendWindowEnd',\n 'trackDefaults'\n ],\n methods: [\n 'appendBuffer',\n 'appendStream',\n 'abort',\n 'remove'\n ],\n events: [\n 'abort',\n 'error',\n 'update',\n 'updateend',\n 'updatestart'\n ]\n },\n sourceBufferList: {\n propertys: [\n 'length'\n ],\n events: [\n 'addsourcebuffer',\n 'removesourcebuffer'\n ]\n }\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume'\n ],\n methods: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting'\n ]\n};\n","import mimeCodec from './mimeCodec';\nimport mse from './mse';\nimport video from './video';\n\nexport default {\n mimeCodec,\n mse,\n video\n};\n","function E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n","export default class Template {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { refs } = this.art;\n refs.$container.innerHTML = `\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
[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.$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 },\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 }\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 } 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.firstLoad = 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 $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.firstLoad) {\n this.firstLoad = true;\n this.art.emit('video:firstload');\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 setTimeout(() => {\n this.reconnectTime++;\n $video.src = option.url;\n notice.show(`${i18n.get('Reconnect')}: ${this.reconnectTime}`);\n }, 1000);\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 }, i18n, notice } = this.art;\n const newRate = clamp(rate, 0.1, 10);\n $video.playbackRate = newRate;\n notice.show(`${i18n.get('Rate')}: ${newRate}x`);\n this.art.emit('playbackRate', newRate);\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';\n\nconst icons = {\n loading,\n playBig,\n play,\n pause,\n volume,\n volumeClose\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 } from '../utils';\nimport icons from '../icons';\n\nexport default class PlayAndPause {\n constructor(option) {\n this.option = option;\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\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 this.$pause.style.display = 'none';\n\n proxy(this.$play, 'click', () => {\n player.play();\n });\n\n proxy(this.$pause, 'click', () => {\n player.pause();\n });\n\n this.art.on('video:playing', () => {\n this.$play.style.display = 'none';\n this.$pause.style.display = 'block';\n });\n\n this.art.on('video:pause', () => {\n this.$play.style.display = 'block';\n this.$pause.style.display = 'none';\n });\n }\n}\n","import { append, clamp, secondToTime } from '../utils';\n\nexport default class Progress {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\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 this.init();\n }\n\n init() {\n const {\n option: { highlight, theme },\n events: { proxy },\n refs: { $video },\n player\n } = 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 this.$tip.style.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 this.$tip.style.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 this.$tip.style.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 this.$tip.style.left = 0;\n } else if (width > this.option.$control.clientWidth - tipWidth / 2) {\n this.$tip.style.left = `${this.option.$control.clientWidth - tipWidth}px`;\n } else {\n this.$tip.style.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 this[`$${type}`].style.width = `${percentage * 100}%`;\n if (type === 'played') {\n this.$indicator.style.left = `calc(${percentage * 100}% - 6.5px)`;\n }\n }\n}\n","export default class Subtitle {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\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 } from '../utils';\nimport icons from '../icons';\n\nexport default class Volume {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n this.isDroging = false;\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 this.$volumeClose.style.display = 'none';\n\n const volume = getStorage('volume');\n this.setVolumeHandle(volume);\n player.volume(volume);\n\n proxy(this.$volume, 'click', () => {\n this.$volume.style.display = 'none';\n this.$volumeClose.style.display = 'block';\n player.volume(0);\n });\n\n proxy(this.$volumeClose, 'click', () => {\n this.$volume.style.display = 'block';\n this.$volumeClose.style.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 this.$volume.style.display = 'none';\n this.$volumeClose.style.display = 'block';\n } else {\n this.$volume.style.display = 'block';\n this.$volumeClose.style.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 this.$volumeHandle.style.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","export 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 this.init();\n }\n\n init() {\n const {\n refs: { $progress },\n events: { proxy }\n } = 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 this.option.$control.style.display = 'block';\n this.showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseout', () => {\n this.option.$control.style.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 this.option.$control.style.backgroundImage = `url(${url})`;\n this.option.$control.style.height = `${height}px`;\n this.option.$control.style.width = `${width}px`;\n this.option.$control.style.backgroundPosition = `-${--xIndex * width}px -${--yIndex * height}px`;\n\n if (posWidth <= width / 2) {\n this.option.$control.style.left = 0;\n } else if (posWidth > $progress.clientWidth - width / 2) {\n this.option.$control.style.left = `${$progress.clientWidth - width}px`;\n } else {\n this.option.$control.style.left = `${posWidth - width / 2}px`;\n }\n }\n}\n","import 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';\n\nlet id = 0;\nexport default class Controls {\n constructor(art) {\n this.art = art;\n this.$map = {};\n this.art.on('video:firstload', () => {\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 Subtitle({\n disable: false,\n position: 'right',\n index: 20\n }));\n\n this.add(new Setting({\n disable: false,\n position: 'right',\n index: 30\n }));\n\n this.add(new Pip({\n disable: false,\n position: 'right',\n index: 40\n }));\n\n this.add(new Fullscreen({\n disable: false,\n position: 'right',\n index: 50\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 control.option.$control.style.display = 'none';\n this.art.emit('control:hide', control.option.$control);\n }\n });\n\n Object.defineProperty(control, 'show', {\n value: () => {\n control.option.$control.style.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, setStyle } 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 {\n option,\n i18n,\n refs,\n events: { proxy }\n } = this.art;\n\n option.contextmenu.push(\n {\n name: 'info',\n html: i18n.get('Video info'),\n click: () => {\n this.art.info.show();\n }\n },\n {\n name: 'version',\n html: 'ArtPlayer __VERSION__'\n },\n {\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 {\n option,\n refs,\n events: { proxy }\n } = this.art;\n refs.$contextmenu = document.createElement('div');\n refs.$contextmenu.classList.add('artplayer-contextmenu');\n option.contextmenu.forEach(item => {\n 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 setStyle($menu, item.style || {});\n if (item.click) {\n proxy($menu, 'click', event => {\n event.preventDefault();\n item.click(this.art, event);\n this.hide();\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 refs.$contextmenu.style.left = `${menuLeft}px`;\n refs.$contextmenu.style.top = `${menuTop}px`;\n }\n\n hide() {\n const { refs: { $contextmenu } } = this.art;\n if ($contextmenu) {\n $contextmenu.style.display = 'none';\n this.art.emit('contextmenu:hide', $contextmenu);\n }\n }\n\n show() {\n const { refs: { $contextmenu } } = this.art;\n if ($contextmenu) {\n $contextmenu.style.display = 'block';\n this.art.emit('contextmenu:show', $contextmenu);\n }\n }\n}\n","export default class Danmu {\n constructor(art) {\n this.art = art;\n }\n}\n","import { append } 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 $info.style.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 loop() {\n const { $infoPanel, $video } = this.art.refs;\n this.timer = setTimeout(() => {\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 this.loop();\n }, 1000);\n }\n\n hide() {\n const { $info } = this.art.refs;\n $info.style.display = 'none';\n clearTimeout(this.timer);\n this.art.emit('info:hide', $info);\n }\n}\n","import { errorHandle, getExt, 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 setStyle($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 $subtitle.style.display = 'block';\n this.art.emit('subtitle:show', $subtitle);\n }\n\n hide() {\n const { $subtitle } = this.art.refs;\n $subtitle.style.display = 'none';\n this.art.emit('subtitle:hide', $subtitle);\n }\n\n switch(url) {\n const { $track } = this.art.refs;\n 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 {\n player,\n refs: { $player },\n events: { proxy }\n } = 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, 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 $layer.style.zIndex = option.index || id;\n append($layer, option.html);\n setStyle($layer, option.style || {});\n refs.$layers.appendChild($layer);\n this.art.emit('layers:add', $layer);\n callback && callback($layer);\n }\n\n show() {\n const { $layers } = this.art.refs;\n $layers.style.display = 'block';\n this.art.emit('layers:show', $layers);\n }\n\n hide() {\n const { $layers } = this.art.refs;\n $layers.style.display = 'none';\n this.art.emit('layers:hide', $layers);\n }\n}\n","import icons from './icons';\nimport { append } from './utils';\n\nexport default class Loading {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { option, refs: { $loading } } = this.art;\n append($loading, option.loading || icons.loading);\n }\n\n hide() {\n const { $loading } = this.art.refs;\n $loading.style.display = 'none';\n this.art.emit('loading:hide', $loading);\n }\n\n show() {\n const { $loading } = this.art.refs;\n $loading.style.display = 'flex';\n this.art.emit('loading:show', $loading);\n }\n}\n","export default class Notice {\n constructor(art) {\n this.art = art;\n this.timer = null;\n }\n\n show(msg, autoHide = true, time = 1000) {\n const { $notice } = this.art.refs;\n $notice.style.display = 'block';\n $notice.innerHTML = msg instanceof Error ? msg.message.trim() : msg;\n if (autoHide) {\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.hide();\n }, time);\n }\n this.art.emit('notice:show', $notice);\n }\n\n hide() {\n const { $notice } = this.art.refs;\n $notice.style.display = 'none';\n this.art.emit('notice:hide', $notice);\n }\n}\n","import icons from './icons';\nimport { append } from './utils';\n\nexport default class Mask {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const {\n player,\n refs,\n events: { proxy }\n } = 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 $mask.style.display = 'block';\n this.art.emit('mask:show', $mask);\n }\n\n hide() {\n const { $mask } = this.art.refs;\n $mask.style.display = 'none';\n this.art.emit('mask:show', $mask);\n }\n}\n","import './style';\nimport 'balloon-css/balloon.min.css';\nimport { deepMerge } from './utils';\nimport validOption from './verification/player';\nimport config from './config';\nimport Emitter from 'tiny-emitter';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport 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 validOption(Artplayer.DEFAULTS, this.option);\n this.init();\n this.emit('init:end');\n }\n\n static get version() {\n return '__VERSION__';\n }\n\n static get config() {\n return config;\n }\n\n static get DEFAULTS() {\n return {\n container: '.artplayer',\n url: '',\n poster: '',\n volume: 0.7,\n thumbnails: {\n url: '',\n number: 60,\n width: 160,\n height: 90,\n column: 10\n },\n autoplay: false,\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 }\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","styles","Object","keys","forEach","key","style","secondToTime","second","add0","String","hour","floor","sec","map","join","deepMerge","isObject","value","returnValue","sources","source","Array","isArray","hasOwnProperty","getStorage","storage","JSON","parse","localStorage","getItem","setStorage","assign","setItem","stringify","getType","val","toString","prototype","type","call","slice","replace","tooltip","target","pos","setAttribute","validOption","DEFAULTS","option","path","defaultValue","defaultType","concat","length","item","index","html","click","Function","time","text","disable","position","mp4","webm","ts","mediaSource","propertys","methods","events","sourceBuffer","sourceBufferList","mimeCodec","mse","video","Template","art","init","refs","$container","innerHTML","$player","querySelector","$video","$subtitle","$bottom","$progress","$controls","$controlsLeft","$controlsRight","$layers","$loading","$notice","$mask","$info","$infoPanel","$infoClose","i18nMap","I18n","language","lang","callback","Player","eventBind","firstLoad","reconnectTime","maxReconnectTime","moreVideoAttr","volume","poster","autoplay","src","proxy","i18n","notice","config","eventName","event","emit","on","loading","show","hide","controls","mask","promise","play","undefined","then","catch","err","console","warn","isPlaying","loop","seek","setTimeout","get","isError","classList","add","destroy","pause","newTime","duration","currentTime","percentage","parseInt","rate","newRate","playbackRate","Danmu","Fullscreen","Pip","icons","playBig","volumeClose","creatDomFromSvg","result","tmp","document","createElement","childNodes","PlayAndPause","player","$play","$control","$pause","display","Progress","isDroging","getLoaded","bind","getPlayed","set","highlight","theme","$loaded","$played","$highlight","$indicator","$tip","left","Number","indexOf","showHighlight","showTime","getPosFromEvent","remove","dataset","clientWidth","width","tipWidth","buffered","end","getBoundingClientRect","x","Subtitle","Time","getTime","Volume","$volume","$volumeClose","$volumePanel","$volumeHandle","setVolumeHandle","volumeChangeFromEvent","panelLeft","panelWidth","handleWidth","Setting","Thumbnails","isLoad","load","thumbnails","showThumbnails","Promise","resolve","reject","image","Image","complete","progress","posWidth","height","number","column","perWidth","perIndex","ceil","yIndex","xIndex","backgroundImage","backgroundPosition","id","Controls","$map","mount","control","commonMethod","push","apply","sort","controlIndex","defineProperty","Contextmenu","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","from","querySelectorAll","fetch","method","data","headers","head","subtitle","checkExt","$track","default","kind","textTracks","track","activeCues","cue","template","getCueAsHTML","response","test","srtToVtt","vttText","URL","createObjectURL","Blob","ext","Events","destroyEvents","addEventListener","removeEventListener","Hotkey","hotkey","window","tag","activeElement","tagName","toUpperCase","editable","getAttribute","keyCode","toggle","Layers","layers","filter","$layer","zIndex","Loading","Notice","autoHide","Mask","instances","Artplayer","container","danmu","removeHtml","splice","Plugin","installedPlugins","plugins","args","arguments","unshift","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","../../src/verification/player.js","../../src/config/mimeCodec.js","../../src/config/mse.js","../../src/config/video.js","../../src/config/index.js","../../node_modules/tiny-emitter/index.js","../../src/template.js","../../src/i18n.js","../../src/player.js","../../src/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/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, styles) {\n Object.keys(styles).forEach(key => {\n element.style[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 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 getType(val) {\n const { toString } = Object.prototype;\n const type = toString.call(val).slice(8, -1).toLowerCase().replace(/\\s/g, '');\n return type;\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","import { errorHandle, getType } from '../utils';\n\nexport default function validOption(DEFAULTS, option, path = ['option']) {\n Object.keys(DEFAULTS).forEach(key => {\n const defaultValue = DEFAULTS[key];\n const value = option[key];\n const defaultType = getType(defaultValue);\n const type = getType(value);\n\n if (key === 'container' || key === 'html') {\n errorHandle(\n type === 'string' || value instanceof Element,\n `'${path.join('.')}.${key}' require 'string' or 'Element' type, but got '${type}'`\n );\n } else {\n errorHandle(\n defaultType === type,\n `'${path.join('.')}.${key}' require '${defaultType}' type, but got '${type}'`\n );\n }\n\n if (type === 'object') {\n validOption(defaultValue, value, path.concat(key));\n }\n\n if (path.length === 1) {\n if (key === 'layers') {\n value.forEach((item, index) => {\n validOption(\n {\n name: '',\n index: 0,\n html: '',\n style: {}\n },\n item,\n path.concat(`${key}[${index}]`)\n );\n });\n }\n\n if (key === 'contextmenu') {\n value.forEach((item, index) => {\n validOption(\n {\n name: '',\n click: new Function(),\n html: '',\n style: {}\n },\n item,\n path.concat(`${key}[${index}]`)\n );\n });\n }\n\n if (key === 'highlight') {\n value.forEach((item, index) => {\n validOption(\n {\n time: 0,\n text: ''\n },\n item,\n path.concat(`${key}[${index}]`)\n );\n });\n }\n\n if (key === 'controls') {\n value.forEach((item, index) => {\n if (item.option) {\n validOption(\n {\n disable: false,\n position: '',\n index: 0\n },\n item.option,\n path.concat(`${key}[${index}]`)\n );\n }\n });\n }\n }\n });\n}\n","export default {\n mp4: 'video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"',\n webm: 'video/webm; codecs=\"vorbis, vp8\"',\n ts: 'video/mp2t; codecs=\"avc1.42E01E, mp4a.40.2\"'\n};\n","export default {\n mediaSource: {\n propertys: [\n 'activeSourceBuffers',\n 'duration',\n 'readyState',\n 'sourceBuffers'\n ],\n methods: [\n 'addSourceBuffer',\n 'endOfStream',\n 'removeSourceBuffer',\n 'clearLiveSeekableRange',\n 'setLiveSeekableRange'\n ],\n events: [\n 'sourceclose',\n 'sourceended',\n 'sourceopen'\n ]\n },\n sourceBuffer: {\n propertys: [\n 'mode',\n 'updating',\n 'buffered',\n 'timestampOffset',\n 'audioTracks',\n 'videoTracks',\n 'textTracks',\n 'appendWindowStart',\n 'appendWindowEnd',\n 'trackDefaults'\n ],\n methods: [\n 'appendBuffer',\n 'appendStream',\n 'abort',\n 'remove'\n ],\n events: [\n 'abort',\n 'error',\n 'update',\n 'updateend',\n 'updatestart'\n ]\n },\n sourceBufferList: {\n propertys: [\n 'length'\n ],\n events: [\n 'addsourcebuffer',\n 'removesourcebuffer'\n ]\n }\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume'\n ],\n methods: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting'\n ]\n};\n","import mimeCodec from './mimeCodec';\nimport mse from './mse';\nimport video from './video';\n\nexport default {\n mimeCodec,\n mse,\n video\n};\n","function E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n","export default class Template {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { refs } = this.art;\n refs.$container.innerHTML = `\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
[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.$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 },\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 }\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 } 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.firstLoad = 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 sleep().then(() => {\n $video.src = option.url;\n });\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.firstLoad) {\n this.firstLoad = true;\n this.art.emit('video:firstload');\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(100).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 }, i18n, notice } = this.art;\n const newRate = clamp(rate, 0.1, 10);\n $video.playbackRate = newRate;\n notice.show(`${i18n.get('Rate')}: ${newRate}x`);\n this.art.emit('playbackRate', newRate);\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';\n\nconst icons = {\n loading,\n playBig,\n play,\n pause,\n volume,\n volumeClose\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 } from '../utils';\nimport icons from '../icons';\n\nexport default class PlayAndPause {\n constructor(option) {\n this.option = option;\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\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 this.$pause.style.display = 'none';\n\n proxy(this.$play, 'click', () => {\n player.play();\n });\n\n proxy(this.$pause, 'click', () => {\n player.pause();\n });\n\n this.art.on('video:playing', () => {\n this.$play.style.display = 'none';\n this.$pause.style.display = 'block';\n });\n\n this.art.on('video:pause', () => {\n this.$play.style.display = 'block';\n this.$pause.style.display = 'none';\n });\n }\n}\n","import { append, clamp, secondToTime } from '../utils';\n\nexport default class Progress {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\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 this.init();\n }\n\n init() {\n const {\n option: { highlight, theme },\n events: { proxy },\n refs: { $video },\n player\n } = 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 this.$tip.style.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 this.$tip.style.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 this.$tip.style.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 this.$tip.style.left = 0;\n } else if (width > this.option.$control.clientWidth - tipWidth / 2) {\n this.$tip.style.left = `${this.option.$control.clientWidth - tipWidth}px`;\n } else {\n this.$tip.style.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 this[`$${type}`].style.width = `${percentage * 100}%`;\n if (type === 'played') {\n this.$indicator.style.left = `calc(${percentage * 100}% - 6.5px)`;\n }\n }\n}\n","export default class Subtitle {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\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 } from '../utils';\nimport icons from '../icons';\n\nexport default class Volume {\n constructor(option) {\n this.option = option;\n }\n\n apply(art) {\n this.art = art;\n this.isDroging = false;\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 this.$volumeClose.style.display = 'none';\n\n const volume = getStorage('volume');\n this.setVolumeHandle(volume);\n player.volume(volume);\n\n proxy(this.$volume, 'click', () => {\n this.$volume.style.display = 'none';\n this.$volumeClose.style.display = 'block';\n player.volume(0);\n });\n\n proxy(this.$volumeClose, 'click', () => {\n this.$volume.style.display = 'block';\n this.$volumeClose.style.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 this.$volume.style.display = 'none';\n this.$volumeClose.style.display = 'block';\n } else {\n this.$volume.style.display = 'block';\n this.$volumeClose.style.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 this.$volumeHandle.style.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","export 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 this.init();\n }\n\n init() {\n const {\n refs: { $progress },\n events: { proxy }\n } = 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 this.option.$control.style.display = 'block';\n this.showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseout', () => {\n this.option.$control.style.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 this.option.$control.style.backgroundImage = `url(${url})`;\n this.option.$control.style.height = `${height}px`;\n this.option.$control.style.width = `${width}px`;\n this.option.$control.style.backgroundPosition = `-${--xIndex * width}px -${--yIndex * height}px`;\n\n if (posWidth <= width / 2) {\n this.option.$control.style.left = 0;\n } else if (posWidth > $progress.clientWidth - width / 2) {\n this.option.$control.style.left = `${$progress.clientWidth - width}px`;\n } else {\n this.option.$control.style.left = `${posWidth - width / 2}px`;\n }\n }\n}\n","import 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';\n\nlet id = 0;\nexport default class Controls {\n constructor(art) {\n this.art = art;\n this.$map = {};\n this.art.on('video:firstload', () => {\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 Subtitle({\n disable: false,\n position: 'right',\n index: 20\n }));\n\n this.add(new Setting({\n disable: false,\n position: 'right',\n index: 30\n }));\n\n this.add(new Pip({\n disable: false,\n position: 'right',\n index: 40\n }));\n\n this.add(new Fullscreen({\n disable: false,\n position: 'right',\n index: 50\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 control.option.$control.style.display = 'none';\n this.art.emit('control:hide', control.option.$control);\n }\n });\n\n Object.defineProperty(control, 'show', {\n value: () => {\n control.option.$control.style.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, setStyle } 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 {\n option,\n i18n,\n refs,\n events: { proxy }\n } = this.art;\n\n option.contextmenu.push(\n {\n name: 'info',\n html: i18n.get('Video info'),\n click: () => {\n this.art.info.show();\n }\n },\n {\n name: 'version',\n html: 'ArtPlayer __VERSION__'\n },\n {\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 {\n option,\n refs,\n events: { proxy }\n } = this.art;\n refs.$contextmenu = document.createElement('div');\n refs.$contextmenu.classList.add('artplayer-contextmenu');\n option.contextmenu.forEach(item => {\n 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 setStyle($menu, item.style || {});\n if (item.click) {\n proxy($menu, 'click', event => {\n event.preventDefault();\n item.click(this.art, event);\n this.hide();\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 refs.$contextmenu.style.left = `${menuLeft}px`;\n refs.$contextmenu.style.top = `${menuTop}px`;\n }\n\n hide() {\n const { refs: { $contextmenu } } = this.art;\n if ($contextmenu) {\n $contextmenu.style.display = 'none';\n this.art.emit('contextmenu:hide', $contextmenu);\n }\n }\n\n show() {\n const { refs: { $contextmenu } } = this.art;\n if ($contextmenu) {\n $contextmenu.style.display = 'block';\n this.art.emit('contextmenu:show', $contextmenu);\n }\n }\n}\n","export default class Danmu {\n constructor(art) {\n this.art = art;\n }\n}\n","import { append } 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 $info.style.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 loop() {\n const { $infoPanel, $video } = this.art.refs;\n this.timer = setTimeout(() => {\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 this.loop();\n }, 1000);\n }\n\n hide() {\n const { $info } = this.art.refs;\n $info.style.display = 'none';\n clearTimeout(this.timer);\n this.art.emit('info:hide', $info);\n }\n}\n","import { errorHandle, getExt, 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 setStyle($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 $subtitle.style.display = 'block';\n this.art.emit('subtitle:show', $subtitle);\n }\n\n hide() {\n const { $subtitle } = this.art.refs;\n $subtitle.style.display = 'none';\n this.art.emit('subtitle:hide', $subtitle);\n }\n\n switch(url) {\n const { $track } = this.art.refs;\n 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 {\n player,\n refs: { $player },\n events: { proxy }\n } = 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, 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 $layer.style.zIndex = option.index || id;\n append($layer, option.html);\n setStyle($layer, option.style || {});\n refs.$layers.appendChild($layer);\n this.art.emit('layers:add', $layer);\n callback && callback($layer);\n }\n\n show() {\n const { $layers } = this.art.refs;\n $layers.style.display = 'block';\n this.art.emit('layers:show', $layers);\n }\n\n hide() {\n const { $layers } = this.art.refs;\n $layers.style.display = 'none';\n this.art.emit('layers:hide', $layers);\n }\n}\n","import icons from './icons';\nimport { append } from './utils';\n\nexport default class Loading {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const { option, refs: { $loading } } = this.art;\n append($loading, option.loading || icons.loading);\n }\n\n hide() {\n const { $loading } = this.art.refs;\n $loading.style.display = 'none';\n this.art.emit('loading:hide', $loading);\n }\n\n show() {\n const { $loading } = this.art.refs;\n $loading.style.display = 'flex';\n this.art.emit('loading:show', $loading);\n }\n}\n","export default class Notice {\n constructor(art) {\n this.art = art;\n this.timer = null;\n }\n\n show(msg, autoHide = true, time = 1000) {\n const { $notice } = this.art.refs;\n $notice.style.display = 'block';\n $notice.innerHTML = msg instanceof Error ? msg.message.trim() : msg;\n if (autoHide) {\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.hide();\n }, time);\n }\n this.art.emit('notice:show', $notice);\n }\n\n hide() {\n const { $notice } = this.art.refs;\n $notice.style.display = 'none';\n this.art.emit('notice:hide', $notice);\n }\n}\n","import icons from './icons';\nimport { append } from './utils';\n\nexport default class Mask {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n init() {\n const {\n player,\n refs,\n events: { proxy }\n } = 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 $mask.style.display = 'block';\n this.art.emit('mask:show', $mask);\n }\n\n hide() {\n const { $mask } = this.art.refs;\n $mask.style.display = 'none';\n this.art.emit('mask:show', $mask);\n }\n}\n","import './style';\nimport 'balloon-css/balloon.min.css';\nimport { deepMerge } from './utils';\nimport validOption from './verification/player';\nimport config from './config';\nimport Emitter from 'tiny-emitter';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport 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 validOption(Artplayer.DEFAULTS, this.option);\n this.init();\n this.emit('init:end');\n }\n\n static get version() {\n return '__VERSION__';\n }\n\n static get config() {\n return config;\n }\n\n static get DEFAULTS() {\n return {\n container: '.artplayer',\n url: '',\n poster: '',\n volume: 0.7,\n thumbnails: {\n url: '',\n number: 60,\n width: 160,\n height: 90,\n column: 10\n },\n autoplay: false,\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 }\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","styles","Object","keys","forEach","key","style","secondToTime","second","add0","String","hour","floor","sec","map","join","deepMerge","isObject","value","returnValue","sources","source","Array","isArray","hasOwnProperty","getStorage","storage","JSON","parse","localStorage","getItem","setStorage","assign","setItem","stringify","getType","val","toString","prototype","type","call","slice","replace","tooltip","target","pos","setAttribute","sleep","ms","Promise","resolve","setTimeout","validOption","DEFAULTS","option","path","defaultValue","defaultType","concat","length","item","index","html","click","Function","time","text","disable","position","mp4","webm","ts","mediaSource","propertys","methods","events","sourceBuffer","sourceBufferList","mimeCodec","mse","video","Template","art","init","refs","$container","innerHTML","$player","querySelector","$video","$subtitle","$bottom","$progress","$controls","$controlsLeft","$controlsRight","$layers","$loading","$notice","$mask","$info","$infoPanel","$infoClose","i18nMap","I18n","language","lang","callback","Player","eventBind","firstLoad","reconnectTime","maxReconnectTime","moreVideoAttr","volume","poster","autoplay","then","src","proxy","i18n","notice","config","eventName","event","emit","on","loading","show","hide","controls","mask","promise","play","undefined","catch","err","console","warn","isPlaying","loop","seek","get","isError","classList","add","destroy","pause","newTime","duration","currentTime","percentage","parseInt","rate","newRate","playbackRate","Danmu","Fullscreen","Pip","icons","playBig","volumeClose","creatDomFromSvg","result","tmp","document","createElement","childNodes","PlayAndPause","player","$play","$control","$pause","display","Progress","isDroging","getLoaded","bind","getPlayed","set","highlight","theme","$loaded","$played","$highlight","$indicator","$tip","left","Number","indexOf","showHighlight","showTime","getPosFromEvent","remove","dataset","clientWidth","width","tipWidth","buffered","end","getBoundingClientRect","x","Subtitle","Time","getTime","Volume","$volume","$volumeClose","$volumePanel","$volumeHandle","setVolumeHandle","volumeChangeFromEvent","panelLeft","panelWidth","handleWidth","Setting","Thumbnails","isLoad","load","thumbnails","showThumbnails","reject","image","Image","complete","progress","posWidth","height","number","column","perWidth","perIndex","ceil","yIndex","xIndex","backgroundImage","backgroundPosition","id","Controls","$map","mount","control","commonMethod","push","apply","sort","controlIndex","defineProperty","Contextmenu","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","from","querySelectorAll","fetch","method","data","headers","head","subtitle","checkExt","$track","default","kind","textTracks","track","activeCues","cue","template","getCueAsHTML","response","test","srtToVtt","vttText","URL","createObjectURL","Blob","ext","Events","destroyEvents","addEventListener","removeEventListener","Hotkey","hotkey","window","tag","activeElement","tagName","toUpperCase","editable","getAttribute","keyCode","toggle","Layers","layers","filter","$layer","zIndex","Loading","Notice","autoHide","Mask","instances","Artplayer","container","danmu","removeHtml","splice","Plugin","installedPlugins","plugins","args","arguments","unshift","navigator","Emitter"],"mappings":"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"} \ No newline at end of file diff --git a/src/player.js b/src/player.js index 28659d664..351edf051 100644 --- a/src/player.js +++ b/src/player.js @@ -1,4 +1,4 @@ -import { clamp, secondToTime, setStorage } from './utils'; +import { clamp, secondToTime, setStorage, sleep } from './utils'; import config from './config'; export default class Player { @@ -20,7 +20,9 @@ export default class Player { $video.volume = clamp(option.volume, 0, 1); $video.poster = option.poster; $video.autoplay = option.autoplay; - $video.src = option.url; + sleep().then(() => { + $video.src = option.url; + }); } eventBind() { @@ -91,11 +93,11 @@ export default class Player { this.art.on('video:error', () => { if (this.reconnectTime < this.maxReconnectTime) { - setTimeout(() => { + sleep(100).then(() => { this.reconnectTime++; $video.src = option.url; notice.show(`${i18n.get('Reconnect')}: ${this.reconnectTime}`); - }, 1000); + }); } else { this.art.isError = true; this.art.isPlaying = false; diff --git a/src/utils/index.js b/src/utils/index.js index e05d46b3d..479f93b1b 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -105,3 +105,7 @@ export function tooltip(target, msg, pos = 'up') { target.setAttribute('data-balloon', msg); target.setAttribute('data-balloon-pos', pos); } + +export function sleep(ms = 0) { + return new Promise(resolve => setTimeout(resolve, ms)); +}