删除多余事件

This commit is contained in:
Harvey committed 2019-11-28 10:10:29 +08:00
1 parent e0faa3fe68
commit 7ff61b4660
38 files changed
+264 -514

No files matched your search

+3 -3
View File
@@ -1,8 +1,8 @@
{ {
"packages/artplayer/dist/artplayer.js": { "packages/artplayer/dist/artplayer.js": {
"bundled": 160505, "bundled": 157063,
"minified": 85450, "minified": 84135,
"gzipped": 21442 "gzipped": 21095
}, },
"packages/artplayer-plugin-backlight/dist/artplayer-plugin-backlight.js": { "packages/artplayer-plugin-backlight/dist/artplayer-plugin-backlight.js": {
"bundled": 4642, "bundled": 4642,
+1 -1
View File
@@ -20,7 +20,7 @@
- <b>Subtitle</b> - Support for `.VTT`, `.ASS` and `.SRT` formats - <b>Subtitle</b> - Support for `.VTT`, `.ASS` and `.SRT` formats
- <b>Customizable</b> - `Right Click Menu`, `Business Layer`, `Video Controller` and `Settings Panel` - <b>Customizable</b> - `Right Click Menu`, `Business Layer`, `Video Controller` and `Settings Panel`
- <b>Controller</b> - `Quality Switch`, `Subtitle Switch`, `Play Speed`, `Aspect Ratio`, `Video Flip`, `Fullscreen`, `Picture In Picture`, `Screenshot`, `Thumbnail`, `Adaptive Size`, `Highlight` and `Hotkey`... - <b>Controller</b> - `Quality Switch`, `Subtitle Switch`, `Play Speed`, `Aspect Ratio`, `Video Flip`, `Fullscreen`, `Picture In Picture`, `Screenshot`, `Thumbnail`, `Adaptive Size`, `Highlight` and `Hotkey`...
- <b>Built-in</b> - `Auto PIP`, `Open Local Subtitles`, `Open Local Video`, `Mini Progress Bar`, `Network Detection` and `Subtitle Time Offset` - <b>Built-in</b> - `Open Local Subtitles`, `Open Local Video`, `Mini Progress Bar`, `Network Detection` and `Subtitle Time Offset`
- <b>Integration</b> - Easy to integration with other dependencies: `flv.js`, `hls.js`, `dash.js`, `shaka-player`, `webtorrent`... - <b>Integration</b> - Easy to integration with other dependencies: `flv.js`, `hls.js`, `dash.js`, `shaka-player`, `webtorrent`...
- <b>Code</b> - Vanilla `ES6` and `SASS`, Highly decoupled code, clear structure, easy to track bugs and add new features - <b>Code</b> - Vanilla `ES6` and `SASS`, Highly decoupled code, clear structure, easy to track bugs and add new features
- <b>Document</b> - Detailed interface documentation and rich code demo - <b>Document</b> - Detailed interface documentation and rich code demo
+1 -1
View File
@@ -5,4 +5,4 @@
* Released under the MIT License. * Released under the MIT License.
*/ */
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Artplayer=e()}(this,(function(){"use strict";var t=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")};function e(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var n=function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t};"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function r(t,e){return t(e={exports:{}},e.exports),e.exports}var i=r((function(t){function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function n(r){return"function"==typeof Symbol&&"symbol"===e(Symbol.iterator)?t.exports=n=function(t){return e(t)}:t.exports=n=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":e(t)},n(r)}t.exports=n}));var o=function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t};var a=function(t,e){return!e||"object"!==i(e)&&"function"!=typeof e?o(t):e},c=r((function(t){function e(n){return t.exports=e=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},e(n)}t.exports=e})),s=r((function(t){function e(n,r){return t.exports=e=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},e(n,r)}t.exports=e}));var u=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&s(t,e)},l=r((function(t,e){t.exports=function(){function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}var e=Object.prototype.toString,n=function(n){if(void 0===n)return"undefined";if(null===n)return"null";var i=t(n);if("boolean"===i)return"boolean";if("string"===i)return"string";if("number"===i)return"number";if("symbol"===i)return"symbol";if("function"===i)return function(t){return"GeneratorFunction"===r(t)}(n)?"generatorfunction":"function";if(function(t){return Array.isArray?Array.isArray(t):t instanceof Array}(n))return"array";if(function(t){return!(!t.constructor||"function"!=typeof t.constructor.isBuffer)&&t.constructor.isBuffer(t)}(n))return"buffer";if(function(t){try{if("number"==typeof t.length&&"function"==typeof t.callee)return!0}catch(t){if(-1!==t.message.indexOf("callee"))return!0}return!1}(n))return"arguments";if(function(t){return t instanceof Date||"function"==typeof t.toDateString&&"function"==typeof t.getDate&&"function"==typeof t.setDate}(n))return"date";if(function(t){return t instanceof Error||"string"==typeof t.message&&t.constructor&&"number"==typeof t.constructor.stackTraceLimit}(n))return"error";if(function(t){return t instanceof RegExp||"string"==typeof t.flags&&"boolean"==typeof t.ignoreCase&&"boolean"==typeof t.multiline&&"boolean"==typeof t.global}(n))return"regexp";switch(r(n)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(function(t){return"function"==typeof t.throw&&"function"==typeof t.return&&"function"==typeof t.next}(n))return"generator";switch(i=e.call(n)){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return i.slice(8,-1).toLowerCase().replace(/\s/g,"")};function r(t){return t.constructor?t.constructor.name:null}function i(t,e){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:["option"];return o(t,e,r),a(t,e,r),function(t,e,r){var c=n(e),s=n(t);if("object"===c){if("object"!==s)throw new Error("[Type Error]: '".concat(r.join("."),"' require 'object' type, but got '").concat(s,"'"));Object.keys(e).forEach((function(n){var c=t[n],s=e[n],u=r.slice();u.push(n),o(c,s,u),a(c,s,u),i(c,s,u)}))}if("array"===c){if("array"!==s)throw new Error("[Type Error]: '".concat(r.join("."),"' require 'array' type, but got '").concat(s,"'"Line truncated !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Artplayer=e()}(this,(function(){"use strict";var t=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")};function e(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var n=function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t};"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function r(t,e){return t(e={exports:{}},e.exports),e.exports}var i=r((function(t){function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function n(r){return"function"==typeof Symbol&&"symbol"===e(Symbol.iterator)?t.exports=n=function(t){return e(t)}:t.exports=n=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":e(t)},n(r)}t.exports=n}));var o=function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t};var a=function(t,e){return!e||"object"!==i(e)&&"function"!=typeof e?o(t):e},c=r((function(t){function e(n){return t.exports=e=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},e(n)}t.exports=e})),s=r((function(t){function e(n,r){return t.exports=e=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},e(n,r)}t.exports=e}));var u=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&s(t,e)},l=r((function(t,e){t.exports=function(){function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}var e=Object.prototype.toString,n=function(n){if(void 0===n)return"undefined";if(null===n)return"null";var i=t(n);if("boolean"===i)return"boolean";if("string"===i)return"string";if("number"===i)return"number";if("symbol"===i)return"symbol";if("function"===i)return function(t){return"GeneratorFunction"===r(t)}(n)?"generatorfunction":"function";if(function(t){return Array.isArray?Array.isArray(t):t instanceof Array}(n))return"array";if(function(t){return!(!t.constructor||"function"!=typeof t.constructor.isBuffer)&&t.constructor.isBuffer(t)}(n))return"buffer";if(function(t){try{if("number"==typeof t.length&&"function"==typeof t.callee)return!0}catch(t){if(-1!==t.message.indexOf("callee"))return!0}return!1}(n))return"arguments";if(function(t){return t instanceof Date||"function"==typeof t.toDateString&&"function"==typeof t.getDate&&"function"==typeof t.setDate}(n))return"date";if(function(t){return t instanceof Error||"string"==typeof t.message&&t.constructor&&"number"==typeof t.constructor.stackTraceLimit}(n))return"error";if(function(t){return t instanceof RegExp||"string"==typeof t.flags&&"boolean"==typeof t.ignoreCase&&"boolean"==typeof t.multiline&&"boolean"==typeof t.global}(n))return"regexp";switch(r(n)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(function(t){return"function"==typeof t.throw&&"function"==typeof t.return&&"function"==typeof t.next}(n))return"generator";switch(i=e.call(n)){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return i.slice(8,-1).toLowerCase().replace(/\s/g,"")};function r(t){return t.constructor?t.constructor.name:null}function i(t,e){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:["option"];return o(t,e,r),a(t,e,r),function(t,e,r){var c=n(e),s=n(t);if("object"===c){if("object"!==s)throw new Error("[Type Error]: '".concat(r.join("."),"' require 'object' type, but got '").concat(s,"'"));Object.keys(e).forEach((function(n){var c=t[n],s=e[n],u=r.slice();u.push(n),o(c,s,u),a(c,s,u),i(c,s,u)}))}if("array"===c){if("array"!==s)throw new Error("[Type Error]: '".concat(r.join("."),"' require 'array' type, but got '").concat(s,"'"Line truncated
+2 -26
View File
@@ -627,28 +627,6 @@ var art = new Artplayer({
}); });
``` ```
## autoPip
- Type: `Boolean`
- Default: `false`
Auto pip mode plugin, when the video is playing and not triggering in the window view
In chrome, you must use gestures on the page to use this feature, otherwise you will get an error.
More info: [picture-in-picture](https://developers.google.com/web/updates/2017/09/picture-in-picture)
[Run Code](/Configuration.autoPip)
```js
var url = 'https://zhw2590582.github.io/assets-cdn';
var art = new Artplayer({
container: '.artplayer-app',
url: url + '/video/one-more-time-one-more-chance-480p.mp4',
autoPip: true,
});
```
## networkMonitor ## networkMonitor
- Type: `Boolean` - Type: `Boolean`
@@ -1587,10 +1565,8 @@ art.on('ready', function(args) {
| `aspectRatioChange` | When aspect ratio change | Aspect ratio | | `aspectRatioChange` | When aspect ratio change | Aspect ratio |
| `aspectRatioRemove` | When aspect ratio remove | `undefined` | | `aspectRatioRemove` | When aspect ratio remove | `undefined` |
| `aspectRatioReset` | When aspect ratio reset | `undefined` | | `aspectRatioReset` | When aspect ratio reset | `undefined` |
| `beforeCustomType` | Before triggering CustomType | Type name | | `customType` | After triggering CustomType | Type name |
| `afterCustomType` | After triggering CustomType | Type name | | `attachUrl` | After the video url change | Video url |
| `beforeAttachUrl` | Before the video url change | Video url |
| `afterAttachUrl` | After the video url change | Video url |
| `autoSizeChange` | When the player auto size change | Player size | | `autoSizeChange` | When the player auto size change | Player size |
| `autoSizeRemove` | When the player auto size remove | `undefined` | | `autoSizeRemove` | When the player auto size remove | `undefined` |
| `flipChange` | When the player flip change | Flip name | | `flipChange` | When the player flip change | Flip name |
+124 -235
View File
@@ -631,7 +631,7 @@
var scheme = { var scheme = {
container: validElement, container: validElement,
url: 'string|function', url: 'string',
poster: 'string', poster: 'string',
title: 'string', title: 'string',
theme: 'string', theme: 'string',
@@ -736,12 +736,10 @@
var kindOf = art.constructor.kindOf, var kindOf = art.constructor.kindOf,
whitelist = art.option.whitelist; whitelist = art.option.whitelist;
this.ua = window.navigator.userAgent; this.ua = navigator.userAgent;
this.isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(this.ua); this.isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(this.ua);
this.state = !this.isMobile || whitelist.some(function (item) { this.state = !this.isMobile || whitelist.some(function (item) {
var type = kindOf(item); switch (kindOf(item)) {
switch (type) {
case 'string': case 'string':
return _this.ua.indexOf(item) > -1; return _this.ua.indexOf(item) > -1;
@@ -780,9 +778,9 @@
errorHandle(this.$container.clientWidth && this.$container.clientHeight, 'The width and height of the container cannot be 0'); errorHandle(this.$container.clientWidth && this.$container.clientHeight, 'The width and height of the container cannot be 0');
if (art.whitelist.state) { if (art.whitelist.state) {
this.initDesktop(); this.desktop();
} else { } else {
this.initMobile(); this.mobile();
} }
} }
@@ -792,8 +790,8 @@
return query(className, this.$container); return query(className, this.$container);
} }
}, { }, {
key: "initDesktop", key: "desktop",
value: function initDesktop() { value: function desktop() {
this.$container.innerHTML = "\n <div class=\"art-video-player art-subtitle-show art-layer-show\" style=\"--theme: ".concat(this.art.option.theme, "\">\n <video class=\"art-video\">\n <track default kind=\"metadata\"></track>\n </video>\n <div class=\"art-subtitle\"></div>\n <div class=\"art-danmuku\"></div>\n <div class=\"art-layers\"></div>\n <div class=\"art-mask\">\n <div class=\"art-state\"></div>\n </div>\n <div class=\"art-bottom\">\n <div class=\"art-progress\"></div>\n <div class=\"art-controls\">\n <div class=\"art-controls-left\"></div>\n <div class=\"art-controls-right\"></div>\n </div>\n </div>\n <div class=\"art-loading\"></div>\n <div class=\"art-notice\">\n <div class=\"art-notice-inner\"></div>\n </div>\n <div class=\"art-settings\">\n <div class=\"art-setting-inner art-backdrop-filter\">\n <div class=\"art-setting-body\"></div>\n </div>\n </div>\n <div class=\"art-info art-backdrop-filter\">\n <div class=\"art-info-panel\">\n <div class=\"art-info-item\">\n <div class=\"art-info-title\">Player version:</div>\n <div class=\"art-info-content\">3.2.4</div>\n </div>\n <div class=\"art-info-item\">\n <div class=\"art-info-title\">Video url:</div>\n <div class=\"art-info-content\" data-video=\"src\"></div>\n </div>\n <div class=\"art-info-item\">\n <div class=\"art-info-title\">Video volume:</div>\n <div class=\"art-info-content\" data-video=\"volume\"></div>\n </div>\n <div class=\"art-info-item\">\n <div class=\"art-info-title\">Video time:</div>\n <div class=\"art-info-content\" data-video=\"currentTime\"></div>\n </div>\n <div class=\"art-info-item\">\n <div class=\"art-info-title\">Video duration:</div>\n <div class=\"art-info-content\" data-video=\"duration\"></div>\n </div>\n <div class=\"art-info-item\">\n <div class=\"art-info-title\">Video resolution:</div>\n <div class=\"art-info-content\">\n <span data-video=\"videoWidth\"></span> x <span data-video=\"videoHeight\"></span>\n </div>\n </div>\n </div>\n <div class=\"art-info-close\">[x]</div>\n </div>\n <div class=\"art-pip-header\">\n <div class=\"art-pip-title\"></div>\n <div class=\"art-pip-close\">\xD7</div>\n </div>\n <div class=\"art-contextmenus art-backdrop-filter\"></div>\n </div>\n "); this.$container.innerHTML = "\n <div class=\"art-video-player art-subtitle-show art-layer-show\" style=\"--theme: ".concat(this.art.option.theme, "\">\n <video class=\"art-video\">\n <track default kind=\"metadata\"></track>\n </video>\n <div class=\"art-subtitle\"></div>\n <div class=\"art-danmuku\"></div>\n <div class=\"art-layers\"></div>\n <div class=\"art-mask\">\n <div class=\"art-state\"></div>\n </div>\n <div class=\"art-bottom\">\n <div class=\"art-progress\"></div>\n <div class=\"art-controls\">\n <div class=\"art-controls-left\"></div>\n <div class=\"art-controls-right\"></div>\n </div>\n </div>\n <div class=\"art-loading\"></div>\n <div class=\"art-notice\">\n <div class=\"art-notice-inner\"></div>\n </div>\n <div class=\"art-settings\">\n <div class=\"art-setting-inner art-backdrop-filter\">\n <div class=\"art-setting-body\"></div>\n </div>\n </div>\n <div class=\"art-info art-backdrop-filter\">\n <div class=\"art-info-panel\">\n <div class=\"art-info-item\">\n <div class=\"art-info-title\">Player version:</div>\n <div class=\"art-info-content\">3.2.4</div>\n </div>\n <div class=\"art-info-item\">\n <div class=\"art-info-title\">Video url:</div>\n <div class=\"art-info-content\" data-video=\"src\"></div>\n </div>\n <div class=\"art-info-item\">\n <div class=\"art-info-title\">Video volume:</div>\n <div class=\"art-info-content\" data-video=\"volume\"></div>\n </div>\n <div class=\"art-info-item\">\n <div class=\"art-info-title\">Video time:</div>\n <div class=\"art-info-content\" data-video=\"currentTime\"></div>\n </div>\n <div class=\"art-info-item\">\n <div class=\"art-info-title\">Video duration:</div>\n <div class=\"art-info-content\" data-video=\"duration\"></div>\n </div>\n <div class=\"art-info-item\">\n <div class=\"art-info-title\">Video resolution:</div>\n <div class=\"art-info-content\">\n <span data-video=\"videoWidth\"></span> x <span data-video=\"videoHeight\"></span>\n </div>\n </div>\n </div>\n <div class=\"art-info-close\">[x]</div>\n </div>\n <div class=\"art-pip-header\">\n <div class=\"art-pip-title\"></div>\n <div class=\"art-pip-close\">\xD7</div>\n </div>\n <div class=\"art-contextmenus art-backdrop-filter\"></div>\n </div>\n ");
this.$player = this.query('.art-video-player'); this.$player = this.query('.art-video-player');
this.$video = this.query('.art-video'); this.$video = this.query('.art-video');
@@ -823,16 +821,16 @@
this.$contextmenu = this.query('.art-contextmenus'); this.$contextmenu = this.query('.art-contextmenus');
} }
}, { }, {
key: "initMobile", key: "mobile",
value: function initMobile() { value: function mobile() {
this.$container.innerHTML = "\n <div class=\"art-video-player\">\n <video class=\"art-video\"></video>\n </div>\n "; this.$container.innerHTML = "\n <div class=\"art-video-player\">\n <video class=\"art-video\"></video>\n </div>\n ";
this.$player = this.query('.art-video-player'); this.$player = this.query('.art-video-player');
this.$video = this.query('.art-video'); this.$video = this.query('.art-video');
} }
}, { }, {
key: "destroy", key: "destroy",
value: function destroy(removeHtml) { value: function destroy(remove) {
if (removeHtml) { if (remove) {
this.$container.innerHTML = ''; this.$container.innerHTML = '';
} else { } else {
addClass(this.$player, 'art-destroy'); addClass(this.$player, 'art-destroy');
@@ -891,6 +889,7 @@
"Web fullscreen": "网页全屏", "Web fullscreen": "网页全屏",
"Exit web fullscreen": "退出网页全屏", "Exit web fullscreen": "退出网页全屏",
"Mini player": "迷你播放器", "Mini player": "迷你播放器",
"Exit mini player": "退出迷你播放器",
"Does not support fullscreen": "不支持全屏", "Does not support fullscreen": "不支持全屏",
"Local Subtitle": "本地字幕", "Local Subtitle": "本地字幕",
"Local Video": "本地视频", "Local Video": "本地视频",
@@ -946,6 +945,7 @@
"Web fullscreen": "網頁全屏", "Web fullscreen": "網頁全屏",
"Exit web fullscreen": "退出網頁全屏", "Exit web fullscreen": "退出網頁全屏",
"Mini player": "迷你播放器", "Mini player": "迷你播放器",
"Exit mini player": "退出迷你播放器",
"Does not support fullscreen": "不支持全屏", "Does not support fullscreen": "不支持全屏",
"Local Subtitle": "本地字幕", "Local Subtitle": "本地字幕",
"Local Video": "本地視頻", "Local Video": "本地視頻",
@@ -989,7 +989,7 @@
return I18n; return I18n;
}(); }();
function attachUrlMix(art, player) { function urlMix(art, player) {
var _art$option = art.option, var _art$option = art.option,
type = _art$option.type, type = _art$option.type,
customType = _art$option.customType, customType = _art$option.customType,
@@ -997,46 +997,27 @@
def(player, 'url', { def(player, 'url', {
get: function get() { get: function get() {
return $video.src; return $video.src;
} },
}); set: function set(url) {
def(player, 'attachUrl', { var typeName = type || getExt(url);
value: function value(url) { var typeCallback = customType[typeName];
return sleep().then(function () {
function attachUrl(videoUrl) {
var typeName = type || getExt(videoUrl);
var typeCallback = customType[typeName];
if (typeName && typeCallback) { if (typeName && typeCallback) {
art.loading.show = true; art.loading.show = true;
art.emit('beforeCustomType', typeName); typeCallback.call(art, $video, url, art);
typeCallback.call(art, $video, videoUrl, art); art.emit('customType', typeName);
art.emit('afterCustomType', typeName); } else {
} else { $video.src = url;
art.emit('beforeAttachUrl', videoUrl); art.option.url = url;
$video.src = videoUrl; art.emit('urlChange', url);
art.emit('afterAttachUrl', videoUrl); }
}
return Promise.resolve(videoUrl);
}
if (typeof url === 'function') {
var result = url.call(art);
errorHandle(typeof result.then === 'function', 'If url is a function, it needs to return a promise.');
return result.then(function (videoUrl) {
art.loading.show = true;
return attachUrl(videoUrl);
});
}
return attachUrl(url);
});
} }
}); });
} }
function attrInit(art, player) { function attrInit(art, player) {
var option = art.option, var option = art.option,
storage = art.storage,
$video = art.template.$video; $video = art.template.$video;
Object.keys(option.moreVideoAttr).forEach(function (key) { Object.keys(option.moreVideoAttr).forEach(function (key) {
$video[key] = option.moreVideoAttr[key]; $video[key] = option.moreVideoAttr[key];
@@ -1050,6 +1031,12 @@
$video.volume = clamp(option.volume, 0, 1); $video.volume = clamp(option.volume, 0, 1);
} }
var volume = storage.get('volume');
if (volume) {
$video.volume = clamp(volume, 0, 1);
}
if (option.poster) { if (option.poster) {
$video.poster = option.poster; $video.poster = option.poster;
} }
@@ -1059,7 +1046,7 @@
} }
$video.controls = false; $video.controls = false;
player.attachUrl(option.url); player.url = option.url;
} }
function eventInit(art, player) { function eventInit(art, player) {
@@ -1110,7 +1097,7 @@
if (reconnectTime < maxReconnectTime) { if (reconnectTime < maxReconnectTime) {
sleep(1000).then(function () { sleep(1000).then(function () {
reconnectTime += 1; reconnectTime += 1;
player.attachUrl(option.url); player.url = option.url;
notice.show = "".concat(i18n.get('Reconnect'), ": ").concat(reconnectTime); notice.show = "".concat(i18n.get('Reconnect'), ": ").concat(reconnectTime);
}); });
} else { } else {
@@ -1298,30 +1285,27 @@
function switchMix(art, player) { function switchMix(art, player) {
var i18n = art.i18n, var i18n = art.i18n,
notice = art.notice, notice = art.notice;
option = art.option;
function switchUrl(url, name, currentTime) { function switchUrl(url, name, currentTime) {
if (url === player.url) return Promise.resolve(url); if (url === player.url) return;
URL.revokeObjectURL(player.url); URL.revokeObjectURL(player.url);
return player.attachUrl(url).then(function () { player.url = url;
option.url = url; player.playbackRate = false;
player.playbackRate = false; player.aspectRatio = false;
player.aspectRatio = false; art.once('video:canplay', function () {
art.once('video:canplay', function () { player.currentTime = currentTime;
player.currentTime = currentTime;
});
if (player.playing) {
player.play = true;
}
if (name) {
notice.show = "".concat(i18n.get('Switch video'), ": ").concat(name);
}
art.emit('switch', url);
}); });
if (player.playing) {
player.play = true;
}
if (name) {
notice.show = "".concat(i18n.get('Switch video'), ": ").concat(name);
}
art.emit('switch', url);
} }
def(player, 'switchQuality', { def(player, 'switchQuality', {
@@ -1667,57 +1651,27 @@
var screenfull_1 = screenfull.isEnabled; var screenfull_1 = screenfull.isEnabled;
function fullscreenMix(art, player) { function fullscreenMix(art, player) {
var i18n = art.i18n, var $player = art.template.$player;
notice = art.notice,
destroyEvents = art.events.destroyEvents,
$player = art.template.$player;
var screenfullChange = function screenfullChange() {
art.emit('fullscreenChange', screenfull.isFullscreen);
};
var screenfullError = function screenfullError() {
notice.show = i18n.get('Does not support fullscreen');
};
if (player.fullscreenIsEnabled) {
screenfull.on('change', screenfullChange);
screenfull.on('error', screenfullError);
destroyEvents.push(function () {
screenfull.off('change', screenfullChange);
screenfull.off('error', screenfullError);
});
}
def(player, 'fullscreen', { def(player, 'fullscreen', {
get: function get() { get: function get() {
return screenfull.isFullscreen; return screenfull.isFullscreen;
}, },
set: function set(value) { set: function set(value) {
if (!player.fullscreenIsEnabled) { if (player.fullscreenWeb) {
screenfullError(); player.fullscreenWeb = false;
return;
} }
if (value) { if (value) {
if (player.fullscreenWeb) {
player.fullscreenWeb = false;
}
screenfull.request($player).then(function () { screenfull.request($player).then(function () {
addClass($player, 'art-fullscreen'); addClass($player, 'art-fullscreen');
player.aspectRatioReset = true; player.aspectRatioReset = true;
art.emit('fullscreenEnabled'); art.emit('fullscreenChange', true);
}); });
} else { } else {
if (player.fullscreenWeb) {
player.fullscreenWeb = false;
}
screenfull.exit().then(function () { screenfull.exit().then(function () {
removeClass($player, 'art-fullscreen'); removeClass($player, 'art-fullscreen');
player.aspectRatioReset = true; player.aspectRatioReset = true;
art.emit('fullscreenExit'); art.emit('fullscreenChange', false);
}); });
} }
} }
@@ -1729,11 +1683,6 @@
} }
} }
}); });
def(player, 'fullscreenIsEnabled', {
get: function get() {
return screenfull.isEnabled;
}
});
} }
function fullscreenWebMix(art, player) { function fullscreenWebMix(art, player) {
@@ -1743,22 +1692,18 @@
return hasClass($player, 'art-web-fullscreen'); return hasClass($player, 'art-web-fullscreen');
}, },
set: function set(value) { set: function set(value) {
if (value) { if (player.fullscreen) {
if (player.fullscreen) { player.fullscreen = false;
player.fullscreen = false; }
}
if (value) {
addClass($player, 'art-web-fullscreen'); addClass($player, 'art-web-fullscreen');
player.aspectRatioReset = true; player.aspectRatioReset = true;
art.emit('fullscreenWebEnabled'); art.emit('fullscreenWebChange', true);
} else { } else {
if (player.fullscreen) {
player.fullscreen = false;
}
removeClass($player, 'art-web-fullscreen'); removeClass($player, 'art-web-fullscreen');
player.aspectRatioReset = true; player.aspectRatioReset = true;
art.emit('fullscreenWebExit'); art.emit('fullscreenWebChange', false);
} }
} }
}); });
@@ -1795,15 +1740,10 @@
} }
}); });
proxy($video, 'enterpictureinpicture', function () { proxy($video, 'enterpictureinpicture', function () {
art.emit('pipEnabled'); art.emit('pipChange', true);
}); });
proxy($video, 'leavepictureinpicture', function () { proxy($video, 'leavepictureinpicture', function () {
art.emit('pipExit'); art.emit('pipChange', false);
});
art.on('destroy', function () {
if (player.pip) {
player.pip = false;
}
}); });
} }
@@ -1817,10 +1757,10 @@
set: function set(value) { set: function set(value) {
if (value) { if (value) {
$video.webkitSetPresentationMode('picture-in-picture'); $video.webkitSetPresentationMode('picture-in-picture');
art.emit('pipEnabled'); art.emit('pipChange', true);
} else { } else {
$video.webkitSetPresentationMode('inline'); $video.webkitSetPresentationMode('inline');
art.emit('pipExit'); art.emit('pipChange', false);
} }
} }
}); });
@@ -1865,7 +1805,7 @@
removeClass($player, 'art-is-dragging'); removeClass($player, 'art-is-dragging');
}); });
append($pipTitle, option.title || i18n.get('Mini player')); append($pipTitle, option.title || i18n.get('Mini player'));
var property = { def(player, 'pip', {
get: function get() { get: function get() {
return hasClass($player, 'art-pip'); return hasClass($player, 'art-pip');
}, },
@@ -1881,8 +1821,8 @@
player.fullscreenWeb = false; player.fullscreenWeb = false;
player.aspectRatio = false; player.aspectRatio = false;
player.playbackRate = false; player.playbackRate = false;
art.emit('pipEnabled'); art.emit('pipChange', true);
} else if (player.pip) { } else {
$player.style.cssText = cacheStyle; $player.style.cssText = cacheStyle;
removeClass($player, 'art-pip'); removeClass($player, 'art-pip');
setStyle($player, 'top', null); setStyle($player, 'top', null);
@@ -1892,11 +1832,10 @@
player.aspectRatio = false; player.aspectRatio = false;
player.playbackRate = false; player.playbackRate = false;
player.autoSize = true; player.autoSize = true;
art.emit('pipExit'); art.emit('pipChange', false);
} }
} }
}; });
def(player, 'pip', property);
} }
function pipMix(art, player) { function pipMix(art, player) {
@@ -2044,7 +1983,7 @@
var Player = function Player(art) { var Player = function Player(art) {
classCallCheck(this, Player); classCallCheck(this, Player);
attachUrlMix(art, this); urlMix(art, this);
eventInit(art, this); eventInit(art, this);
attrInit(art, this); attrInit(art, this);
playMix(art, this); playMix(art, this);
@@ -2118,11 +2057,6 @@
} }
createClass(Component, [{ createClass(Component, [{
key: "toggle",
value: function toggle() {
this.show = !this.show;
}
}, {
key: "add", key: "add",
value: function add(getOption, callback) { value: function add(getOption, callback) {
var _this = this; var _this = this;
@@ -2192,6 +2126,13 @@
this.art.emit("".concat(this.name, ":toggle"), value); this.art.emit("".concat(this.name, ":toggle"), value);
} }
}, {
key: "toggle",
set: function set(value) {
if (value) {
this.show = !this.show;
}
}
}]); }]);
return Component; return Component;
@@ -2220,23 +2161,18 @@
function fullscreen(option) { function fullscreen(option) {
return function (art) { return function (art) {
return _objectSpread({}, option, { return _objectSpread({}, option, {
tooltip: art.i18n.get('Fullscreen'),
mounted: function mounted($control) { mounted: function mounted($control) {
var proxy = art.events.proxy, var proxy = art.events.proxy,
icons = art.icons, icons = art.icons,
i18n = art.i18n, i18n = art.i18n,
player = art.player; player = art.player;
var $fullscreen = append($control, icons.fullscreen); append($control, icons.fullscreen);
tooltip($fullscreen, i18n.get('Fullscreen'));
proxy($control, 'click', function () { proxy($control, 'click', function () {
player.fullscreenToggle = true; player.fullscreenToggle = true;
}); });
art.on('fullscreenEnabled', function () { art.on('fullscreenChange', function (value) {
setStyle($fullscreen, 'opacity', '0.8'); tooltip($control, i18n.get(value ? 'Exit fullscreen' : 'Fullscreen'));
tooltip($fullscreen, i18n.get('Exit fullscreen'));
});
art.on('fullscreenExit', function () {
setStyle($fullscreen, 'opacity', '1');
tooltip($fullscreen, i18n.get('Fullscreen'));
}); });
} }
}); });
@@ -2249,23 +2185,18 @@
function fullscreenWeb(option) { function fullscreenWeb(option) {
return function (art) { return function (art) {
return _objectSpread$1({}, option, { return _objectSpread$1({}, option, {
tooltip: art.i18n.get('Web fullscreen'),
mounted: function mounted($control) { mounted: function mounted($control) {
var proxy = art.events.proxy, var proxy = art.events.proxy,
icons = art.icons, icons = art.icons,
i18n = art.i18n, i18n = art.i18n,
player = art.player; player = art.player;
var $fullscreenWeb = append($control, icons.fullscreenWeb); append($control, icons.fullscreenWeb);
tooltip($fullscreenWeb, i18n.get('Web fullscreen'));
proxy($control, 'click', function () { proxy($control, 'click', function () {
player.fullscreenWebToggle = true; player.fullscreenWebToggle = true;
}); });
art.on('fullscreenWebEnabled', function () { art.on('fullscreenWebChange', function (value) {
setStyle($fullscreenWeb, 'opacity', '0.8'); tooltip($control, i18n.get(value ? 'Exit web fullscreen' : 'Web fullscreen'));
tooltip($fullscreenWeb, i18n.get('Exit web fullscreen'));
});
art.on('fullscreenWebExit', function () {
setStyle($fullscreenWeb, 'opacity', '1');
tooltip($fullscreenWeb, i18n.get('Web fullscreen'));
}); });
} }
}); });
@@ -2278,15 +2209,18 @@
function pip(option) { function pip(option) {
return function (art) { return function (art) {
return _objectSpread$2({}, option, { return _objectSpread$2({}, option, {
tooltip: art.i18n.get('Mini player'),
mounted: function mounted($control) { mounted: function mounted($control) {
var proxy = art.events.proxy, var proxy = art.events.proxy,
icons = art.icons, icons = art.icons,
i18n = art.i18n, i18n = art.i18n,
player = art.player; player = art.player;
var $pip = append($control, icons.pip); append($control, icons.pip);
tooltip($pip, i18n.get('Mini player'));
proxy($control, 'click', function () { proxy($control, 'click', function () {
player.pip = true; player.pipToggle = true;
});
art.on('pipChange', function (value) {
tooltip($control, i18n.get(value ? 'Exit mini player' : 'Mini player'));
}); });
} }
}); });
@@ -2371,7 +2305,7 @@
proxy = art.events.proxy, proxy = art.events.proxy,
player = art.player; player = art.player;
return _objectSpread$4({}, option, { return _objectSpread$4({}, option, {
html: "\n<div class=\"art-control-progress-inner\">\n <div class=\"art-progress-loaded\"></div>\n <div class=\"art-progress-played\" style=\"background: ".concat(theme, "\"></div>\n <div class=\"art-progress-highlight\"></div>\n <div class=\"art-progress-indicator\" style=\"background: ").concat(theme, "\"></div>\n <div class=\"art-progress-tip art-tip\"></div>\n</div>\n "), html: "\n <div class=\"art-control-progress-inner\">\n <div class=\"art-progress-loaded\"></div>\n <div class=\"art-progress-played\" style=\"background: ".concat(theme, "\"></div>\n <div class=\"art-progress-highlight\"></div>\n <div class=\"art-progress-indicator\" style=\"background: ").concat(theme, "\"></div>\n <div class=\"art-progress-tip art-tip\"></div>\n </div>\n "),
mounted: function mounted($control) { mounted: function mounted($control) {
var isDroging = false; var isDroging = false;
var $loaded = query('.art-progress-loaded', $control); var $loaded = query('.art-progress-loaded', $control);
@@ -2492,24 +2426,18 @@
function subtitle(option) { function subtitle(option) {
return function (art) { return function (art) {
return _objectSpread$5({}, option, { return _objectSpread$5({}, option, {
tooltip: art.i18n.get('Hide subtitle'),
mounted: function mounted($control) { mounted: function mounted($control) {
var proxy = art.events.proxy, var proxy = art.events.proxy,
icons = art.icons, icons = art.icons,
i18n = art.i18n, i18n = art.i18n,
subtitle = art.subtitle; subtitle = art.subtitle;
var $subtitle = append($control, icons.subtitle); append($control, icons.subtitle);
tooltip($subtitle, i18n.get('Hide subtitle'));
proxy($control, 'click', function () { proxy($control, 'click', function () {
subtitle.toggle(); subtitle.toggle = true;
}); });
art.on('subtitle:toggle', function (value) { art.on('subtitle:toggle', function (value) {
if (value) { tooltip($control, i18n.get(value ? 'Hide subtitle' : 'Show subtitle'));
setStyle($subtitle, 'opacity', '1');
tooltip($subtitle, i18n.get('Hide subtitle'));
} else {
setStyle($subtitle, 'opacity', '0.8');
tooltip($subtitle, i18n.get('Show subtitle'));
}
}); });
} }
}); });
@@ -2526,8 +2454,8 @@
function getTime() { function getTime() {
var newTime = "".concat(secondToTime(art.player.currentTime), " / ").concat(secondToTime(art.player.duration)); var newTime = "".concat(secondToTime(art.player.currentTime), " / ").concat(secondToTime(art.player.duration));
if (newTime !== $control.innerHTML) { if (newTime !== $control.innerText) {
$control.innerHTML = newTime; $control.innerText = newTime;
} }
} }
@@ -2628,23 +2556,21 @@
function setting(option) { function setting(option) {
return function (art) { return function (art) {
return _objectSpread$8({}, option, { return _objectSpread$8({}, option, {
tooltip: art.i18n.get('Show setting'),
mounted: function mounted($control) { mounted: function mounted($control) {
var proxy = art.events.proxy, var proxy = art.events.proxy,
icons = art.icons, icons = art.icons,
i18n = art.i18n, i18n = art.i18n,
setting = art.setting; setting = art.setting;
var $setting = append($control, icons.setting); append($control, icons.setting);
tooltip($setting, i18n.get('Show setting'));
proxy($control, 'click', function () { proxy($control, 'click', function () {
setting.toggle(); setting.toggle();
}); });
art.on('setting:toggle', function (value) { art.on('setting:toggle', function (value) {
if (value) { if (value) {
setStyle($setting, 'opacity', '0.8'); tooltip($control, i18n.get('Hide setting'));
tooltip($setting, i18n.get('Hide setting'));
} else { } else {
setStyle($setting, 'opacity', '1'); tooltip($control, i18n.get('Show setting'));
tooltip($setting, i18n.get('Show setting'));
} }
}); });
} }
@@ -2721,14 +2647,13 @@
function screenshot(option) { function screenshot(option) {
return function (art) { return function (art) {
return _objectSpread$a({}, option, { return _objectSpread$a({}, option, {
tooltip: art.i18n.get('Screenshot'),
mounted: function mounted($control) { mounted: function mounted($control) {
var proxy = art.events.proxy, var proxy = art.events.proxy,
icons = art.icons, icons = art.icons,
i18n = art.i18n,
player = art.player; player = art.player;
var $screenshot = append($control, icons.screenshot); append($control, icons.screenshot);
tooltip($screenshot, i18n.get('Screenshot')); proxy($control, 'click', function () {
proxy($screenshot, 'click', function () {
player.screenshot(); player.screenshot();
}); });
} }
@@ -2888,7 +2813,7 @@
var _this2 = this; var _this2 = this;
var option = typeof getOption === 'function' ? getOption(this.art) : getOption; var option = typeof getOption === 'function' ? getOption(this.art) : getOption;
errorHandle(option.position, 'Controls option.position can not be empty'); errorHandle(['top', 'left', 'right'].includes(option.position), "Control option.position must one of 'top', 'left', 'right'");
var _this$art$template = this.art.template, var _this$art$template = this.art.template,
$progress = _this$art$template.$progress, $progress = _this$art$template.$progress,
$controlsLeft = _this$art$template.$controlsLeft, $controlsLeft = _this$art$template.$controlsLeft,
@@ -2931,7 +2856,7 @@
var i18n = art.i18n, var i18n = art.i18n,
player = art.player; player = art.player;
return _objectSpread$c({}, option, { return _objectSpread$c({}, option, {
html: "\n".concat(i18n.get('Play speed'), ":\n<span data-rate=\"0.5\">0.5</span>\n<span data-rate=\"0.75\">0.75</span>\n<span data-rate=\"1.0\" class=\"art-current\">").concat(i18n.get('Normal'), "</span>\n<span data-rate=\"1.25\">1.25</span>\n<span data-rate=\"1.5\">1.5</span>\n<span data-rate=\"2.0\">2.0</span>\n "), html: "\n ".concat(i18n.get('Play speed'), ":\n <span data-rate=\"0.5\">0.5</span>\n <span data-rate=\"0.75\">0.75</span>\n <span data-rate=\"1.0\" class=\"art-current\">").concat(i18n.get('Normal'), "</span>\n <span data-rate=\"1.25\">1.25</span>\n <span data-rate=\"1.5\">1.5</span>\n <span data-rate=\"2.0\">2.0</span>\n "),
click: function click(contextmenu, event) { click: function click(contextmenu, event) {
var rate = event.target.dataset.rate; var rate = event.target.dataset.rate;
@@ -2963,7 +2888,7 @@
var i18n = art.i18n, var i18n = art.i18n,
player = art.player; player = art.player;
return _objectSpread$d({}, option, { return _objectSpread$d({}, option, {
html: "\n".concat(i18n.get('Aspect ratio'), ":\n<span data-ratio=\"default\" class=\"art-current\">").concat(i18n.get('Default'), "</span>\n<span data-ratio=\"4:3\">4:3</span>\n<span data-ratio=\"16:9\">16:9</span>\n "), html: "\n ".concat(i18n.get('Aspect ratio'), ":\n <span data-ratio=\"default\" class=\"art-current\">").concat(i18n.get('Default'), "</span>\n <span data-ratio=\"4:3\">4:3</span>\n <span data-ratio=\"16:9\">16:9</span>\n "),
click: function click(contextmenu, event) { click: function click(contextmenu, event) {
var ratio = event.target.dataset.ratio; var ratio = event.target.dataset.ratio;
@@ -3106,8 +3031,10 @@
menuTop = cHeight - mHeight; menuTop = cHeight - mHeight;
} }
setStyle($contextmenu, 'left', "".concat(menuLeft, "px")); setStyles($contextmenu, {
setStyle($contextmenu, 'top', "".concat(menuTop, "px")); top: "".concat(menuTop, "px"),
left: "".concat(menuLeft, "px")
});
}); });
proxy($player, 'click', function (event) { proxy($player, 'click', function (event) {
if (!event.composedPath().includes($contextmenu)) { if (!event.composedPath().includes($contextmenu)) {
@@ -3603,7 +3530,7 @@
classCallCheck(this, Notice); classCallCheck(this, Notice);
this.art = art; this.art = art;
this.time = 1000; this.time = 2000;
this.timer = null; this.timer = null;
} }
@@ -3617,6 +3544,7 @@
addClass($player, 'art-notice-show'); addClass($player, 'art-notice-show');
clearTimeout(this.timer); clearTimeout(this.timer);
this.timer = setTimeout(function () { this.timer = setTimeout(function () {
$noticeInner.innerText = '';
removeClass($player, 'art-notice-show'); removeClass($player, 'art-notice-show');
}, this.time); }, this.time);
} }
@@ -3667,10 +3595,6 @@
var pip$1 = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\" height=\"32\" width=\"32\">\n <path d=\"M25,17 L17,17 L17,23 L25,23 L25,17 L25,17 Z M29,25 L29,10.98 C29,9.88 28.1,9 27,9 L9,9 C7.9,9 7,9.88 7,10.98 L7,25 C7,26.1 7.9,27 9,27 L27,27 C28.1,27 29,26.1 29,25 L29,25 Z M27,25.02 L9,25.02 L9,10.97 L27,10.97 L27,25.02 L27,25.02 Z\"></path>\n</svg>"; var pip$1 = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\" height=\"32\" width=\"32\">\n <path d=\"M25,17 L17,17 L17,23 L25,23 L25,17 L25,17 Z M29,25 L29,10.98 C29,9.88 28.1,9 27,9 L9,9 C7.9,9 7,9.88 7,10.98 L7,25 C7,26.1 7.9,27 9,27 L27,27 C28.1,27 29,26.1 29,25 L29,25 Z M27,25.02 L9,25.02 L9,10.97 L27,10.97 L27,25.02 L27,25.02 Z\"></path>\n</svg>";
var prev = "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"36\" width=\"36\" viewBox=\"0 0 36 36\">\n <path d=\"m 12,12 h 2 v 12 h -2 z m 3.5,6 8.5,6 V 12 z\"></path>\n</svg>";
var next = "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"36\" width=\"36\" viewBox=\"0 0 36 36\">\n <path d=\"M 12,24 20.5,18 12,12 V 24 z M 22,12 v 12 h 2 V 12 h -2 z\"></path>\n</svg>";
var Icons = function Icons(art) { var Icons = function Icons(art) {
var _this = this; var _this = this;
@@ -3688,9 +3612,7 @@
setting: setting$1, setting: setting$1,
fullscreen: fullscreen$1, fullscreen: fullscreen$1,
fullscreenWeb: fullscreenWeb$1, fullscreenWeb: fullscreenWeb$1,
pip: pip$1, pip: pip$1
prev: prev,
next: next
}, art.option.icons); }, art.option.icons);
Object.keys(icons).forEach(function (key) { Object.keys(icons).forEach(function (key) {
var icon = document.createElement('i'); var icon = document.createElement('i');
@@ -3847,15 +3769,10 @@
var Storage = var Storage =
/*#__PURE__*/ /*#__PURE__*/
function () { function () {
function Storage(art) { function Storage() {
classCallCheck(this, Storage); classCallCheck(this, Storage);
this.name = 'artplayer_settings'; this.name = 'artplayer_settings';
var volume = this.get('volume');
if (volume) {
art.option.volume = volume;
}
} }
createClass(Storage, [{ createClass(Storage, [{
@@ -3889,6 +3806,7 @@
function settingMix(art) { function settingMix(art) {
var i18n = art.i18n, var i18n = art.i18n,
plugins = art.plugins,
subtitle = art.subtitle, subtitle = art.subtitle,
proxy = art.events.proxy; proxy = art.events.proxy;
return { return {
@@ -3902,7 +3820,7 @@
proxy($range, 'change', function () { proxy($range, 'change', function () {
var value = $range.value; var value = $range.value;
$value.innerText = value; $value.innerText = value;
art.plugins.subtitleOffset.offset(Number(value)); plugins.subtitleOffset.offset(Number(value));
}); });
art.on('subtitle:switch', function () { art.on('subtitle:switch', function () {
$range.value = 0; $range.value = 0;
@@ -4209,29 +4127,6 @@
}; };
} }
function autoPip(art) {
var events = art.events,
player = art.player,
template = art.template;
var scrollDebounce = debounce(function () {
var _template$$player$get = template.$player.getBoundingClientRect(),
top = _template$$player$get.top,
height = _template$$player$get.height;
if (top + height <= 0 && !player.pip) {
player.pip = true;
art.emit('autoPip', true);
} else if (player.pip) {
player.pip = false;
art.emit('autoPip', false);
}
}, 300);
events.proxy(window, 'scroll', scrollDebounce);
return {
name: 'autoPip'
};
}
var Plugins = var Plugins =
/*#__PURE__*/ /*#__PURE__*/
function () { function () {
@@ -4264,10 +4159,6 @@
this.add(networkMonitor); this.add(networkMonitor);
} }
if (option.autoPip) {
this.add(autoPip);
}
art.option.plugins.forEach(function (plugin) { art.option.plugins.forEach(function (plugin) {
_this.add(plugin); _this.add(plugin);
}); });
@@ -4336,13 +4227,11 @@
var typeCallback = option.customType[typeName]; var typeCallback = option.customType[typeName];
if (typeName && typeCallback) { if (typeName && typeCallback) {
art.emit('beforeCustomType', typeName);
typeCallback($video, option.url, art); typeCallback($video, option.url, art);
art.emit('afterCustomType', typeName); art.emit('customType', typeName);
} else { } else {
art.emit('beforeAttachUrl', option.url);
$video.src = option.url; $video.src = option.url;
art.emit('afterAttachUrl', $video.src); art.emit('urlChange', $video.src);
} }
}; };
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"artplayer.js","sources":["../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/classCallCheck.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/createClass.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/typeof.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/inherits.js","../../packages/artplayer/node_modules/option-validator/dist/option-validator.js","../../packages/artplayer/src/utils/emitter.js","../../packages/artplayer/src/utils/dom.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/isNativeFunction.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/construct.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/wrapNativeSuper.js","../../packages/artplayer/src/utils/error.js","../../packages/artplayer/src/utils/subtitle.js","../../packages/artplayer/src/utils/file.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/arrayWithoutHoles.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/iterableToArray.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/nonIterableSpread.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/toConsumableArray.js","../../packages/artplayer/src/utils/property.js","../../packages/artplayer/src/utils/time.js","../../packages/artplayer/src/utils/format.js","../../packages/artplayer/src/scheme/index.js","../../packages/artplayer/src/config/video.js","../../packages/artplayer/src/config/index.js","../../packages/artplayer/src/whitelist.js","../../packages/artplayer/src/template.js","../../packages/artplayer/src/i18n/index.js","../../packages/artplayer/src/player/attachUrlMix.js","../../packages/artplayer/src/player/attrInit.js","../../packages/artplayer/src/player/eventInit.js","../../packages/artplayer/src/player/playMix.js","../../packages/artplayer/src/player/pauseMix.js","../../packages/artplayer/src/player/toggleMix.js","../../packages/artplayer/src/player/seekMix.js","../../packages/artplayer/src/player/volumeMix.js","../../packages/artplayer/src/player/currentTimeMix.js","../../packages/artplayer/src/player/durationMix.js","../../packages/artplayer/src/player/switchMix.js","../../packages/artplayer/src/player/playbackRateMix.js","../../packages/artplayer/src/player/aspectRatioMix.js","../../packages/artplayer/src/player/screenshotMix.js","../../packages/artplayer/node_modules/screenfull/dist/screenfull.js","../../packages/artplayer/src/player/fullscreenMix.js","../../packages/artplayer/src/player/fullscreenWebMix.js","../../packages/artplayer/src/player/pipMix.js","../../packages/artplayer/src/player/loadedMix.js","../../packages/artplayer/src/player/playedMix.js","../../packages/artplayer/src/player/playingMix.js","../../packages/artplayer/src/player/autoSizeMix.js","../../packages/artplayer/src/player/rectMix.js","../../packages/artplayer/src/player/flipMix.js","../../packages/artplayer/src/player/index.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/superPropBase.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/get.js","../../packages/artplayer/src/utils/component.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/defineProperty.js","../../packages/artplayer/src/control/fullscreen.js","../../packages/artplayer/src/control/fullscreenWeb.js","../../packages/artplayer/src/control/pip.js","../../packages/artplayer/src/control/playAndPause.js","../../packages/artplayer/src/control/progress.js","../../packages/artplayer/src/control/subtitle.js","../../packages/artplayer/src/control/time.js","../../packages/artplayer/src/control/volume.js","../../packages/artplayer/src/control/setting.js","../../packages/artplayer/src/control/thumbnails.js","../../packages/artplayer/src/control/screenshot.js","../../packages/artplayer/src/control/quality.js","../../packages/artplayer/src/control/index.js","../../packages/artplayer/src/contextmenu/playbackRate.js","../../packages/artplayer/src/contextmenu/aspectRatio.js","../../packages/artplayer/src/contextmenu/info.js","../../packages/artplayer/src/contextmenu/version.js","../../packages/artplayer/src/contextmenu/close.js","../../packages/artplayer/src/contextmenu/index.js","../../packages/artplayer/src/info.js","../../packages/artplayer/src/subtitle.js","../../packages/artplayer/src/events/clickInit.js","../../packages/artplayer/src/events/hoverInit.js","../../packages/artplayer/src/events/mousemoveInit.js","../../packages/artplayer/src/events/resizeInit.js","../../packages/artplayer/src/events/index.js","../../packages/artplayeLine truncated {"version":3,"file":"artplayer.js","sources":["../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/classCallCheck.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/createClass.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/typeof.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/inherits.js","../../packages/artplayer/node_modules/option-validator/dist/option-validator.js","../../packages/artplayer/src/utils/emitter.js","../../packages/artplayer/src/utils/dom.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/isNativeFunction.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/construct.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/wrapNativeSuper.js","../../packages/artplayer/src/utils/error.js","../../packages/artplayer/src/utils/subtitle.js","../../packages/artplayer/src/utils/file.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/arrayWithoutHoles.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/iterableToArray.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/nonIterableSpread.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/toConsumableArray.js","../../packages/artplayer/src/utils/property.js","../../packages/artplayer/src/utils/time.js","../../packages/artplayer/src/utils/format.js","../../packages/artplayer/src/scheme/index.js","../../packages/artplayer/src/config/video.js","../../packages/artplayer/src/config/index.js","../../packages/artplayer/src/whitelist.js","../../packages/artplayer/src/template.js","../../packages/artplayer/src/i18n/index.js","../../packages/artplayer/src/player/urlMix.js","../../packages/artplayer/src/player/attrInit.js","../../packages/artplayer/src/player/eventInit.js","../../packages/artplayer/src/player/playMix.js","../../packages/artplayer/src/player/pauseMix.js","../../packages/artplayer/src/player/toggleMix.js","../../packages/artplayer/src/player/seekMix.js","../../packages/artplayer/src/player/volumeMix.js","../../packages/artplayer/src/player/currentTimeMix.js","../../packages/artplayer/src/player/durationMix.js","../../packages/artplayer/src/player/switchMix.js","../../packages/artplayer/src/player/playbackRateMix.js","../../packages/artplayer/src/player/aspectRatioMix.js","../../packages/artplayer/src/player/screenshotMix.js","../../packages/artplayer/node_modules/screenfull/dist/screenfull.js","../../packages/artplayer/src/player/fullscreenMix.js","../../packages/artplayer/src/player/fullscreenWebMix.js","../../packages/artplayer/src/player/pipMix.js","../../packages/artplayer/src/player/loadedMix.js","../../packages/artplayer/src/player/playedMix.js","../../packages/artplayer/src/player/playingMix.js","../../packages/artplayer/src/player/autoSizeMix.js","../../packages/artplayer/src/player/rectMix.js","../../packages/artplayer/src/player/flipMix.js","../../packages/artplayer/src/player/index.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/superPropBase.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/get.js","../../packages/artplayer/src/utils/component.js","../../node_modules/_@babel_runtime@7.7.4@@babel/runtime/helpers/defineProperty.js","../../packages/artplayer/src/control/fullscreen.js","../../packages/artplayer/src/control/fullscreenWeb.js","../../packages/artplayer/src/control/pip.js","../../packages/artplayer/src/control/playAndPause.js","../../packages/artplayer/src/control/progress.js","../../packages/artplayer/src/control/subtitle.js","../../packages/artplayer/src/control/time.js","../../packages/artplayer/src/control/volume.js","../../packages/artplayer/src/control/setting.js","../../packages/artplayer/src/control/thumbnails.js","../../packages/artplayer/src/control/screenshot.js","../../packages/artplayer/src/control/quality.js","../../packages/artplayer/src/control/index.js","../../packages/artplayer/src/contextmenu/playbackRate.js","../../packages/artplayer/src/contextmenu/aspectRatio.js","../../packages/artplayer/src/contextmenu/info.js","../../packages/artplayer/src/contextmenu/version.js","../../packages/artplayer/src/contextmenu/close.js","../../packages/artplayer/src/contextmenu/index.js","../../packages/artplayer/src/info.js","../../packages/artplayer/src/subtitle.js","../../packages/artplayer/src/events/clickInit.js","../../packages/artplayer/src/events/hoverInit.js","../../packages/artplayer/src/events/mousemoveInit.js","../../packages/artplayer/src/events/resizeInit.js","../../packages/artplayer/src/events/index.js","../../packages/artplayer/src/Line truncated
+1 -1
View File
@@ -5,4 +5,4 @@
* Released under the MIT License. * Released under the MIT License.
*/ */
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Artplayer=e()}(this,(function(){"use strict";var t=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")};function e(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var n=function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t};"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function r(t,e){return t(e={exports:{}},e.exports),e.exports}var i=r((function(t){function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function n(r){return"function"==typeof Symbol&&"symbol"===e(Symbol.iterator)?t.exports=n=function(t){return e(t)}:t.exports=n=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":e(t)},n(r)}t.exports=n}));var o=function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t};var a=function(t,e){return!e||"object"!==i(e)&&"function"!=typeof e?o(t):e},c=r((function(t){function e(n){return t.exports=e=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},e(n)}t.exports=e})),s=r((function(t){function e(n,r){return t.exports=e=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},e(n,r)}t.exports=e}));var u=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&s(t,e)},l=r((function(t,e){t.exports=function(){function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}var e=Object.prototype.toString,n=function(n){if(void 0===n)return"undefined";if(null===n)return"null";var i=t(n);if("boolean"===i)return"boolean";if("string"===i)return"string";if("number"===i)return"number";if("symbol"===i)return"symbol";if("function"===i)return function(t){return"GeneratorFunction"===r(t)}(n)?"generatorfunction":"function";if(function(t){return Array.isArray?Array.isArray(t):t instanceof Array}(n))return"array";if(function(t){return!(!t.constructor||"function"!=typeof t.constructor.isBuffer)&&t.constructor.isBuffer(t)}(n))return"buffer";if(function(t){try{if("number"==typeof t.length&&"function"==typeof t.callee)return!0}catch(t){if(-1!==t.message.indexOf("callee"))return!0}return!1}(n))return"arguments";if(function(t){return t instanceof Date||"function"==typeof t.toDateString&&"function"==typeof t.getDate&&"function"==typeof t.setDate}(n))return"date";if(function(t){return t instanceof Error||"string"==typeof t.message&&t.constructor&&"number"==typeof t.constructor.stackTraceLimit}(n))return"error";if(function(t){return t instanceof RegExp||"string"==typeof t.flags&&"boolean"==typeof t.ignoreCase&&"boolean"==typeof t.multiline&&"boolean"==typeof t.global}(n))return"regexp";switch(r(n)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(function(t){return"function"==typeof t.throw&&"function"==typeof t.return&&"function"==typeof t.next}(n))return"generator";switch(i=e.call(n)){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return i.slice(8,-1).toLowerCase().replace(/\s/g,"")};function r(t){return t.constructor?t.constructor.name:null}function i(t,e){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:["option"];return o(t,e,r),a(t,e,r),function(t,e,r){var c=n(e),s=n(t);if("object"===c){if("object"!==s)throw new Error("[Type Error]: '".concat(r.join("."),"' require 'object' type, but got '").concat(s,"'"));Object.keys(e).forEach((function(n){var c=t[n],s=e[n],u=r.slice();u.push(n),o(c,s,u),a(c,s,u),i(c,s,u)}))}if("array"===c){if("array"!==s)throw new Error("[Type Error]: '".concat(r.join("."),"' require 'array' type, but got '").concat(s,"'"Line truncated !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Artplayer=e()}(this,(function(){"use strict";var t=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")};function e(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var n=function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t};"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function r(t,e){return t(e={exports:{}},e.exports),e.exports}var i=r((function(t){function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function n(r){return"function"==typeof Symbol&&"symbol"===e(Symbol.iterator)?t.exports=n=function(t){return e(t)}:t.exports=n=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":e(t)},n(r)}t.exports=n}));var o=function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t};var a=function(t,e){return!e||"object"!==i(e)&&"function"!=typeof e?o(t):e},c=r((function(t){function e(n){return t.exports=e=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},e(n)}t.exports=e})),s=r((function(t){function e(n,r){return t.exports=e=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},e(n,r)}t.exports=e}));var u=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&s(t,e)},l=r((function(t,e){t.exports=function(){function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}var e=Object.prototype.toString,n=function(n){if(void 0===n)return"undefined";if(null===n)return"null";var i=t(n);if("boolean"===i)return"boolean";if("string"===i)return"string";if("number"===i)return"number";if("symbol"===i)return"symbol";if("function"===i)return function(t){return"GeneratorFunction"===r(t)}(n)?"generatorfunction":"function";if(function(t){return Array.isArray?Array.isArray(t):t instanceof Array}(n))return"array";if(function(t){return!(!t.constructor||"function"!=typeof t.constructor.isBuffer)&&t.constructor.isBuffer(t)}(n))return"buffer";if(function(t){try{if("number"==typeof t.length&&"function"==typeof t.callee)return!0}catch(t){if(-1!==t.message.indexOf("callee"))return!0}return!1}(n))return"arguments";if(function(t){return t instanceof Date||"function"==typeof t.toDateString&&"function"==typeof t.getDate&&"function"==typeof t.setDate}(n))return"date";if(function(t){return t instanceof Error||"string"==typeof t.message&&t.constructor&&"number"==typeof t.constructor.stackTraceLimit}(n))return"error";if(function(t){return t instanceof RegExp||"string"==typeof t.flags&&"boolean"==typeof t.ignoreCase&&"boolean"==typeof t.multiline&&"boolean"==typeof t.global}(n))return"regexp";switch(r(n)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(function(t){return"function"==typeof t.throw&&"function"==typeof t.return&&"function"==typeof t.next}(n))return"generator";switch(i=e.call(n)){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return i.slice(8,-1).toLowerCase().replace(/\s/g,"")};function r(t){return t.constructor?t.constructor.name:null}function i(t,e){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:["option"];return o(t,e,r),a(t,e,r),function(t,e,r){var c=n(e),s=n(t);if("object"===c){if("object"!==s)throw new Error("[Type Error]: '".concat(r.join("."),"' require 'object' type, but got '").concat(s,"'"));Object.keys(e).forEach((function(n){var c=t[n],s=e[n],u=r.slice();u.push(n),o(c,s,u),a(c,s,u),i(c,s,u)}))}if("array"===c){if("array"!==s)throw new Error("[Type Error]: '".concat(r.join("."),"' require 'array' type, but got '").concat(s,"'"Line truncated
+5 -3
View File
@@ -1,4 +1,4 @@
import { setStyle } from '../utils'; import { setStyles } from '../utils';
import Component from '../utils/component'; import Component from '../utils/component';
import playbackRate from './playbackRate'; import playbackRate from './playbackRate';
import aspectRatio from './aspectRatio'; import aspectRatio from './aspectRatio';
@@ -82,8 +82,10 @@ export default class Contextmenu extends Component {
menuTop = cHeight - mHeight; menuTop = cHeight - mHeight;
} }
setStyle($contextmenu, 'left', `${menuLeft}px`); setStyles($contextmenu, {
setStyle($contextmenu, 'top', `${menuTop}px`); top: `${menuTop}px`,
left: `${menuLeft}px`,
});
}); });
proxy($player, 'click', event => { proxy($player, 'click', event => {
+5 -11
View File
@@ -1,8 +1,9 @@
import { append, tooltip, setStyle } from '../utils'; import { append, tooltip } from '../utils';
export default function fullscreen(option) { export default function fullscreen(option) {
return art => ({ return art => ({
...option, ...option,
tooltip: art.i18n.get('Fullscreen'),
mounted: $control => { mounted: $control => {
const { const {
events: { proxy }, events: { proxy },
@@ -11,21 +12,14 @@ export default function fullscreen(option) {
player, player,
} = art; } = art;
const $fullscreen = append($control, icons.fullscreen); append($control, icons.fullscreen);
tooltip($fullscreen, i18n.get('Fullscreen'));
proxy($control, 'click', () => { proxy($control, 'click', () => {
player.fullscreenToggle = true; player.fullscreenToggle = true;
}); });
art.on('fullscreenEnabled', () => { art.on('fullscreenChange', value => {
setStyle($fullscreen, 'opacity', '0.8'); tooltip($control, i18n.get(value ? 'Exit fullscreen' : 'Fullscreen'));
tooltip($fullscreen, i18n.get('Exit fullscreen'));
});
art.on('fullscreenExit', () => {
setStyle($fullscreen, 'opacity', '1');
tooltip($fullscreen, i18n.get('Fullscreen'));
}); });
}, },
}); });
@@ -1,8 +1,9 @@
import { append, tooltip, setStyle } from '../utils'; import { append, tooltip } from '../utils';
export default function fullscreenWeb(option) { export default function fullscreenWeb(option) {
return art => ({ return art => ({
...option, ...option,
tooltip: art.i18n.get('Web fullscreen'),
mounted: $control => { mounted: $control => {
const { const {
events: { proxy }, events: { proxy },
@@ -11,21 +12,14 @@ export default function fullscreenWeb(option) {
player, player,
} = art; } = art;
const $fullscreenWeb = append($control, icons.fullscreenWeb); append($control, icons.fullscreenWeb);
tooltip($fullscreenWeb, i18n.get('Web fullscreen'));
proxy($control, 'click', () => { proxy($control, 'click', () => {
player.fullscreenWebToggle = true; player.fullscreenWebToggle = true;
}); });
art.on('fullscreenWebEnabled', () => { art.on('fullscreenWebChange', value => {
setStyle($fullscreenWeb, 'opacity', '0.8'); tooltip($control, i18n.get(value ? 'Exit web fullscreen' : 'Web fullscreen'));
tooltip($fullscreenWeb, i18n.get('Exit web fullscreen'));
});
art.on('fullscreenWebExit', () => {
setStyle($fullscreenWeb, 'opacity', '1');
tooltip($fullscreenWeb, i18n.get('Web fullscreen'));
}); });
}, },
}); });
+4 -1
View File
@@ -136,7 +136,10 @@ export default class Control extends Component {
add(getOption, callback) { add(getOption, callback) {
const option = typeof getOption === 'function' ? getOption(this.art) : getOption; const option = typeof getOption === 'function' ? getOption(this.art) : getOption;
errorHandle(option.position, 'Controls option.position can not be empty'); errorHandle(
['top', 'left', 'right'].includes(option.position),
`Control option.position must one of 'top', 'left', 'right'`,
);
const { $progress, $controlsLeft, $controlsRight } = this.art.template; const { $progress, $controlsLeft, $controlsRight } = this.art.template;
switch (option.position) { switch (option.position) {
+9 -3
View File
@@ -3,6 +3,7 @@ import { append, tooltip } from '../utils';
export default function pip(option) { export default function pip(option) {
return art => ({ return art => ({
...option, ...option,
tooltip: art.i18n.get('Mini player'),
mounted: $control => { mounted: $control => {
const { const {
events: { proxy }, events: { proxy },
@@ -10,10 +11,15 @@ export default function pip(option) {
i18n, i18n,
player, player,
} = art; } = art;
const $pip = append($control, icons.pip);
tooltip($pip, i18n.get('Mini player')); append($control, icons.pip);
proxy($control, 'click', () => { proxy($control, 'click', () => {
player.pip = true; player.pipToggle = true;
});
art.on('pipChange', value => {
tooltip($control, i18n.get(value ? 'Exit mini player' : 'Mini player'));
}); });
}, },
}); });
+4 -5
View File
@@ -1,19 +1,18 @@
import { append, tooltip } from '../utils'; import { append } from '../utils';
export default function screenshot(option) { export default function screenshot(option) {
return art => ({ return art => ({
...option, ...option,
tooltip: art.i18n.get('Screenshot'),
mounted: $control => { mounted: $control => {
const { const {
events: { proxy }, events: { proxy },
icons, icons,
i18n,
player, player,
} = art; } = art;
const $screenshot = append($control, icons.screenshot); append($control, icons.screenshot);
tooltip($screenshot, i18n.get('Screenshot')); proxy($control, 'click', () => {
proxy($screenshot, 'click', () => {
player.screenshot(); player.screenshot();
}); });
}, },
+5 -7
View File
@@ -1,8 +1,9 @@
import { append, tooltip, setStyle } from '../utils'; import { append, tooltip } from '../utils';
export default function setting(option) { export default function setting(option) {
return art => ({ return art => ({
...option, ...option,
tooltip: art.i18n.get('Show setting'),
mounted: $control => { mounted: $control => {
const { const {
events: { proxy }, events: { proxy },
@@ -11,8 +12,7 @@ export default function setting(option) {
setting, setting,
} = art; } = art;
const $setting = append($control, icons.setting); append($control, icons.setting);
tooltip($setting, i18n.get('Show setting'));
proxy($control, 'click', () => { proxy($control, 'click', () => {
setting.toggle(); setting.toggle();
@@ -20,11 +20,9 @@ export default function setting(option) {
art.on('setting:toggle', value => { art.on('setting:toggle', value => {
if (value) { if (value) {
setStyle($setting, 'opacity', '0.8'); tooltip($control, i18n.get('Hide setting'));
tooltip($setting, i18n.get('Hide setting'));
} else { } else {
setStyle($setting, 'opacity', '1'); tooltip($control, i18n.get('Show setting'));
tooltip($setting, i18n.get('Show setting'));
} }
}); });
}, },
+5 -11
View File
@@ -1,8 +1,9 @@
import { append, tooltip, setStyle } from '../utils'; import { append, tooltip } from '../utils';
export default function subtitle(option) { export default function subtitle(option) {
return art => ({ return art => ({
...option, ...option,
tooltip: art.i18n.get('Hide subtitle'),
mounted: $control => { mounted: $control => {
const { const {
events: { proxy }, events: { proxy },
@@ -11,21 +12,14 @@ export default function subtitle(option) {
subtitle, subtitle,
} = art; } = art;
const $subtitle = append($control, icons.subtitle); append($control, icons.subtitle);
tooltip($subtitle, i18n.get('Hide subtitle'));
proxy($control, 'click', () => { proxy($control, 'click', () => {
subtitle.toggle(); subtitle.toggle = true;
}); });
art.on('subtitle:toggle', value => { art.on('subtitle:toggle', value => {
if (value) { tooltip($control, i18n.get(value ? 'Hide subtitle' : 'Show subtitle'));
setStyle($subtitle, 'opacity', '1');
tooltip($subtitle, i18n.get('Hide subtitle'));
} else {
setStyle($subtitle, 'opacity', '0.8');
tooltip($subtitle, i18n.get('Show subtitle'));
}
}); });
}, },
}); });
+1
View File
@@ -31,6 +31,7 @@
"Web fullscreen": "网页全屏", "Web fullscreen": "网页全屏",
"Exit web fullscreen": "退出网页全屏", "Exit web fullscreen": "退出网页全屏",
"Mini player": "迷你播放器", "Mini player": "迷你播放器",
"Exit mini player": "退出迷你播放器",
"Does not support fullscreen": "不支持全屏", "Does not support fullscreen": "不支持全屏",
"Local Subtitle": "本地字幕", "Local Subtitle": "本地字幕",
"Local Video": "本地视频", "Local Video": "本地视频",
+1
View File
@@ -31,6 +31,7 @@
"Web fullscreen": "網頁全屏", "Web fullscreen": "網頁全屏",
"Exit web fullscreen": "退出網頁全屏", "Exit web fullscreen": "退出網頁全屏",
"Mini player": "迷你播放器", "Mini player": "迷你播放器",
"Exit mini player": "退出迷你播放器",
"Does not support fullscreen": "不支持全屏", "Does not support fullscreen": "不支持全屏",
"Local Subtitle": "本地字幕", "Local Subtitle": "本地字幕",
"Local Video": "本地視頻", "Local Video": "本地視頻",
+2 -4
View File
@@ -40,13 +40,11 @@ export default class Mobile {
const typeName = option.type || getExt(option.url); const typeName = option.type || getExt(option.url);
const typeCallback = option.customType[typeName]; const typeCallback = option.customType[typeName];
if (typeName && typeCallback) { if (typeName && typeCallback) {
art.emit('beforeCustomType', typeName);
typeCallback($video, option.url, art); typeCallback($video, option.url, art);
art.emit('afterCustomType', typeName); art.emit('customType', typeName);
} else { } else {
art.emit('beforeAttachUrl', option.url);
$video.src = option.url; $video.src = option.url;
art.emit('afterAttachUrl', $video.src); art.emit('urlChange', $video.src);
} }
} }
} }
+1 -1
View File
@@ -3,7 +3,7 @@ import { addClass, removeClass } from './utils';
export default class Notice { export default class Notice {
constructor(art) { constructor(art) {
this.art = art; this.art = art;
this.time = 1000; this.time = 2000;
this.timer = null; this.timer = null;
} }
@@ -1,49 +0,0 @@
import { getExt, sleep, errorHandle, def } from '../utils';
export default function attachUrlMix(art, player) {
const {
option: { type, customType },
template: { $video },
} = art;
def(player, 'url', {
get() {
return $video.src;
},
});
def(player, 'attachUrl', {
value: url =>
sleep().then(() => {
function attachUrl(videoUrl) {
const typeName = type || getExt(videoUrl);
const typeCallback = customType[typeName];
if (typeName && typeCallback) {
art.loading.show = true;
art.emit('beforeCustomType', typeName);
typeCallback.call(art, $video, videoUrl, art);
art.emit('afterCustomType', typeName);
} else {
art.emit('beforeAttachUrl', videoUrl);
$video.src = videoUrl;
art.emit('afterAttachUrl', videoUrl);
}
return Promise.resolve(videoUrl);
}
if (typeof url === 'function') {
const result = url.call(art);
errorHandle(
typeof result.then === 'function',
'If url is a function, it needs to return a promise.',
);
return result.then(videoUrl => {
art.loading.show = true;
return attachUrl(videoUrl);
});
}
return attachUrl(url);
}),
});
}
+7 -2
View File
@@ -3,6 +3,7 @@ import { clamp } from '../utils';
export default function attrInit(art, player) { export default function attrInit(art, player) {
const { const {
option, option,
storage,
template: { $video }, template: { $video },
} = art; } = art;
@@ -18,6 +19,11 @@ export default function attrInit(art, player) {
$video.volume = clamp(option.volume, 0, 1); $video.volume = clamp(option.volume, 0, 1);
} }
const volume = storage.get('volume');
if (volume) {
$video.volume = clamp(volume, 0, 1);
}
if (option.poster) { if (option.poster) {
$video.poster = option.poster; $video.poster = option.poster;
} }
@@ -27,6 +33,5 @@ export default function attrInit(art, player) {
} }
$video.controls = false; $video.controls = false;
player.url = option.url;
player.attachUrl(option.url);
} }
+1 -1
View File
@@ -63,7 +63,7 @@ export default function eventInit(art, player) {
if (reconnectTime < maxReconnectTime) { if (reconnectTime < maxReconnectTime) {
sleep(1000).then(() => { sleep(1000).then(() => {
reconnectTime += 1; reconnectTime += 1;
player.attachUrl(option.url); player.url = option.url;
notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`; notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`;
}); });
} else { } else {
+5 -42
View File
@@ -2,59 +2,28 @@ import screenfull from 'screenfull';
import { addClass, removeClass, def } from '../utils'; import { addClass, removeClass, def } from '../utils';
export default function fullscreenMix(art, player) { export default function fullscreenMix(art, player) {
const { const { $player } = art.template;
i18n,
notice,
events: { destroyEvents },
template: { $player },
} = art;
const screenfullChange = () => {
art.emit('fullscreenChange', screenfull.isFullscreen);
};
const screenfullError = () => {
notice.show = i18n.get('Does not support fullscreen');
};
if (player.fullscreenIsEnabled) {
screenfull.on('change', screenfullChange);
screenfull.on('error', screenfullError);
destroyEvents.push(() => {
screenfull.off('change', screenfullChange);
screenfull.off('error', screenfullError);
});
}
def(player, 'fullscreen', { def(player, 'fullscreen', {
get() { get() {
return screenfull.isFullscreen; return screenfull.isFullscreen;
}, },
set(value) { set(value) {
if (!player.fullscreenIsEnabled) { if (player.fullscreenWeb) {
screenfullError(); player.fullscreenWeb = false;
return;
} }
if (value) { if (value) {
if (player.fullscreenWeb) {
player.fullscreenWeb = false;
}
screenfull.request($player).then(() => { screenfull.request($player).then(() => {
addClass($player, 'art-fullscreen'); addClass($player, 'art-fullscreen');
player.aspectRatioReset = true; player.aspectRatioReset = true;
art.emit('fullscreenEnabled'); art.emit('fullscreenChange', true);
}); });
} else { } else {
if (player.fullscreenWeb) {
player.fullscreenWeb = false;
}
screenfull.exit().then(() => { screenfull.exit().then(() => {
removeClass($player, 'art-fullscreen'); removeClass($player, 'art-fullscreen');
player.aspectRatioReset = true; player.aspectRatioReset = true;
art.emit('fullscreenExit'); art.emit('fullscreenChange', false);
}); });
} }
}, },
@@ -67,10 +36,4 @@ export default function fullscreenMix(art, player) {
} }
}, },
}); });
def(player, 'fullscreenIsEnabled', {
get() {
return screenfull.isEnabled;
},
});
} }
@@ -1,29 +1,25 @@
import { addClass, removeClass, hasClass, def } from '../utils'; import { addClass, removeClass, hasClass, def } from '../utils';
export default function fullscreenWebMix(art, player) { export default function fullscreenWebMix(art, player) {
const { const { $player } = art.template;
template: { $player },
} = art;
def(player, 'fullscreenWeb', { def(player, 'fullscreenWeb', {
get() { get() {
return hasClass($player, 'art-web-fullscreen'); return hasClass($player, 'art-web-fullscreen');
}, },
set(value) { set(value) {
if (player.fullscreen) {
player.fullscreen = false;
}
if (value) { if (value) {
if (player.fullscreen) {
player.fullscreen = false;
}
addClass($player, 'art-web-fullscreen'); addClass($player, 'art-web-fullscreen');
player.aspectRatioReset = true; player.aspectRatioReset = true;
art.emit('fullscreenWebEnabled'); art.emit('fullscreenWebChange', true);
} else { } else {
if (player.fullscreen) {
player.fullscreen = false;
}
removeClass($player, 'art-web-fullscreen'); removeClass($player, 'art-web-fullscreen');
player.aspectRatioReset = true; player.aspectRatioReset = true;
art.emit('fullscreenWebExit'); art.emit('fullscreenWebChange', false);
} }
}, },
}); });
+2 -2
View File
@@ -1,4 +1,4 @@
import attachUrlMix from './attachUrlMix'; import urlMix from './urlMix';
import attrInit from './attrInit'; import attrInit from './attrInit';
import eventInit from './eventInit'; import eventInit from './eventInit';
import playMix from './playMix'; import playMix from './playMix';
@@ -25,7 +25,7 @@ import { proxyPropertys } from '../utils';
export default class Player { export default class Player {
constructor(art) { constructor(art) {
attachUrlMix(art, this); urlMix(art, this);
eventInit(art, this); eventInit(art, this);
attrInit(art, this); attrInit(art, this);
playMix(art, this); playMix(art, this);
+9 -17
View File
@@ -29,17 +29,11 @@ function nativePip(art, player) {
}); });
proxy($video, 'enterpictureinpicture', () => { proxy($video, 'enterpictureinpicture', () => {
art.emit('pipEnabled'); art.emit('pipChange', true);
}); });
proxy($video, 'leavepictureinpicture', () => { proxy($video, 'leavepictureinpicture', () => {
art.emit('pipExit'); art.emit('pipChange', false);
});
art.on('destroy', () => {
if (player.pip) {
player.pip = false;
}
}); });
} }
@@ -55,10 +49,10 @@ function webkitPip(art, player) {
set(value) { set(value) {
if (value) { if (value) {
$video.webkitSetPresentationMode('picture-in-picture'); $video.webkitSetPresentationMode('picture-in-picture');
art.emit('pipEnabled'); art.emit('pipChange', true);
} else { } else {
$video.webkitSetPresentationMode('inline'); $video.webkitSetPresentationMode('inline');
art.emit('pipExit'); art.emit('pipChange', false);
} }
}, },
}); });
@@ -108,7 +102,7 @@ function customPip(art, player) {
append($pipTitle, option.title || i18n.get('Mini player')); append($pipTitle, option.title || i18n.get('Mini player'));
const property = { def(player, 'pip', {
get() { get() {
return hasClass($player, 'art-pip'); return hasClass($player, 'art-pip');
}, },
@@ -124,8 +118,8 @@ function customPip(art, player) {
player.fullscreenWeb = false; player.fullscreenWeb = false;
player.aspectRatio = false; player.aspectRatio = false;
player.playbackRate = false; player.playbackRate = false;
art.emit('pipEnabled'); art.emit('pipChange', true);
} else if (player.pip) { } else {
$player.style.cssText = cacheStyle; $player.style.cssText = cacheStyle;
removeClass($player, 'art-pip'); removeClass($player, 'art-pip');
setStyle($player, 'top', null); setStyle($player, 'top', null);
@@ -135,12 +129,10 @@ function customPip(art, player) {
player.aspectRatio = false; player.aspectRatio = false;
player.playbackRate = false; player.playbackRate = false;
player.autoSize = true; player.autoSize = true;
art.emit('pipExit'); art.emit('pipChange', false);
} }
}, },
}; });
def(player, 'pip', property);
} }
export default function pipMix(art, player) { export default function pipMix(art, player) {
+14 -16
View File
@@ -1,26 +1,24 @@
import { def } from '../utils'; import { def } from '../utils';
export default function switchMix(art, player) { export default function switchMix(art, player) {
const { i18n, notice, option } = art; const { i18n, notice } = art;
function switchUrl(url, name, currentTime) { function switchUrl(url, name, currentTime) {
if (url === player.url) return Promise.resolve(url); if (url === player.url) return;
URL.revokeObjectURL(player.url); URL.revokeObjectURL(player.url);
return player.attachUrl(url).then(() => { player.url = url;
option.url = url; player.playbackRate = false;
player.playbackRate = false; player.aspectRatio = false;
player.aspectRatio = false; art.once('video:canplay', () => {
art.once('video:canplay', () => { player.currentTime = currentTime;
player.currentTime = currentTime;
});
if (player.playing) {
player.play = true;
}
if (name) {
notice.show = `${i18n.get('Switch video')}: ${name}`;
}
art.emit('switch', url);
}); });
if (player.playing) {
player.play = true;
}
if (name) {
notice.show = `${i18n.get('Switch video')}: ${name}`;
}
art.emit('switch', url);
} }
def(player, 'switchQuality', { def(player, 'switchQuality', {
+27
View File
@@ -0,0 +1,27 @@
import { getExt, def } from '../utils';
export default function urlMix(art, player) {
const {
option: { type, customType },
template: { $video },
} = art;
def(player, 'url', {
get() {
return $video.src;
},
set(url) {
const typeName = type || getExt(url);
const typeCallback = customType[typeName];
if (typeName && typeCallback) {
art.loading.show = true;
typeCallback.call(art, $video, url, art);
art.emit('customType', typeName);
} else {
$video.src = url;
art.option.url = url;
art.emit('urlChange', url);
}
},
});
}
-22
View File
@@ -1,22 +0,0 @@
import { debounce } from '../utils';
export default function autoPip(art) {
const { events, player, template } = art;
const scrollDebounce = debounce(() => {
const { top, height } = template.$player.getBoundingClientRect();
if (top + height <= 0 && !player.pip) {
player.pip = true;
art.emit('autoPip', true);
} else if (player.pip) {
player.pip = false;
art.emit('autoPip', false);
}
}, 300);
events.proxy(window, 'scroll', scrollDebounce);
return {
name: 'autoPip',
};
}
-5
View File
@@ -4,7 +4,6 @@ import localVideo from './localVideo';
import localSubtitle from './localSubtitle'; import localSubtitle from './localSubtitle';
import miniProgressBar from './miniProgressBar'; import miniProgressBar from './miniProgressBar';
import networkMonitor from './networkMonitor'; import networkMonitor from './networkMonitor';
import autoPip from './autoPip';
export default class Plugins { export default class Plugins {
constructor(art) { constructor(art) {
@@ -33,10 +32,6 @@ export default class Plugins {
this.add(networkMonitor); this.add(networkMonitor);
} }
if (option.autoPip) {
this.add(autoPip);
}
art.option.plugins.forEach(plugin => { art.option.plugins.forEach(plugin => {
this.add(plugin); this.add(plugin);
}); });
@@ -3,6 +3,7 @@ import { query } from '../utils';
function settingMix(art) { function settingMix(art) {
const { const {
i18n, i18n,
plugins,
subtitle, subtitle,
events: { proxy }, events: { proxy },
} = art; } = art;
@@ -25,7 +26,7 @@ function settingMix(art) {
proxy($range, 'change', () => { proxy($range, 'change', () => {
const { value } = $range; const { value } = $range;
$value.innerText = value; $value.innerText = value;
art.plugins.subtitleOffset.offset(Number(value)); plugins.subtitleOffset.offset(Number(value));
}); });
art.on('subtitle:switch', () => { art.on('subtitle:switch', () => {
+1 -1
View File
@@ -9,7 +9,7 @@ function validElement(value, type, paths) {
export default { export default {
container: validElement, container: validElement,
url: 'string|function', url: 'string',
poster: 'string', poster: 'string',
title: 'string', title: 'string',
theme: 'string', theme: 'string',
+1 -6
View File
@@ -1,11 +1,6 @@
export default class Storage { export default class Storage {
constructor(art) { constructor() {
this.name = 'artplayer_settings'; this.name = 'artplayer_settings';
const volume = this.get('volume');
if (volume) {
art.option.volume = volume;
}
} }
get(key) { get(key) {
+2 -2
View File
@@ -136,8 +136,8 @@ export default class Template {
this.$video = this.query('.art-video'); this.$video = this.query('.art-video');
} }
destroy(removeHtml) { destroy(remove) {
if (removeHtml) { if (remove) {
this.$container.innerHTML = ''; this.$container.innerHTML = '';
} else { } else {
addClass(this.$player, 'art-destroy'); addClass(this.$player, 'art-destroy');
+4 -2
View File
@@ -23,8 +23,10 @@ export default class Component {
this.art.emit(`${this.name}:toggle`, value); this.art.emit(`${this.name}:toggle`, value);
} }
toggle() { set toggle(value) {
this.show = !this.show; if (value) {
this.show = !this.show;
}
} }
add(getOption, callback) { add(getOption, callback) {
+1 -2
View File
@@ -9,8 +9,7 @@ export default class Whitelist {
this.state = this.state =
!this.isMobile || !this.isMobile ||
whitelist.some(item => { whitelist.some(item => {
const type = kindOf(item); switch (kindOf(item)) {
switch (type) {
case 'string': case 'string':
return this.ua.indexOf(item) > -1; return this.ua.indexOf(item) > -1;
case 'function': case 'function':
+1 -1
View File
@@ -8,7 +8,7 @@ export default class Artplayer {
/** /**
* Video url or a function that returns a promise value of url (required) * Video url or a function that returns a promise value of url (required)
*/ */
url: string | Function; url: string;
/** /**
* Video cover url * Video cover url
-7
View File
@@ -22,11 +22,4 @@ describe('Option', function() {
}); });
}).to.throw(/option.container require \'string\' or \'Element\' type/); }).to.throw(/option.container require \'string\' or \'Element\' type/);
}); });
it('The url can return a promise', function() {
new Artplayer({
container: '.sample1',
url: () => Promise.resolve(url),
});
});
}); });