mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-21 12:41:20 -08:00
删除多余事件
This commit is contained in:
1 parent
e0faa3fe68
commit
7ff61b4660
38 files changed
+266
-516
No files matched your search
+124
-235
@@ -631,7 +631,7 @@
|
||||
|
||||
var scheme = {
|
||||
container: validElement,
|
||||
url: 'string|function',
|
||||
url: 'string',
|
||||
poster: 'string',
|
||||
title: 'string',
|
||||
theme: 'string',
|
||||
@@ -736,12 +736,10 @@
|
||||
|
||||
var kindOf = art.constructor.kindOf,
|
||||
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.state = !this.isMobile || whitelist.some(function (item) {
|
||||
var type = kindOf(item);
|
||||
|
||||
switch (type) {
|
||||
switch (kindOf(item)) {
|
||||
case 'string':
|
||||
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');
|
||||
|
||||
if (art.whitelist.state) {
|
||||
this.initDesktop();
|
||||
this.desktop();
|
||||
} else {
|
||||
this.initMobile();
|
||||
this.mobile();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -792,8 +790,8 @@
|
||||
return query(className, this.$container);
|
||||
}
|
||||
}, {
|
||||
key: "initDesktop",
|
||||
value: function initDesktop() {
|
||||
key: "desktop",
|
||||
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.$player = this.query('.art-video-player');
|
||||
this.$video = this.query('.art-video');
|
||||
@@ -823,16 +821,16 @@
|
||||
this.$contextmenu = this.query('.art-contextmenus');
|
||||
}
|
||||
}, {
|
||||
key: "initMobile",
|
||||
value: function initMobile() {
|
||||
key: "mobile",
|
||||
value: function mobile() {
|
||||
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.$video = this.query('.art-video');
|
||||
}
|
||||
}, {
|
||||
key: "destroy",
|
||||
value: function destroy(removeHtml) {
|
||||
if (removeHtml) {
|
||||
value: function destroy(remove) {
|
||||
if (remove) {
|
||||
this.$container.innerHTML = '';
|
||||
} else {
|
||||
addClass(this.$player, 'art-destroy');
|
||||
@@ -891,6 +889,7 @@
|
||||
"Web fullscreen": "网页全屏",
|
||||
"Exit web fullscreen": "退出网页全屏",
|
||||
"Mini player": "迷你播放器",
|
||||
"Exit mini player": "退出迷你播放器",
|
||||
"Does not support fullscreen": "不支持全屏",
|
||||
"Local Subtitle": "本地字幕",
|
||||
"Local Video": "本地视频",
|
||||
@@ -946,6 +945,7 @@
|
||||
"Web fullscreen": "網頁全屏",
|
||||
"Exit web fullscreen": "退出網頁全屏",
|
||||
"Mini player": "迷你播放器",
|
||||
"Exit mini player": "退出迷你播放器",
|
||||
"Does not support fullscreen": "不支持全屏",
|
||||
"Local Subtitle": "本地字幕",
|
||||
"Local Video": "本地視頻",
|
||||
@@ -989,7 +989,7 @@
|
||||
return I18n;
|
||||
}();
|
||||
|
||||
function attachUrlMix(art, player) {
|
||||
function urlMix(art, player) {
|
||||
var _art$option = art.option,
|
||||
type = _art$option.type,
|
||||
customType = _art$option.customType,
|
||||
@@ -997,46 +997,27 @@
|
||||
def(player, 'url', {
|
||||
get: function get() {
|
||||
return $video.src;
|
||||
}
|
||||
});
|
||||
def(player, 'attachUrl', {
|
||||
value: function value(url) {
|
||||
return sleep().then(function () {
|
||||
function attachUrl(videoUrl) {
|
||||
var typeName = type || getExt(videoUrl);
|
||||
var typeCallback = customType[typeName];
|
||||
},
|
||||
set: function set(url) {
|
||||
var typeName = type || getExt(url);
|
||||
var 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') {
|
||||
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);
|
||||
});
|
||||
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);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function attrInit(art, player) {
|
||||
var option = art.option,
|
||||
storage = art.storage,
|
||||
$video = art.template.$video;
|
||||
Object.keys(option.moreVideoAttr).forEach(function (key) {
|
||||
$video[key] = option.moreVideoAttr[key];
|
||||
@@ -1050,6 +1031,12 @@
|
||||
$video.volume = clamp(option.volume, 0, 1);
|
||||
}
|
||||
|
||||
var volume = storage.get('volume');
|
||||
|
||||
if (volume) {
|
||||
$video.volume = clamp(volume, 0, 1);
|
||||
}
|
||||
|
||||
if (option.poster) {
|
||||
$video.poster = option.poster;
|
||||
}
|
||||
@@ -1059,7 +1046,7 @@
|
||||
}
|
||||
|
||||
$video.controls = false;
|
||||
player.attachUrl(option.url);
|
||||
player.url = option.url;
|
||||
}
|
||||
|
||||
function eventInit(art, player) {
|
||||
@@ -1110,7 +1097,7 @@
|
||||
if (reconnectTime < maxReconnectTime) {
|
||||
sleep(1000).then(function () {
|
||||
reconnectTime += 1;
|
||||
player.attachUrl(option.url);
|
||||
player.url = option.url;
|
||||
notice.show = "".concat(i18n.get('Reconnect'), ": ").concat(reconnectTime);
|
||||
});
|
||||
} else {
|
||||
@@ -1298,30 +1285,27 @@
|
||||
|
||||
function switchMix(art, player) {
|
||||
var i18n = art.i18n,
|
||||
notice = art.notice,
|
||||
option = art.option;
|
||||
notice = art.notice;
|
||||
|
||||
function switchUrl(url, name, currentTime) {
|
||||
if (url === player.url) return Promise.resolve(url);
|
||||
if (url === player.url) return;
|
||||
URL.revokeObjectURL(player.url);
|
||||
return player.attachUrl(url).then(function () {
|
||||
option.url = url;
|
||||
player.playbackRate = false;
|
||||
player.aspectRatio = false;
|
||||
art.once('video:canplay', function () {
|
||||
player.currentTime = currentTime;
|
||||
});
|
||||
|
||||
if (player.playing) {
|
||||
player.play = true;
|
||||
}
|
||||
|
||||
if (name) {
|
||||
notice.show = "".concat(i18n.get('Switch video'), ": ").concat(name);
|
||||
}
|
||||
|
||||
art.emit('switch', url);
|
||||
player.url = url;
|
||||
player.playbackRate = false;
|
||||
player.aspectRatio = false;
|
||||
art.once('video:canplay', function () {
|
||||
player.currentTime = currentTime;
|
||||
});
|
||||
|
||||
if (player.playing) {
|
||||
player.play = true;
|
||||
}
|
||||
|
||||
if (name) {
|
||||
notice.show = "".concat(i18n.get('Switch video'), ": ").concat(name);
|
||||
}
|
||||
|
||||
art.emit('switch', url);
|
||||
}
|
||||
|
||||
def(player, 'switchQuality', {
|
||||
@@ -1667,57 +1651,27 @@
|
||||
var screenfull_1 = screenfull.isEnabled;
|
||||
|
||||
function fullscreenMix(art, player) {
|
||||
var i18n = art.i18n,
|
||||
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);
|
||||
});
|
||||
}
|
||||
|
||||
var $player = art.template.$player;
|
||||
def(player, 'fullscreen', {
|
||||
get: function get() {
|
||||
return screenfull.isFullscreen;
|
||||
},
|
||||
set: function set(value) {
|
||||
if (!player.fullscreenIsEnabled) {
|
||||
screenfullError();
|
||||
return;
|
||||
if (player.fullscreenWeb) {
|
||||
player.fullscreenWeb = false;
|
||||
}
|
||||
|
||||
if (value) {
|
||||
if (player.fullscreenWeb) {
|
||||
player.fullscreenWeb = false;
|
||||
}
|
||||
|
||||
screenfull.request($player).then(function () {
|
||||
addClass($player, 'art-fullscreen');
|
||||
player.aspectRatioReset = true;
|
||||
art.emit('fullscreenEnabled');
|
||||
art.emit('fullscreenChange', true);
|
||||
});
|
||||
} else {
|
||||
if (player.fullscreenWeb) {
|
||||
player.fullscreenWeb = false;
|
||||
}
|
||||
|
||||
screenfull.exit().then(function () {
|
||||
removeClass($player, 'art-fullscreen');
|
||||
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) {
|
||||
@@ -1743,22 +1692,18 @@
|
||||
return hasClass($player, 'art-web-fullscreen');
|
||||
},
|
||||
set: function set(value) {
|
||||
if (value) {
|
||||
if (player.fullscreen) {
|
||||
player.fullscreen = false;
|
||||
}
|
||||
if (player.fullscreen) {
|
||||
player.fullscreen = false;
|
||||
}
|
||||
|
||||
if (value) {
|
||||
addClass($player, 'art-web-fullscreen');
|
||||
player.aspectRatioReset = true;
|
||||
art.emit('fullscreenWebEnabled');
|
||||
art.emit('fullscreenWebChange', true);
|
||||
} else {
|
||||
if (player.fullscreen) {
|
||||
player.fullscreen = false;
|
||||
}
|
||||
|
||||
removeClass($player, 'art-web-fullscreen');
|
||||
player.aspectRatioReset = true;
|
||||
art.emit('fullscreenWebExit');
|
||||
art.emit('fullscreenWebChange', false);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -1795,15 +1740,10 @@
|
||||
}
|
||||
});
|
||||
proxy($video, 'enterpictureinpicture', function () {
|
||||
art.emit('pipEnabled');
|
||||
art.emit('pipChange', true);
|
||||
});
|
||||
proxy($video, 'leavepictureinpicture', function () {
|
||||
art.emit('pipExit');
|
||||
});
|
||||
art.on('destroy', function () {
|
||||
if (player.pip) {
|
||||
player.pip = false;
|
||||
}
|
||||
art.emit('pipChange', false);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1817,10 +1757,10 @@
|
||||
set: function set(value) {
|
||||
if (value) {
|
||||
$video.webkitSetPresentationMode('picture-in-picture');
|
||||
art.emit('pipEnabled');
|
||||
art.emit('pipChange', true);
|
||||
} else {
|
||||
$video.webkitSetPresentationMode('inline');
|
||||
art.emit('pipExit');
|
||||
art.emit('pipChange', false);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -1865,7 +1805,7 @@
|
||||
removeClass($player, 'art-is-dragging');
|
||||
});
|
||||
append($pipTitle, option.title || i18n.get('Mini player'));
|
||||
var property = {
|
||||
def(player, 'pip', {
|
||||
get: function get() {
|
||||
return hasClass($player, 'art-pip');
|
||||
},
|
||||
@@ -1881,8 +1821,8 @@
|
||||
player.fullscreenWeb = false;
|
||||
player.aspectRatio = false;
|
||||
player.playbackRate = false;
|
||||
art.emit('pipEnabled');
|
||||
} else if (player.pip) {
|
||||
art.emit('pipChange', true);
|
||||
} else {
|
||||
$player.style.cssText = cacheStyle;
|
||||
removeClass($player, 'art-pip');
|
||||
setStyle($player, 'top', null);
|
||||
@@ -1892,11 +1832,10 @@
|
||||
player.aspectRatio = false;
|
||||
player.playbackRate = false;
|
||||
player.autoSize = true;
|
||||
art.emit('pipExit');
|
||||
art.emit('pipChange', false);
|
||||
}
|
||||
}
|
||||
};
|
||||
def(player, 'pip', property);
|
||||
});
|
||||
}
|
||||
|
||||
function pipMix(art, player) {
|
||||
@@ -2044,7 +1983,7 @@
|
||||
var Player = function Player(art) {
|
||||
classCallCheck(this, Player);
|
||||
|
||||
attachUrlMix(art, this);
|
||||
urlMix(art, this);
|
||||
eventInit(art, this);
|
||||
attrInit(art, this);
|
||||
playMix(art, this);
|
||||
@@ -2118,11 +2057,6 @@
|
||||
}
|
||||
|
||||
createClass(Component, [{
|
||||
key: "toggle",
|
||||
value: function toggle() {
|
||||
this.show = !this.show;
|
||||
}
|
||||
}, {
|
||||
key: "add",
|
||||
value: function add(getOption, callback) {
|
||||
var _this = this;
|
||||
@@ -2192,6 +2126,13 @@
|
||||
|
||||
this.art.emit("".concat(this.name, ":toggle"), value);
|
||||
}
|
||||
}, {
|
||||
key: "toggle",
|
||||
set: function set(value) {
|
||||
if (value) {
|
||||
this.show = !this.show;
|
||||
}
|
||||
}
|
||||
}]);
|
||||
|
||||
return Component;
|
||||
@@ -2220,23 +2161,18 @@
|
||||
function fullscreen(option) {
|
||||
return function (art) {
|
||||
return _objectSpread({}, option, {
|
||||
tooltip: art.i18n.get('Fullscreen'),
|
||||
mounted: function mounted($control) {
|
||||
var proxy = art.events.proxy,
|
||||
icons = art.icons,
|
||||
i18n = art.i18n,
|
||||
player = art.player;
|
||||
var $fullscreen = append($control, icons.fullscreen);
|
||||
tooltip($fullscreen, i18n.get('Fullscreen'));
|
||||
append($control, icons.fullscreen);
|
||||
proxy($control, 'click', function () {
|
||||
player.fullscreenToggle = true;
|
||||
});
|
||||
art.on('fullscreenEnabled', function () {
|
||||
setStyle($fullscreen, 'opacity', '0.8');
|
||||
tooltip($fullscreen, i18n.get('Exit fullscreen'));
|
||||
});
|
||||
art.on('fullscreenExit', function () {
|
||||
setStyle($fullscreen, 'opacity', '1');
|
||||
tooltip($fullscreen, i18n.get('Fullscreen'));
|
||||
art.on('fullscreenChange', function (value) {
|
||||
tooltip($control, i18n.get(value ? 'Exit fullscreen' : 'Fullscreen'));
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -2249,23 +2185,18 @@
|
||||
function fullscreenWeb(option) {
|
||||
return function (art) {
|
||||
return _objectSpread$1({}, option, {
|
||||
tooltip: art.i18n.get('Web fullscreen'),
|
||||
mounted: function mounted($control) {
|
||||
var proxy = art.events.proxy,
|
||||
icons = art.icons,
|
||||
i18n = art.i18n,
|
||||
player = art.player;
|
||||
var $fullscreenWeb = append($control, icons.fullscreenWeb);
|
||||
tooltip($fullscreenWeb, i18n.get('Web fullscreen'));
|
||||
append($control, icons.fullscreenWeb);
|
||||
proxy($control, 'click', function () {
|
||||
player.fullscreenWebToggle = true;
|
||||
});
|
||||
art.on('fullscreenWebEnabled', function () {
|
||||
setStyle($fullscreenWeb, 'opacity', '0.8');
|
||||
tooltip($fullscreenWeb, i18n.get('Exit web fullscreen'));
|
||||
});
|
||||
art.on('fullscreenWebExit', function () {
|
||||
setStyle($fullscreenWeb, 'opacity', '1');
|
||||
tooltip($fullscreenWeb, i18n.get('Web fullscreen'));
|
||||
art.on('fullscreenWebChange', function (value) {
|
||||
tooltip($control, i18n.get(value ? 'Exit web fullscreen' : 'Web fullscreen'));
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -2278,15 +2209,18 @@
|
||||
function pip(option) {
|
||||
return function (art) {
|
||||
return _objectSpread$2({}, option, {
|
||||
tooltip: art.i18n.get('Mini player'),
|
||||
mounted: function mounted($control) {
|
||||
var proxy = art.events.proxy,
|
||||
icons = art.icons,
|
||||
i18n = art.i18n,
|
||||
player = art.player;
|
||||
var $pip = append($control, icons.pip);
|
||||
tooltip($pip, i18n.get('Mini player'));
|
||||
append($control, icons.pip);
|
||||
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,
|
||||
player = art.player;
|
||||
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) {
|
||||
var isDroging = false;
|
||||
var $loaded = query('.art-progress-loaded', $control);
|
||||
@@ -2492,24 +2426,18 @@
|
||||
function subtitle(option) {
|
||||
return function (art) {
|
||||
return _objectSpread$5({}, option, {
|
||||
tooltip: art.i18n.get('Hide subtitle'),
|
||||
mounted: function mounted($control) {
|
||||
var proxy = art.events.proxy,
|
||||
icons = art.icons,
|
||||
i18n = art.i18n,
|
||||
subtitle = art.subtitle;
|
||||
var $subtitle = append($control, icons.subtitle);
|
||||
tooltip($subtitle, i18n.get('Hide subtitle'));
|
||||
append($control, icons.subtitle);
|
||||
proxy($control, 'click', function () {
|
||||
subtitle.toggle();
|
||||
subtitle.toggle = true;
|
||||
});
|
||||
art.on('subtitle:toggle', function (value) {
|
||||
if (value) {
|
||||
setStyle($subtitle, 'opacity', '1');
|
||||
tooltip($subtitle, i18n.get('Hide subtitle'));
|
||||
} else {
|
||||
setStyle($subtitle, 'opacity', '0.8');
|
||||
tooltip($subtitle, i18n.get('Show subtitle'));
|
||||
}
|
||||
tooltip($control, i18n.get(value ? 'Hide subtitle' : 'Show subtitle'));
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -2526,8 +2454,8 @@
|
||||
function getTime() {
|
||||
var newTime = "".concat(secondToTime(art.player.currentTime), " / ").concat(secondToTime(art.player.duration));
|
||||
|
||||
if (newTime !== $control.innerHTML) {
|
||||
$control.innerHTML = newTime;
|
||||
if (newTime !== $control.innerText) {
|
||||
$control.innerText = newTime;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2628,23 +2556,21 @@
|
||||
function setting(option) {
|
||||
return function (art) {
|
||||
return _objectSpread$8({}, option, {
|
||||
tooltip: art.i18n.get('Show setting'),
|
||||
mounted: function mounted($control) {
|
||||
var proxy = art.events.proxy,
|
||||
icons = art.icons,
|
||||
i18n = art.i18n,
|
||||
setting = art.setting;
|
||||
var $setting = append($control, icons.setting);
|
||||
tooltip($setting, i18n.get('Show setting'));
|
||||
append($control, icons.setting);
|
||||
proxy($control, 'click', function () {
|
||||
setting.toggle();
|
||||
});
|
||||
art.on('setting:toggle', function (value) {
|
||||
if (value) {
|
||||
setStyle($setting, 'opacity', '0.8');
|
||||
tooltip($setting, i18n.get('Hide setting'));
|
||||
tooltip($control, i18n.get('Hide setting'));
|
||||
} else {
|
||||
setStyle($setting, 'opacity', '1');
|
||||
tooltip($setting, i18n.get('Show setting'));
|
||||
tooltip($control, i18n.get('Show setting'));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -2721,14 +2647,13 @@
|
||||
function screenshot(option) {
|
||||
return function (art) {
|
||||
return _objectSpread$a({}, option, {
|
||||
tooltip: art.i18n.get('Screenshot'),
|
||||
mounted: function mounted($control) {
|
||||
var proxy = art.events.proxy,
|
||||
icons = art.icons,
|
||||
i18n = art.i18n,
|
||||
player = art.player;
|
||||
var $screenshot = append($control, icons.screenshot);
|
||||
tooltip($screenshot, i18n.get('Screenshot'));
|
||||
proxy($screenshot, 'click', function () {
|
||||
append($control, icons.screenshot);
|
||||
proxy($control, 'click', function () {
|
||||
player.screenshot();
|
||||
});
|
||||
}
|
||||
@@ -2888,7 +2813,7 @@
|
||||
var _this2 = this;
|
||||
|
||||
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,
|
||||
$progress = _this$art$template.$progress,
|
||||
$controlsLeft = _this$art$template.$controlsLeft,
|
||||
@@ -2931,7 +2856,7 @@
|
||||
var i18n = art.i18n,
|
||||
player = art.player;
|
||||
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) {
|
||||
var rate = event.target.dataset.rate;
|
||||
|
||||
@@ -2963,7 +2888,7 @@
|
||||
var i18n = art.i18n,
|
||||
player = art.player;
|
||||
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) {
|
||||
var ratio = event.target.dataset.ratio;
|
||||
|
||||
@@ -3106,8 +3031,10 @@
|
||||
menuTop = cHeight - mHeight;
|
||||
}
|
||||
|
||||
setStyle($contextmenu, 'left', "".concat(menuLeft, "px"));
|
||||
setStyle($contextmenu, 'top', "".concat(menuTop, "px"));
|
||||
setStyles($contextmenu, {
|
||||
top: "".concat(menuTop, "px"),
|
||||
left: "".concat(menuLeft, "px")
|
||||
});
|
||||
});
|
||||
proxy($player, 'click', function (event) {
|
||||
if (!event.composedPath().includes($contextmenu)) {
|
||||
@@ -3603,7 +3530,7 @@
|
||||
classCallCheck(this, Notice);
|
||||
|
||||
this.art = art;
|
||||
this.time = 1000;
|
||||
this.time = 2000;
|
||||
this.timer = null;
|
||||
}
|
||||
|
||||
@@ -3617,6 +3544,7 @@
|
||||
addClass($player, 'art-notice-show');
|
||||
clearTimeout(this.timer);
|
||||
this.timer = setTimeout(function () {
|
||||
$noticeInner.innerText = '';
|
||||
removeClass($player, 'art-notice-show');
|
||||
}, 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 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 _this = this;
|
||||
|
||||
@@ -3688,9 +3612,7 @@
|
||||
setting: setting$1,
|
||||
fullscreen: fullscreen$1,
|
||||
fullscreenWeb: fullscreenWeb$1,
|
||||
pip: pip$1,
|
||||
prev: prev,
|
||||
next: next
|
||||
pip: pip$1
|
||||
}, art.option.icons);
|
||||
Object.keys(icons).forEach(function (key) {
|
||||
var icon = document.createElement('i');
|
||||
@@ -3847,15 +3769,10 @@
|
||||
var Storage =
|
||||
/*#__PURE__*/
|
||||
function () {
|
||||
function Storage(art) {
|
||||
function Storage() {
|
||||
classCallCheck(this, Storage);
|
||||
|
||||
this.name = 'artplayer_settings';
|
||||
var volume = this.get('volume');
|
||||
|
||||
if (volume) {
|
||||
art.option.volume = volume;
|
||||
}
|
||||
}
|
||||
|
||||
createClass(Storage, [{
|
||||
@@ -3889,6 +3806,7 @@
|
||||
|
||||
function settingMix(art) {
|
||||
var i18n = art.i18n,
|
||||
plugins = art.plugins,
|
||||
subtitle = art.subtitle,
|
||||
proxy = art.events.proxy;
|
||||
return {
|
||||
@@ -3902,7 +3820,7 @@
|
||||
proxy($range, 'change', function () {
|
||||
var value = $range.value;
|
||||
$value.innerText = value;
|
||||
art.plugins.subtitleOffset.offset(Number(value));
|
||||
plugins.subtitleOffset.offset(Number(value));
|
||||
});
|
||||
art.on('subtitle:switch', function () {
|
||||
$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 =
|
||||
/*#__PURE__*/
|
||||
function () {
|
||||
@@ -4264,10 +4159,6 @@
|
||||
this.add(networkMonitor);
|
||||
}
|
||||
|
||||
if (option.autoPip) {
|
||||
this.add(autoPip);
|
||||
}
|
||||
|
||||
art.option.plugins.forEach(function (plugin) {
|
||||
_this.add(plugin);
|
||||
});
|
||||
@@ -4336,13 +4227,11 @@
|
||||
var typeCallback = option.customType[typeName];
|
||||
|
||||
if (typeName && typeCallback) {
|
||||
art.emit('beforeCustomType', typeName);
|
||||
typeCallback($video, option.url, art);
|
||||
art.emit('afterCustomType', typeName);
|
||||
art.emit('customType', typeName);
|
||||
} else {
|
||||
art.emit('beforeAttachUrl', option.url);
|
||||
$video.src = option.url;
|
||||
art.emit('afterAttachUrl', $video.src);
|
||||
art.emit('urlChange', $video.src);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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
|
||||
Reference in new issue
Block a user