You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3025 lines
187 KiB
3025 lines
187 KiB
! function(e, t) { |
|
"object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define("DPlayer", [], t) : "object" == typeof exports ? exports.DPlayer = t() : e.DPlayer = t() |
|
}(window, function() { |
|
return function(e) { |
|
var t = {}; |
|
|
|
function n(i) { |
|
if (t[i]) return t[i].exports; |
|
var a = t[i] = { |
|
i: i, |
|
l: !1, |
|
exports: {} |
|
}; |
|
return e[i].call(a.exports, a, a.exports, n), a.l = !0, a.exports |
|
} |
|
return n.m = e, n.c = t, n.d = function(e, t, i) { |
|
n.o(e, t) || Object.defineProperty(e, t, { |
|
enumerable: !0, |
|
get: i |
|
}) |
|
}, n.r = function(e) { |
|
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { |
|
value: "Module" |
|
}), Object.defineProperty(e, "__esModule", { |
|
value: !0 |
|
}) |
|
}, n.t = function(e, t) { |
|
if (1 & t && (e = n(e)), 8 & t) return e; |
|
if (4 & t && "object" == typeof e && e && e.__esModule) return e; |
|
var i = Object.create(null); |
|
if (n.r(i), Object.defineProperty(i, "default", { |
|
enumerable: !0, |
|
value: e |
|
}), 2 & t && "string" != typeof e) |
|
for (var a in e) n.d(i, a, function(t) { |
|
return e[t] |
|
}.bind(null, a)); |
|
return i |
|
}, n.n = function(e) { |
|
var t = e && e.__esModule ? function() { |
|
return e.default |
|
} : function() { |
|
return e |
|
}; |
|
return n.d(t, "a", t), t |
|
}, n.o = function(e, t) { |
|
return Object.prototype.hasOwnProperty.call(e, t) |
|
}, n.p = "/", n(n.s = 78) |
|
}([ |
|
function(e, t, n) { |
|
"use strict"; |
|
var i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { |
|
return typeof e |
|
} : function(e) { |
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e |
|
}, |
|
a = n(11), |
|
o = n(65), |
|
r = Object.prototype.toString; |
|
|
|
function s(e) { |
|
return "[object Array]" === r.call(e) |
|
} |
|
|
|
function l(e) { |
|
return null !== e && "object" === (void 0 === e ? "undefined" : i(e)) |
|
} |
|
|
|
function c(e) { |
|
return "[object Function]" === r.call(e) |
|
} |
|
|
|
function u(e, t) { |
|
if (null !== e && void 0 !== e) |
|
if ("object" !== (void 0 === e ? "undefined" : i(e)) && (e = [e]), s(e)) |
|
for (var n = 0, a = e.length; n < a; n++) t.call(null, e[n], n, e); |
|
else |
|
for (var o in e) Object.prototype.hasOwnProperty.call(e, o) && t.call(null, e[o], o, e) |
|
} |
|
e.exports = { |
|
isArray: s, |
|
isArrayBuffer: function(e) { |
|
return "[object ArrayBuffer]" === r.call(e) |
|
}, |
|
isBuffer: o, |
|
isFormData: function(e) { |
|
return "undefined" != typeof FormData && e instanceof FormData |
|
}, |
|
isArrayBufferView: function(e) { |
|
return "undefined" != typeof ArrayBuffer && ArrayBuffer.isView ? ArrayBuffer.isView(e) : e && e.buffer && e.buffer instanceof ArrayBuffer |
|
}, |
|
isString: function(e) { |
|
return "string" == typeof e |
|
}, |
|
isNumber: function(e) { |
|
return "number" == typeof e |
|
}, |
|
isObject: l, |
|
isUndefined: function(e) { |
|
return void 0 === e |
|
}, |
|
isDate: function(e) { |
|
return "[object Date]" === r.call(e) |
|
}, |
|
isFile: function(e) { |
|
return "[object File]" === r.call(e) |
|
}, |
|
isBlob: function(e) { |
|
return "[object Blob]" === r.call(e) |
|
}, |
|
isFunction: c, |
|
isStream: function(e) { |
|
return l(e) && c(e.pipe) |
|
}, |
|
isURLSearchParams: function(e) { |
|
return "undefined" != typeof URLSearchParams && e instanceof URLSearchParams |
|
}, |
|
isStandardBrowserEnv: function() { |
|
return ("undefined" == typeof navigator || "ReactNative" !== navigator.product) && "undefined" != typeof window && "undefined" != typeof document |
|
}, |
|
forEach: u, |
|
merge: function e() { |
|
var t = {}; |
|
|
|
function n(n, a) { |
|
"object" === i(t[a]) && "object" === (void 0 === n ? "undefined" : i(n)) ? t[a] = e(t[a], n) : t[a] = n |
|
} |
|
for (var a = 0, o = arguments.length; a < o; a++) u(arguments[a], n); |
|
return t |
|
}, |
|
extend: function(e, t, n) { |
|
return u(t, function(t, i) { |
|
e[i] = n && "function" == typeof t ? a(t, n) : t |
|
}), e |
|
}, |
|
trim: function(e) { |
|
return e.replace(/^\s*/, "").replace(/\s*$/, "") |
|
} |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i = /mobile/i.test(window.navigator.userAgent), |
|
a = { |
|
secondToTime: function(e) { |
|
var t = Math.floor(e / 3600), |
|
n = Math.floor((e - 3600 * t) / 60), |
|
i = Math.floor(e - 3600 * t - 60 * n); |
|
return (t > 0 ? [t, n, i] : [n, i]).map(function(e) { |
|
return e < 10 ? "0" + e : "" + e |
|
}).join(":") |
|
}, |
|
getElementViewLeft: function(e) { |
|
var t = e.offsetLeft, |
|
n = e.offsetParent, |
|
i = document.body.scrollLeft + document.documentElement.scrollLeft; |
|
if (document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement) |
|
for (; null !== n && n !== e;) t += n.offsetLeft, n = n.offsetParent; |
|
else |
|
for (; null !== n;) t += n.offsetLeft, n = n.offsetParent; |
|
return t - i |
|
}, |
|
getBoundingClientRectViewLeft: function(e) { |
|
var t = document.documentElement.scrollTop; |
|
if (e.getBoundingClientRect) { |
|
if ("number" != typeof this.getBoundingClientRectViewLeft.offset) { |
|
var n = document.createElement("div"); |
|
n.style.cssText = "position:absolute;top:0;left:0;", document.body.appendChild(n), this.getBoundingClientRectViewLeft.offset = -n.getBoundingClientRect().top - t, document.body.removeChild(n), n = null |
|
} |
|
var i = e.getBoundingClientRect(), |
|
a = this.getBoundingClientRectViewLeft.offset; |
|
return i.left + a |
|
} |
|
return this.getElementViewLeft(e) |
|
}, |
|
getScrollPosition: function() { |
|
return { |
|
left: window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0, |
|
top: window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0 |
|
} |
|
}, |
|
setScrollPosition: function(e) { |
|
var t = e.left, |
|
n = void 0 === t ? 0 : t, |
|
i = e.top, |
|
a = void 0 === i ? 0 : i; |
|
this.isFirefox ? (document.documentElement.scrollLeft = n, document.documentElement.scrollTop = a) : window.scrollTo(n, a) |
|
}, |
|
isMobile: i, |
|
isFirefox: /firefox/i.test(window.navigator.userAgent), |
|
isChrome: /chrome/i.test(window.navigator.userAgent), |
|
storage: { |
|
set: function(e, t) { |
|
localStorage.setItem(e, t) |
|
}, |
|
get: function(e) { |
|
return localStorage.getItem(e) |
|
} |
|
}, |
|
cumulativeOffset: function(e) { |
|
var t = 0, |
|
n = 0; |
|
do { |
|
t += e.offsetTop || 0, n += e.offsetLeft || 0, e = e.offsetParent |
|
} while (e); |
|
return { |
|
top: t, |
|
left: n |
|
} |
|
}, |
|
nameMap: { |
|
dragStart: i ? "touchstart" : "mousedown", |
|
dragMove: i ? "touchmove" : "mousemove", |
|
dragEnd: i ? "touchend" : "mouseup" |
|
}, |
|
color2Number: function(e) { |
|
return "#" === e[0] && (e = e.substr(1)), 3 === e.length && (e = "" + e[0] + e[0] + e[1] + e[1] + e[2] + e[2]), parseInt(e, 16) + 0 & 16777215 |
|
}, |
|
number2Color: function(e) { |
|
return "#" + ("00000" + e.toString(16)).slice(-6) |
|
}, |
|
number2Type: function(e) { |
|
switch (e) { |
|
case 0: |
|
return "right"; |
|
case 1: |
|
return "top"; |
|
case 2: |
|
return "bottom"; |
|
default: |
|
return "right" |
|
} |
|
} |
|
}; |
|
t.default = a |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i = b(n(46)), |
|
a = b(n(45)), |
|
o = b(n(44)), |
|
r = b(n(43)), |
|
s = b(n(42)), |
|
l = b(n(41)), |
|
c = b(n(40)), |
|
u = b(n(39)), |
|
d = b(n(38)), |
|
p = b(n(37)), |
|
h = b(n(36)), |
|
f = b(n(35)), |
|
y = b(n(34)), |
|
m = b(n(33)), |
|
v = b(n(32)), |
|
g = b(n(31)); |
|
|
|
function b(e) { |
|
return e && e.__esModule ? e : { |
|
default: e |
|
} |
|
} |
|
var w = { |
|
play: i.default, |
|
pause: a.default, |
|
volumeUp: o.default, |
|
volumeDown: r.default, |
|
volumeOff: s.default, |
|
full: l.default, |
|
fullWeb: c.default, |
|
setting: u.default, |
|
right: d.default, |
|
comment: p.default, |
|
commentOff: h.default, |
|
send: f.default, |
|
pallette: y.default, |
|
camera: m.default, |
|
subtitle: v.default, |
|
loading: g.default |
|
}; |
|
t.default = w |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
(function(t) { |
|
var i = n(0), |
|
a = n(63), |
|
o = { |
|
"Content-Type": "application/x-www-form-urlencoded" |
|
}; |
|
|
|
function r(e, t) { |
|
!i.isUndefined(e) && i.isUndefined(e["Content-Type"]) && (e["Content-Type"] = t) |
|
} |
|
var s, l = { |
|
adapter: ("undefined" != typeof XMLHttpRequest ? s = n(10) : void 0 !== t && (s = n(10)), s), |
|
transformRequest: [ |
|
function(e, t) { |
|
return a(t, "Content-Type"), i.isFormData(e) || i.isArrayBuffer(e) || i.isBuffer(e) || i.isStream(e) || i.isFile(e) || i.isBlob(e) ? e : i.isArrayBufferView(e) ? e.buffer : i.isURLSearchParams(e) ? (r(t, "application/x-www-form-urlencoded;charset=utf-8"), e.toString()) : i.isObject(e) ? (r(t, "application/json;charset=utf-8"), JSON.stringify(e)) : e |
|
} |
|
], |
|
transformResponse: [ |
|
function(e) { |
|
if ("string" == typeof e) try { |
|
e = JSON.parse(e) |
|
} catch (e) {} |
|
return e |
|
} |
|
], |
|
timeout: 0, |
|
xsrfCookieName: "XSRF-TOKEN", |
|
xsrfHeaderName: "X-XSRF-TOKEN", |
|
maxContentLength: -1, |
|
validateStatus: function(e) { |
|
return e >= 200 && e < 300 |
|
} |
|
}; |
|
l.headers = { |
|
common: { |
|
Accept: "application/json, text/plain, */*" |
|
} |
|
}, i.forEach(["delete", "get", "head"], function(e) { |
|
l.headers[e] = {} |
|
}), i.forEach(["post", "put", "patch"], function(e) { |
|
l.headers[e] = i.merge(o) |
|
}), e.exports = l |
|
}).call(this, n(12)) |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
var i, a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { |
|
return typeof e |
|
} : function(e) { |
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e |
|
}; |
|
i = function() { |
|
return this |
|
}(); |
|
try { |
|
i = i || Function("return this")() || (0, eval)("this") |
|
} catch (e) { |
|
"object" === ("undefined" == typeof window ? "undefined" : a(window)) && (i = window) |
|
} |
|
e.exports = i |
|
}, |
|
function(e, t, n) { |
|
var i = n(6); |
|
e.exports = function(e) { |
|
"use strict"; |
|
var t = "", |
|
n = (e = e || {}).enableSubtitle, |
|
a = e.subtitle, |
|
o = e.current, |
|
r = e.pic, |
|
s = i.$escape, |
|
l = e.screenshot, |
|
c = e.preload, |
|
u = e.url; |
|
n = a && "webvtt" === a.type; |
|
return t += '\n<video\n class="dplayer-video ', o && (t += "dplayer-video-current"), t += '"\n webkit-playsinline\n playsinline\n ', r && (t += 'poster="', t += s(r), t += '"'), t += "\n ", (l || n) && (t += 'crossorigin="anonymous"'), t += "\n ", c && (t += 'preload="', t += s(c), t += '"'), t += "\n ", u && (t += 'src="', t += s(u), t += '"'), t += "\n >\n ", n && (t += '\n <track kind="metadata" default src="', t += s(a.url), t += '"></track>\n '), t += "\n</video>" |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
e.exports = n(29) |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
|
|
function i(e) { |
|
this.message = e |
|
} |
|
i.prototype.toString = function() { |
|
return "Cancel" + (this.message ? ": " + this.message : "") |
|
}, i.prototype.__CANCEL__ = !0, e.exports = i |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
e.exports = function(e) { |
|
return !(!e || !e.__CANCEL__) |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
var i = n(61); |
|
e.exports = function(e, t, n, a, o) { |
|
var r = new Error(e); |
|
return i(r, t, n, a, o) |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
var i = n(0), |
|
a = n(62), |
|
o = n(60), |
|
r = n(59), |
|
s = n(58), |
|
l = n(9), |
|
c = "undefined" != typeof window && window.btoa && window.btoa.bind(window) || n(57); |
|
e.exports = function(e) { |
|
return new Promise(function(t, u) { |
|
var d = e.data, |
|
p = e.headers; |
|
i.isFormData(d) && delete p["Content-Type"]; |
|
var h = new XMLHttpRequest, |
|
f = "onreadystatechange", |
|
y = !1; |
|
if ("undefined" == typeof window || !window.XDomainRequest || "withCredentials" in h || s(e.url) || (h = new window.XDomainRequest, f = "onload", y = !0, h.onprogress = function() {}, h.ontimeout = function() {}), e.auth) { |
|
var m = e.auth.username || "", |
|
v = e.auth.password || ""; |
|
p.Authorization = "Basic " + c(m + ":" + v) |
|
} |
|
if (h.open(e.method.toUpperCase(), o(e.url, e.params, e.paramsSerializer), !0), h.timeout = e.timeout, h[f] = function() { |
|
if (h && (4 === h.readyState || y) && (0 !== h.status || h.responseURL && 0 === h.responseURL.indexOf("file:"))) { |
|
var n = "getAllResponseHeaders" in h ? r(h.getAllResponseHeaders()) : null, |
|
i = { |
|
data: e.responseType && "text" !== e.responseType ? h.response : h.responseText, |
|
status: 1223 === h.status ? 204 : h.status, |
|
statusText: 1223 === h.status ? "No Content" : h.statusText, |
|
headers: n, |
|
config: e, |
|
request: h |
|
}; |
|
a(t, u, i), h = null |
|
} |
|
}, h.onerror = function() { |
|
u(l("Network Error", e, null, h)), h = null |
|
}, h.ontimeout = function() { |
|
u(l("timeout of " + e.timeout + "ms exceeded", e, "ECONNABORTED", h)), h = null |
|
}, i.isStandardBrowserEnv()) { |
|
var g = n(56), |
|
b = (e.withCredentials || s(e.url)) && e.xsrfCookieName ? g.read(e.xsrfCookieName) : void 0; |
|
b && (p[e.xsrfHeaderName] = b) |
|
} |
|
if ("setRequestHeader" in h && i.forEach(p, function(e, t) { |
|
void 0 === d && "content-type" === t.toLowerCase() ? delete p[t] : h.setRequestHeader(t, e) |
|
}), e.withCredentials && (h.withCredentials = !0), e.responseType) try { |
|
h.responseType = e.responseType |
|
} catch (t) { |
|
if ("json" !== e.responseType) throw t |
|
} |
|
"function" == typeof e.onDownloadProgress && h.addEventListener("progress", e.onDownloadProgress), "function" == typeof e.onUploadProgress && h.upload && h.upload.addEventListener("progress", e.onUploadProgress), e.cancelToken && e.cancelToken.promise.then(function(e) { |
|
h && (h.abort(), u(e), h = null) |
|
}), void 0 === d && (d = null), h.send(d) |
|
}) |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
e.exports = function(e, t) { |
|
return function() { |
|
for (var n = new Array(arguments.length), i = 0; i < n.length; i++) n[i] = arguments[i]; |
|
return e.apply(t, n) |
|
} |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
var i, a, o = e.exports = {}; |
|
|
|
function r() { |
|
throw new Error("setTimeout has not been defined") |
|
} |
|
|
|
function s() { |
|
throw new Error("clearTimeout has not been defined") |
|
} |
|
|
|
function l(e) { |
|
if (i === setTimeout) return setTimeout(e, 0); |
|
if ((i === r || !i) && setTimeout) return i = setTimeout, setTimeout(e, 0); |
|
try { |
|
return i(e, 0) |
|
} catch (t) { |
|
try { |
|
return i.call(null, e, 0) |
|
} catch (t) { |
|
return i.call(this, e, 0) |
|
} |
|
} |
|
}! function() { |
|
try { |
|
i = "function" == typeof setTimeout ? setTimeout : r |
|
} catch (e) { |
|
i = r |
|
} |
|
try { |
|
a = "function" == typeof clearTimeout ? clearTimeout : s |
|
} catch (e) { |
|
a = s |
|
} |
|
}(); |
|
var c, u = [], |
|
d = !1, |
|
p = -1; |
|
|
|
function h() { |
|
d && c && (d = !1, c.length ? u = c.concat(u) : p = -1, u.length && f()) |
|
} |
|
|
|
function f() { |
|
if (!d) { |
|
var e = l(h); |
|
d = !0; |
|
for (var t = u.length; t;) { |
|
for (c = u, u = []; ++p < t;) c && c[p].run(); |
|
p = -1, t = u.length |
|
} |
|
c = null, d = !1, |
|
function(e) { |
|
if (a === clearTimeout) return clearTimeout(e); |
|
if ((a === s || !a) && clearTimeout) return a = clearTimeout, clearTimeout(e); |
|
try { |
|
a(e) |
|
} catch (t) { |
|
try { |
|
return a.call(null, e) |
|
} catch (t) { |
|
return a.call(this, e) |
|
} |
|
} |
|
}(e) |
|
} |
|
} |
|
|
|
function y(e, t) { |
|
this.fun = e, this.array = t |
|
} |
|
|
|
function m() {} |
|
o.nextTick = function(e) { |
|
var t = new Array(arguments.length - 1); |
|
if (arguments.length > 1) |
|
for (var n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; |
|
u.push(new y(e, t)), 1 !== u.length || d || l(f) |
|
}, y.prototype.run = function() { |
|
this.fun.apply(null, this.array) |
|
}, o.title = "browser", o.browser = !0, o.env = {}, o.argv = [], o.version = "", o.versions = {}, o.on = m, o.addListener = m, o.once = m, o.off = m, o.removeListener = m, o.removeAllListeners = m, o.emit = m, o.prependListener = m, o.prependOnceListener = m, o.listeners = function(e) { |
|
return [] |
|
}, o.binding = function(e) { |
|
throw new Error("process.binding is not supported") |
|
}, o.cwd = function() { |
|
return "/" |
|
}, o.chdir = function(e) { |
|
throw new Error("process.chdir is not supported") |
|
}, o.umask = function() { |
|
return 0 |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i = function() { |
|
function e(e, t) { |
|
for (var n = 0; n < t.length; n++) { |
|
var i = t[n]; |
|
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) |
|
} |
|
} |
|
return function(t, n, i) { |
|
return n && e(t.prototype, n), i && e(t, i), t |
|
} |
|
}(); |
|
var a = function() { |
|
function e(t) { |
|
var n = this; |
|
! function(e, t) { |
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") |
|
}(this, e), this.container = t.template.infoPanel, this.template = t.template, this.video = t.video, this.player = t, this.template.infoPanelClose.addEventListener("click", function() { |
|
n.hide() |
|
}) |
|
} |
|
return i(e, [{ |
|
key: "show", |
|
value: function() { |
|
this.beginTime = Date.now(), this.update(), this.player.timer.enable("info"), this.player.timer.enable("fps"), this.container.classList.remove("dplayer-info-panel-hide") |
|
} |
|
}, { |
|
key: "hide", |
|
value: function() { |
|
this.player.timer.disable("info"), this.player.timer.disable("fps"), this.container.classList.add("dplayer-info-panel-hide") |
|
} |
|
}, { |
|
key: "triggle", |
|
value: function() { |
|
this.container.classList.contains("dplayer-info-panel-hide") ? this.show() : this.hide() |
|
} |
|
}, { |
|
key: "update", |
|
value: function() { |
|
this.template.infoVersion.innerHTML = "v1.25.0 fdcf45b", this.template.infoType.innerHTML = this.player.type, this.template.infoUrl.innerHTML = this.player.options.video.url, this.template.infoResolution.innerHTML = this.player.video.videoWidth + " x " + this.player.video.videoHeight, this.template.infoDuration.innerHTML = this.player.video.duration, this.player.options.danmaku && (this.template.infoDanmakuId.innerHTML = this.player.options.danmaku.id, this.template.infoDanmakuApi.innerHTML = this.player.options.danmaku.api, this.template.infoDanmakuAmount.innerHTML = this.player.danmaku.dan.length) |
|
} |
|
}, { |
|
key: "fps", |
|
value: function(e) { |
|
this.template.infoFPS.innerHTML = "" + e.toFixed(1) |
|
} |
|
}]), e |
|
}(); |
|
t.default = a |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i = function() { |
|
function e(e, t) { |
|
for (var n = 0; n < t.length; n++) { |
|
var i = t[n]; |
|
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) |
|
} |
|
} |
|
return function(t, n, i) { |
|
return n && e(t.prototype, n), i && e(t, i), t |
|
} |
|
}(); |
|
var a = function() { |
|
function e(t) { |
|
var n = this; |
|
! function(e, t) { |
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") |
|
}(this, e), this.player = t, this.shown = !1, Array.prototype.slice.call(this.player.template.menuItem).forEach(function(e, t) { |
|
n.player.options.contextmenu[t].click && e.addEventListener("click", function() { |
|
n.player.options.contextmenu[t].click(n.player), n.hide() |
|
}) |
|
}), this.player.container.addEventListener("contextmenu", function(e) { |
|
if (n.shown) n.hide(); |
|
else { |
|
var t = e || window.event; |
|
t.preventDefault(); |
|
var i = n.player.container.getBoundingClientRect(); |
|
n.show(t.clientX - i.left, t.clientY - i.top), n.player.template.mask.addEventListener("click", function() { |
|
n.hide() |
|
}) |
|
} |
|
}) |
|
} |
|
return i(e, [{ |
|
key: "show", |
|
value: function(e, t) { |
|
this.player.template.menu.classList.add("dplayer-menu-show"); |
|
var n = this.player.container.getBoundingClientRect(); |
|
e + this.player.template.menu.offsetWidth >= n.width ? (this.player.template.menu.style.right = n.width - e + "px", this.player.template.menu.style.left = "initial") : (this.player.template.menu.style.left = e + "px", this.player.template.menu.style.right = "initial"), t + this.player.template.menu.offsetHeight >= n.height ? (this.player.template.menu.style.bottom = n.height - t + "px", this.player.template.menu.style.top = "initial") : (this.player.template.menu.style.top = t + "px", this.player.template.menu.style.bottom = "initial"), this.player.template.mask.classList.add("dplayer-mask-show"), this.shown = !0, this.player.events.trigger("contextmenu_show") |
|
} |
|
}, { |
|
key: "hide", |
|
value: function() { |
|
this.player.template.mask.classList.remove("dplayer-mask-show"), this.player.template.menu.classList.remove("dplayer-menu-show"), this.shown = !1, this.player.events.trigger("contextmenu_hide") |
|
} |
|
}]), e |
|
}(); |
|
t.default = a |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
t.default = function e(t) { |
|
! function(e, t) { |
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") |
|
}(this, e), t.options.hotkey && document.addEventListener("keydown", function(e) { |
|
if (t.focus) { |
|
var n = document.activeElement.tagName.toUpperCase(), |
|
i = document.activeElement.getAttribute("contenteditable"); |
|
if ("INPUT" !== n && "TEXTAREA" !== n && "" !== i && "true" !== i) { |
|
var a = e || window.event, |
|
o = void 0; |
|
switch (a.keyCode) { |
|
case 32: |
|
a.preventDefault(), t.toggle(); |
|
break; |
|
case 37: |
|
a.preventDefault(), t.seek(t.video.currentTime - 5), t.controller.setAutoHide(); |
|
break; |
|
case 39: |
|
a.preventDefault(), t.seek(t.video.currentTime + 5), t.controller.setAutoHide(); |
|
break; |
|
case 38: |
|
a.preventDefault(), o = t.volume() + .1, t.volume(o); |
|
break; |
|
case 40: |
|
a.preventDefault(), o = t.volume() - .1, t.volume(o) |
|
} |
|
} |
|
} |
|
}), document.addEventListener("keydown", function(e) { |
|
switch ((e || window.event).keyCode) { |
|
case 27: |
|
t.fullScreen.isFullScreen("web") && t.fullScreen.cancel("web") |
|
} |
|
}) |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i, a = function() { |
|
function e(e, t) { |
|
for (var n = 0; n < t.length; n++) { |
|
var i = t[n]; |
|
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) |
|
} |
|
} |
|
return function(t, n, i) { |
|
return n && e(t.prototype, n), i && e(t, i), t |
|
} |
|
}(), |
|
o = n(1), |
|
r = (i = o) && i.__esModule ? i : { |
|
default: i |
|
}; |
|
var s = function() { |
|
function e(t) { |
|
var n = this; |
|
! function(e, t) { |
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") |
|
}(this, e), this.player = t, this.player.template.mask.addEventListener("click", function() { |
|
n.hide() |
|
}), this.player.template.commentButton.addEventListener("click", function() { |
|
n.show() |
|
}), this.player.template.commentSettingButton.addEventListener("click", function() { |
|
n.toggleSetting() |
|
}), this.player.template.commentColorSettingBox.addEventListener("click", function() { |
|
if (n.player.template.commentColorSettingBox.querySelector("input:checked+span")) { |
|
var e = n.player.template.commentColorSettingBox.querySelector("input:checked").value; |
|
n.player.template.commentSettingFill.style.fill = e, n.player.template.commentInput.style.color = e, n.player.template.commentSendFill.style.fill = e |
|
} |
|
}), this.player.template.commentInput.addEventListener("click", function() { |
|
n.hideSetting() |
|
}), this.player.template.commentInput.addEventListener("keydown", function(e) { |
|
13 === (e || window.event).keyCode && n.send() |
|
}), this.player.template.commentSendButton.addEventListener("click", function() { |
|
n.send() |
|
}) |
|
} |
|
return a(e, [{ |
|
key: "show", |
|
value: function() { |
|
this.player.controller.disableAutoHide = !0, this.player.template.controller.classList.add("dplayer-controller-comment"), this.player.template.mask.classList.add("dplayer-mask-show"), this.player.container.classList.add("dplayer-show-controller"), this.player.template.commentInput.focus() |
|
} |
|
}, { |
|
key: "hide", |
|
value: function() { |
|
this.player.template.controller.classList.remove("dplayer-controller-comment"), this.player.template.mask.classList.remove("dplayer-mask-show"), this.player.container.classList.remove("dplayer-show-controller"), this.player.controller.disableAutoHide = !1, this.hideSetting() |
|
} |
|
}, { |
|
key: "showSetting", |
|
value: function() { |
|
this.player.template.commentSettingBox.classList.add("dplayer-comment-setting-open") |
|
} |
|
}, { |
|
key: "hideSetting", |
|
value: function() { |
|
this.player.template.commentSettingBox.classList.remove("dplayer-comment-setting-open") |
|
} |
|
}, { |
|
key: "toggleSetting", |
|
value: function() { |
|
this.player.template.commentSettingBox.classList.contains("dplayer-comment-setting-open") ? this.hideSetting() : this.showSetting() |
|
} |
|
}, { |
|
key: "send", |
|
value: function() { |
|
var e = this; |
|
this.player.template.commentInput.blur(), this.player.template.commentInput.value.replace(/^\s+|\s+$/g, "") ? this.player.danmaku.send({ |
|
text: this.player.template.commentInput.value, |
|
color: r.default.color2Number(this.player.container.querySelector(".dplayer-comment-setting-color input:checked").value), |
|
type: parseInt(this.player.container.querySelector(".dplayer-comment-setting-type input:checked").value) |
|
}, function() { |
|
e.player.template.commentInput.value = "", e.hide() |
|
}) : this.player.notice(this.player.tran("Please input danmaku content!")) |
|
} |
|
}]), e |
|
}(); |
|
t.default = s |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i, a = function() { |
|
function e(e, t) { |
|
for (var n = 0; n < t.length; n++) { |
|
var i = t[n]; |
|
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) |
|
} |
|
} |
|
return function(t, n, i) { |
|
return n && e(t.prototype, n), i && e(t, i), t |
|
} |
|
}(), |
|
o = n(1), |
|
r = (i = o) && i.__esModule ? i : { |
|
default: i |
|
}; |
|
var s = function() { |
|
function e(t) { |
|
var n = this; |
|
! function(e, t) { |
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") |
|
}(this, e), this.player = t, this.player.template.mask.addEventListener("click", function() { |
|
n.hide() |
|
}), this.player.template.settingButton.addEventListener("click", function() { |
|
n.show() |
|
}), this.loop = this.player.options.loop, this.player.template.loopToggle.checked = this.loop, this.player.template.loop.addEventListener("click", function() { |
|
n.player.template.loopToggle.checked = !n.player.template.loopToggle.checked, n.player.template.loopToggle.checked ? n.loop = !0 : n.loop = !1, n.hide() |
|
}), this.showDanmaku = this.player.user.get("danmaku"), this.showDanmaku || this.player.danmaku && this.player.danmaku.hide(), this.player.template.showDanmakuToggle.checked = this.showDanmaku, this.player.template.showDanmaku.addEventListener("click", function() { |
|
n.player.template.showDanmakuToggle.checked = !n.player.template.showDanmakuToggle.checked, n.player.template.showDanmakuToggle.checked ? (n.showDanmaku = !0, n.player.danmaku.show()) : (n.showDanmaku = !1, n.player.danmaku.hide()), n.player.user.set("danmaku", n.showDanmaku ? 1 : 0), n.hide() |
|
}), this.unlimitDanmaku = this.player.user.get("unlimited"), this.player.template.unlimitDanmakuToggle.checked = this.unlimitDanmaku, this.player.template.unlimitDanmaku.addEventListener("click", function() { |
|
n.player.template.unlimitDanmakuToggle.checked = !n.player.template.unlimitDanmakuToggle.checked, n.player.template.unlimitDanmakuToggle.checked ? (n.unlimitDanmaku = !0, n.player.danmaku.unlimit(!0)) : (n.unlimitDanmaku = !1, n.player.danmaku.unlimit(!1)), n.player.user.set("unlimited", n.unlimitDanmaku ? 1 : 0), n.hide() |
|
}), this.player.template.speed.addEventListener("click", function() { |
|
n.player.template.settingBox.classList.add("dplayer-setting-box-narrow"), n.player.template.settingBox.classList.add("dplayer-setting-box-speed") |
|
}); |
|
for (var i = function(e) { |
|
n.player.template.speedItem[e].addEventListener("click", function() { |
|
n.player.speed(n.player.template.speedItem[e].dataset.speed), n.hide() |
|
}) |
|
}, a = 0; a < this.player.template.speedItem.length; a++) i(a); |
|
if (this.player.danmaku) { |
|
this.player.on("danmaku_opacity", function(e) { |
|
n.player.bar.set("danmaku", e, "width"), n.player.user.set("opacity", e) |
|
}), this.player.danmaku.opacity(this.player.user.get("opacity")); |
|
var o = function(e) { |
|
var t = e || window.event, |
|
i = ((t.clientX || t.changedTouches[0].clientX) - r.default.getBoundingClientRectViewLeft(n.player.template.danmakuOpacityBarWrap)) / 130; |
|
i = Math.max(i, 0), i = Math.min(i, 1), n.player.danmaku.opacity(i) |
|
}, |
|
s = function e() { |
|
document.removeEventListener(r.default.nameMap.dragEnd, e), document.removeEventListener(r.default.nameMap.dragMove, o), n.player.template.danmakuOpacityBox.classList.remove("dplayer-setting-danmaku-active") |
|
}; |
|
this.player.template.danmakuOpacityBarWrapWrap.addEventListener("click", function(e) { |
|
var t = e || window.event, |
|
i = ((t.clientX || t.changedTouches[0].clientX) - r.default.getBoundingClientRectViewLeft(n.player.template.danmakuOpacityBarWrap)) / 130; |
|
i = Math.max(i, 0), i = Math.min(i, 1), n.player.danmaku.opacity(i) |
|
}), this.player.template.danmakuOpacityBarWrapWrap.addEventListener(r.default.nameMap.dragStart, function() { |
|
document.addEventListener(r.default.nameMap.dragMove, o), document.addEventListener(r.default.nameMap.dragEnd, s), n.player.template.danmakuOpacityBox.classList.add("dplayer-setting-danmaku-active") |
|
}) |
|
} |
|
} |
|
return a(e, [{ |
|
key: "hide", |
|
value: function() { |
|
var e = this; |
|
this.player.template.settingBox.classList.remove("dplayer-setting-box-open"), this.player.template.mask.classList.remove("dplayer-mask-show"), setTimeout(function() { |
|
e.player.template.settingBox.classList.remove("dplayer-setting-box-narrow"), e.player.template.settingBox.classList.remove("dplayer-setting-box-speed") |
|
}, 300), this.player.controller.disableAutoHide = !1 |
|
} |
|
}, { |
|
key: "show", |
|
value: function() { |
|
this.player.template.settingBox.classList.add("dplayer-setting-box-open"), this.player.template.mask.classList.add("dplayer-mask-show"), this.player.controller.disableAutoHide = !0 |
|
} |
|
}]), e |
|
}(); |
|
t.default = s |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i = function() { |
|
function e(e, t) { |
|
for (var n = 0; n < t.length; n++) { |
|
var i = t[n]; |
|
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) |
|
} |
|
} |
|
return function(t, n, i) { |
|
return n && e(t.prototype, n), i && e(t, i), t |
|
} |
|
}(); |
|
var a = function() { |
|
function e(t) { |
|
! function(e, t) { |
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") |
|
}(this, e), this.container = t.container, this.barWidth = t.barWidth, this.container.style.backgroundImage = "url('" + t.url + "')", this.events = t.events |
|
} |
|
return i(e, [{ |
|
key: "resize", |
|
value: function(e, t) { |
|
this.container.style.width = e + "px", this.container.style.height = t + "px", this.container.style.top = 2 - t + "px" |
|
} |
|
}, { |
|
key: "show", |
|
value: function() { |
|
this.container.style.display = "block", this.events && this.events.trigger("thumbnails_show") |
|
} |
|
}, { |
|
key: "move", |
|
value: function(e) { |
|
this.container.style.backgroundPosition = "-" + 160 * (Math.ceil(e / this.barWidth * 100) - 1) + "px 0", this.container.style.left = Math.min(Math.max(e - this.container.offsetWidth / 2, -10), this.barWidth - 150) + "px" |
|
} |
|
}, { |
|
key: "hide", |
|
value: function() { |
|
this.container.style.display = "none", this.events && this.events.trigger("thumbnails_hide") |
|
} |
|
}]), e |
|
}(); |
|
t.default = a |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i = function() { |
|
function e(e, t) { |
|
for (var n = 0; n < t.length; n++) { |
|
var i = t[n]; |
|
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) |
|
} |
|
} |
|
return function(t, n, i) { |
|
return n && e(t.prototype, n), i && e(t, i), t |
|
} |
|
}(), |
|
a = s(n(1)), |
|
o = s(n(18)), |
|
r = s(n(2)); |
|
|
|
function s(e) { |
|
return e && e.__esModule ? e : { |
|
default: e |
|
} |
|
} |
|
var l = function() { |
|
function e(t) { |
|
var n = this; |
|
! function(e, t) { |
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") |
|
}(this, e), this.player = t, this.autoHideTimer = 0, a.default.isMobile || (this.player.container.addEventListener("mousemove", function() { |
|
n.setAutoHide() |
|
}), this.player.container.addEventListener("click", function() { |
|
n.setAutoHide() |
|
}), this.player.on("play", function() { |
|
n.setAutoHide() |
|
}), this.player.on("pause", function() { |
|
n.setAutoHide() |
|
})), this.initPlayButton(), this.initThumbnails(), this.initPlayedBar(), this.initFullButton(), this.initQualityButton(), this.initScreenshotButton(), this.initSubtitleButton(), this.initHighlights(), a.default.isMobile || this.initVolumeButton() |
|
} |
|
return i(e, [{ |
|
key: "initPlayButton", |
|
value: function() { |
|
var e = this; |
|
this.player.template.playButton.addEventListener("click", function() { |
|
e.player.toggle() |
|
}), a.default.isMobile ? (this.player.template.videoWrap.addEventListener("click", function() { |
|
e.toggle() |
|
}), this.player.template.controllerMask.addEventListener("click", function() { |
|
e.toggle() |
|
})) : (this.player.template.videoWrap.addEventListener("click", function() { |
|
e.player.toggle() |
|
}), this.player.template.controllerMask.addEventListener("click", function() { |
|
e.player.toggle() |
|
})) |
|
} |
|
}, { |
|
key: "initHighlights", |
|
value: function() { |
|
var e = this; |
|
this.player.on("durationchange", function() { |
|
if (1 !== e.player.video.duration && e.player.video.duration !== 1 / 0 && e.player.options.highlight) { |
|
var t = document.querySelectorAll(".dplayer-highlight"); |
|
[].slice.call(t, 0).forEach(function(t) { |
|
e.player.template.playedBarWrap.removeChild(t) |
|
}); |
|
for (var n = 0; n < e.player.options.highlight.length; n++) |
|
if (e.player.options.highlight[n].text && e.player.options.highlight[n].time) { |
|
var i = document.createElement("div"); |
|
i.classList.add("dplayer-highlight"), i.style.left = e.player.options.highlight[n].time / e.player.video.duration * 100 + "%", i.innerHTML = '<span class="dplayer-highlight-text">' + e.player.options.highlight[n].text + "</span>", e.player.template.playedBarWrap.insertBefore(i, e.player.template.playedBarTime) |
|
} |
|
} |
|
}) |
|
} |
|
}, { |
|
key: "initThumbnails", |
|
value: function() { |
|
var e = this; |
|
this.player.options.video.thumbnails && (this.thumbnails = new o.default({ |
|
container: this.player.template.barPreview, |
|
barWidth: this.player.template.barWrap.offsetWidth, |
|
url: this.player.options.video.thumbnails, |
|
events: this.player.events |
|
}), this.player.on("loadedmetadata", function() { |
|
e.thumbnails.resize(160, e.player.video.videoHeight / e.player.video.videoWidth * 160) |
|
})) |
|
} |
|
}, { |
|
key: "initPlayedBar", |
|
value: function() { |
|
var e = this, |
|
t = function(t) { |
|
var n = ((t.clientX || t.changedTouches[0].clientX) - a.default.getBoundingClientRectViewLeft(e.player.template.playedBarWrap)) / e.player.template.playedBarWrap.clientWidth; |
|
n = Math.max(n, 0), n = Math.min(n, 1), e.player.bar.set("played", n, "width"), e.player.template.ptime.innerHTML = a.default.secondToTime(n * e.player.video.duration) |
|
}, |
|
n = function n(i) { |
|
document.removeEventListener(a.default.nameMap.dragEnd, n), document.removeEventListener(a.default.nameMap.dragMove, t); |
|
var o = ((i.clientX || i.changedTouches[0].clientX) - a.default.getBoundingClientRectViewLeft(e.player.template.playedBarWrap)) / e.player.template.playedBarWrap.clientWidth; |
|
o = Math.max(o, 0), o = Math.min(o, 1), e.player.bar.set("played", o, "width"), e.player.seek(e.player.bar.get("played") * e.player.video.duration), e.player.timer.enable("progress") |
|
}; |
|
this.player.template.playedBarWrap.addEventListener(a.default.nameMap.dragStart, function() { |
|
e.player.timer.disable("progress"), document.addEventListener(a.default.nameMap.dragMove, t), document.addEventListener(a.default.nameMap.dragEnd, n) |
|
}), this.player.template.playedBarWrap.addEventListener(a.default.nameMap.dragMove, function(t) { |
|
if (e.player.video.duration) { |
|
var n = a.default.cumulativeOffset(e.player.template.playedBarWrap).left, |
|
i = (t.clientX || t.changedTouches[0].clientX) - n; |
|
if (i < 0 || i > e.player.template.playedBarWrap.offsetWidth) return; |
|
var o = e.player.video.duration * (i / e.player.template.playedBarWrap.offsetWidth); |
|
a.default.isMobile && e.thumbnails && e.thumbnails.show(), e.thumbnails && e.thumbnails.move(i), e.player.template.playedBarTime.style.left = i - (o >= 3600 ? 25 : 20) + "px", e.player.template.playedBarTime.innerText = a.default.secondToTime(o), e.player.template.playedBarTime.classList.remove("hidden") |
|
} |
|
}), this.player.template.playedBarWrap.addEventListener(a.default.nameMap.dragEnd, function() { |
|
a.default.isMobile && e.thumbnails && e.thumbnails.hide() |
|
}), a.default.isMobile || (this.player.template.playedBarWrap.addEventListener("mouseenter", function() { |
|
e.player.video.duration && (e.thumbnails && e.thumbnails.show(), e.player.template.playedBarTime.classList.remove("hidden")) |
|
}), this.player.template.playedBarWrap.addEventListener("mouseleave", function() { |
|
e.player.video.duration && (e.thumbnails && e.thumbnails.hide(), e.player.template.playedBarTime.classList.add("hidden")) |
|
})) |
|
} |
|
}, { |
|
key: "initFullButton", |
|
value: function() { |
|
var e = this; |
|
this.player.template.browserFullButton.addEventListener("click", function() { |
|
e.player.fullScreen.toggle("browser") |
|
}), this.player.template.webFullButton.addEventListener("click", function() { |
|
e.player.fullScreen.toggle("web") |
|
}) |
|
} |
|
}, { |
|
key: "initVolumeButton", |
|
value: function() { |
|
var e = this, |
|
t = function(t) { |
|
var n = t || window.event, |
|
i = ((n.clientX || n.changedTouches[0].clientX) - a.default.getBoundingClientRectViewLeft(e.player.template.volumeBarWrap) - 5.5) / 35; |
|
e.player.volume(i) |
|
}, |
|
n = function n() { |
|
document.removeEventListener(a.default.nameMap.dragEnd, n), document.removeEventListener(a.default.nameMap.dragMove, t), e.player.template.volumeButton.classList.remove("dplayer-volume-active") |
|
}; |
|
this.player.template.volumeBarWrapWrap.addEventListener("click", function(t) { |
|
var n = t || window.event, |
|
i = ((n.clientX || n.changedTouches[0].clientX) - a.default.getBoundingClientRectViewLeft(e.player.template.volumeBarWrap) - 5.5) / 35; |
|
e.player.volume(i) |
|
}), this.player.template.volumeBarWrapWrap.addEventListener(a.default.nameMap.dragStart, function() { |
|
document.addEventListener(a.default.nameMap.dragMove, t), document.addEventListener(a.default.nameMap.dragEnd, n), e.player.template.volumeButton.classList.add("dplayer-volume-active") |
|
}), this.player.template.volumeButtonIcon.addEventListener("click", function() { |
|
e.player.video.muted ? (e.player.video.muted = !1, e.player.switchVolumeIcon(), e.player.bar.set("volume", e.player.volume(), "width")) : (e.player.video.muted = !0, e.player.template.volumeIcon.innerHTML = r.default.volumeOff, e.player.bar.set("volume", 0, "width")) |
|
}) |
|
} |
|
}, { |
|
key: "initQualityButton", |
|
value: function() { |
|
var e = this; |
|
this.player.options.video.quality && this.player.template.qualityList.addEventListener("click", function(t) { |
|
t.target.classList.contains("dplayer-quality-item") && e.player.switchQuality(t.target.dataset.index) |
|
}) |
|
} |
|
}, { |
|
key: "initScreenshotButton", |
|
value: function() { |
|
var e = this; |
|
this.player.options.screenshot && this.player.template.camareButton.addEventListener("click", function() { |
|
var t = document.createElement("canvas"); |
|
t.width = e.player.video.videoWidth, t.height = e.player.video.videoHeight, t.getContext("2d").drawImage(e.player.video, 0, 0, t.width, t.height); |
|
var n = void 0; |
|
t.toBlob(function(e) { |
|
n = URL.createObjectURL(e); |
|
var t = document.createElement("a"); |
|
t.href = n, t.download = "DPlayer.png", t.style.display = "none", document.body.appendChild(t), t.click(), document.body.removeChild(t), URL.revokeObjectURL(n) |
|
}), e.player.events.trigger("screenshot", n) |
|
}) |
|
} |
|
}, { |
|
key: "initSubtitleButton", |
|
value: function() { |
|
var e = this; |
|
this.player.options.subtitle && (this.player.events.on("subtitle_show", function() { |
|
e.player.template.subtitleButton.dataset.balloon = e.player.tran("Hide subtitle"), e.player.template.subtitleButtonInner.style.opacity = "", e.player.user.set("subtitle", 1) |
|
}), this.player.events.on("subtitle_hide", function() { |
|
e.player.template.subtitleButton.dataset.balloon = e.player.tran("Show subtitle"), e.player.template.subtitleButtonInner.style.opacity = "0.4", e.player.user.set("subtitle", 0) |
|
}), this.player.template.subtitleButton.addEventListener("click", function() { |
|
e.player.subtitle.toggle() |
|
})) |
|
} |
|
}, { |
|
key: "setAutoHide", |
|
value: function() { |
|
var e = this; |
|
this.show(), clearTimeout(this.autoHideTimer), this.autoHideTimer = setTimeout(function() { |
|
!e.player.video.played.length || e.player.paused || e.disableAutoHide || e.hide() |
|
}, 3e3) |
|
} |
|
}, { |
|
key: "show", |
|
value: function() { |
|
this.player.container.classList.remove("dplayer-hide-controller") |
|
} |
|
}, { |
|
key: "hide", |
|
value: function() { |
|
this.player.container.classList.add("dplayer-hide-controller"), this.player.setting.hide(), this.player.comment && this.player.comment.hide() |
|
} |
|
}, { |
|
key: "isShow", |
|
value: function() { |
|
return !this.player.container.classList.contains("dplayer-hide-controller") |
|
} |
|
}, { |
|
key: "toggle", |
|
value: function() { |
|
this.isShow() ? this.hide() : this.show() |
|
} |
|
}, { |
|
key: "destroy", |
|
value: function() { |
|
clearTimeout(this.autoHideTimer) |
|
} |
|
}]), e |
|
}(); |
|
t.default = l |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i = function() { |
|
function e(e, t) { |
|
for (var n = 0; n < t.length; n++) { |
|
var i = t[n]; |
|
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) |
|
} |
|
} |
|
return function(t, n, i) { |
|
return n && e(t.prototype, n), i && e(t, i), t |
|
} |
|
}(); |
|
var a = function() { |
|
function e(t) { |
|
var n = this; |
|
! function(e, t) { |
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") |
|
}(this, e), this.container = t, this.container.addEventListener("animationend", function() { |
|
n.container.classList.remove("dplayer-bezel-transition") |
|
}) |
|
} |
|
return i(e, [{ |
|
key: "switch", |
|
value: function(e) { |
|
this.container.innerHTML = e, this.container.classList.add("dplayer-bezel-transition") |
|
} |
|
}]), e |
|
}(); |
|
t.default = a |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i = function() { |
|
function e(e, t) { |
|
for (var n = 0; n < t.length; n++) { |
|
var i = t[n]; |
|
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) |
|
} |
|
} |
|
return function(t, n, i) { |
|
return n && e(t.prototype, n), i && e(t, i), t |
|
} |
|
}(); |
|
var a = function() { |
|
function e(t) { |
|
! function(e, t) { |
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") |
|
}(this, e), this.player = t, window.requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(e) { |
|
window.setTimeout(e, 1e3 / 60) |
|
}, this.types = ["loading", "info", "fps"], this.init() |
|
} |
|
return i(e, [{ |
|
key: "init", |
|
value: function() { |
|
var e = this; |
|
this.types.map(function(t) { |
|
return "fps" !== t && e["init" + t + "Checker"](), t |
|
}) |
|
} |
|
}, { |
|
key: "initloadingChecker", |
|
value: function() { |
|
var e = this, |
|
t = 0, |
|
n = 0, |
|
i = !1; |
|
this.loadingChecker = setInterval(function() { |
|
e.enableloadingChecker && (n = e.player.video.currentTime, i || n !== t || e.player.video.paused || (e.player.container.classList.add("dplayer-loading"), i = !0), i && n > t && !e.player.video.paused && (e.player.container.classList.remove("dplayer-loading"), i = !1), t = n) |
|
}, 100) |
|
} |
|
}, { |
|
key: "initfpsChecker", |
|
value: function() { |
|
var e = this; |
|
window.requestAnimationFrame(function() { |
|
if (e.enablefpsChecker) |
|
if (e.initfpsChecker(), e.fpsStart) { |
|
e.fpsIndex++; |
|
var t = new Date; |
|
t - e.fpsStart > 1e3 && (e.player.infoPanel.fps(e.fpsIndex / (t - e.fpsStart) * 1e3), e.fpsStart = new Date, e.fpsIndex = 0) |
|
} else e.fpsStart = new Date, e.fpsIndex = 0; |
|
else e.fpsStart = 0, e.fpsIndex = 0 |
|
}) |
|
} |
|
}, { |
|
key: "initinfoChecker", |
|
value: function() { |
|
var e = this; |
|
this.infoChecker = setInterval(function() { |
|
e.enableinfoChecker && e.player.infoPanel.update() |
|
}, 1e3) |
|
} |
|
}, { |
|
key: "enable", |
|
value: function(e) { |
|
this["enable" + e + "Checker"] = !0, "fps" === e && this.initfpsChecker() |
|
} |
|
}, { |
|
key: "disable", |
|
value: function(e) { |
|
this["enable" + e + "Checker"] = !1 |
|
} |
|
}, { |
|
key: "destroy", |
|
value: function() { |
|
var e = this; |
|
this.types.map(function(t) { |
|
return e["enable" + t + "Checker"] = !1, e[t + "Checker"] && clearInterval(e[t + "Checker"]), t |
|
}) |
|
} |
|
}]), e |
|
}(); |
|
t.default = a |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i = function() { |
|
function e(e, t) { |
|
for (var n = 0; n < t.length; n++) { |
|
var i = t[n]; |
|
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) |
|
} |
|
} |
|
return function(t, n, i) { |
|
return n && e(t.prototype, n), i && e(t, i), t |
|
} |
|
}(); |
|
var a = function() { |
|
function e(t) { |
|
! function(e, t) { |
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") |
|
}(this, e), this.elements = {}, this.elements.volume = t.volumeBar, this.elements.played = t.playedBar, this.elements.loaded = t.loadedBar, this.elements.danmaku = t.danmakuOpacityBar |
|
} |
|
return i(e, [{ |
|
key: "set", |
|
value: function(e, t, n) { |
|
t = Math.max(t, 0), t = Math.min(t, 1), this.elements[e].style[n] = 100 * t + "%" |
|
} |
|
}, { |
|
key: "get", |
|
value: function(e) { |
|
return parseFloat(this.elements[e].style.width) / 100 |
|
} |
|
}]), e |
|
}(); |
|
t.default = a |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i = function() { |
|
function e(e, t) { |
|
for (var n = 0; n < t.length; n++) { |
|
var i = t[n]; |
|
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) |
|
} |
|
} |
|
return function(t, n, i) { |
|
return n && e(t.prototype, n), i && e(t, i), t |
|
} |
|
}(); |
|
var a = function() { |
|
function e(t, n, i, a) { |
|
! function(e, t) { |
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") |
|
}(this, e), this.container = t, this.video = n, this.options = i, this.events = a, this.init() |
|
} |
|
return i(e, [{ |
|
key: "init", |
|
value: function() { |
|
var e = this; |
|
if (this.container.style.fontSize = this.options.fontSize, this.container.style.bottom = this.options.bottom, this.container.style.color = this.options.color, this.video.textTracks && this.video.textTracks[0]) { |
|
var t = this.video.textTracks[0]; |
|
t.oncuechange = function() { |
|
var n = t.activeCues[0]; |
|
if (n) { |
|
e.container.innerHTML = ""; |
|
var i = document.createElement("p"); |
|
i.appendChild(n.getCueAsHTML()), e.container.appendChild(i) |
|
} else e.container.innerHTML = ""; |
|
e.events.trigger("subtitle_change") |
|
} |
|
} |
|
} |
|
}, { |
|
key: "show", |
|
value: function() { |
|
this.container.classList.remove("dplayer-subtitle-hide"), this.events.trigger("subtitle_show") |
|
} |
|
}, { |
|
key: "hide", |
|
value: function() { |
|
this.container.classList.add("dplayer-subtitle-hide"), this.events.trigger("subtitle_hide") |
|
} |
|
}, { |
|
key: "toggle", |
|
value: function() { |
|
this.container.classList.contains("dplayer-subtitle-hide") ? this.show() : this.hide() |
|
} |
|
}]), e |
|
}(); |
|
t.default = a |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i, a = function() { |
|
function e(e, t) { |
|
for (var n = 0; n < t.length; n++) { |
|
var i = t[n]; |
|
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) |
|
} |
|
} |
|
return function(t, n, i) { |
|
return n && e(t.prototype, n), i && e(t, i), t |
|
} |
|
}(), |
|
o = n(1), |
|
r = (i = o) && i.__esModule ? i : { |
|
default: i |
|
}; |
|
var s = function() { |
|
function e(t) { |
|
! function(e, t) { |
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") |
|
}(this, e), this.storageName = { |
|
opacity: "dplayer-danmaku-opacity", |
|
volume: "dplayer-volume", |
|
unlimited: "dplayer-danmaku-unlimited", |
|
danmaku: "dplayer-danmaku-show", |
|
subtitle: "dplayer-subtitle-show" |
|
}, this.default = { |
|
opacity: .7, |
|
volume: t.options.hasOwnProperty("volume") ? t.options.volume : .7, |
|
unlimited: (t.options.danmaku && t.options.danmaku.unlimited ? 1 : 0) || 0, |
|
danmaku: 1, |
|
subtitle: 1 |
|
}, this.data = {}, this.init() |
|
} |
|
return a(e, [{ |
|
key: "init", |
|
value: function() { |
|
for (var e in this.storageName) { |
|
var t = this.storageName[e]; |
|
this.data[e] = parseFloat(r.default.storage.get(t) || this.default[e]) |
|
} |
|
} |
|
}, { |
|
key: "get", |
|
value: function(e) { |
|
return this.data[e] |
|
} |
|
}, { |
|
key: "set", |
|
value: function(e, t) { |
|
this.data[e] = t, r.default.storage.set(this.storageName[e], t) |
|
} |
|
}]), e |
|
}(); |
|
t.default = s |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i, a = function() { |
|
function e(e, t) { |
|
for (var n = 0; n < t.length; n++) { |
|
var i = t[n]; |
|
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) |
|
} |
|
} |
|
return function(t, n, i) { |
|
return n && e(t.prototype, n), i && e(t, i), t |
|
} |
|
}(), |
|
o = n(1), |
|
r = (i = o) && i.__esModule ? i : { |
|
default: i |
|
}; |
|
var s = function() { |
|
function e(t) { |
|
var n = this; |
|
! function(e, t) { |
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") |
|
}(this, e), this.player = t, this.player.events.on("webfullscreen", function() { |
|
n.player.resize() |
|
}), this.player.events.on("webfullscreen_cancel", function() { |
|
n.player.resize(), r.default.setScrollPosition(n.lastScrollPosition) |
|
}); |
|
var i = function() { |
|
n.player.resize(), n.isFullScreen("browser") ? n.player.events.trigger("fullscreen") : (r.default.setScrollPosition(n.lastScrollPosition), n.player.events.trigger("fullscreen_cancel")) |
|
}, |
|
a = function() { |
|
var e = document.fullscreenElement || document.mozFullScreenElement || document.msFullscreenElement; |
|
e && e !== n.player.container || (n.player.resize(), e ? n.player.events.trigger("fullscreen") : (r.default.setScrollPosition(n.lastScrollPosition), n.player.events.trigger("fullscreen_cancel"))) |
|
}; |
|
/Firefox/.test(navigator.userAgent) ? (document.addEventListener("mozfullscreenchange", a), document.addEventListener("fullscreenchange", a)) : (this.player.container.addEventListener("fullscreenchange", i), this.player.container.addEventListener("webkitfullscreenchange", i), document.addEventListener("msfullscreenchange", a), document.addEventListener("MSFullscreenChange", a)) |
|
} |
|
return a(e, [{ |
|
key: "isFullScreen", |
|
value: function() { |
|
switch (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "browser") { |
|
case "browser": |
|
return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; |
|
case "web": |
|
return this.player.container.classList.contains("dplayer-fulled") |
|
} |
|
} |
|
}, { |
|
key: "request", |
|
value: function() { |
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "browser", |
|
t = "browser" === e ? "web" : "browser", |
|
n = this.isFullScreen(t); |
|
switch (n || (this.lastScrollPosition = r.default.getScrollPosition()), e) { |
|
case "browser": |
|
this.player.container.requestFullscreen ? this.player.container.requestFullscreen() : this.player.container.mozRequestFullScreen ? this.player.container.mozRequestFullScreen() : this.player.container.webkitRequestFullscreen ? this.player.container.webkitRequestFullscreen() : this.player.video.webkitEnterFullscreen ? this.player.video.webkitEnterFullscreen() : this.player.video.webkitEnterFullScreen ? this.player.video.webkitEnterFullScreen() : this.player.container.msRequestFullscreen && this.player.container.msRequestFullscreen(); |
|
break; |
|
case "web": |
|
this.player.container.classList.add("dplayer-fulled"), document.body.classList.add("dplayer-web-fullscreen-fix"), this.player.events.trigger("webfullscreen") |
|
} |
|
n && this.cancel(t) |
|
} |
|
}, { |
|
key: "cancel", |
|
value: function() { |
|
switch (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "browser") { |
|
case "browser": |
|
document.cancelFullScreen ? document.cancelFullScreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitCancelFullScreen ? document.webkitCancelFullScreen() : document.webkitCancelFullscreen ? document.webkitCancelFullscreen() : document.msCancelFullScreen ? document.msCancelFullScreen() : document.msExitFullscreen && document.msExitFullscreen(); |
|
break; |
|
case "web": |
|
this.player.container.classList.remove("dplayer-fulled"), document.body.classList.remove("dplayer-web-fullscreen-fix"), this.player.events.trigger("webfullscreen_cancel") |
|
} |
|
} |
|
}, { |
|
key: "toggle", |
|
value: function() { |
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "browser"; |
|
this.isFullScreen(e) ? this.cancel(e) : this.request(e) |
|
} |
|
}]), e |
|
}(); |
|
t.default = s |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i = function() { |
|
function e(e, t) { |
|
for (var n = 0; n < t.length; n++) { |
|
var i = t[n]; |
|
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) |
|
} |
|
} |
|
return function(t, n, i) { |
|
return n && e(t.prototype, n), i && e(t, i), t |
|
} |
|
}(); |
|
var a = function() { |
|
function e() { |
|
! function(e, t) { |
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") |
|
}(this, e), this.events = {}, this.videoEvents = ["abort", "canplay", "canplaythrough", "durationchange", "emptied", "ended", "error", "loadeddata", "loadedmetadata", "loadstart", "mozaudioavailable", "pause", "play", "playing", "progress", "ratechange", "seeked", "seeking", "stalled", "suspend", "timeupdate", "volumechange", "waiting"], this.playerEvents = ["screenshot", "thumbnails_show", "thumbnails_hide", "danmaku_show", "danmaku_hide", "danmaku_clear", "danmaku_loaded", "danmaku_send", "danmaku_opacity", "contextmenu_show", "contextmenu_hide", "notice_show", "notice_hide", "quality_start", "quality_end", "destroy", "resize", "fullscreen", "fullscreen_cancel", "webfullscreen", "webfullscreen_cancel", "subtitle_show", "subtitle_hide", "subtitle_change"] |
|
} |
|
return i(e, [{ |
|
key: "on", |
|
value: function(e, t) { |
|
this.type(e) && "function" == typeof t && (this.events[e] || (this.events[e] = []), this.events[e].push(t)) |
|
} |
|
}, { |
|
key: "trigger", |
|
value: function(e, t) { |
|
if (this.events[e] && this.events[e].length) |
|
for (var n = 0; n < this.events[e].length; n++) this.events[e][n](t) |
|
} |
|
}, { |
|
key: "type", |
|
value: function(e) { |
|
return -1 !== this.playerEvents.indexOf(e) ? "player" : -1 !== this.videoEvents.indexOf(e) ? "video" : (console.error("Unknown event name: " + e), null) |
|
} |
|
}]), e |
|
}(); |
|
t.default = a |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i, a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { |
|
return typeof e |
|
} : function(e) { |
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e |
|
}, |
|
o = function() { |
|
function e(e, t) { |
|
for (var n = 0; n < t.length; n++) { |
|
var i = t[n]; |
|
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) |
|
} |
|
} |
|
return function(t, n, i) { |
|
return n && e(t.prototype, n), i && e(t, i), t |
|
} |
|
}(), |
|
r = n(1), |
|
s = (i = r) && i.__esModule ? i : { |
|
default: i |
|
}; |
|
var l = function() { |
|
function e(t) { |
|
! function(e, t) { |
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") |
|
}(this, e), this.options = t, this.container = this.options.container, this.danTunnel = { |
|
right: {}, |
|
top: {}, |
|
bottom: {} |
|
}, this.danIndex = 0, this.dan = [], this.showing = !0, this._opacity = this.options.opacity, this.events = this.options.events, this.unlimited = this.options.unlimited, this._measure(""), this.load() |
|
} |
|
return o(e, [{ |
|
key: "load", |
|
value: function() { |
|
var e = this, |
|
t = void 0; |
|
t = this.options.api.maximum ? this.options.api.address + "v3/?id=" + this.options.api.id + "&max=" + this.options.api.maximum : this.options.api.address + "v3/?id=" + this.options.api.id; |
|
var n = (this.options.api.addition || []).slice(0); |
|
n.push(t), this.events && this.events.trigger("danmaku_load_start", n), this._readAllEndpoints(n, function(t) { |
|
e.dan = [].concat.apply([], t).sort(function(e, t) { |
|
return e.time - t.time |
|
}), window.requestAnimationFrame(function() { |
|
e.frame() |
|
}), e.options.callback(), e.events && e.events.trigger("danmaku_load_end") |
|
}) |
|
} |
|
}, { |
|
key: "reload", |
|
value: function(e) { |
|
this.options.api = e, this.dan = [], this.clear(), this.load() |
|
} |
|
}, { |
|
key: "_readAllEndpoints", |
|
value: function(e, t) { |
|
for (var n = this, i = [], a = 0, o = function(o) { |
|
n.options.apiBackend.read({ |
|
url: e[o], |
|
success: function(n) { |
|
i[o] = n, ++a === e.length && t(i) |
|
}, |
|
error: function(r) { |
|
n.options.error(r || n.options.tran("Danmaku load failed")), i[o] = [], ++a === e.length && t(i) |
|
} |
|
}) |
|
}, r = 0; r < e.length; ++r) o(r) |
|
} |
|
}, { |
|
key: "send", |
|
value: function(e, t) { |
|
var n = this, |
|
i = { |
|
token: this.options.api.token, |
|
id: this.options.api.id, |
|
author: this.options.api.user, |
|
time: this.options.time(), |
|
text: e.text, |
|
color: e.color, |
|
type: e.type |
|
}; |
|
this.options.apiBackend.send({ |
|
url: this.options.api.address + "v3/", |
|
data: i, |
|
success: t, |
|
error: function(e) { |
|
n.options.error(e || n.options.tran("Danmaku send failed")) |
|
} |
|
}), this.dan.splice(this.danIndex, 0, i), this.danIndex++; |
|
var a = { |
|
text: this.htmlEncode(i.text), |
|
color: i.color, |
|
type: i.type, |
|
border: "2px solid " + this.options.borderColor |
|
}; |
|
this.draw(a), this.events && this.events.trigger("danmaku_send", i) |
|
} |
|
}, { |
|
key: "frame", |
|
value: function() { |
|
var e = this; |
|
if (this.dan.length && !this.paused && this.showing) { |
|
for (var t = this.dan[this.danIndex], n = []; t && this.options.time() > parseFloat(t.time);) n.push(t), t = this.dan[++this.danIndex]; |
|
this.draw(n) |
|
} |
|
window.requestAnimationFrame(function() { |
|
e.frame() |
|
}) |
|
} |
|
}, { |
|
key: "opacity", |
|
value: function(e) { |
|
if (void 0 !== e) { |
|
for (var t = this.container.getElementsByClassName("dplayer-danmaku-item"), n = 0; n < t.length; n++) t[n].style.opacity = e; |
|
this._opacity = e, this.events && this.events.trigger("danmaku_opacity", this._opacity) |
|
} |
|
return this._opacity |
|
} |
|
}, { |
|
key: "draw", |
|
value: function(e) { |
|
var t = this; |
|
if (this.showing) { |
|
var n = this.options.height, |
|
i = this.container.offsetWidth, |
|
o = this.container.offsetHeight, |
|
r = parseInt(o / n), |
|
l = function(e) { |
|
var n = e.offsetWidth || parseInt(e.style.width), |
|
i = e.getBoundingClientRect().right || t.container.getBoundingClientRect().right + n; |
|
return t.container.getBoundingClientRect().right - i |
|
}, |
|
c = function(e) { |
|
return (i + e) / 5 |
|
}, |
|
u = function(e, n, o) { |
|
for (var s = i / c(o), u = function(a) { |
|
var o = t.danTunnel[n][a + ""]; |
|
if (!o || !o.length) return t.danTunnel[n][a + ""] = [e], e.addEventListener("animationend", function() { |
|
t.danTunnel[n][a + ""].splice(0, 1) |
|
}), { |
|
v: a % r |
|
}; |
|
if ("right" !== n) return "continue"; |
|
for (var u = 0; u < o.length; u++) { |
|
var d = l(o[u]) - 10; |
|
if (d <= i - s * c(parseInt(o[u].style.width)) || d <= 0) break; |
|
if (u === o.length - 1) return t.danTunnel[n][a + ""].push(e), e.addEventListener("animationend", function() { |
|
t.danTunnel[n][a + ""].splice(0, 1) |
|
}), { |
|
v: a % r |
|
} |
|
} |
|
}, d = 0; t.unlimited || d < r; d++) { |
|
var p = u(d); |
|
switch (p) { |
|
case "continue": |
|
continue; |
|
default: |
|
if ("object" === (void 0 === p ? "undefined" : a(p))) return p.v |
|
} |
|
} |
|
return -1 |
|
}; |
|
"[object Array]" !== Object.prototype.toString.call(e) && (e = [e]); |
|
for (var d = document.createDocumentFragment(), p = function(a) { |
|
e[a].type = s.default.number2Type(e[a].type), e[a].color || (e[a].color = 16777215); |
|
var o = document.createElement("div"); |
|
o.classList.add("dplayer-danmaku-item"), o.classList.add("dplayer-danmaku-" + e[a].type), e[a].border ? o.innerHTML = '<span style="border:' + e[a].border + '">' + e[a].text + "</span>" : o.innerHTML = e[a].text, o.style.opacity = t._opacity, o.style.color = s.default.number2Color(e[a].color), o.addEventListener("animationend", function() { |
|
t.container.removeChild(o) |
|
}); |
|
var r = t._measure(e[a].text), |
|
l = void 0; |
|
switch (e[a].type) { |
|
case "right": |
|
(l = u(o, e[a].type, r)) >= 0 && (o.style.width = r + 1 + "px", o.style.top = n * l + "px", o.style.transform = "translateX(-" + i + "px)"); |
|
break; |
|
case "top": |
|
(l = u(o, e[a].type)) >= 0 && (o.style.top = n * l + "px"); |
|
break; |
|
case "bottom": |
|
(l = u(o, e[a].type)) >= 0 && (o.style.bottom = n * l + "px"); |
|
break; |
|
default: |
|
console.error("Can't handled danmaku type: " + e[a].type) |
|
} |
|
l >= 0 && (o.classList.add("dplayer-danmaku-move"), d.appendChild(o)) |
|
}, h = 0; h < e.length; h++) p(h); |
|
return this.container.appendChild(d), d |
|
} |
|
} |
|
}, { |
|
key: "play", |
|
value: function() { |
|
this.paused = !1 |
|
} |
|
}, { |
|
key: "pause", |
|
value: function() { |
|
this.paused = !0 |
|
} |
|
}, { |
|
key: "_measure", |
|
value: function(e) { |
|
if (!this.context) { |
|
var t = getComputedStyle(this.container.getElementsByClassName("dplayer-danmaku-item")[0], null); |
|
this.context = document.createElement("canvas").getContext("2d"), this.context.font = t.getPropertyValue("font") |
|
} |
|
return this.context.measureText(e).width |
|
} |
|
}, { |
|
key: "seek", |
|
value: function() { |
|
this.clear(); |
|
for (var e = 0; e < this.dan.length; e++) { |
|
if (this.dan[e].time >= this.options.time()) { |
|
this.danIndex = e; |
|
break |
|
} |
|
this.danIndex = this.dan.length |
|
} |
|
} |
|
}, { |
|
key: "clear", |
|
value: function() { |
|
this.danTunnel = { |
|
right: {}, |
|
top: {}, |
|
bottom: {} |
|
}, this.danIndex = 0, this.options.container.innerHTML = "", this.events && this.events.trigger("danmaku_clear") |
|
} |
|
}, { |
|
key: "htmlEncode", |
|
value: function(e) { |
|
return e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'").replace(/\//g, "/") |
|
} |
|
}, { |
|
key: "resize", |
|
value: function() { |
|
for (var e = this.container.offsetWidth, t = this.container.getElementsByClassName("dplayer-danmaku-item"), n = 0; n < t.length; n++) t[n].style.transform = "translateX(-" + e + "px)" |
|
} |
|
}, { |
|
key: "hide", |
|
value: function() { |
|
this.showing = !1, this.pause(), this.clear(), this.events && this.events.trigger("danmaku_hide") |
|
} |
|
}, { |
|
key: "show", |
|
value: function() { |
|
this.seek(), this.showing = !0, this.play(), this.events && this.events.trigger("danmaku_show") |
|
} |
|
}, { |
|
key: "unlimit", |
|
value: function(e) { |
|
this.unlimited = e |
|
} |
|
}]), e |
|
}(); |
|
t.default = l |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
(function(t) { |
|
e.exports = !1; |
|
try { |
|
e.exports = "[object process]" === Object.prototype.toString.call(t.process) |
|
} catch (e) {} |
|
}).call(this, n(4)) |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
(function(t) { |
|
var i = n(28), |
|
a = Object.create(i ? t : window), |
|
o = /["&'<>]/; |
|
a.$escape = function(e) { |
|
return function(e) { |
|
var t = "" + e, |
|
n = o.exec(t); |
|
if (!n) return e; |
|
var i = "", |
|
a = void 0, |
|
r = void 0, |
|
s = void 0; |
|
for (a = n.index, r = 0; a < t.length; a++) { |
|
switch (t.charCodeAt(a)) { |
|
case 34: |
|
s = """; |
|
break; |
|
case 38: |
|
s = "&"; |
|
break; |
|
case 39: |
|
s = "'"; |
|
break; |
|
case 60: |
|
s = "<"; |
|
break; |
|
case 62: |
|
s = ">"; |
|
break; |
|
default: |
|
continue |
|
} |
|
r !== a && (i += t.substring(r, a)), r = a + 1, i += s |
|
} |
|
return r !== a ? i + t.substring(r, a) : i |
|
}(function e(t) { |
|
"string" != typeof t && (t = void 0 === t || null === t ? "" : "function" == typeof t ? e(t.call(t)) : JSON.stringify(t)); |
|
return t |
|
}(e)) |
|
}, a.$each = function(e, t) { |
|
if (Array.isArray(e)) |
|
for (var n = 0, i = e.length; n < i; n++) t(e[n], n); |
|
else |
|
for (var a in e) t(e[a], a) |
|
}, e.exports = a |
|
}).call(this, n(4)) |
|
}, |
|
function(e, t, n) { |
|
var i = n(6); |
|
e.exports = function(e) { |
|
"use strict"; |
|
e = e || {}; |
|
var t, a = "", |
|
o = (arguments[1], e.video), |
|
r = e.options, |
|
s = i.$escape, |
|
l = e.tran, |
|
c = e.icons, |
|
u = e.index, |
|
d = i.$each; |
|
e.$value, e.$index; |
|
|
|
var next='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 16 32"> <path d="m10.220498,14.805897q0.283846,0.313525 0.283846,0.815164q0,0.438935 -0.283846,0.752459l-8.677591,8.339759q-0.486594,0.50164 -0.831264,0.188115t-0.34467,-1.254099l0,-16.115173q0,-0.940574 0.34467,-1.254099t0.831264,0.188115l8.677591,8.339759z" /><path stroke="null" transform="rotate(179.6089630126953 13.427860260009766,15.321899414062502) translate(14.514184951782227,23.36229705810547) scale(0.9541715979576111,1.0789622068405151) translate(-14.514184951782227,-23.36229705810547) " d="m14.344661,24.640378l-2.012198,-0.200702l0.112541,-16.253528l1.973903,-1.005878z"/></svg>'; |
|
|
|
a += '<div class="dplayer-mask"></div>\n<div class="dplayer-video-wrap">\n ', t = n(5)(o), a += t, a += "\n ", r.logo && (a += '\n <div class="dplayer-logo">\n <img src="', a += s(r.logo), a += '">\n </div>\n '), a += '\n <div class="dplayer-danmaku"', r.danmaku && r.danmaku.bottm && (a += ' style="margin-bottom:', a += s(r.danmaku.bottm), a += '"'), a += '>\n <div class="dplayer-danmaku-item dplayer-danmaku-item--demo"></div>\n </div>\n <div class="dplayer-subtitle"></div>\n <div class="dplayer-bezel">\n <span class="dplayer-bezel-icon"></span>\n ', r.danmaku && (a += '\n <span class="dplayer-danloading">', a += s(l("Danmaku is loading")), a += "</span>\n "), a += '\n <span class="diplayer-loading-icon">', a += c.loading, a += '</span>\n </div>\n</div>\n<div class="dplayer-controller-mask"></div>\n<div class="dplayer-controller">\n <div class="dplayer-icons dplayer-comment-box">\n <button class="dplayer-icon dplayer-comment-setting-icon" data-balloon="', a += s(l("Setting")), a += '" data-balloon-pos="up">\n <span class="dplayer-icon-content">', a += c.pallette, a += '</span>\n </button>\n <div class="dplayer-comment-setting-box">\n <div class="dplayer-comment-setting-color">\n <div class="dplayer-comment-setting-title">', a += s(l("Set danmaku color")), a += '</div>\n <label>\n <input type="radio" name="dplayer-danmaku-color-', a += s(u), a += '" value="#fff" checked>\n <span style="background: #fff;"></span>\n </label>\n <label>\n <input type="radio" name="dplayer-danmaku-color-', a += s(u), a += '" value="#e54256">\n <span style="background: #e54256"></span>\n </label>\n <label>\n <input type="radio" name="dplayer-danmaku-color-', a += s(u), a += '" value="#ffe133">\n <span style="background: #ffe133"></span>\n </label>\n <label>\n <input type="radio" name="dplayer-danmaku-color-', a += s(u), a += '" value="#64DD17">\n <span style="background: #64DD17"></span>\n </label>\n <label>\n <input type="radio" name="dplayer-danmaku-color-', a += s(u), a += '" value="#39ccff">\n <span style="background: #39ccff"></span>\n </label>\n <label>\n <input type="radio" name="dplayer-danmaku-color-', a += s(u), a += '" value="#D500F9">\n <span style="background: #D500F9"></span>\n </label>\n </div>\n <div class="dplayer-comment-setting-type">\n <div class="dplayer-comment-setting-title">', a += s(l("Set danmaku type")), a += '</div>\n <label>\n <input type="radio" name="dplayer-danmaku-type-', a += s(u), a += '" value="1">\n <span>', a += s(l("Top")), a += '</span>\n </label>\n <label>\n <input type="radio" name="dplayer-danmaku-type-', a += s(u), a += '" value="0" checked>\n <span>', a += s(l("Rolling")), a += '</span>\n </label>\n <label>\n <input type="radio" name="dplayer-danmaku-type-', a += s(u), a += '" value="2">\n <span>', a += s(l("Bottom")), a += '</span>\n </label>\n </div>\n </div>\n <input class="dplayer-comment-input" type="text" placeholder="', a += s(l("Input danmaku, hit Enter")), a += '" maxlength="30">\n <button class="dplayer-icon dplayer-send-icon" data-balloon="', a += s(l("Send")), a += '" data-balloon-pos="up">\n <span class="dplayer-icon-content">', a += c.send, a += '</span>\n </button>\n </div>\n <div class="dplayer-icons dplayer-icons-left">\n <button class="dplayer-icon dplayer-play-icon">\n <span class="dplayer-icon-content">', a += c.play, a += '</span>\n </button>\n '; |
|
|
|
if(typeof is_next!="undefined") a+=' <button class="dplayer-icon dplayer-play-icon">\n <span class="dplayer-icon-content">', a += next, a += '</span>\n </button>\n '; |
|
return a+=' <div class="dplayer-volume">\n <button class="dplayer-icon dplayer-volume-icon">\n <span class="dplayer-icon-content">', a += c.volumeDown, a += '</span>\n </button>\n <div class="dplayer-volume-bar-wrap" data-balloon-pos="up">\n <div class="dplayer-volume-bar">\n <div class="dplayer-volume-bar-inner" style="background: ', a += s(r.theme), a += ';">\n <span class="dplayer-thumb" style="background: ', a += s(r.theme), a += '"></span>\n </div>\n </div>\n </div>\n </div>\n <span class="dplayer-time">\n <span class="dplayer-ptime">0:00</span> /\n <span class="dplayer-dtime">0:00</span>\n </span>\n ', r.live && (a += '\n <span class="dplayer-live-badge"><span class="dplayer-live-dot" style="background: ', a += s(r.theme), a += ';"></span>', a += s(l("Live")), a += "</span>\n "), a += '\n </div>\n <div class="dplayer-icons dplayer-icons-right">\n ', r.video.quality && (a += '\n <div class="dplayer-quality">\n <button class="dplayer-icon dplayer-quality-icon">', a += s(r.video.quality[r.video.defaultQuality].name), a += '</button>\n <div class="dplayer-quality-mask">\n <div class="dplayer-quality-list">\n ', d(r.video.quality, function(e, t) { |
|
a += '\n <div class="dplayer-quality-item" data-index="', a += s(t), a += '">', a += s(e.name), a += "</div>\n " |
|
}), a += "\n </div>\n </div>\n </div>\n "), a += "\n ", r.screenshot && (a += '\n <div class="dplayer-icon dplayer-camera-icon" data-balloon="', a += s(l("Screenshot")), a += '" data-balloon-pos="up">\n <span class="dplayer-icon-content">', a += c.camera, a += "</span>\n </div>\n "), a += '\n <div class="dplayer-comment">\n <button class="dplayer-icon dplayer-comment-icon" data-balloon="', a += s(l("Send danmaku")), a += '" data-balloon-pos="up">\n <span class="dplayer-icon-content">', a += c.comment, a += "</span>\n </button>\n </div>\n ", r.subtitle && (a += '\n <div class="dplayer-subtitle-btn">\n <button class="dplayer-icon dplayer-subtitle-icon" data-balloon="', a += s(l("Hide subtitle")), a += '" data-balloon-pos="up">\n <span class="dplayer-icon-content">', a += c.subtitle, a += "</span>\n </button>\n </div>\n "), a += '\n <div class="dplayer-setting">\n <button class="dplayer-icon dplayer-setting-icon" data-balloon="', a += s(l("Setting")), a += '" data-balloon-pos="up">\n <span class="dplayer-icon-content">', a += c.setting, a += '</span>\n </button>\n <div class="dplayer-setting-box">\n <div class="dplayer-setting-origin-panel">\n <div class="dplayer-setting-item dplayer-setting-speed">\n <span class="dplayer-label">', a += s(l("Speed")), a += '</span>\n <div class="dplayer-toggle">', a += c.right, a += '</div>\n </div>\n <div class="dplayer-setting-item dplayer-setting-loop">\n <span class="dplayer-label">', a += s(l("Loop")), a += '</span>\n <div class="dplayer-toggle">\n <input class="dplayer-toggle-setting-input" type="checkbox" name="dplayer-toggle">\n <label for="dplayer-toggle"></label>\n </div>\n </div>\n <div class="dplayer-setting-item dplayer-setting-showdan">\n <span class="dplayer-label">', a += s(l("Show danmaku")), a += '</span>\n <div class="dplayer-toggle">\n <input class="dplayer-showdan-setting-input" type="checkbox" name="dplayer-toggle-dan">\n <label for="dplayer-toggle-dan"></label>\n </div>\n </div>\n <div class="dplayer-setting-item dplayer-setting-danunlimit">\n <span class="dplayer-label">', a += s(l("Unlimited danmaku")), a += '</span>\n <div class="dplayer-toggle">\n <input class="dplayer-danunlimit-setting-input" type="checkbox" name="dplayer-toggle-danunlimit">\n <label for="dplayer-toggle-danunlimit"></label>\n </div>\n </div>\n <div class="dplayer-setting-item dplayer-setting-danmaku">\n <span class="dplayer-label">', a += s(l("Opacity for danmaku")), a += '</span>\n <div class="dplayer-danmaku-bar-wrap">\n <div class="dplayer-danmaku-bar">\n <div class="dplayer-danmaku-bar-inner">\n <span class="dplayer-thumb"></span>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class="dplayer-setting-speed-panel">\n <div class="dplayer-setting-speed-item" data-speed="0.5">\n <span class="dplayer-label">0.5</span>\n </div>\n <div class="dplayer-setting-speed-item" data-speed="0.75">\n <span class="dplayer-label">0.75</span>\n </div>\n <div class="dplayer-setting-speed-item" data-speed="1">\n <span class="dplayer-label">', a += s(l("Normal")), a += '</span>\n </div>\n <div class="dplayer-setting-speed-item" data-speed="1.25">\n <span class="dplayer-label">1.25</span>\n </div>\n <div class="dplayer-setting-speed-item" data-speed="1.5">\n <span class="dplayer-label">1.5</span>\n </div>\n <div class="dplayer-setting-speed-item" data-speed="2">\n <span class="dplayer-label">2</span>\n </div>\n </div>\n </div>\n </div>\n <div class="dplayer-full">\n <button class="dplayer-icon dplayer-full-in-icon" data-balloon="', a += s(l("Web full screen")), a += '" data-balloon-pos="up">\n <span class="dplayer-icon-content">', a += c.fullWeb, a += '</span>\n </button>\n <button class="dplayer-icon dplayer-full-icon" data-balloon="', a += s(l("Full screen")), a += '" data-balloon-pos="up">\n <span class="dplayer-icon-content">', a += c.full, a += '</span>\n </button>\n </div>\n </div>\n <div class="dplayer-bar-wrap">\n <div class="dplayer-bar-time hidden">00:00</div>\n <div class="dplayer-bar-preview"></div>\n <div class="dplayer-bar">\n <div class="dplayer-loaded" style="width: 0;"></div>\n <div class="dplayer-played" style="width: 0; background: ', a += s(r.theme), a += '">\n <span class="dplayer-thumb" style="background: ', a += s(r.theme), a += '"></span>\n </div>\n </div>\n </div>\n</div>\n<div class="dplayer-info-panel dplayer-info-panel-hide">\n <div class="dplayer-info-panel-close">[x]</div>\n <div class="dplayer-info-panel-item dplayer-info-panel-item-version">\n <span class="dplayer-info-panel-item-title">Player version</span>\n <span class="dplayer-info-panel-item-data"></span>\n </div>\n <div class="dplayer-info-panel-item dplayer-info-panel-item-fps">\n <span class="dplayer-info-panel-item-title">Player FPS</span>\n <span class="dplayer-info-panel-item-data"></span>\n </div>\n <div class="dplayer-info-panel-item dplayer-info-panel-item-type">\n <span class="dplayer-info-panel-item-title">Video type</span>\n <span class="dplayer-info-panel-item-data"></span>\n </div>\n <div class="dplayer-info-panel-item dplayer-info-panel-item-url">\n <span class="dplayer-info-panel-item-title">Video url</span>\n <span class="dplayer-info-panel-item-data"></span>\n </div>\n <div class="dplayer-info-panel-item dplayer-info-panel-item-resolution">\n <span class="dplayer-info-panel-item-title">Video resolution</span>\n <span class="dplayer-info-panel-item-data"></span>\n </div>\n <div class="dplayer-info-panel-item dplayer-info-panel-item-duration">\n <span class="dplayer-info-panel-item-title">Video duration</span>\n <span class="dplayer-info-panel-item-data"></span>\n </div>\n ', r.danmaku && (a += '\n <div class="dplayer-info-panel-item dplayer-info-panel-item-danmaku-id">\n <span class="dplayer-info-panel-item-title">Danamku id</span>\n <span class="dplayer-info-panel-item-data"></span>\n </div>\n <div class="dplayer-info-panel-item dplayer-info-panel-item-danmaku-api">\n <span class="dplayer-info-panel-item-title">Danamku api</span>\n <span class="dplayer-info-panel-item-data"></span>\n </div>\n <div class="dplayer-info-panel-item dplayer-info-panel-item-danmaku-amount">\n <span class="dplayer-info-panel-item-title">Danamku amount</span>\n <span class="dplayer-info-panel-item-data"></span>\n </div>\n '), a += '\n</div>\n<div class="dplayer-menu">\n ', d(r.contextmenu, function(e, t) { |
|
a += '\n <div class="dplayer-menu-item">\n <a', e.link && (a += ' target="_blank"'), a += ' href="', a += s(e.link || "javascript:void(0);"), a += '">', a += s(l(e.text)), a += "</a>\n </div>\n " |
|
}), a += '\n</div>\n<div class="dplayer-notice"></div>' |
|
} |
|
}, |
|
function(e, t) { |
|
e.exports = '<svg version="1.1" viewBox="0 0 22 22"><svg x="7" y="1"><circle class="diplayer-loading-dot diplayer-loading-dot-0" cx="4" cy="4" r="2"></circle></svg><svg x="11" y="3"><circle class="diplayer-loading-dot diplayer-loading-dot-1" cx="4" cy="4" r="2"></circle></svg><svg x="13" y="7"><circle class="diplayer-loading-dot diplayer-loading-dot-2" cx="4" cy="4" r="2"></circle></svg><svg x="11" y="11"><circle class="diplayer-loading-dot diplayer-loading-dot-3" cx="4" cy="4" r="2"></circle></svg><svg x="7" y="13"><circle class="diplayer-loading-dot diplayer-loading-dot-4" cx="4" cy="4" r="2"></circle></svg><svg x="3" y="11"><circle class="diplayer-loading-dot diplayer-loading-dot-5" cx="4" cy="4" r="2"></circle></svg><svg x="1" y="7"><circle class="diplayer-loading-dot diplayer-loading-dot-6" cx="4" cy="4" r="2"></circle></svg><svg x="3" y="3"><circle class="diplayer-loading-dot diplayer-loading-dot-7" cx="4" cy="4" r="2"></circle></svg></svg>' |
|
}, |
|
function(e, t) { |
|
e.exports = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M26.667 5.333h-21.333c-0 0-0.001 0-0.001 0-1.472 0-2.666 1.194-2.666 2.666 0 0 0 0.001 0 0.001v-0 16c0 0 0 0.001 0 0.001 0 1.472 1.194 2.666 2.666 2.666 0 0 0.001 0 0.001 0h21.333c0 0 0.001 0 0.001 0 1.472 0 2.666-1.194 2.666-2.666 0-0 0-0.001 0-0.001v0-16c0-0 0-0.001 0-0.001 0-1.472-1.194-2.666-2.666-2.666-0 0-0.001 0-0.001 0h0zM5.333 16h5.333v2.667h-5.333v-2.667zM18.667 24h-13.333v-2.667h13.333v2.667zM26.667 24h-5.333v-2.667h5.333v2.667zM26.667 18.667h-13.333v-2.667h13.333v2.667z"></path></svg>' |
|
}, |
|
function(e, t) { |
|
e.exports = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M16 23c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6zM16 13c-2.206 0-4 1.794-4 4s1.794 4 4 4c2.206 0 4-1.794 4-4s-1.794-4-4-4zM27 28h-22c-1.654 0-3-1.346-3-3v-16c0-1.654 1.346-3 3-3h3c0.552 0 1 0.448 1 1s-0.448 1-1 1h-3c-0.551 0-1 0.449-1 1v16c0 0.552 0.449 1 1 1h22c0.552 0 1-0.448 1-1v-16c0-0.551-0.448-1-1-1h-11c-0.552 0-1-0.448-1-1s0.448-1 1-1h11c1.654 0 3 1.346 3 3v16c0 1.654-1.346 3-3 3zM24 10.5c0 0.828 0.672 1.5 1.5 1.5s1.5-0.672 1.5-1.5c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5zM15 4c0 0.552-0.448 1-1 1h-4c-0.552 0-1-0.448-1-1v0c0-0.552 0.448-1 1-1h4c0.552 0 1 0.448 1 1v0z"></path></svg>' |
|
}, |
|
function(e, t) { |
|
e.exports = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M19.357 2.88c1.749 0 3.366 0.316 4.851 0.946 1.485 0.632 2.768 1.474 3.845 2.533s1.922 2.279 2.532 3.661c0.611 1.383 0.915 2.829 0.915 4.334 0 1.425-0.304 2.847-0.915 4.271-0.611 1.425-1.587 2.767-2.928 4.028-0.855 0.813-1.811 1.607-2.869 2.38s-2.136 1.465-3.233 2.075c-1.099 0.61-2.198 1.098-3.296 1.465-1.098 0.366-2.115 0.549-3.051 0.549-1.343 0-2.441-0.438-3.296-1.311-0.854-0.876-1.281-2.41-1.281-4.608 0-0.366 0.020-0.773 0.060-1.221s0.062-0.895 0.062-1.343c0-0.773-0.183-1.353-0.55-1.738-0.366-0.387-0.793-0.58-1.281-0.58-0.652 0-1.21 0.295-1.678 0.886s-0.926 1.23-1.373 1.921c-0.447 0.693-0.905 1.334-1.372 1.923s-1.028 0.886-1.679 0.886c-0.529 0-1.048-0.427-1.556-1.282s-0.763-2.259-0.763-4.212c0-2.197 0.529-4.241 1.587-6.133s2.462-3.529 4.21-4.912c1.75-1.383 3.762-2.471 6.041-3.264 2.277-0.796 4.617-1.212 7.018-1.253zM7.334 15.817c0.569 0 1.047-0.204 1.434-0.611s0.579-0.875 0.579-1.404c0-0.569-0.193-1.047-0.579-1.434s-0.864-0.579-1.434-0.579c-0.529 0-0.987 0.193-1.373 0.579s-0.58 0.864-0.58 1.434c0 0.53 0.194 0.998 0.58 1.404 0.388 0.407 0.845 0.611 1.373 0.611zM12.216 11.79c0.691 0 1.292-0.254 1.8-0.763s0.762-1.107 0.762-1.8c0-0.732-0.255-1.343-0.762-1.831-0.509-0.489-1.109-0.732-1.8-0.732-0.732 0-1.342 0.244-1.831 0.732-0.488 0.488-0.732 1.098-0.732 1.831 0 0.693 0.244 1.292 0.732 1.8s1.099 0.763 1.831 0.763zM16.366 25.947c0.692 0 1.282-0.214 1.77-0.64s0.732-0.987 0.732-1.678-0.244-1.261-0.732-1.709c-0.489-0.448-1.078-0.671-1.77-0.671-0.65 0-1.21 0.223-1.678 0.671s-0.702 1.018-0.702 1.709c0 0.692 0.234 1.25 0.702 1.678s1.027 0.64 1.678 0.64zM19.113 9.592c0.651 0 1.129-0.203 1.433-0.611 0.305-0.406 0.459-0.874 0.459-1.404 0-0.488-0.154-0.947-0.459-1.373-0.304-0.427-0.782-0.641-1.433-0.641-0.529 0-1.008 0.193-1.434 0.58s-0.64 0.865-0.64 1.434c0 0.571 0.213 1.049 0.64 1.434 0.427 0.389 0.905 0.581 1.434 0.581zM24.848 12.826c0.57 0 1.067-0.213 1.495-0.64 0.427-0.427 0.64-0.947 0.64-1.556 0-0.57-0.214-1.068-0.64-1.495-0.428-0.427-0.927-0.64-1.495-0.64-0.611 0-1.129 0.213-1.555 0.64-0.428 0.427-0.642 0.926-0.642 1.495 0 0.611 0.213 1.129 0.642 1.556s0.947 0.64 1.555 0.64z"></path></svg>' |
|
}, |
|
function(e, t) { |
|
e.exports = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M13.725 30l3.9-5.325-3.9-1.125v6.45zM0 17.5l11.050 3.35 13.6-11.55-10.55 12.425 11.8 3.65 6.1-23.375-32 15.5z"></path></svg>' |
|
}, |
|
function(e, t) { |
|
e.exports = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M27.090 0.131h-22.731c-2.354 0-4.262 1.839-4.262 4.109v16.401c0 2.269 1.908 4.109 4.262 4.109h4.262v-2.706h8.469l-8.853 8.135 1.579 1.451 7.487-6.88h9.787c2.353 0 4.262-1.84 4.262-4.109v-16.401c0-2.27-1.909-4.109-4.262-4.109v0zM28.511 19.304c0 1.512-1.272 2.738-2.841 2.738h-8.425l-0.076-0.070-0.076 0.070h-11.311c-1.569 0-2.841-1.226-2.841-2.738v-13.696c0-1.513 1.272-2.739 2.841-2.739h19.889c1.569 0 2.841-0.142 2.841 1.37v15.064z"></path></svg>' |
|
}, |
|
function(e, t) { |
|
e.exports = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M27.128 0.38h-22.553c-2.336 0-4.229 1.825-4.229 4.076v16.273c0 2.251 1.893 4.076 4.229 4.076h4.229v-2.685h8.403l-8.784 8.072 1.566 1.44 7.429-6.827h9.71c2.335 0 4.229-1.825 4.229-4.076v-16.273c0-2.252-1.894-4.076-4.229-4.076zM28.538 19.403c0 1.5-1.262 2.717-2.819 2.717h-8.36l-0.076-0.070-0.076 0.070h-11.223c-1.557 0-2.819-1.217-2.819-2.717v-13.589c0-1.501 1.262-2.718 2.819-2.718h19.734c1.557 0 2.819-0.141 2.819 1.359v14.947zM9.206 10.557c-1.222 0-2.215 0.911-2.215 2.036s0.992 2.035 2.215 2.035c1.224 0 2.216-0.911 2.216-2.035s-0.992-2.036-2.216-2.036zM22.496 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.224 0 2.215-0.911 2.215-2.035s-0.991-2.036-2.215-2.036zM15.852 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.222 0 2.215-0.911 2.215-2.035s-0.992-2.036-2.215-2.036z"></path></svg>' |
|
}, |
|
function(e, t) { |
|
e.exports = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M22 16l-10.105-10.6-1.895 1.987 8.211 8.613-8.211 8.612 1.895 1.988 8.211-8.613z"></path></svg>' |
|
}, |
|
function(e, t) { |
|
e.exports = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 28"><path d="M28.633 17.104c0.035 0.21 0.026 0.463-0.026 0.76s-0.14 0.598-0.262 0.904c-0.122 0.306-0.271 0.581-0.445 0.825s-0.367 0.419-0.576 0.524c-0.209 0.105-0.393 0.157-0.55 0.157s-0.332-0.035-0.524-0.105c-0.175-0.052-0.393-0.1-0.655-0.144s-0.528-0.052-0.799-0.026c-0.271 0.026-0.541 0.083-0.812 0.17s-0.502 0.236-0.694 0.445c-0.419 0.437-0.664 0.934-0.734 1.493s0.009 1.092 0.236 1.598c0.175 0.349 0.148 0.699-0.079 1.048-0.105 0.14-0.271 0.284-0.498 0.432s-0.476 0.284-0.747 0.406-0.555 0.218-0.851 0.288c-0.297 0.070-0.559 0.105-0.786 0.105-0.157 0-0.306-0.061-0.445-0.183s-0.236-0.253-0.288-0.393h-0.026c-0.192-0.541-0.52-1.009-0.982-1.402s-1-0.589-1.611-0.589c-0.594 0-1.131 0.197-1.611 0.589s-0.816 0.851-1.009 1.375c-0.087 0.21-0.218 0.362-0.393 0.458s-0.367 0.144-0.576 0.144c-0.244 0-0.52-0.044-0.825-0.131s-0.611-0.197-0.917-0.327c-0.306-0.131-0.581-0.284-0.825-0.458s-0.428-0.349-0.55-0.524c-0.087-0.122-0.135-0.266-0.144-0.432s0.057-0.397 0.197-0.694c0.192-0.402 0.266-0.86 0.223-1.375s-0.266-0.991-0.668-1.428c-0.244-0.262-0.541-0.432-0.891-0.511s-0.681-0.109-0.995-0.092c-0.367 0.017-0.742 0.087-1.127 0.21-0.244 0.070-0.489 0.052-0.734-0.052-0.192-0.070-0.371-0.231-0.537-0.485s-0.314-0.533-0.445-0.838c-0.131-0.306-0.231-0.62-0.301-0.943s-0.087-0.59-0.052-0.799c0.052-0.384 0.227-0.629 0.524-0.734 0.524-0.21 0.995-0.555 1.415-1.035s0.629-1.017 0.629-1.611c0-0.611-0.21-1.144-0.629-1.598s-0.891-0.786-1.415-0.996c-0.157-0.052-0.288-0.179-0.393-0.38s-0.157-0.406-0.157-0.616c0-0.227 0.035-0.48 0.105-0.76s0.162-0.55 0.275-0.812 0.244-0.502 0.393-0.72c0.148-0.218 0.31-0.38 0.485-0.485 0.14-0.087 0.275-0.122 0.406-0.105s0.275 0.052 0.432 0.105c0.524 0.21 1.070 0.275 1.637 0.197s1.070-0.327 1.506-0.747c0.21-0.209 0.362-0.467 0.458-0.773s0.157-0.607 0.183-0.904c0.026-0.297 0.026-0.568 0-0.812s-0.048-0.419-0.065-0.524c-0.035-0.105-0.066-0.227-0.092-0.367s-0.013-0.262 0.039-0.367c0.105-0.244 0.293-0.458 0.563-0.642s0.563-0.336 0.878-0.458c0.314-0.122 0.62-0.214 0.917-0.275s0.533-0.092 0.707-0.092c0.227 0 0.406 0.074 0.537 0.223s0.223 0.301 0.275 0.458c0.192 0.471 0.507 0.886 0.943 1.244s0.952 0.537 1.546 0.537c0.611 0 1.153-0.17 1.624-0.511s0.803-0.773 0.996-1.297c0.070-0.14 0.179-0.284 0.327-0.432s0.301-0.223 0.458-0.223c0.244 0 0.511 0.035 0.799 0.105s0.572 0.166 0.851 0.288c0.279 0.122 0.537 0.279 0.773 0.472s0.423 0.402 0.563 0.629c0.087 0.14 0.113 0.293 0.079 0.458s-0.070 0.284-0.105 0.354c-0.227 0.506-0.297 1.039-0.21 1.598s0.341 1.048 0.76 1.467c0.419 0.419 0.934 0.651 1.546 0.694s1.179-0.057 1.703-0.301c0.14-0.087 0.31-0.122 0.511-0.105s0.371 0.096 0.511 0.236c0.262 0.244 0.493 0.616 0.694 1.113s0.336 1 0.406 1.506c0.035 0.297-0.013 0.528-0.144 0.694s-0.266 0.275-0.406 0.327c-0.542 0.192-1.004 0.528-1.388 1.009s-0.576 1.026-0.576 1.637c0 0.594 0.162 1.113 0.485 1.559s0.747 0.764 1.27 0.956c0.122 0.070 0.227 0.14 0.314 0.21 0.192 0.157 0.323 0.358 0.393 0.602v0zM16.451 19.462c0.786 0 1.528-0.149 2.227-0.445s1.305-0.707 1.821-1.231c0.515-0.524 0.921-1.131 1.218-1.821s0.445-1.428 0.445-2.214c0-0.786-0.148-1.524-0.445-2.214s-0.703-1.292-1.218-1.808c-0.515-0.515-1.122-0.921-1.821-1.218s-1.441-0.445-2.227-0.445c-0.786 0-1.524 0.148-2.214 0.445s-1.292 0.703-1.808 1.218c-0.515 0.515-0.921 1.118-1.218 1.808s-0.445 1.428-0.445 2.214c0 0.786 0.149 1.524 0.445 2.214s0.703 1.297 1.218 1.821c0.515 0.524 1.118 0.934 1.808 1.231s1.428 0.445 2.214 0.445v0z"></path></svg>' |
|
}, |
|
function(e, t) { |
|
e.exports = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 33"><path d="M24.965 24.38h-18.132c-1.366 0-2.478-1.113-2.478-2.478v-11.806c0-1.364 1.111-2.478 2.478-2.478h18.132c1.366 0 2.478 1.113 2.478 2.478v11.806c0 1.364-1.11 2.478-2.478 2.478zM6.833 10.097v11.806h18.134l-0.002-11.806h-18.132zM2.478 28.928h5.952c0.684 0 1.238-0.554 1.238-1.239 0-0.684-0.554-1.238-1.238-1.238h-5.952v-5.802c0-0.684-0.554-1.239-1.238-1.239s-1.239 0.556-1.239 1.239v5.802c0 1.365 1.111 2.478 2.478 2.478zM30.761 19.412c-0.684 0-1.238 0.554-1.238 1.238v5.801h-5.951c-0.686 0-1.239 0.554-1.239 1.238 0 0.686 0.554 1.239 1.239 1.239h5.951c1.366 0 2.478-1.111 2.478-2.478v-5.801c0-0.683-0.554-1.238-1.239-1.238zM0 5.55v5.802c0 0.683 0.554 1.238 1.238 1.238s1.238-0.555 1.238-1.238v-5.802h5.952c0.684 0 1.238-0.554 1.238-1.238s-0.554-1.238-1.238-1.238h-5.951c-1.366-0.001-2.478 1.111-2.478 2.476zM32 11.35v-5.801c0-1.365-1.11-2.478-2.478-2.478h-5.951c-0.686 0-1.239 0.554-1.239 1.238s0.554 1.238 1.239 1.238h5.951v5.801c0 0.683 0.554 1.237 1.238 1.237 0.686 0.002 1.239-0.553 1.239-1.236z"></path></svg>' |
|
}, |
|
function(e, t) { |
|
e.exports = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 33"><path d="M6.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v4h4c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333zM30.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h4v-4c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM30.667 12c-0.8 0-1.333-0.533-1.333-1.333v-4h-4c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM1.333 12c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333h-4v4c0 0.8-0.533 1.333-1.333 1.333z"></path></svg>' |
|
}, |
|
function(e, t) { |
|
e.exports = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 21 32"><path d="M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z"></path></svg>' |
|
}, |
|
function(e, t) { |
|
e.exports = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 21 32"><path d="M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z"></path></svg>' |
|
}, |
|
function(e, t) { |
|
e.exports = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 21 32"><path d="M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056z"></path></svg>' |
|
}, |
|
function(e, t) { |
|
e.exports = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 17 32"><path d="M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z"></path></svg>' |
|
}, |
|
function(e, t) { |
|
e.exports = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 16 32"><path d="M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z"></path></svg>' |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i = function() { |
|
function e(e, t) { |
|
for (var n = 0; n < t.length; n++) { |
|
var i = t[n]; |
|
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) |
|
} |
|
} |
|
return function(t, n, i) { |
|
return n && e(t.prototype, n), i && e(t, i), t |
|
} |
|
}(), |
|
a = r(n(2)), |
|
o = r(n(30)); |
|
|
|
function r(e) { |
|
return e && e.__esModule ? e : { |
|
default: e |
|
} |
|
} |
|
var s = function() { |
|
function e(t) { |
|
! function(e, t) { |
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") |
|
}(this, e), this.container = t.container, this.options = t.options, this.index = t.index, this.tran = t.tran, this.init() |
|
} |
|
return i(e, [{ |
|
key: "init", |
|
value: function() { |
|
this.container.innerHTML = (0, o.default)({ |
|
options: this.options, |
|
index: this.index, |
|
tran: this.tran, |
|
icons: a.default, |
|
video: { |
|
current: !0, |
|
pic: this.options.video.pic, |
|
screenshot: this.options.screenshot, |
|
preload: this.options.preload, |
|
url: this.options.video.url, |
|
subtitle: this.options.subtitle |
|
} |
|
}), this.volumeBar = this.container.querySelector(".dplayer-volume-bar-inner"), this.volumeBarWrap = this.container.querySelector(".dplayer-volume-bar"), this.volumeBarWrapWrap = this.container.querySelector(".dplayer-volume-bar-wrap"), this.volumeButton = this.container.querySelector(".dplayer-volume"), this.volumeButtonIcon = this.container.querySelector(".dplayer-volume-icon"), this.volumeIcon = this.container.querySelector(".dplayer-volume-icon .dplayer-icon-content"), this.playedBar = this.container.querySelector(".dplayer-played"), this.loadedBar = this.container.querySelector(".dplayer-loaded"), this.playedBarWrap = this.container.querySelector(".dplayer-bar-wrap"), this.playedBarTime = this.container.querySelector(".dplayer-bar-time"), this.danmaku = this.container.querySelector(".dplayer-danmaku"), this.danmakuLoading = this.container.querySelector(".dplayer-danloading"), this.video = this.container.querySelector(".dplayer-video-current"), this.bezel = this.container.querySelector(".dplayer-bezel-icon"), this.playButton = this.container.querySelector(".dplayer-play-icon"), this.videoWrap = this.container.querySelector(".dplayer-video-wrap"), this.controllerMask = this.container.querySelector(".dplayer-controller-mask"), this.ptime = this.container.querySelector(".dplayer-ptime"), this.settingButton = this.container.querySelector(".dplayer-setting-icon"), this.settingBox = this.container.querySelector(".dplayer-setting-box"), this.mask = this.container.querySelector(".dplayer-mask"), this.loop = this.container.querySelector(".dplayer-setting-loop"), this.loopToggle = this.container.querySelector(".dplayer-setting-loop .dplayer-toggle-setting-input"), this.showDanmaku = this.container.querySelector(".dplayer-setting-showdan"), this.showDanmakuToggle = this.container.querySelector(".dplayer-showdan-setting-input"), this.unlimitDanmaku = this.container.querySelector(".dplayer-setting-danunlimit"), this.unlimitDanmakuToggle = this.container.querySelector(".dplayer-danunlimit-setting-input"), this.speed = this.container.querySelector(".dplayer-setting-speed"), this.speedItem = this.container.querySelectorAll(".dplayer-setting-speed-item"), this.danmakuOpacityBar = this.container.querySelector(".dplayer-danmaku-bar-inner"), this.danmakuOpacityBarWrap = this.container.querySelector(".dplayer-danmaku-bar"), this.danmakuOpacityBarWrapWrap = this.container.querySelector(".dplayer-danmaku-bar-wrap"), this.danmakuOpacityBox = this.container.querySelector(".dplayer-setting-danmaku"), this.dtime = this.container.querySelector(".dplayer-dtime"), this.controller = this.container.querySelector(".dplayer-controller"), this.commentInput = this.container.querySelector(".dplayer-comment-input"), this.commentButton = this.container.querySelector(".dplayer-comment-icon"), this.commentSettingBox = this.container.querySelector(".dplayer-comment-setting-box"), this.commentSettingButton = this.container.querySelector(".dplayer-comment-setting-icon"), this.commentSettingFill = this.container.querySelector(".dplayer-comment-setting-icon path"), this.commentSendButton = this.container.querySelector(".dplayer-send-icon"), this.commentSendFill = this.container.querySelector(".dplayer-send-icon path"), this.commentColorSettingBox = this.container.querySelector(".dplayer-comment-setting-color"), this.browserFullButton = this.container.querySelector(".dplayer-full-icon"), this.webFullButton = this.container.querySelector(".dplayer-full-in-icon"), this.menu = this.container.querySelector(".dplayer-menu"), this.menuItem = this.container.querySelectorAll(".dplayer-menu-item"), this.qualityList = this.container.querySelector(".dplayer-quality-list"), this.camareButton = this.container.querySelector(".dplayer-camera-icon"), this.subtitleButton = this.container.querySelector(".dplayer-subtitle-icon"), this.subtitleButtonInner = this.container.querySelector(".dplayer-subtitle-icon .dplayer-icon-content"), this.subtitle = this.container.querySelector(".dplayer-subtitle"), this.qualityButton = this.container.querySelector(".dplayer-quality-icon"), this.barPreview = this.container.querySelector(".dplayer-bar-preview"), this.barWrap = this.container.querySelector(".dplayer-bar-wrap"), this.notice = this.container.querySelector(".dplayer-notice"), this.infoPanel = this.container.querySelector(".dplayer-info-panel"), this.infoPanelClose = this.container.querySelector(".dplayer-info-panel-close"), this.infoVersion = this.container.querySelector(".dplayer-info-panel-item-version .dplayer-info-panel-item-data"), this.infoFPS = this.container.querySelector(".dplayer-info-panel-item-fps .dplayer-info-panel-item-data"), this.infoType = this.container.querySelector(".dplayer-info-panel-item-type .dplayer-info-panel-item-data"), this.infoUrl = this.container.querySelector(".dplayer-info-panel-item-url .dplayer-info-panel-item-data"), this.infoResolution = this.container.querySelector(".dplayer-info-panel-item-resolution .dplayer-info-panel-item-data"), this.infoDuration = this.container.querySelector(".dplayer-info-panel-item-duration .dplayer-info-panel-item-data"), this.infoDanmakuId = this.container.querySelector(".dplayer-info-panel-item-danmaku-id .dplayer-info-panel-item-data"), this.infoDanmakuApi = this.container.querySelector(".dplayer-info-panel-item-danmaku-api .dplayer-info-panel-item-data"), this.infoDanmakuAmount = this.container.querySelector(".dplayer-info-panel-item-danmaku-amount .dplayer-info-panel-item-data") |
|
} |
|
}]), e |
|
}(); |
|
t.default = s |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i = { |
|
"zh-cn": { |
|
"Danmaku is loading": "弹幕加载中", |
|
Top: "顶部", |
|
Bottom: "底部", |
|
Rolling: "滚动", |
|
"Input danmaku, hit Enter": "输入弹幕,回车发送", |
|
"About Yimian": "关于Yimian", |
|
"DPlayer feedback": "播放器意见反馈", |
|
"About DPlayer": "关于 DPlayer 播放器", |
|
Loop: "洗脑循环", |
|
Speed: "速度", |
|
"Opacity for danmaku": "弹幕透明度", |
|
Normal: "正常", |
|
"Please input danmaku content!": "要输入弹幕内容啊喂!", |
|
"Set danmaku color": "设置弹幕颜色", |
|
"Set danmaku type": "设置弹幕类型", |
|
"Show danmaku": "显示弹幕", |
|
"Video load failed": "视频加载失败", |
|
"Danmaku load failed": "弹幕加载失败", |
|
"Danmaku send failed": "弹幕发送失败", |
|
"Switching to": "正在切换至", |
|
"Switched to": "已经切换至", |
|
quality: "画质", |
|
FF: "快进", |
|
REW: "快退", |
|
"Unlimited danmaku": "海量弹幕", |
|
"Send danmaku": "发送弹幕", |
|
Setting: "设置", |
|
"Full screen": "全屏", |
|
"Web full screen": "页面全屏", |
|
Send: "发送", |
|
Screenshot: "截图", |
|
s: "秒", |
|
"Show subtitle": "显示字幕", |
|
"Hide subtitle": "隐藏字幕", |
|
Volume: "音量", |
|
Live: "直播", |
|
"Video info": "视频统计信息" |
|
}, |
|
"zh-tw": { |
|
"Danmaku is loading": "彈幕載入中", |
|
Top: "頂部", |
|
Bottom: "底部", |
|
Rolling: "滾動", |
|
"Input danmaku, hit Enter": "輸入彈幕,Enter 發送", |
|
"About author": "關於作者", |
|
"DPlayer feedback": "播放器意見回饋", |
|
"About DPlayer": "關於 DPlayer 播放器", |
|
Loop: "循環播放", |
|
Speed: "速度", |
|
"Opacity for danmaku": "彈幕透明度", |
|
Normal: "正常", |
|
"Please input danmaku content!": "請輸入彈幕內容啊!", |
|
"Set danmaku color": "設定彈幕顏色", |
|
"Set danmaku type": "設定彈幕類型", |
|
"Show danmaku": "顯示彈幕", |
|
"Video load failed": "影片載入失敗", |
|
"Danmaku load failed": "彈幕載入失敗", |
|
"Danmaku send failed": "彈幕發送失敗", |
|
"Switching to": "正在切換至", |
|
"Switched to": "已經切換至", |
|
quality: "畫質", |
|
FF: "快進", |
|
REW: "快退", |
|
"Unlimited danmaku": "巨量彈幕", |
|
"Send danmaku": "發送彈幕", |
|
Setting: "設定", |
|
"Full screen": "全螢幕", |
|
"Web full screen": "頁面全螢幕", |
|
Send: "發送", |
|
Screenshot: "截圖", |
|
s: "秒", |
|
"Show subtitle": "顯示字幕", |
|
"Hide subtitle": "隱藏字幕", |
|
Volume: "音量", |
|
Live: "直播", |
|
"Video info": "影片統計訊息" |
|
} |
|
}; |
|
t.default = function(e) { |
|
var t = this; |
|
this.lang = e, this.tran = function(e) { |
|
return i[t.lang] && i[t.lang][e] ? i[t.lang][e] : e |
|
} |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
e.exports = function(e) { |
|
return function(t) { |
|
return e.apply(null, t) |
|
} |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
var i = n(7); |
|
|
|
function a(e) { |
|
if ("function" != typeof e) throw new TypeError("executor must be a function."); |
|
var t; |
|
this.promise = new Promise(function(e) { |
|
t = e |
|
}); |
|
var n = this; |
|
e(function(e) { |
|
n.reason || (n.reason = new i(e), t(n.reason)) |
|
}) |
|
} |
|
a.prototype.throwIfRequested = function() { |
|
if (this.reason) throw this.reason |
|
}, a.source = function() { |
|
var e; |
|
return { |
|
token: new a(function(t) { |
|
e = t |
|
}), |
|
cancel: e |
|
} |
|
}, e.exports = a |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
e.exports = function(e, t) { |
|
return t ? e.replace(/\/+$/, "") + "/" + t.replace(/^\/+/, "") : e |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
e.exports = function(e) { |
|
return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e) |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
var i = n(0); |
|
e.exports = function(e, t, n) { |
|
return i.forEach(n, function(n) { |
|
e = n(e, t) |
|
}), e |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
var i = n(0), |
|
a = n(53), |
|
o = n(8), |
|
r = n(3), |
|
s = n(52), |
|
l = n(51); |
|
|
|
function c(e) { |
|
e.cancelToken && e.cancelToken.throwIfRequested() |
|
} |
|
e.exports = function(e) { |
|
return c(e), e.baseURL && !s(e.url) && (e.url = l(e.baseURL, e.url)), e.headers = e.headers || {}, e.data = a(e.data, e.headers, e.transformRequest), e.headers = i.merge(e.headers.common || {}, e.headers[e.method] || {}, e.headers || {}), i.forEach(["delete", "get", "head", "post", "put", "patch", "common"], function(t) { |
|
delete e.headers[t] |
|
}), (e.adapter || r.adapter)(e).then(function(t) { |
|
return c(e), t.data = a(t.data, t.headers, e.transformResponse), t |
|
}, function(t) { |
|
return o(t) || (c(e), t && t.response && (t.response.data = a(t.response.data, t.response.headers, e.transformResponse))), Promise.reject(t) |
|
}) |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
var i = n(0); |
|
|
|
function a() { |
|
this.handlers = [] |
|
} |
|
a.prototype.use = function(e, t) { |
|
return this.handlers.push({ |
|
fulfilled: e, |
|
rejected: t |
|
}), this.handlers.length - 1 |
|
}, a.prototype.eject = function(e) { |
|
this.handlers[e] && (this.handlers[e] = null) |
|
}, a.prototype.forEach = function(e) { |
|
i.forEach(this.handlers, function(t) { |
|
null !== t && e(t) |
|
}) |
|
}, e.exports = a |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
var i = n(0); |
|
e.exports = i.isStandardBrowserEnv() ? { |
|
write: function(e, t, n, a, o, r) { |
|
var s = []; |
|
s.push(e + "=" + encodeURIComponent(t)), i.isNumber(n) && s.push("expires=" + new Date(n).toGMTString()), i.isString(a) && s.push("path=" + a), i.isString(o) && s.push("domain=" + o), !0 === r && s.push("secure"), document.cookie = s.join("; ") |
|
}, |
|
read: function(e) { |
|
var t = document.cookie.match(new RegExp("(^|;\\s*)(" + e + ")=([^;]*)")); |
|
return t ? decodeURIComponent(t[3]) : null |
|
}, |
|
remove: function(e) { |
|
this.write(e, "", Date.now() - 864e5) |
|
} |
|
} : { |
|
write: function() {}, |
|
read: function() { |
|
return null |
|
}, |
|
remove: function() {} |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
var i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; |
|
|
|
function a() { |
|
this.message = "String contains an invalid character" |
|
} |
|
a.prototype = new Error, a.prototype.code = 5, a.prototype.name = "InvalidCharacterError", e.exports = function(e) { |
|
for (var t, n, o = String(e), r = "", s = 0, l = i; o.charAt(0 | s) || (l = "=", s % 1); r += l.charAt(63 & t >> 8 - s % 1 * 8)) { |
|
if ((n = o.charCodeAt(s += .75)) > 255) throw new a; |
|
t = t << 8 | n |
|
} |
|
return r |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
var i = n(0); |
|
e.exports = i.isStandardBrowserEnv() ? function() { |
|
var e, t = /(msie|trident)/i.test(navigator.userAgent), |
|
n = document.createElement("a"); |
|
|
|
function a(e) { |
|
var i = e; |
|
return t && (n.setAttribute("href", i), i = n.href), n.setAttribute("href", i), { |
|
href: n.href, |
|
protocol: n.protocol ? n.protocol.replace(/:$/, "") : "", |
|
host: n.host, |
|
search: n.search ? n.search.replace(/^\?/, "") : "", |
|
hash: n.hash ? n.hash.replace(/^#/, "") : "", |
|
hostname: n.hostname, |
|
port: n.port, |
|
pathname: "/" === n.pathname.charAt(0) ? n.pathname : "/" + n.pathname |
|
} |
|
} |
|
return e = a(window.location.href), |
|
function(t) { |
|
var n = i.isString(t) ? a(t) : t; |
|
return n.protocol === e.protocol && n.host === e.host |
|
} |
|
}() : function() { |
|
return !0 |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
var i = n(0), |
|
a = ["age", "authorization", "content-length", "content-type", "etag", "expires", "from", "host", "if-modified-since", "if-unmodified-since", "last-modified", "location", "max-forwards", "proxy-authorization", "referer", "retry-after", "user-agent"]; |
|
e.exports = function(e) { |
|
var t, n, o, r = {}; |
|
return e ? (i.forEach(e.split("\n"), function(e) { |
|
if (o = e.indexOf(":"), t = i.trim(e.substr(0, o)).toLowerCase(), n = i.trim(e.substr(o + 1)), t) { |
|
if (r[t] && a.indexOf(t) >= 0) return; |
|
r[t] = "set-cookie" === t ? (r[t] ? r[t] : []).concat([n]) : r[t] ? r[t] + ", " + n : n |
|
} |
|
}), r) : r |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
var i = n(0); |
|
|
|
function a(e) { |
|
return encodeURIComponent(e).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]") |
|
} |
|
e.exports = function(e, t, n) { |
|
if (!t) return e; |
|
var o; |
|
if (n) o = n(t); |
|
else if (i.isURLSearchParams(t)) o = t.toString(); |
|
else { |
|
var r = []; |
|
i.forEach(t, function(e, t) { |
|
null !== e && void 0 !== e && (i.isArray(e) ? t += "[]" : e = [e], i.forEach(e, function(e) { |
|
i.isDate(e) ? e = e.toISOString() : i.isObject(e) && (e = JSON.stringify(e)), r.push(a(t) + "=" + a(e)) |
|
})) |
|
}), o = r.join("&") |
|
} |
|
return o && (e += (-1 === e.indexOf("?") ? "?" : "&") + o), e |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
e.exports = function(e, t, n, i, a) { |
|
return e.config = t, n && (e.code = n), e.request = i, e.response = a, e |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
var i = n(9); |
|
e.exports = function(e, t, n) { |
|
var a = n.config.validateStatus; |
|
n.status && a && !a(n.status) ? t(i("Request failed with status code " + n.status, n.config, null, n.request, n)) : e(n) |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
var i = n(0); |
|
e.exports = function(e, t) { |
|
i.forEach(e, function(n, i) { |
|
i !== t && i.toUpperCase() === t.toUpperCase() && (e[t] = n, delete e[i]) |
|
}) |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
var i = n(3), |
|
a = n(0), |
|
o = n(55), |
|
r = n(54); |
|
|
|
function s(e) { |
|
this.defaults = e, this.interceptors = { |
|
request: new o, |
|
response: new o |
|
} |
|
} |
|
s.prototype.request = function(e) { |
|
"string" == typeof e && (e = a.merge({ |
|
url: arguments[0] |
|
}, arguments[1])), (e = a.merge(i, { |
|
method: "get" |
|
}, this.defaults, e)).method = e.method.toLowerCase(); |
|
var t = [r, void 0], |
|
n = Promise.resolve(e); |
|
for (this.interceptors.request.forEach(function(e) { |
|
t.unshift(e.fulfilled, e.rejected) |
|
}), this.interceptors.response.forEach(function(e) { |
|
t.push(e.fulfilled, e.rejected) |
|
}); t.length;) n = n.then(t.shift(), t.shift()); |
|
return n |
|
}, a.forEach(["delete", "get", "head", "options"], function(e) { |
|
s.prototype[e] = function(t, n) { |
|
return this.request(a.merge(n || {}, { |
|
method: e, |
|
url: t |
|
})) |
|
} |
|
}), a.forEach(["post", "put", "patch"], function(e) { |
|
s.prototype[e] = function(t, n, i) { |
|
return this.request(a.merge(i || {}, { |
|
method: e, |
|
url: t, |
|
data: n |
|
})) |
|
} |
|
}), e.exports = s |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
|
|
function i(e) { |
|
return !!e.constructor && "function" == typeof e.constructor.isBuffer && e.constructor.isBuffer(e) |
|
} |
|
e.exports = function(e) { |
|
return null != e && (i(e) || function(e) { |
|
return "function" == typeof e.readFloatLE && "function" == typeof e.slice && i(e.slice(0, 0)) |
|
}(e) || !!e._isBuffer) |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
var i = n(0), |
|
a = n(11), |
|
o = n(64), |
|
r = n(3); |
|
|
|
function s(e) { |
|
var t = new o(e), |
|
n = a(o.prototype.request, t); |
|
return i.extend(n, o.prototype, t), i.extend(n, t), n |
|
} |
|
var l = s(r); |
|
l.Axios = o, l.create = function(e) { |
|
return s(i.merge(r, e)) |
|
}, l.Cancel = n(7), l.CancelToken = n(50), l.isCancel = n(8), l.all = function(e) { |
|
return Promise.all(e) |
|
}, l.spread = n(49), e.exports = l, e.exports.default = l |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
e.exports = n(66) |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i, a = n(67), |
|
o = (i = a) && i.__esModule ? i : { |
|
default: i |
|
}; |
|
t.default = { |
|
send: function(e) { |
|
o.default.post(e.url, e.data).then(function(t) { |
|
var n = t.data; |
|
n && 0 === n.code ? e.success && e.success(n) : e.error && e.error(n && n.msg) |
|
}).catch(function(t) { |
|
console.error(t), e.error && e.error() |
|
}) |
|
}, |
|
read: function(e) { |
|
o.default.get(e.url).then(function(t) { |
|
var n = t.data; |
|
n && 0 === n.code ? e.success && e.success(n.data.map(function(e) { |
|
return { |
|
time: e[0], |
|
type: e[1], |
|
color: e[2], |
|
author: e[3], |
|
text: e[4] |
|
} |
|
})) : e.error && e.error(n && n.msg) |
|
}).catch(function(t) { |
|
console.error(t), e.error && e.error() |
|
}) |
|
} |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i, a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { |
|
return typeof e |
|
} : function(e) { |
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e |
|
}, |
|
o = n(68), |
|
r = (i = o) && i.__esModule ? i : { |
|
default: i |
|
}; |
|
t.default = function(e) { |
|
var t = { |
|
container: e.element || document.getElementsByClassName("dplayer")[0], |
|
live: !1, |
|
autoplay: !1, |
|
theme: "#b7daff", |
|
loop: !1, |
|
lang: (navigator.language || navigator.browserLanguage).toLowerCase(), |
|
screenshot: !1, |
|
hotkey: !0, |
|
preload: "metadata", |
|
volume: .7, |
|
apiBackend: r.default, |
|
video: {}, |
|
contextmenu: [], |
|
mutex: !0 |
|
}; |
|
for (var n in t) t.hasOwnProperty(n) && !e.hasOwnProperty(n) && (e[n] = t[n]); |
|
return e.video && !e.video.type && (e.video.type = "auto"), "object" === a(e.danmaku) && e.danmaku && !e.danmaku.user && (e.danmaku.user = "DIYgod"), e.subtitle && (!e.subtitle.type && (e.subtitle.type = "webvtt"), !e.subtitle.fontSize && (e.subtitle.fontSize = "20px"), !e.subtitle.bottom && (e.subtitle.bottom = "40px"), !e.subtitle.color && (e.subtitle.color = "#fff")), e.video.quality && (e.video.url = e.video.quality[e.video.defaultQuality].url), e.lang && (e.lang = e.lang.toLowerCase()), e.contextmenu = e.contextmenu.concat([{ |
|
text: "Video info", |
|
click: function(e) { |
|
e.infoPanel.triggle() |
|
} |
|
}, { |
|
text: "About Yimian", |
|
link: "https://www.yimian.xyz" |
|
}, { |
|
text: "DPlayer v1.25.0&author", |
|
link: "https://cn.yimian.xyz/etc/dplayer" |
|
}]), e |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}), t.default = function(e) { |
|
var t = this.constructor; |
|
return this.then(function(n) { |
|
return t.resolve(e()).then(function() { |
|
return n |
|
}) |
|
}, function(n) { |
|
return t.resolve(e()).then(function() { |
|
return t.reject(n) |
|
}) |
|
}) |
|
} |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
(function(e, t) { |
|
! function(e, n) { |
|
if (!e.setImmediate) { |
|
var i, a, o, r, s, l = 1, |
|
c = {}, |
|
u = !1, |
|
d = e.document, |
|
p = Object.getPrototypeOf && Object.getPrototypeOf(e); |
|
p = p && p.setTimeout ? p : e, "[object process]" === {}.toString.call(e.process) ? i = function(e) { |
|
t.nextTick(function() { |
|
f(e) |
|
}) |
|
} : ! function() { |
|
if (e.postMessage && !e.importScripts) { |
|
var t = !0, |
|
n = e.onmessage; |
|
return e.onmessage = function() { |
|
t = !1 |
|
}, e.postMessage("", "*"), e.onmessage = n, t |
|
} |
|
}() ? e.MessageChannel ? ((o = new MessageChannel).port1.onmessage = function(e) { |
|
f(e.data) |
|
}, i = function(e) { |
|
o.port2.postMessage(e) |
|
}) : d && "onreadystatechange" in d.createElement("script") ? (a = d.documentElement, i = function(e) { |
|
var t = d.createElement("script"); |
|
t.onreadystatechange = function() { |
|
f(e), t.onreadystatechange = null, a.removeChild(t), t = null |
|
}, a.appendChild(t) |
|
}) : i = function(e) { |
|
setTimeout(f, 0, e) |
|
} : (r = "setImmediate$" + Math.random() + "$", s = function(t) { |
|
t.source === e && "string" == typeof t.data && 0 === t.data.indexOf(r) && f(+t.data.slice(r.length)) |
|
}, e.addEventListener ? e.addEventListener("message", s, !1) : e.attachEvent("onmessage", s), i = function(t) { |
|
e.postMessage(r + t, "*") |
|
}), p.setImmediate = function(e) { |
|
"function" != typeof e && (e = new Function("" + e)); |
|
for (var t = new Array(arguments.length - 1), n = 0; n < t.length; n++) t[n] = arguments[n + 1]; |
|
var a = { |
|
callback: e, |
|
args: t |
|
}; |
|
return c[l] = a, i(l), l++ |
|
}, p.clearImmediate = h |
|
} |
|
|
|
function h(e) { |
|
delete c[e] |
|
} |
|
|
|
function f(e) { |
|
if (u) setTimeout(f, 0, e); |
|
else { |
|
var t = c[e]; |
|
if (t) { |
|
u = !0; |
|
try { |
|
! function(e) { |
|
var t = e.callback, |
|
i = e.args; |
|
switch (i.length) { |
|
case 0: |
|
t(); |
|
break; |
|
case 1: |
|
t(i[0]); |
|
break; |
|
case 2: |
|
t(i[0], i[1]); |
|
break; |
|
case 3: |
|
t(i[0], i[1], i[2]); |
|
break; |
|
default: |
|
t.apply(n, i) |
|
} |
|
}(t) |
|
} finally { |
|
h(e), u = !1 |
|
} |
|
} |
|
} |
|
} |
|
}("undefined" == typeof self ? void 0 === e ? void 0 : e : self) |
|
}).call(this, n(4), n(12)) |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
var i = Function.prototype.apply; |
|
|
|
function a(e, t) { |
|
this._id = e, this._clearFn = t |
|
} |
|
t.setTimeout = function() { |
|
return new a(i.call(setTimeout, window, arguments), clearTimeout) |
|
}, t.setInterval = function() { |
|
return new a(i.call(setInterval, window, arguments), clearInterval) |
|
}, t.clearTimeout = t.clearInterval = function(e) { |
|
e && e.close() |
|
}, a.prototype.unref = a.prototype.ref = function() {}, a.prototype.close = function() { |
|
this._clearFn.call(window, this._id) |
|
}, t.enroll = function(e, t) { |
|
clearTimeout(e._idleTimeoutId), e._idleTimeout = t |
|
}, t.unenroll = function(e) { |
|
clearTimeout(e._idleTimeoutId), e._idleTimeout = -1 |
|
}, t._unrefActive = t.active = function(e) { |
|
clearTimeout(e._idleTimeoutId); |
|
var t = e._idleTimeout; |
|
t >= 0 && (e._idleTimeoutId = setTimeout(function() { |
|
e._onTimeout && e._onTimeout() |
|
}, t)) |
|
}, n(71), t.setImmediate = setImmediate, t.clearImmediate = clearImmediate |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
(function(e) { |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i, a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { |
|
return typeof e |
|
} : function(e) { |
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e |
|
}, |
|
o = n(70), |
|
r = (i = o) && i.__esModule ? i : { |
|
default: i |
|
}; |
|
var s = setTimeout; |
|
|
|
function l() {} |
|
|
|
function c(e) { |
|
if (!(this instanceof c)) throw new TypeError("Promises must be constructed via new"); |
|
if ("function" != typeof e) throw new TypeError("not a function"); |
|
this._state = 0, this._handled = !1, this._value = void 0, this._deferreds = [], f(e, this) |
|
} |
|
|
|
function u(e, t) { |
|
for (; 3 === e._state;) e = e._value; |
|
0 !== e._state ? (e._handled = !0, c._immediateFn(function() { |
|
var n = 1 === e._state ? t.onFulfilled : t.onRejected; |
|
if (null !== n) { |
|
var i; |
|
try { |
|
i = n(e._value) |
|
} catch (e) { |
|
return void p(t.promise, e) |
|
} |
|
d(t.promise, i) |
|
} else(1 === e._state ? d : p)(t.promise, e._value) |
|
})) : e._deferreds.push(t) |
|
} |
|
|
|
function d(e, t) { |
|
try { |
|
if (t === e) throw new TypeError("A promise cannot be resolved with itself."); |
|
if (t && ("object" === (void 0 === t ? "undefined" : a(t)) || "function" == typeof t)) { |
|
var n = t.then; |
|
if (t instanceof c) return e._state = 3, e._value = t, void h(e); |
|
if ("function" == typeof n) return void f((i = n, o = t, function() { |
|
i.apply(o, arguments) |
|
}), e) |
|
} |
|
e._state = 1, e._value = t, h(e) |
|
} catch (t) { |
|
p(e, t) |
|
} |
|
var i, o |
|
} |
|
|
|
function p(e, t) { |
|
e._state = 2, e._value = t, h(e) |
|
} |
|
|
|
function h(e) { |
|
2 === e._state && 0 === e._deferreds.length && c._immediateFn(function() { |
|
e._handled || c._unhandledRejectionFn(e._value) |
|
}); |
|
for (var t = 0, n = e._deferreds.length; t < n; t++) u(e, e._deferreds[t]); |
|
e._deferreds = null |
|
} |
|
|
|
function f(e, t) { |
|
var n = !1; |
|
try { |
|
e(function(e) { |
|
n || (n = !0, d(t, e)) |
|
}, function(e) { |
|
n || (n = !0, p(t, e)) |
|
}) |
|
} catch (e) { |
|
if (n) return; |
|
n = !0, p(t, e) |
|
} |
|
} |
|
c.prototype.catch = function(e) { |
|
return this.then(null, e) |
|
}, c.prototype.then = function(e, t) { |
|
var n = new this.constructor(l); |
|
return u(this, new function(e, t, n) { |
|
this.onFulfilled = "function" == typeof e ? e : null, this.onRejected = "function" == typeof t ? t : null, this.promise = n |
|
}(e, t, n)), n |
|
}, c.prototype.finally = r.default, c.all = function(e) { |
|
return new c(function(t, n) { |
|
if (!e || void 0 === e.length) throw new TypeError("Promise.all accepts an array"); |
|
var i = Array.prototype.slice.call(e); |
|
if (0 === i.length) return t([]); |
|
var o = i.length; |
|
|
|
function r(e, s) { |
|
try { |
|
if (s && ("object" === (void 0 === s ? "undefined" : a(s)) || "function" == typeof s)) { |
|
var l = s.then; |
|
if ("function" == typeof l) return void l.call(s, function(t) { |
|
r(e, t) |
|
}, n) |
|
} |
|
i[e] = s, 0 == --o && t(i) |
|
} catch (e) { |
|
n(e) |
|
} |
|
} |
|
for (var s = 0; s < i.length; s++) r(s, i[s]) |
|
}) |
|
}, c.resolve = function(e) { |
|
return e && "object" === (void 0 === e ? "undefined" : a(e)) && e.constructor === c ? e : new c(function(t) { |
|
t(e) |
|
}) |
|
}, c.reject = function(e) { |
|
return new c(function(t, n) { |
|
n(e) |
|
}) |
|
}, c.race = function(e) { |
|
return new c(function(t, n) { |
|
for (var i = 0, a = e.length; i < a; i++) e[i].then(t, n) |
|
}) |
|
}, c._immediateFn = "function" == typeof e && function(t) { |
|
e(t) |
|
} || function(e) { |
|
s(e, 0) |
|
}, c._unhandledRejectionFn = function(e) { |
|
"undefined" != typeof console && console && console.warn("Possible Unhandled Promise Rejection:", e) |
|
}, t.default = c |
|
}).call(this, n(72).setImmediate) |
|
}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}); |
|
var i = function() { |
|
function e(e, t) { |
|
for (var n = 0; n < t.length; n++) { |
|
var i = t[n]; |
|
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) |
|
} |
|
} |
|
return function(t, n, i) { |
|
return n && e(t.prototype, n), i && e(t, i), t |
|
} |
|
}(), |
|
a = L(n(73)), |
|
o = L(n(1)), |
|
r = L(n(69)), |
|
s = L(n(48)), |
|
l = L(n(47)), |
|
c = L(n(2)), |
|
u = L(n(27)), |
|
d = L(n(26)), |
|
p = L(n(25)), |
|
h = L(n(24)), |
|
f = L(n(23)), |
|
y = L(n(22)), |
|
m = L(n(21)), |
|
v = L(n(20)), |
|
g = L(n(19)), |
|
b = L(n(17)), |
|
w = L(n(16)), |
|
k = L(n(15)), |
|
x = L(n(14)), |
|
S = L(n(13)), |
|
T = L(n(5)); |
|
|
|
function L(e) { |
|
return e && e.__esModule ? e : { |
|
default: e |
|
} |
|
} |
|
var E = 0, |
|
M = [], |
|
_ = function() { |
|
function e(t) { |
|
var n = this; |
|
! function(e, t) { |
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") |
|
}(this, e), this.options = (0, r.default)(t), this.options.video.quality && (this.qualityIndex = this.options.video.defaultQuality, this.quality = this.options.video.quality[this.options.video.defaultQuality]), this.tran = new s.default(this.options.lang).tran, this.events = new d.default, this.user = new h.default(this), this.container = this.options.container, this.container.classList.add("dplayer"), this.options.danmaku || this.container.classList.add("dplayer-no-danmaku"), this.options.live && this.container.classList.add("dplayer-live"), o.default.isMobile && this.container.classList.add("dplayer-mobile"), this.arrow = this.container.offsetWidth <= 500, this.arrow && this.container.classList.add("dplayer-arrow"), this.template = new l.default({ |
|
container: this.container, |
|
options: this.options, |
|
index: E, |
|
tran: this.tran |
|
}), this.video = this.template.video, this.bar = new y.default(this.template), this.bezel = new v.default(this.template.bezel), this.fullScreen = new p.default(this), this.controller = new g.default(this), this.options.danmaku && (this.danmaku = new u.default({ |
|
container: this.template.danmaku, |
|
opacity: this.user.get("opacity"), |
|
callback: function() { |
|
setTimeout(function() { |
|
n.template.danmakuLoading.style.display = "none", n.options.autoplay && n.play() |
|
}, 0) |
|
}, |
|
error: function(e) { |
|
n.notice(e) |
|
}, |
|
apiBackend: this.options.apiBackend, |
|
borderColor: this.options.theme, |
|
height: this.arrow ? 24 : 30, |
|
time: function() { |
|
return n.video.currentTime |
|
}, |
|
unlimited: this.user.get("unlimited"), |
|
api: { |
|
id: this.options.danmaku.id, |
|
address: this.options.danmaku.api, |
|
token: this.options.danmaku.token, |
|
maximum: this.options.danmaku.maximum, |
|
addition: this.options.danmaku.addition, |
|
user: this.options.danmaku.user |
|
}, |
|
events: this.events, |
|
tran: function(e) { |
|
return n.tran(e) |
|
} |
|
}), this.comment = new w.default(this)), this.setting = new b.default(this), document.addEventListener("click", function() { |
|
n.focus = !1 |
|
}, !0), this.container.addEventListener("click", function() { |
|
n.focus = !0 |
|
}, !0), this.paused = !0, this.timer = new m.default(this), this.hotkey = new k.default(this), this.contextmenu = new x.default(this), this.initVideo(this.video, this.quality && this.quality.type || this.options.video.type), this.infoPanel = new S.default(this), !this.danmaku && this.options.autoplay && this.play(), E++, M.push(this) |
|
} |
|
return i(e, [{ |
|
key: "seek", |
|
value: function(e) { |
|
e = Math.max(e, 0), this.video.duration && (e = Math.min(e, this.video.duration)), this.video.currentTime < e ? this.notice(this.tran("FF") + " " + (e - this.video.currentTime).toFixed(0) + " " + this.tran("s")) : this.video.currentTime > e && this.notice(this.tran("REW") + " " + (this.video.currentTime - e).toFixed(0) + " " + this.tran("s")), this.video.currentTime = e, this.danmaku && this.danmaku.seek(), this.bar.set("played", e / this.video.duration, "width"), this.template.ptime.innerHTML = o.default.secondToTime(e) |
|
} |
|
}, { |
|
key: "play", |
|
value: function() { |
|
var e = this; |
|
if (this.paused = !1, this.video.paused && this.bezel.switch(c.default.play), this.template.playButton.innerHTML = c.default.pause, a.default.resolve(this.video.play()).catch(function() { |
|
e.pause() |
|
}).then(function() {}), this.timer.enable("loading"), this.container.classList.remove("dplayer-paused"), this.container.classList.add("dplayer-playing"), this.danmaku && this.danmaku.play(), this.options.mutex) |
|
for (var t = 0; t < M.length; t++) this !== M[t] && M[t].pause() |
|
} |
|
}, { |
|
key: "pause", |
|
value: function() { |
|
this.paused = !0, this.container.classList.remove("dplayer-loading"), this.video.paused || this.bezel.switch(c.default.pause), this.template.playButton.innerHTML = c.default.play, this.video.pause(), this.timer.disable("loading"), this.container.classList.remove("dplayer-playing"), this.container.classList.add("dplayer-paused"), this.danmaku && this.danmaku.pause() |
|
} |
|
}, { |
|
key: "switchVolumeIcon", |
|
value: function() { |
|
this.volume() >= .95 ? this.template.volumeIcon.innerHTML = c.default.volumeUp : this.volume() > 0 ? this.template.volumeIcon.innerHTML = c.default.volumeDown : this.template.volumeIcon.innerHTML = c.default.volumeOff |
|
} |
|
}, { |
|
key: "volume", |
|
value: function(e, t, n) { |
|
if (e = parseFloat(e), !isNaN(e)) { |
|
e = Math.max(e, 0), e = Math.min(e, 1), this.bar.set("volume", e, "width"); |
|
var i = (100 * e).toFixed(0) + "%"; |
|
this.template.volumeBarWrapWrap.dataset.balloon = i, t || this.user.set("volume", e), n || this.notice(this.tran("Volume") + " " + (100 * e).toFixed(0) + "%"), this.video.volume = e, this.video.muted && (this.video.muted = !1), this.switchVolumeIcon() |
|
} |
|
return this.video.volume |
|
} |
|
}, { |
|
key: "toggle", |
|
value: function() { |
|
this.video.paused ? this.play() : this.pause() |
|
} |
|
}, { |
|
key: "on", |
|
value: function(e, t) { |
|
this.events.on(e, t) |
|
} |
|
}, { |
|
key: "switchVideo", |
|
value: function(e, t) { |
|
this.pause(), this.video.poster = e.pic ? e.pic : "", this.video.src = e.url, this.initMSE(this.video, e.type || "auto"), t && (this.template.danmakuLoading.style.display = "block", this.bar.set("played", 0, "width"), this.bar.set("loaded", 0, "width"), this.template.ptime.innerHTML = "00:00", this.template.danmaku.innerHTML = "", this.danmaku && this.danmaku.reload({ |
|
id: t.id, |
|
address: t.api, |
|
token: t.token, |
|
maximum: t.maximum, |
|
addition: t.addition, |
|
user: t.user |
|
})) |
|
} |
|
}, { |
|
key: "initMSE", |
|
value: function(e, t) { |
|
var n = this; |
|
if (this.type = t, this.options.video.customType && this.options.video.customType[t]) "[object Function]" === Object.prototype.toString.call(this.options.video.customType[t]) ? this.options.video.customType[t](this.video, this) : console.error("Illegal customType: " + t); |
|
else switch ("auto" === this.type && (/m3u8(#|\?|$)/i.exec(e.src) ? this.type = "hls" : /.flv(#|\?|$)/i.exec(e.src) ? this.type = "flv" : /.mpd(#|\?|$)/i.exec(e.src) ? this.type = "dash" : this.type = "normal"), "hls" === this.type && (e.canPlayType("application/x-mpegURL") || e.canPlayType("application/vnd.apple.mpegURL")) && (this.type = "normal"), this.type) { |
|
case "hls": |
|
if (Hls) |
|
if (Hls.isSupported()) { |
|
var i = new Hls; |
|
i.loadSource(e.src), i.attachMedia(e) |
|
} else this.notice("Error: Hls is not supported."); |
|
else this.notice("Error: Can't find Hls."); |
|
break; |
|
case "flv": |
|
if (flvjs && flvjs.isSupported()) |
|
if (flvjs.isSupported()) { |
|
var a = flvjs.createPlayer({ |
|
type: "flv", |
|
url: e.src |
|
}); |
|
a.attachMediaElement(e), a.load() |
|
} else this.notice("Error: flvjs is not supported."); |
|
else this.notice("Error: Can't find flvjs."); |
|
break; |
|
case "dash": |
|
dashjs ? dashjs.MediaPlayer().create().initialize(e, e.src, !1) : this.notice("Error: Can't find dashjs."); |
|
break; |
|
case "webtorrent": |
|
if (WebTorrent) |
|
if (WebTorrent.WEBRTC_SUPPORT) { |
|
this.container.classList.add("dplayer-loading"); |
|
var o = new WebTorrent, |
|
r = e.src; |
|
o.add(r, function(e) { |
|
e.files.find(function(e) { |
|
return e.name.endsWith(".mp4") |
|
}).renderTo(n.video, { |
|
autoplay: n.options.autoplay |
|
}, function() { |
|
n.container.classList.remove("dplayer-loading") |
|
}) |
|
}) |
|
} else this.notice("Error: Webtorrent is not supported."); |
|
else this.notice("Error: Can't find Webtorrent.") |
|
} |
|
} |
|
}, { |
|
key: "initVideo", |
|
value: function(e, t) { |
|
var n = this; |
|
this.initMSE(e, t), this.on("durationchange", function() { |
|
1 !== e.duration && e.duration !== 1 / 0 && (n.template.dtime.innerHTML = o.default.secondToTime(e.duration)) |
|
}), this.on("progress", function() { |
|
var t = e.buffered.length ? e.buffered.end(e.buffered.length - 1) / e.duration : 0; |
|
n.bar.set("loaded", t, "width") |
|
}), this.on("error", function() { |
|
n.video.error && n.tran && n.notice && (n.type, n.notice(n.tran("Video load failed"), -1)) |
|
}), this.on("ended", function() { |
|
n.bar.set("played", 1, "width"), n.setting.loop ? (n.seek(0), n.play()) : n.pause(), n.danmaku && (n.danmaku.danIndex = 0) |
|
}), this.on("play", function() { |
|
n.paused && n.play() |
|
}), this.on("pause", function() { |
|
n.paused || n.pause() |
|
}), this.on("timeupdate", function() { |
|
n.bar.set("played", n.video.currentTime / n.video.duration, "width"); |
|
var e = o.default.secondToTime(n.video.currentTime); |
|
n.template.ptime.innerHTML !== e && (n.template.ptime.innerHTML = e) |
|
}); |
|
for (var i = function(t) { |
|
e.addEventListener(n.events.videoEvents[t], function() { |
|
n.events.trigger(n.events.videoEvents[t]) |
|
}) |
|
}, a = 0; a < this.events.videoEvents.length; a++) i(a); |
|
this.volume(this.user.get("volume"), !0, !0), this.options.subtitle && (this.subtitle = new f.default(this.template.subtitle, this.video, this.options.subtitle, this.events), this.user.get("subtitle") || this.subtitle.hide()) |
|
} |
|
}, { |
|
key: "switchQuality", |
|
value: function(e) { |
|
var t = this; |
|
if (this.qualityIndex !== e && !this.switchingQuality) { |
|
this.qualityIndex = e, this.switchingQuality = !0, this.quality = this.options.video.quality[e], this.template.qualityButton.innerHTML = this.quality.name; |
|
var n = this.video.paused; |
|
this.video.pause(); |
|
var i = (0, T.default)({ |
|
current: !1, |
|
pic: null, |
|
screenshot: this.options.screenshot, |
|
preload: "auto", |
|
url: this.quality.url, |
|
subtitle: this.options.subtitle |
|
}), |
|
a = (new DOMParser).parseFromString(i, "text/html").body.firstChild; |
|
this.template.videoWrap.insertBefore(a, this.template.videoWrap.getElementsByTagName("div")[0]), this.prevVideo = this.video, this.video = a, this.initVideo(this.video, this.quality.type || this.options.video.type), this.seek(this.prevVideo.currentTime), this.notice(this.tran("Switching to") + " " + this.quality.name + " " + this.tran("quality"), -1), this.events.trigger("quality_start", this.quality), this.on("canplay", function() { |
|
if (t.prevVideo) { |
|
if (t.video.currentTime !== t.prevVideo.currentTime) return void t.seek(t.prevVideo.currentTime); |
|
t.template.videoWrap.removeChild(t.prevVideo), t.video.classList.add("dplayer-video-current"), n || t.video.play(), t.prevVideo = null, t.notice(t.tran("Switched to") + " " + t.quality.name + " " + t.tran("quality")), t.switchingQuality = !1, t.events.trigger("quality_end") |
|
} |
|
}) |
|
} |
|
} |
|
}, { |
|
key: "notice", |
|
value: function(e) { |
|
var t = this, |
|
n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 2e3, |
|
i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : .8; |
|
this.template.notice.innerHTML = e, this.template.notice.style.opacity = i, this.noticeTime && clearTimeout(this.noticeTime), this.events.trigger("notice_show", e), n > 0 && (this.noticeTime = setTimeout(function() { |
|
t.template.notice.style.opacity = 0, t.events.trigger("notice_hide") |
|
}, n)) |
|
} |
|
}, { |
|
key: "resize", |
|
value: function() { |
|
this.danmaku && this.danmaku.resize(), this.events.trigger("resize") |
|
} |
|
}, { |
|
key: "speed", |
|
value: function(e) { |
|
this.video.playbackRate = e |
|
} |
|
}, { |
|
key: "destroy", |
|
value: function() { |
|
M.splice(M.indexOf(this), 1), this.pause(), this.controller.destroy(), this.timer.destroy(), this.video.src = "", this.container.innerHTML = "", this.events.trigger("destroy") |
|
} |
|
}], [{ |
|
key: "version", |
|
get: function() { |
|
return "1.25.0" |
|
} |
|
}]), e |
|
}(); |
|
t.default = _ |
|
}, , , |
|
function(e, t, n) {}, |
|
function(e, t, n) { |
|
"use strict"; |
|
Object.defineProperty(t, "__esModule", { |
|
value: !0 |
|
}), n(77); |
|
var i, a = n(74), |
|
o = (i = a) && i.__esModule ? i : { |
|
default: i |
|
}; |
|
console.log("\n %c DPlayer v1.25.0 fdcf45b %c http://dplayer.js.org \n\n", "color: #fadfa3; background: #030307; padding:5px 0;", "background: #fadfa3; padding:5px 0;"), t.default = o.default |
|
} |
|
]).default |
|
}); |
|
//# sourceMappingURL=DPlayer.min.js.map
|