@vanwei-wcs/video-player-v3 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +261 -0
- package/dist/README.md +261 -0
- package/dist/package.json +20 -0
- package/dist/style.css +1 -0
- package/dist/types/index.d.ts +151 -0
- package/dist/video-player-v3.js +1103 -0
- package/dist/video-player-v3.js.map +1 -0
- package/dist/video-player-v3.umd.cjs +3 -0
- package/dist/video-player-v3.umd.cjs.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,1103 @@
|
|
|
1
|
+
import { Fragment as e, Transition as t, computed as n, createBlock as r, createCommentVNode as i, createElementBlock as a, createElementVNode as o, createVNode as s, defineComponent as c, mergeModels as l, nextTick as u, normalizeClass as d, onBeforeUnmount as f, onMounted as p, openBlock as m, ref as h, renderList as g, renderSlot as _, toDisplayString as v, unref as y, useModel as b, vModelCheckbox as x, vShow as S, watch as C, withCtx as w, withDirectives as T, withModifiers as E } from "vue";
|
|
2
|
+
import D from "screenfull";
|
|
3
|
+
import O from "element-resize-detector";
|
|
4
|
+
//#region src/package/ww-video-player/utils/helper.ts
|
|
5
|
+
function k(e) {
|
|
6
|
+
e = parseInt(String(e));
|
|
7
|
+
let t = 0, n = "B/s";
|
|
8
|
+
return e >= 1024 * 1024 * 1024 ? (t = parseFloat((e / (1024 * 1024 * 1024)).toFixed(2)), n = "GB/s") : e >= 1024 * 1024 ? (t = parseFloat((e / (1024 * 1024)).toFixed(2)), t >= 10 && (t = parseFloat(t.toFixed(1))), n = "MB/s") : e >= 1024 ? (t = Math.floor(e / 1024), n = "KB/s") : e >= 0 && (t = e, n = "B/s"), t + n;
|
|
9
|
+
}
|
|
10
|
+
function A(e, t = 200, n = 800) {
|
|
11
|
+
let r = null, i = /* @__PURE__ */ new Date();
|
|
12
|
+
return function(...a) {
|
|
13
|
+
let o = this, s = /* @__PURE__ */ new Date();
|
|
14
|
+
r && clearTimeout(r), s.getTime() - i.getTime() >= n ? (e.apply(o, a), i = s) : r = setTimeout(function() {
|
|
15
|
+
e.apply(o, a);
|
|
16
|
+
}, t);
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function j() {
|
|
20
|
+
let e = String(+/* @__PURE__ */ new Date()), t = String(Math.floor((1 + Math.random()) * 65536));
|
|
21
|
+
return Number(t + e).toString(32);
|
|
22
|
+
}
|
|
23
|
+
function M(e, t = "file", n = "") {
|
|
24
|
+
let r = window.URL.createObjectURL(new Blob([e])), i = document.createElement("a");
|
|
25
|
+
i.style.display = "none", i.href = r;
|
|
26
|
+
let a = t + "_" + j() + n;
|
|
27
|
+
i.setAttribute("download", a), document.body.appendChild(i), i.click(), document.body.removeChild(i);
|
|
28
|
+
}
|
|
29
|
+
function N(e) {
|
|
30
|
+
let t = e.split(";base64,"), n = t[0].split(":")[1], r = window.atob(t[1]), i = r.length, a = new Uint8Array(i);
|
|
31
|
+
for (let e = 0; e < i; ++e) a[e] = r.charCodeAt(e);
|
|
32
|
+
return Promise.resolve(new Blob([a], { type: n }));
|
|
33
|
+
}
|
|
34
|
+
var P = [
|
|
35
|
+
{
|
|
36
|
+
label: "16X",
|
|
37
|
+
value: 16
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
label: "8X",
|
|
41
|
+
value: 8
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
label: "4X",
|
|
45
|
+
value: 4
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
label: "2X",
|
|
49
|
+
value: 2
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
label: "1X",
|
|
53
|
+
value: 1
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
label: "1/2X",
|
|
57
|
+
value: .5
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
label: "1/4X",
|
|
61
|
+
value: .25
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
label: "1/8X",
|
|
65
|
+
value: .125
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
label: "1/16X",
|
|
69
|
+
value: .0625
|
|
70
|
+
}
|
|
71
|
+
], ee = { class: "wwav-player__footer" }, F = { class: "wwav-player__footer--left" }, te = { class: "wwav-player__common-span wwav-player__footer--net-speed" }, ne = { class: "wwav-player__common-span wwav-player__footer--info" }, I = ["title"], re = ["title"], ie = { class: "wwav-player__footer--info-pop--item" }, ae = { class: "wwav-player__footer--info-pop--item" }, oe = { class: "wwav-player__common-span wwav-player__footer--info" }, se = { class: "wwav-player__common-span wwav-player__footer--info" }, ce = { class: "wwav-player__footer--right" }, L = {
|
|
72
|
+
key: 0,
|
|
73
|
+
class: "wwav-player__common-icon wwav-player__footer--play"
|
|
74
|
+
}, le = { class: "wwav-player__common-span wwav-player__footer--speed" }, R = { class: "wwav-player__footer--speed-pop--item" }, z = { class: "speed-text" }, B = {
|
|
75
|
+
key: 1,
|
|
76
|
+
class: "wwav-player__common-span wwav-player__footer--quality"
|
|
77
|
+
}, V = ["onClick"], ue = {
|
|
78
|
+
key: 2,
|
|
79
|
+
class: "wwav-player__common-span wwav-player__footer--setting"
|
|
80
|
+
}, de = {
|
|
81
|
+
key: 0,
|
|
82
|
+
class: "wwav-player__footer--setting-pop--item"
|
|
83
|
+
}, H = /* @__PURE__ */ c({
|
|
84
|
+
__name: "controller",
|
|
85
|
+
props: /* @__PURE__ */ l({
|
|
86
|
+
isLive: { type: Boolean },
|
|
87
|
+
streamWorking: { type: Boolean },
|
|
88
|
+
isClosed: { type: Boolean },
|
|
89
|
+
videoStatus: {},
|
|
90
|
+
mediaInfo: { default: () => ({
|
|
91
|
+
format: "H264",
|
|
92
|
+
width: 0,
|
|
93
|
+
height: 0
|
|
94
|
+
}) },
|
|
95
|
+
streamInfo: { default: () => ({
|
|
96
|
+
speed: 0,
|
|
97
|
+
fps: 0
|
|
98
|
+
}) },
|
|
99
|
+
features: { default: () => [] },
|
|
100
|
+
enableAI: {
|
|
101
|
+
type: Boolean,
|
|
102
|
+
default: !1
|
|
103
|
+
},
|
|
104
|
+
devicePath: { default: "" }
|
|
105
|
+
}, {
|
|
106
|
+
videoQuality: { default: 1 },
|
|
107
|
+
videoQualityModifiers: {}
|
|
108
|
+
}),
|
|
109
|
+
emits: /* @__PURE__ */ l([
|
|
110
|
+
"fullscreen",
|
|
111
|
+
"stop-video",
|
|
112
|
+
"capture-video",
|
|
113
|
+
"change-play-status",
|
|
114
|
+
"change-play-speed",
|
|
115
|
+
"control-talk",
|
|
116
|
+
"control-sound",
|
|
117
|
+
"change-ptz-switch",
|
|
118
|
+
"change-ai-status",
|
|
119
|
+
"change-quality"
|
|
120
|
+
], ["update:videoQuality"]),
|
|
121
|
+
setup(t, { emit: r }) {
|
|
122
|
+
let s = t, c = b(t, "videoQuality"), l = r, u = h(!1), f = h(!1), p = h(!1), _ = h(!1), C = h(!0), w = h(!1), D = h(!1), O = h(1), j = n(() => s.videoStatus === 2), M = n(() => s.videoStatus === 3), N = n(() => s.mediaInfo.format === "H265"), H = n(() => s.mediaInfo.format === "H265" && s.mediaInfo.mode === "硬解码"), U = n(() => {
|
|
123
|
+
let e = c.value;
|
|
124
|
+
return e === 0 ? "高清" : e === 1 ? "标清" : e === 2 ? "流畅" : "标清";
|
|
125
|
+
}), W = n(() => {
|
|
126
|
+
let e = P.findIndex((e) => e.value === O.value);
|
|
127
|
+
return e === -1 ? "1" : P[e].label;
|
|
128
|
+
}), G = n(() => s.streamInfo?.speed || 0), K = () => l("fullscreen"), q = () => {
|
|
129
|
+
C.value = !0, w.value = !1, l("stop-video");
|
|
130
|
+
}, J = () => l("capture-video"), Y = (e) => {
|
|
131
|
+
c.value = e, u.value = !1, l("change-quality", e);
|
|
132
|
+
}, X = (e) => l("change-play-status", e), Z = A((e) => {
|
|
133
|
+
let t = String(e), n = O.value;
|
|
134
|
+
t === "plus" ? (n *= 2, n > P[0].value && (n = P[0].value)) : (n /= 2, n < P[P.length - 1].value && (n = P[P.length - 1].value)), O.value = n, l("change-play-speed", n);
|
|
135
|
+
}, 1e3), Q = (e) => {
|
|
136
|
+
C.value = e, l("control-sound", C.value);
|
|
137
|
+
}, $ = (e) => {
|
|
138
|
+
w.value = e, l("control-talk", w.value);
|
|
139
|
+
}, fe = () => l("change-ptz-switch", D.value);
|
|
140
|
+
return (n, r) => (m(), a("div", ee, [
|
|
141
|
+
o("span", {
|
|
142
|
+
class: "wwav-player__common-icon wwav-player__footer--stop",
|
|
143
|
+
title: "关闭",
|
|
144
|
+
onClick: E(q, ["stop"])
|
|
145
|
+
}, [...r[13] ||= [o("svg", {
|
|
146
|
+
class: "wwav-player__svg-icon",
|
|
147
|
+
viewBox: "0 0 1024 1024",
|
|
148
|
+
version: "1.1",
|
|
149
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
150
|
+
width: "13",
|
|
151
|
+
height: "13"
|
|
152
|
+
}, [o("path", { d: "M788.842733 146.596542a485.068578 485.068578 0 0 1 86.347229 78.14224 510.614455 510.614455 0 0 1 64.763128 94.31408 465.389593 465.389593 0 0 1 41.014123 107.249385 475.088367 475.088367 0 0 1 14.071881 114.794079q0 100.245919-38.318816 188.097757t-103.62317 153.058773Q787.76028 947.470614 699.789372 985.735307t-188.346721 38.264693q-99.304185 0-187.264269-38.264693t-153.816489-103.471627Q104.516313 817.045922 66.738723 729.204908T28.961134 541.107151a468.701898 468.701898 0 0 1 13.487357-112.098773 497.495132 497.495132 0 0 1 38.318816-104.554079 461.005661 461.005661 0 0 1 61.526595-92.701225 524.231707 524.231707 0 0 1 82.039069-77.611839c15.825454-11.495645 32.841606-15.305877 51.264947-12.989429 11.906977 1.537082 24.192812 12.480676 25.253615 25.71907 1.786046 22.168626-13.963636 39.726004-31.726681 53.256659Q189.164092 278.525843 146.634536 363.487533T104.12663 546.086432q0 83.684397 31.72668 157.864861t86.942579 129.34224q55.205073 55.205073 129.461309 87.494629t158.038053 32.332854q83.770993 0 158.038054-32.332854t129.461309-87.494629q55.205073-55.205073 87.570401-129.34224T917.654571 546.086432a400.669763 400.669763 0 0 0-45.668668-187.036954q-45.690317-88.133276-128.184016-145.200167c-18.618182-12.675518-32.278731-30.655053-30.02723-52.845327 1.60203-15.749683 11.008541-23.911374 23.251078-25.71907 18.780549-2.781903 35.980718 0.541226 51.806173 11.311628z" }), o("path", { d: "M501.245949 0.000011A42.930063 42.930063 0 0 1 544.208486 42.930074v429.354752a42.935475 42.935475 0 0 1-85.870951 0V42.930074A42.930063 42.930063 0 0 1 501.245949 0.000011z" })], -1)]]),
|
|
153
|
+
o("div", F, [
|
|
154
|
+
o("span", te, [o("span", null, v(y(k)(G.value)), 1)]),
|
|
155
|
+
T(o("div", ne, [o("span", {
|
|
156
|
+
title: "视频信息",
|
|
157
|
+
onClick: r[0] ||= (e) => f.value = !f.value
|
|
158
|
+
}, [...r[14] ||= [o("svg", {
|
|
159
|
+
class: "wwav-player__svg-icon",
|
|
160
|
+
viewBox: "0 0 1024 1024",
|
|
161
|
+
version: "1.1",
|
|
162
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
163
|
+
width: "13",
|
|
164
|
+
height: "13"
|
|
165
|
+
}, [o("path", { d: "M512 2q139 1 255 68.5T953 257q69 121 69 255t-69 255q-70 119-186 186.5T512 1022q-217-6-360.5-149.5T2 512q6-217 149.5-360.5T512 2z m76 313q30 0 49-17.5t19-47.5-19-47.5-48.5-17.5-48.5 17.5-19 47.5 19 47.5 48 17.5z m14 410q0-7 1-18.5t0-21.5l-60 69q-10 10-19.5 16t-15.5 4q-11-5-9-17l99-315q6-31-10-54t-52-27q-39 1-86 33.5T368 476l-1 18q0 12 1 21l59-69q10-10 19.5-15.5t15-3.5 8 7 0.5 11l-99 313q-8 29 8 51.5t55 29.5q57-1 96-32.5t72-81.5z" })], -1)]]), o("ul", { class: d(["wwav-player__footer__pop wwav-player__footer--info-pop", { show: f.value }]) }, [
|
|
166
|
+
o("li", {
|
|
167
|
+
class: "wwav-player__footer--info-pop--item",
|
|
168
|
+
title: t.mediaInfo.format
|
|
169
|
+
}, " 流类型: " + v(t.mediaInfo.format), 9, I),
|
|
170
|
+
o("li", {
|
|
171
|
+
class: "wwav-player__footer--info-pop--item",
|
|
172
|
+
title: t.mediaInfo.format
|
|
173
|
+
}, " 解码方式: " + v(N.value ? t.mediaInfo.mode || "软解码" : "硬解码"), 9, re),
|
|
174
|
+
o("li", ie, " 分辨率: " + v(`${t.mediaInfo.width}x${t.mediaInfo.height}`), 1),
|
|
175
|
+
o("li", ae, " 实时帧率: " + v(`${t.streamInfo.fps}`), 1)
|
|
176
|
+
], 2)], 512), [[S, t.streamWorking]]),
|
|
177
|
+
T(o("div", oe, [C.value ? (m(), a("span", {
|
|
178
|
+
key: 0,
|
|
179
|
+
title: "静音",
|
|
180
|
+
onClick: r[1] ||= (e) => Q(!1)
|
|
181
|
+
}, [...r[15] ||= [o("svg", {
|
|
182
|
+
class: "wwav-player__svg-icon",
|
|
183
|
+
viewBox: "0 0 1024 1024",
|
|
184
|
+
version: "1.1",
|
|
185
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
186
|
+
width: "200",
|
|
187
|
+
height: "200"
|
|
188
|
+
}, [
|
|
189
|
+
o("path", {
|
|
190
|
+
d: "M553.948279 55.153116a48.580465 48.580465 0 0 0-30.684279 11.121117L258.714791 294.816744H73.013581c-40.20986 0-72.489674 32.279814-72.489674 71.953861L0 679.995535c0 39.685953 32.803721 72.477767 73.013581 72.477767H261.35814l260.834232 205.288186a46.734884 46.734884 0 0 0 30.684279 11.097303c25.373767 0 48.663814-19.57507 48.663814-48.128l1.047814-817.413954c0.559628-28.600558-23.242419-48.163721-48.64-48.163721z m-24.349767 816.354233L305.806884 695.331721a71.930047 71.930047 0 0 0-44.436837-15.336186H71.95386l1.059721-312.689116 185.70121-0.512c17.467535 0 33.863442-6.370233 47.092093-17.467535l224.851349-194.16707-1.059721 716.347535z m0 0",
|
|
191
|
+
fill: "#a6b0b3"
|
|
192
|
+
}),
|
|
193
|
+
o("path", {
|
|
194
|
+
d: "M1012.950326 624.568558c14.57414 14.57414 14.764651 38.018977 0.416744 52.366884-14.347907 14.347907-37.792744 14.169302-52.366884-0.404837L683.901023 399.431442c-14.57414-14.57414-14.764651-38.018977-0.416744-52.366884 14.347907-14.347907 37.792744-14.157395 52.366884 0.416744l277.099163 277.087256z m0 0",
|
|
195
|
+
fill: "#a6b0b3"
|
|
196
|
+
}),
|
|
197
|
+
o("path", {
|
|
198
|
+
d: "M960.988279 347.481302c14.57414-14.57414 38.018977-14.764651 52.366884-0.416744 14.347907 14.347907 14.157395 37.792744-0.416744 52.366884L735.851163 676.518698c-14.57414 14.57414-38.018977 14.764651-52.366884 0.404837-14.347907-14.347907-14.169302-37.792744 0.404837-52.366884l277.099163-277.075349z m0 0",
|
|
199
|
+
fill: "#a6b0b3"
|
|
200
|
+
})
|
|
201
|
+
], -1)]])) : (m(), a("span", {
|
|
202
|
+
key: 1,
|
|
203
|
+
title: "播放",
|
|
204
|
+
onClick: r[2] ||= (e) => Q(!0)
|
|
205
|
+
}, [...r[16] ||= [o("svg", {
|
|
206
|
+
class: "wwav-player__svg-icon",
|
|
207
|
+
viewBox: "0 0 1024 1024",
|
|
208
|
+
version: "1.1",
|
|
209
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
210
|
+
width: "200",
|
|
211
|
+
height: "200"
|
|
212
|
+
}, [o("path", {
|
|
213
|
+
d: "M536.873674 69.227163c-10.251907 0-21.039628 3.584-29.743627 10.775814L250.749023 301.520372H70.763163c-38.971535 0-70.251163 31.279628-70.251163 69.739163L0 674.816c0 38.459535 31.791628 70.239256 70.763163 70.239256h182.54586l252.797024 198.953674a45.353674 45.353674 0 0 0 29.743627 10.763907c24.587907 0 47.163535-18.967814 47.163535-46.651535l1.024-792.21879c0.523907-27.707535-22.551814-46.675349-47.163535-46.675349z m-23.599627 791.19479l-216.885582-170.746046a69.774884 69.774884 0 0 0-43.067535-14.859907H69.739163l1.035907-303.056372 179.973953-0.500093c16.931721 0 32.815628-6.167814 45.639442-16.931721l217.921488-188.189767-1.035906 694.283906z m207.169488-578.393302c-15.907721-10.752-37.959442-6.144-48.211349 9.751814-10.752 15.883907-6.144 37.935628 9.751814 48.199442 54.343442 36.411535 87.170977 96.398884 87.170977 160.49414 0 62.035349-30.767628 120.498605-82.03907 156.898232a34.685023 34.685023 0 0 0-8.215814 48.711442c6.667907 9.751814 17.419907 14.883721 28.719628 14.883721 7.168 0 14.336-2.059907 19.991814-6.667907 69.75107-49.735442 111.270698-129.738419 111.270698-214.349395 0-87.170977-44.091535-168.68614-118.438698-217.921489z m0 0",
|
|
214
|
+
fill: "#a6b0b3"
|
|
215
|
+
}), o("path", {
|
|
216
|
+
d: "M868.62586 154.362047c-14.359814-12.823814-36.411535-11.799814-49.235348 2.56-12.811907 14.359814-11.776 36.399628 2.56 49.211534 84.110884 75.394977 132.298419 182.557767 132.298418 294.340466 0 109.222698-44.079628 210.741581-124.082604 286.124651-13.835907 13.323907-14.859907 35.375628-1.536 49.211535 6.667907 7.191814 15.895814 10.775814 25.635721 10.775814a33.696744 33.696744 0 0 0 24.09972-9.751814C972.204651 747.615256 1024 628.140651 1024 499.95014c0.500093-130.750512-55.903256-256.881116-155.37414-345.588093z m0 0",
|
|
217
|
+
fill: "#a6b0b3"
|
|
218
|
+
})], -1)]]))], 512), [[S, t.streamWorking]]),
|
|
219
|
+
T(o("div", se, [w.value ? (m(), a("span", {
|
|
220
|
+
key: 1,
|
|
221
|
+
title: "打开",
|
|
222
|
+
onClick: r[4] ||= (e) => $(!1)
|
|
223
|
+
}, [...r[18] ||= [o("svg", {
|
|
224
|
+
class: "wwav-player__svg-icon",
|
|
225
|
+
viewBox: "0 0 1024 1024",
|
|
226
|
+
version: "1.1",
|
|
227
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
228
|
+
width: "200",
|
|
229
|
+
height: "200"
|
|
230
|
+
}, [o("path", {
|
|
231
|
+
d: "M512 53.312a245.312 245.312 0 0 0-245.312 245.376v170.624a245.312 245.312 0 1 0 490.624 0V298.688A245.312 245.312 0 0 0 512 53.312zM330.688 298.688a181.312 181.312 0 1 1 362.624 0v170.624a181.312 181.312 0 1 1-362.624 0V298.688z",
|
|
232
|
+
fill: "#a6b0b3"
|
|
233
|
+
}), o("path", {
|
|
234
|
+
d: "M202.688 469.312a32 32 0 0 0-64 0A373.376 373.376 0 0 0 480 841.344v65.28H384a32 32 0 1 0 0 64h256a32 32 0 0 0 0-64H544v-65.28a373.376 373.376 0 0 0 341.312-372.032 32 32 0 1 0-64 0 309.312 309.312 0 1 1-618.624 0z",
|
|
235
|
+
fill: "#a6b0b3"
|
|
236
|
+
})], -1)]])) : (m(), a("span", {
|
|
237
|
+
key: 0,
|
|
238
|
+
title: "关闭",
|
|
239
|
+
onClick: r[3] ||= (e) => $(!0)
|
|
240
|
+
}, [...r[17] ||= [o("svg", {
|
|
241
|
+
class: "wwav-player__svg-icon",
|
|
242
|
+
viewBox: "0 0 1024 1024",
|
|
243
|
+
version: "1.1",
|
|
244
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
245
|
+
width: "200",
|
|
246
|
+
height: "200"
|
|
247
|
+
}, [o("path", {
|
|
248
|
+
d: "M62.72 62.72a32 32 0 0 1 45.248 0l212.864 212.8 0.96 1.024 340.224 340.224a35.84 35.84 0 0 1 1.216 1.216l89.92 89.92a35.712 35.712 0 0 1 1.088 1.088l207.04 207.04a32 32 0 1 1-45.248 45.248l-187.648-187.648a371.456 371.456 0 0 1-184.32 67.648v65.408H640a32 32 0 1 1 0 64H384a32 32 0 0 1 0-64h96v-65.344a373.376 373.376 0 0 1-341.376-372.032 32 32 0 0 1 64 0 309.312 309.312 0 0 0 479.68 258.304l-46.464-46.464a245.312 245.312 0 0 1-369.216-211.84v-157.44L62.72 108.032a32 32 0 0 1 0-45.248z m267.968 406.592a181.312 181.312 0 0 0 257.856 164.48l-257.92-257.92v93.44zM512 117.312c-66.944 0-125.44 36.288-156.928 90.432a32 32 0 1 1-55.296-32.192 245.312 245.312 0 0 1 457.6 123.072v170.688c0 40.128-9.664 78.08-26.816 111.552a32 32 0 0 1-56.96-29.12 180.48 180.48 0 0 0 19.712-82.432V298.688A181.312 181.312 0 0 0 512 117.312zM885.312 469.312a32 32 0 1 0-64 0c0 63.936-19.328 123.2-52.48 172.48a32 32 0 1 0 53.12 35.712c40-59.52 63.36-131.2 63.36-208.192z",
|
|
249
|
+
fill: "#a6b0b3"
|
|
250
|
+
})], -1)]]))], 512), [[S, t.isLive && t.streamWorking]])
|
|
251
|
+
]),
|
|
252
|
+
o("div", ce, [
|
|
253
|
+
!t.isLive && t.streamWorking ? (m(), a("span", L, [T(o("span", {
|
|
254
|
+
title: "播放",
|
|
255
|
+
onClick: r[5] ||= (e) => X(2)
|
|
256
|
+
}, [...r[19] ||= [o("svg", {
|
|
257
|
+
class: "wwav-player__svg-icon",
|
|
258
|
+
viewBox: "0 0 1024 1024",
|
|
259
|
+
version: "1.1",
|
|
260
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
261
|
+
width: "13",
|
|
262
|
+
height: "13"
|
|
263
|
+
}, [o("path", { d: "M701.44 539.648L440.32 711.475a32.973 32.973 0 0 1-45.67-9.42 31.949 31.949 0 0 1-5.53-18.228V340.173a32.973 32.973 0 0 1 32.973-32.973 33.792 33.792 0 0 1 18.227 5.325l261.12 171.827a33.178 33.178 0 0 1 9.42 45.875 37.478 37.478 0 0 1-9.42 9.421z" }), o("path", { d: "M512 1024a512 512 0 1 1 512-512 512 512 0 0 1-512 512z m0-57.958A454.042 454.042 0 1 0 57.958 512 454.246 454.246 0 0 0 512 966.042z" })], -1)]], 512), [[S, M.value]]), T(o("span", {
|
|
264
|
+
title: "暂停",
|
|
265
|
+
onClick: r[6] ||= (e) => X(3)
|
|
266
|
+
}, [...r[20] ||= [o("svg", {
|
|
267
|
+
class: "wwav-player__svg-icon",
|
|
268
|
+
viewBox: "0 0 1024 1024",
|
|
269
|
+
version: "1.1",
|
|
270
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
271
|
+
width: "13",
|
|
272
|
+
height: "13"
|
|
273
|
+
}, [o("path", { d: "M512 8.858C234.496 8.858 8.858 234.496 8.858 512S234.548 1015.142 512 1015.142c277.504 0 503.142-225.69 503.142-503.142C1015.142 234.496 789.504 8.858 512 8.858z m0 937.984A434.79 434.79 0 0 1 77.158 512 434.79 434.79 0 0 1 512 77.158 434.79 434.79 0 0 1 946.842 512 434.79 434.79 0 0 1 512 946.842zM408.474 304.947a45.978 45.978 0 0 0-45.568 45.568v320.922c0 24.832 20.736 45.568 45.568 45.568s45.568-20.736 45.568-45.568V350.515a45.978 45.978 0 0 0-45.568-45.568z m207.052 0a45.978 45.978 0 0 0-45.568 45.568v320.922c0 24.832 20.736 45.568 45.568 45.568s45.568-20.736 45.568-45.568V350.515a45.978 45.978 0 0 0-45.568-45.568z" })], -1)]], 512), [[S, j.value]])])) : i("", !0),
|
|
274
|
+
T(o("div", le, [o("div", {
|
|
275
|
+
title: "播放速度",
|
|
276
|
+
onClick: r[7] ||= (e) => _.value = !_.value
|
|
277
|
+
}, [o("span", null, v(O.value === 1 ? "倍速" : W.value), 1)]), o("ul", { class: d(["wwav-player__footer__pop wwav-player__footer--speed-pop", { show: _.value }]) }, [o("li", R, [
|
|
278
|
+
o("i", {
|
|
279
|
+
class: "wwav-player__common-icon",
|
|
280
|
+
onClick: r[8] ||= (e) => y(Z)("minus")
|
|
281
|
+
}, "-"),
|
|
282
|
+
o("span", z, v(W.value), 1),
|
|
283
|
+
o("i", {
|
|
284
|
+
class: "wwav-player__common-icon",
|
|
285
|
+
onClick: r[9] ||= (e) => y(Z)("plus")
|
|
286
|
+
}, "+")
|
|
287
|
+
])], 2)], 512), [[S, !t.isLive && t.streamWorking && (N.value && H.value || !N.value)]]),
|
|
288
|
+
T(o("span", {
|
|
289
|
+
class: "wwav-player__common-icon wwav-player__footer--capture",
|
|
290
|
+
title: "截屏",
|
|
291
|
+
onClick: E(J, ["stop"])
|
|
292
|
+
}, [...r[21] ||= [o("svg", {
|
|
293
|
+
class: "wwav-player__svg-icon",
|
|
294
|
+
viewBox: "0 0 1132 1024",
|
|
295
|
+
version: "1.1",
|
|
296
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
297
|
+
width: "13",
|
|
298
|
+
height: "13"
|
|
299
|
+
}, [o("path", { d: "M987.332085 0H146.998468C66.647149 0 1.437957 64.27234 1.437957 143.468936v678.410894a42.550468 42.550468 0 0 0 0 21.830808v36.820426C1.41617 959.72766 66.625362 1024 147.020255 1024h840.333617C1067.726979 1024 1132.93617 959.72766 1132.93617 880.531064V143.468936C1132.93617 64.27234 1067.726979 0 987.332085 0zM146.998468 87.345021h840.333617c31.35183 0 56.973617 25.273191 56.973617 56.123915v544.898724c-32.898723-43.966638-72.769362-92.007489-114.252255-130.069788-24.684936-22.745872-55.383149-32.114383-88.93549-27.430127-52.85583 7.494809-110.788085 50.851404-176.91234 132.24851a1004.456851 1004.456851 0 0 0-41.787915 55.208851c-58.237277-79.218383-172.81634-225.497872-269.987404-292.885787-28.802723-19.957106-61.091404-24.619574-94.011915-14.030979-35.752851 11.547234-70.590638 41.482894-106.016681 91.397447-20.567149 28.693787-41.461106 64.250553-62.681872 106.038468V143.468936a56.799319 56.799319 0 0 1 57.300425-56.123915z" }), o("path", { d: "M697.191489 337.702128a76.255319 76.255319 0 1 0 152.510639 0 76.255319 76.255319 0 1 0-152.510639 0z" })], -1)]], 512), [[S, (j.value || M.value) && (N.value && H.value || !N.value)]]),
|
|
300
|
+
t.isLive && !t.isClosed ? (m(), a("div", B, [o("span", { onClick: r[10] ||= (e) => u.value = !u.value }, v(U.value), 1), o("ul", { class: d(["wwav-player__footer__pop wwav-player__footer--quality-select", { show: u.value }]) }, [(m(), a(e, null, g([
|
|
301
|
+
"高清",
|
|
302
|
+
"标清",
|
|
303
|
+
"流畅"
|
|
304
|
+
], (e, t) => o("li", {
|
|
305
|
+
key: e,
|
|
306
|
+
class: d(["wwav-player__footer--quality-select--item", { active: t === c.value }]),
|
|
307
|
+
onClick: (e) => Y(t)
|
|
308
|
+
}, v(e), 11, V)), 64))], 2)])) : i("", !0),
|
|
309
|
+
t.features.length === 0 ? i("", !0) : (m(), a("div", ue, [o("span", {
|
|
310
|
+
title: "其他设置",
|
|
311
|
+
onClick: r[11] ||= (e) => p.value = !p.value
|
|
312
|
+
}, [...r[22] ||= [o("svg", {
|
|
313
|
+
class: "wwav-player__svg-icon",
|
|
314
|
+
viewBox: "0 0 1024 1024",
|
|
315
|
+
version: "1.1",
|
|
316
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
317
|
+
width: "16",
|
|
318
|
+
height: "16"
|
|
319
|
+
}, [o("path", { d: "M962.496 448.96c-3.584-19.84-22.656-39.808-42.304-44.288l-14.72-3.392c-34.624-10.432-65.536-33.536-84.992-67.328-19.648-33.984-24.128-72.576-15.616-107.968 0 0 0 0 0 0l4.288-13.824c5.952-19.264-1.792-45.76-17.216-58.816 0 0-13.824-11.712-52.992-34.304-39.168-22.592-56.128-28.736-56.128-28.736-19.008-6.848-45.76-0.32-59.52 14.464L612.928 115.84C586.56 140.672 551.104 155.904 512 155.904c-39.232 0-74.88-15.36-101.248-40.384L400.832 104.832C387.136 90.048 360.32 83.52 341.312 90.368c0 0-17.024 6.144-56.256 28.736C245.952 141.696 232.128 153.344 232.128 153.344 216.768 166.4 209.024 192.832 214.976 212.16l4.288 14.016c8.448 35.328 3.904 73.856-15.68 107.776C184 367.872 152.896 391.04 118.08 401.408L103.808 404.672c-19.648 4.48-38.72 24.448-42.304 44.288 0 0-3.2 17.792-3.2 63.04 0 45.248 3.2 62.976 3.2 62.976 3.584 19.84 22.656 39.808 42.304 44.288l13.952 3.2c0 0 0 0 0 0 34.944 10.304 66.112 33.536 85.824 67.584 19.648 33.984 24.128 72.576 15.616 107.968 0 0 0 0 0 0l-4.224 13.76c-5.952 19.264 1.792 45.76 17.216 58.816 0 0 13.824 11.712 52.992 34.304 39.168 22.592 56.128 28.736 56.128 28.736 19.008 6.848 45.76 0.32 59.52-14.464l9.792-10.56c26.432-25.024 62.08-40.448 101.376-40.448 39.296 0 75.008 15.424 101.44 40.512 0 0 0 0 0.064 0l9.728 10.496c13.76 14.784 40.512 21.312 59.52 14.464 0 0 17.024-6.144 56.256-28.736 39.168-22.592 52.928-34.304 52.928-34.304 15.424-13.056 23.168-39.488 17.216-58.816l-4.352-14.208c-8.32-35.264-3.84-73.664 15.744-107.52 19.648-34.048 50.88-57.216 85.824-67.584 0 0 0-0.064 0-0.064l13.952-3.2c19.648-4.48 38.72-24.448 42.304-44.288 0 0 3.2-17.792 3.2-63.04C965.696 466.752 962.496 448.96 962.496 448.96zM512 692.928c-99.904 0-180.928-81.024-180.928-180.928S412.096 331.136 512 331.136s180.928 81.024 180.928 180.928S611.904 692.928 512 692.928z" })], -1)]]), o("ul", { class: d(["wwav-player__footer__pop wwav-player__footer--setting-pop", { show: p.value }]) }, [t.features.indexOf("PTZ") === -1 ? i("", !0) : (m(), a("li", de, [T(o("input", {
|
|
320
|
+
"onUpdate:modelValue": r[12] ||= (e) => D.value = e,
|
|
321
|
+
class: "styled-checkbox",
|
|
322
|
+
type: "checkbox",
|
|
323
|
+
onChange: fe
|
|
324
|
+
}, null, 544), [[x, D.value]]), r[23] ||= o("label", null, "云台(需全屏)", -1)]))], 2)]))
|
|
325
|
+
]),
|
|
326
|
+
o("span", {
|
|
327
|
+
class: "wwav-player__common-icon wwav-player__footer--fullscreen",
|
|
328
|
+
title: "全屏",
|
|
329
|
+
onClick: E(K, ["stop"])
|
|
330
|
+
}, [...r[24] ||= [o("svg", {
|
|
331
|
+
class: "wwav-player__svg-icon",
|
|
332
|
+
viewBox: "0 0 1097 1024",
|
|
333
|
+
version: "1.1",
|
|
334
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
335
|
+
width: "13",
|
|
336
|
+
height: "13"
|
|
337
|
+
}, [o("path", { d: "M51.2 658.285714c29.257143 0 43.885714 21.942857 51.2 43.885715v219.428571h241.371429c29.257143 0 51.2 21.942857 51.2 51.2 0 29.257143-21.942857 43.885714-43.885715 51.2H0V709.485714c0-29.257143 21.942857-51.2 51.2-51.2z m950.857143 0c29.257143 0 51.2 21.942857 51.2 51.2V1024H709.485714c-29.257143 0-51.2-21.942857-51.2-51.2s21.942857-51.2 51.2-51.2H950.857143V709.485714c0-29.257143 21.942857-51.2 51.2-51.2z m-658.285714-658.285714c29.257143 0 51.2 21.942857 51.2 51.2s-21.942857 51.2-51.2 51.2H102.4v212.114286c0 29.257143-21.942857 51.2-51.2 51.2S0 343.771429 0 314.514286V0h343.771429z m709.485714 0v314.514286c0 29.257143-21.942857 51.2-51.2 51.2-29.257143 0-43.885714-21.942857-51.2-43.885715v-219.428571H709.485714c-29.257143 0-51.2-21.942857-51.2-51.2 0-29.257143 21.942857-43.885714 43.885715-51.2h351.085714z" })], -1)]])
|
|
338
|
+
]));
|
|
339
|
+
}
|
|
340
|
+
}), U = (e, t) => {
|
|
341
|
+
let n = e.__vccOpts || e;
|
|
342
|
+
for (let [e, r] of t) n[e] = r;
|
|
343
|
+
return n;
|
|
344
|
+
}, W = /* @__PURE__ */ U(H, [["__scopeId", "data-v-d478ce3d"]]), G = { class: "wwav-player-center-middle wwav-player__ptz__direction-content" }, K = ["onMousedown"], q = /* @__PURE__ */ c({
|
|
345
|
+
__name: "direction",
|
|
346
|
+
props: {
|
|
347
|
+
currentDirection: { default: "" },
|
|
348
|
+
isInside: {
|
|
349
|
+
type: Boolean,
|
|
350
|
+
default: !1
|
|
351
|
+
},
|
|
352
|
+
isFullscreen: {
|
|
353
|
+
type: Boolean,
|
|
354
|
+
default: !1
|
|
355
|
+
},
|
|
356
|
+
stopAllCommand: {}
|
|
357
|
+
},
|
|
358
|
+
emits: ["move-to-direction", "do-zoom"],
|
|
359
|
+
setup(t, { emit: n }) {
|
|
360
|
+
let r = t, i = n, s = h(!1), c = h(!1), l = [
|
|
361
|
+
"tilt_up",
|
|
362
|
+
"up_right",
|
|
363
|
+
"pan_right",
|
|
364
|
+
"down_right",
|
|
365
|
+
"tilt_down",
|
|
366
|
+
"down_left",
|
|
367
|
+
"pan_left",
|
|
368
|
+
"up_left"
|
|
369
|
+
], u = new Map([
|
|
370
|
+
[45, "zoom_in"],
|
|
371
|
+
[46, "zoom_out"],
|
|
372
|
+
[36, "focus_out"],
|
|
373
|
+
[35, "focus_in"],
|
|
374
|
+
[33, "iris_down"],
|
|
375
|
+
[34, "iris_up"],
|
|
376
|
+
[37, "pan_left"],
|
|
377
|
+
[38, "tilt_up"],
|
|
378
|
+
[39, "pan_right"],
|
|
379
|
+
[40, "tilt_down"]
|
|
380
|
+
]), _ = () => {
|
|
381
|
+
document.addEventListener("keydown", y, !1), document.addEventListener("keyup", b, !1), c.value = !0;
|
|
382
|
+
}, v = () => {
|
|
383
|
+
try {
|
|
384
|
+
document.removeEventListener("keydown", y, !1), document.removeEventListener("keyup", b, !1), r.stopAllCommand(), c.value = !1;
|
|
385
|
+
} catch (e) {
|
|
386
|
+
console.error(e);
|
|
387
|
+
}
|
|
388
|
+
}, y = (e) => {
|
|
389
|
+
if (!r.isFullscreen || s.value || !r.isInside) return;
|
|
390
|
+
s.value = !0;
|
|
391
|
+
let t = u.get(e.keyCode);
|
|
392
|
+
t && ([
|
|
393
|
+
37,
|
|
394
|
+
38,
|
|
395
|
+
39,
|
|
396
|
+
40
|
|
397
|
+
].includes(e.keyCode) ? i("move-to-direction", t) : i("do-zoom", t));
|
|
398
|
+
}, b = (e) => {
|
|
399
|
+
!r.isFullscreen || !r.isInside || u.get(e.keyCode) && (s.value = !1, r.stopAllCommand());
|
|
400
|
+
}, x = (e) => {
|
|
401
|
+
i("move-to-direction", e);
|
|
402
|
+
}, S = () => {
|
|
403
|
+
r.stopAllCommand();
|
|
404
|
+
};
|
|
405
|
+
return p(() => {
|
|
406
|
+
_();
|
|
407
|
+
}), f(() => {
|
|
408
|
+
v();
|
|
409
|
+
}), (n, r) => (m(), a("div", {
|
|
410
|
+
class: "wwav-player__ptz__direction",
|
|
411
|
+
onMouseup: S,
|
|
412
|
+
onMouseleave: E(S, ["stop"])
|
|
413
|
+
}, [
|
|
414
|
+
o("div", G, [(m(), a(e, null, g(l, (e) => o("div", {
|
|
415
|
+
key: e,
|
|
416
|
+
class: d({
|
|
417
|
+
"wwav-player__ptz__direction-triangle": !0,
|
|
418
|
+
active: e === t.currentDirection
|
|
419
|
+
}),
|
|
420
|
+
onMousedown: E((t) => x(e), ["stop"])
|
|
421
|
+
}, null, 42, K)), 64))]),
|
|
422
|
+
r[0] ||= o("div", { class: "wwav-player-center-middle wwav-player__ptz__direction-circle-border" }, null, -1),
|
|
423
|
+
r[1] ||= o("div", { class: "wwav-player-center-middle wwav-player__ptz__direction-circle" }, null, -1)
|
|
424
|
+
], 32));
|
|
425
|
+
}
|
|
426
|
+
}), J = /* @__PURE__ */ c({
|
|
427
|
+
__name: "popper",
|
|
428
|
+
props: { show: {
|
|
429
|
+
type: Boolean,
|
|
430
|
+
default: !1
|
|
431
|
+
} },
|
|
432
|
+
emits: ["plus", "minus"],
|
|
433
|
+
setup(e) {
|
|
434
|
+
return (t, n) => (m(), a("div", { class: d(["wwav-player__ptz__operation-popper", { "wwav-player__ptz__operation-popper-show": e.show }]) }, [
|
|
435
|
+
o("div", {
|
|
436
|
+
class: "wwav-player__ptz__operation-popper-icon",
|
|
437
|
+
onMousedown: n[0] ||= E((e) => t.$emit("plus"), ["stop"])
|
|
438
|
+
}, [...n[2] ||= [o("svg", {
|
|
439
|
+
viewBox: "0 0 1024 1024",
|
|
440
|
+
version: "1.1",
|
|
441
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
442
|
+
width: "16",
|
|
443
|
+
height: "16"
|
|
444
|
+
}, [o("path", { d: "M832 464H560V192a48 48 0 1 0-96 0v272H192a48 48 0 1 0 0 96h272v272a48 48 0 1 0 96 0V560h272a48 48 0 1 0 0-96z" })], -1)]], 32),
|
|
445
|
+
_(t.$slots, "center"),
|
|
446
|
+
o("div", {
|
|
447
|
+
class: "wwav-player__ptz__operation-popper-icon",
|
|
448
|
+
onMousedown: n[1] ||= E((e) => t.$emit("minus"), ["stop"])
|
|
449
|
+
}, [...n[3] ||= [o("svg", {
|
|
450
|
+
viewBox: "0 0 1024 1024",
|
|
451
|
+
version: "1.1",
|
|
452
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
453
|
+
width: "16",
|
|
454
|
+
height: "16"
|
|
455
|
+
}, [o("path", { d: "M853.333333 554.666667H170.666667c-23.466667 0-42.666667-19.2-42.666667-42.666667s19.2-42.666667 42.666667-42.666667h682.666666c23.466667 0 42.666667 19.2 42.666667 42.666667s-19.2 42.666667-42.666667 42.666667z" })], -1)]], 32)
|
|
456
|
+
], 2));
|
|
457
|
+
}
|
|
458
|
+
}), Y = ["title"], X = {
|
|
459
|
+
key: 0,
|
|
460
|
+
src: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAADQElEQVRIS8WWWehVVRSHv08oCINsehC1KKHZ0hKMZrWHKKRBc8IgCIPooR580kKorAhKoh6Kwop6aICSKKKSkApBRWyejCbFSqEHSbRxxYp95Xo9+57zF8r9eM5e69t77bV+a8khWh4iLp3AEXEqsAC4BDgNOA74E/gZ+Ah4G3hR3dH1IkPBBfgAMAv+PeR3wIfATmAUMB44txxkL/AksFz9pe0AVXBE3AI8VBw8ATymfjboMCLyABcDtwNXlygsUNcOgzeCI+IeYBmwAVikbmm7Qf6PiJnAMyUC89XVNbsDwBFxK/Ao8CowT80Qdl4RMQ5YA5wEXKqubzLeDxwRpwObgQ+K0W+diX0bI+IEYBOwCzhL3TPoZxD8GpDhmqR+fTDQnk1EzAVeyCdT762Cy20/BR5RbxsGjYiJwG71p5Z9G4G8/Xj1j/69+24cEXcBdwJnqJ/XHBboV8AOdWwL+KZSYleob9bA75aTndzibCqQN9mrHtGyNw+2HbhPXVoDp+qsU69pchYRZwJjinKlUPwOzCh7f1C3VuzS7/vqdTVwSuBT6uIGkTgR+KaoVZP/beqECjjzZqd6WQ2c9fq8emMD+CjgPeBY4DDg+NQL4Meyd/3gjfqy+0tgq3p5DZzl872a5VRdETGSN87k/RV4Wb2hBn4FmJ5yp2bYG9cIwecUMVqiPlgD3ww8DlypvjEEfDTwVnYq9fqW6NwN3FEE6ZMaODM2M3NDW7iHwbre9siSkN+q0wZtBiVzBZD1Nld9qQtgSGRWllY5S00p3m8NgkeXN8nsvaip/3Y5TETMKTq9Wp3dZNPUFs8upbMbuErNbtV5RcR84GngcOB8NXv6Aas2CFxY+nFK4nLgYTWValiZZZSyC6UA9fymXE5XU9vroe7/ExGp2c8CFwDbUtWA13Pm6g0HEZHCkomTMrsIyIR6DliVtQtkBSR8hppCsm+1DXv5fyGwBJhcrP4uopCzVoJy/VVK7H41m02OQeeVb8cUhUv4Fz1yp/G2OMrppDfeprOE5Xj7MfBOU2+OiJxAc/TtwWf2Wm5ncOfsGtgYEVPKDJbwLeopueU/B5do5TPl8LhJvfZ/A3cup4MN60js/gFMSkEuKKvOXwAAAABJRU5ErkJggg==",
|
|
461
|
+
alt: ""
|
|
462
|
+
}, Z = {
|
|
463
|
+
key: 1,
|
|
464
|
+
src: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAADJUlEQVRIS8WX2cuNaxjGf5chJ4QynMk8lESGkE04QDhQlF3YMjuhRPwHiH0gDsyKzQEnFE6UTGWToWwZM6SkbcyhxK3r87x61/rW8K4vH3etVu9az3Nf93xfr/hNoiK4EeFzk4CZwDhgANAV8O8fgMfAVeAMcFHS13p6awJHRDtgCbAR6At8Af4D7gFTgLbAOWAIMCw9PwW2Agck+XxFqQocEYOBY8CIBLQDOCHJHhIRl4EOksakZ0dgLrAGGArcBhZIspHNpCJwREw3SPJwQ7K+JHzlwJnmlBZHaRvQHpgvySkokWbAETEDOAk4ZLMkPalkcTXgnAG9U85dD3PKwUuAI2IQcAN4CUyQ9LZajuoBp/B3Ay4ANmJMPuw/gCOiDXAtVezIap7mPDroUEpaWKuCI6IPcAt4BozOCi4PvBTYD6yUtLdeOzTyf0Q45weA1ZJ2+24TcCqIR8BnV2SRPmwQ2Dh3gI5AP+vPgCe68VvD21xqlgH7gKmSzmfAfwNrgR6S3jfiTdGzEdEFeA3skrQuA74EdJLkYdFqEhE3nU5JYzPgVy57SX+2Gur3WvoHmCapewbsovIofFEG/LilxiQQj9289PJykdQ+D/wGKJ9STyQtbkkUIsJ97qmVl35AT0ltf3Woj6ZQd8uA3UqdJQ1viXdF70SEJ9gnSeMy4C3A+hSGd0UVNXIuIrw23U47JK3PgCcA3q8/RlojSoucjYgVwB5gsqQL+ZH5IO3f1hqZd00cXHCSmrhUk0SEq/cQsEqSLstpEhHLAS+e5ZK8iL4viQTstfgv4N4bJclLo6pExOG0FmsOnYjon3a8CeHYZmsxgbvvTAT+B/6Q5O+KUpAIdE9EwIPDzjzMlFWiPuZbp4DnwOxqntcDTp6eBkwETH3O5j2oRvamAcdTKja5Gsupag2y55SZVGxP9032SkBLclwez4gYCBwxVwKc7502RpJ7sRK9dVjnJXpr7nYd+EuSu6WZ1CP0tn4RYK+tLBLHvm8ymAi8p54JvT8+byM3A4drMZlCrzDJw/Gmu7lXGC92y8cE5o44I+lKkT4sDFxEWSNnvgEeKk4uGlQWRgAAAABJRU5ErkJggg==",
|
|
465
|
+
alt: ""
|
|
466
|
+
}, Q = {
|
|
467
|
+
key: 2,
|
|
468
|
+
src: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAEV0lEQVRIS8WXe8jecxjGP5fDiJrkMGxamM00lENGXo0Jmy2iWBabkjHJaWYlc2gx5qyktTlMi5xCDkMZw6hJ/DGHHOcwTZtohDlcuh7f39vvefY+7+Hxh7vef37v9/u97vu6D9f9iP/J1B9c21sA44CTgCOA4cDOwB/AT8CXwFvAc8Brkv7u691egW1vCZwLXA58DDwJvA3MBA4BTge+A/YGuoDTgBHArcBiSX+1c6AtsO0xwBLgPWCepM9tDwaeKBHOlJSIm8z2PsA1wP7ANEmrewLvEdh2KL0bOF/SS7loewjwArBUUiLq1WyfCNwTdiQtaz28GbDtk4H5yWeiLKBDgThwc6H8MGA0sHt8An4AvgI+AFZKWlvuhfbk/RJJcbrbmoBth54cHCdpTbm8A/BmKaY/C/XJcygMQN7YCTgauAL4Hvi2sPM4sBF4GZgo6aMKuRu4FNI7wGxJOdgw208DqdIHgWWSfmvHse2pwNVJEXAgcCawXWFjN+DwquDqwDOAexOZpA0FNN8mSDqlr5zWHJ0I3AYcG8pt7wucB5wDzJG0KGcbwKVPQ8OvaR9Jq2ynT1cVL0Nfv832FOCy0F8xZLvK9+j0eQU8HrgY+AR4X9IS22kJSbq234i1g7ZvAgZJurTGxvPAAknLK+A7StFkQqXAUiSfFo9TKAM224MSBHCqpA8LsxlGIyXNroBXAmcD25f8XAVcJ+mEASM2R30WMF7S9AK8H7BI0lEV8Ddl/qYnM3cfADZIuvM/Am8NfA2MkbTe9lbAGklDK+C1kvYoXj0DZEBMlpT26thsp5UiIhdJSsekkNdJGtITcATgdmCwpN87Rv0XJEqWIfKupMkFuBFkE9Vpbtu7lKIY3pMIDMQR27PKAMk82LO0b6geVgFnJE6XlHaKp1GlFyUtHQhQ61nbr5QOuSV0F/1OcXVVwFGb1ZLuK8ARgGjvQZI2dQJuOzWzXNIo2xGXCEiKbYSkKyvgYyL2kibVmj153pRDHQLPA36RdKPttOoB5W++pFfrIzNNHgX5rES9LbAihSbp4YGAl2jfAA6W9KPtscDCTLLIqSTXRSKDPDocFVqYaVMeSJ5mSXq2P+B2482Mxkck5a3UzK7AuqIDi/OtVRYjChH0CH+099GiuxkkN0h6qB247Uy9pCq0bpQUoWiY7XyfC4ytFsF2i8DxQBa9M8pmmT1qx9LfoT8bR+6mgDLbQ2UKMlRmOeiS9HMBHZkOKfK6+SJQ8y56msKaVGuvUHVoRh+wV3EiV0JfqrUhn8AFwHGSGjJqO6DZaLJ3dS8XTVTXKbQdcciIu1BS8tWr2Z4TFSrFub5G713AjFbQtsA1bzNAIo9zq+hbHNymOJhpNyX02h4FXF+YmdrTvV6BC3jyPK1Mny+Ap0qLxZlhwGPA68D9wJFAVqT8yliQnbyjhb4lshRStsgJBSB5zvaZxSGFljU4m2dW2BXp077S06/fTn090sn//wGEVdYusNmj3QAAAABJRU5ErkJggg==",
|
|
469
|
+
alt: ""
|
|
470
|
+
}, $ = /* @__PURE__ */ c({
|
|
471
|
+
__name: "operationButton",
|
|
472
|
+
props: {
|
|
473
|
+
isLockedByOther: {
|
|
474
|
+
type: Boolean,
|
|
475
|
+
default: !1
|
|
476
|
+
},
|
|
477
|
+
type: {},
|
|
478
|
+
title: {},
|
|
479
|
+
command1: {},
|
|
480
|
+
command2: {}
|
|
481
|
+
},
|
|
482
|
+
emits: ["do-zoom"],
|
|
483
|
+
setup(e, { emit: t }) {
|
|
484
|
+
let n = t, i = h(!1), s = (e) => {
|
|
485
|
+
n("do-zoom", e);
|
|
486
|
+
};
|
|
487
|
+
return (t, n) => (m(), a("div", {
|
|
488
|
+
class: "wwav-player__ptz__operation-button",
|
|
489
|
+
title: e.title
|
|
490
|
+
}, [o("div", {
|
|
491
|
+
class: "image",
|
|
492
|
+
onClick: n[0] ||= E((e) => i.value = !i.value, ["stop"])
|
|
493
|
+
}, [e.type === "Multiple" ? (m(), a("img", X)) : e.type === "Focus" ? (m(), a("img", Z)) : (m(), a("img", Q))]), e.isLockedByOther ? (m(), a("div", {
|
|
494
|
+
key: 1,
|
|
495
|
+
class: d(["wwav-player__ptz__operation-button-disable", { "wwav-player__ptz__operation-popper-show": i.value }])
|
|
496
|
+
}, " 不可操作 ", 2)) : (m(), r(J, {
|
|
497
|
+
key: 0,
|
|
498
|
+
show: i.value,
|
|
499
|
+
onPlus: n[1] ||= (t) => s(e.command1),
|
|
500
|
+
onMinus: n[2] ||= (t) => s(e.command2)
|
|
501
|
+
}, null, 8, ["show"]))], 8, Y));
|
|
502
|
+
}
|
|
503
|
+
}), fe = {
|
|
504
|
+
key: 0,
|
|
505
|
+
src: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAACAklEQVRIS+2WMUiWURSGn7eIEhqiCArcTAzNhiAIGwMxijBsSmgMsgZxaonAySVqscC1oCUSQiGquXQKK7MiR0OQoqEhIX3jwBf82u9/r34/idBZ7vCde5573vvd916xSaFN4rIusO09wDXgPNBWLPodMAoMS/qe20g22HYH8Ag4CCwBn4uxBdgOfAF6JE3kwLPAtg8Dk8Bu4A4wJGkhALb3A9eBfuAHcFzSpxQ8F/wCOAUMSLpdrajtAeAW8FxSZ2mw7UNAdDAFHJPkNcDRxGvgKNAsabYWPNmx7V7gATAo6WatYrYHgRvARUkPy4KvAHeBq5JiXDNs98XfDfRJulcvcLKY7T+LTObmSJ1dbOuCbYchxNndBVwozulQYSC1tm517k/gg6QwnBXxl9S2W4EnQFPqLGZ+D4c7J2mmMr8a+BVwAvgKjAGLmYDVaaHWWWAv8FLSyRT4V+HBbZJitRuOwnymgW2SdqTA4UzTko5smFgx0XaAWyWtULea1AF+Kymsr3TYfgO0b32w7ftxK0q6lLDR+nZsez6Akg78B1cqUPefy/ZcsceN/1rqrmKPn9YT/FFSXBKlw3Y8m+IplDSQuFHC3k5LelaGbDsefaHIoqSGlGXG47wbWAbel7gkdoZVhk8DjyX1pMD7gBHgDBCTy0SoNw5clvStJrgMZT1zfwNkdRIu4LPeUgAAAABJRU5ErkJggg==",
|
|
506
|
+
alt: ""
|
|
507
|
+
}, pe = {
|
|
508
|
+
key: 1,
|
|
509
|
+
src: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAACAklEQVRIS+2WMUiWURSGn7eIEhqiCArcTAzNhiAIGwMxijBsSmgMsgZxaonAySVqscC1oCUSQiGquXQKK7MiR0OQoqEhIX3jwBf82u9/r34/idBZ7vCde5573vvd916xSaFN4rIusO09wDXgPNBWLPodMAoMS/qe20g22HYH8Ag4CCwBn4uxBdgOfAF6JE3kwLPAtg8Dk8Bu4A4wJGkhALb3A9eBfuAHcFzSpxQ8F/wCOAUMSLpdrajtAeAW8FxSZ2mw7UNAdDAFHJPkNcDRxGvgKNAsabYWPNmx7V7gATAo6WatYrYHgRvARUkPy4KvAHeBq5JiXDNs98XfDfRJulcvcLKY7T+LTObmSJ1dbOuCbYchxNndBVwozulQYSC1tm517k/gg6QwnBXxl9S2W4EnQFPqLGZ+D4c7J2mmMr8a+BVwAvgKjAGLmYDVaaHWWWAv8FLSyRT4V+HBbZJitRuOwnymgW2SdqTA4UzTko5smFgx0XaAWyWtULea1AF+Kymsr3TYfgO0b32w7ftxK0q6lLDR+nZsez6Akg78B1cqUPefy/ZcsceN/1rqrmKPn9YT/FFSXBKlw3Y8m+IplDSQuFHC3k5LelaGbDsefaHIoqSGlGXG47wbWAbel7gkdoZVhk8DjyX1pMD7gBHgDBCTy0SoNw5clvStJrgMZT1zfwNkdRIu4LPeUgAAAABJRU5ErkJggg==",
|
|
510
|
+
alt: ""
|
|
511
|
+
}, me = /* @__PURE__ */ c({
|
|
512
|
+
__name: "lockButton",
|
|
513
|
+
props: {
|
|
514
|
+
isLocked: {
|
|
515
|
+
type: Boolean,
|
|
516
|
+
default: !1
|
|
517
|
+
},
|
|
518
|
+
isLockedByOther: {
|
|
519
|
+
type: Boolean,
|
|
520
|
+
default: !1
|
|
521
|
+
}
|
|
522
|
+
},
|
|
523
|
+
emits: ["lock-ptz", "unlock-ptz"],
|
|
524
|
+
setup(e, { emit: t }) {
|
|
525
|
+
let n = e, r = t, s = h(!1), c = h(!1), l = h(n.isLocked), u = () => {
|
|
526
|
+
if (!c.value) {
|
|
527
|
+
if (n.isLockedByOther) {
|
|
528
|
+
s.value = !0;
|
|
529
|
+
return;
|
|
530
|
+
}
|
|
531
|
+
c.value = !0, l.value ? r("unlock-ptz") : r("lock-ptz"), setTimeout(() => {
|
|
532
|
+
c.value = !1, l.value = !l.value;
|
|
533
|
+
}, 1e3);
|
|
534
|
+
}
|
|
535
|
+
};
|
|
536
|
+
return f(() => {
|
|
537
|
+
r("unlock-ptz");
|
|
538
|
+
}), (t, n) => (m(), a("div", {
|
|
539
|
+
class: d({
|
|
540
|
+
"wwav-player__ptz__operation-button": !0,
|
|
541
|
+
isLocked: e.isLocked
|
|
542
|
+
}),
|
|
543
|
+
title: "锁定",
|
|
544
|
+
onMousedown: E(() => {}, ["stop"]),
|
|
545
|
+
onMousemove: E(() => {}, ["stop"]),
|
|
546
|
+
onMouseup: E(() => {}, ["stop"])
|
|
547
|
+
}, [o("div", {
|
|
548
|
+
class: "image",
|
|
549
|
+
onClick: u
|
|
550
|
+
}, [e.isLocked ? (m(), a("img", fe)) : (m(), a("img", pe))]), e.isLockedByOther ? (m(), a("div", {
|
|
551
|
+
key: 0,
|
|
552
|
+
class: d(["wwav-player__ptz__operation-button-disable", { "wwav-player__ptz__operation-popper-show": s.value }])
|
|
553
|
+
}, " 不可操作 ", 2)) : i("", !0)], 34));
|
|
554
|
+
}
|
|
555
|
+
}), he = /* @__PURE__ */ c({
|
|
556
|
+
__name: "operations",
|
|
557
|
+
props: {
|
|
558
|
+
step: { default: 4 },
|
|
559
|
+
isLocked: {
|
|
560
|
+
type: Boolean,
|
|
561
|
+
default: !1
|
|
562
|
+
},
|
|
563
|
+
isLockedByOther: {
|
|
564
|
+
type: Boolean,
|
|
565
|
+
default: !1
|
|
566
|
+
},
|
|
567
|
+
stopAllCommand: {}
|
|
568
|
+
},
|
|
569
|
+
emits: [
|
|
570
|
+
"update:step",
|
|
571
|
+
"do-zoom",
|
|
572
|
+
"lock-ptz",
|
|
573
|
+
"unlock-ptz"
|
|
574
|
+
],
|
|
575
|
+
setup(e, { emit: t }) {
|
|
576
|
+
let n = e, r = t, i = h(!1), c = h(n.step), l = (e) => {
|
|
577
|
+
e === "plus" && c.value < 7 ? (c.value++, r("update:step", c.value)) : e === "minus" && c.value > 1 && (c.value--, r("update:step", c.value));
|
|
578
|
+
}, u = (e) => {
|
|
579
|
+
r("do-zoom", e);
|
|
580
|
+
}, d = () => r("lock-ptz"), f = () => r("unlock-ptz"), p = () => n.stopAllCommand();
|
|
581
|
+
return (t, n) => (m(), a("div", {
|
|
582
|
+
class: "wwav-player__ptz__operation",
|
|
583
|
+
onMouseup: p,
|
|
584
|
+
onMouseleave: E(p, ["stop"])
|
|
585
|
+
}, [
|
|
586
|
+
s($, {
|
|
587
|
+
"is-locked-by-other": e.isLockedByOther,
|
|
588
|
+
type: "Multiple",
|
|
589
|
+
title: "变倍",
|
|
590
|
+
command1: "zoom_in",
|
|
591
|
+
command2: "zoom_out",
|
|
592
|
+
onDoZoom: u
|
|
593
|
+
}, null, 8, ["is-locked-by-other"]),
|
|
594
|
+
s($, {
|
|
595
|
+
"is-locked-by-other": e.isLockedByOther,
|
|
596
|
+
type: "Focus",
|
|
597
|
+
title: "聚焦",
|
|
598
|
+
command1: "focus_in",
|
|
599
|
+
command2: "focus_out",
|
|
600
|
+
onDoZoom: u
|
|
601
|
+
}, null, 8, ["is-locked-by-other"]),
|
|
602
|
+
s($, {
|
|
603
|
+
"is-locked-by-other": e.isLockedByOther,
|
|
604
|
+
type: "Aperature",
|
|
605
|
+
title: "光圈",
|
|
606
|
+
command1: "iris_down",
|
|
607
|
+
command2: "iris_up",
|
|
608
|
+
onDoZoom: u
|
|
609
|
+
}, null, 8, ["is-locked-by-other"]),
|
|
610
|
+
o("div", {
|
|
611
|
+
class: "wwav-player__ptz__operation-button",
|
|
612
|
+
title: "速度",
|
|
613
|
+
onMouseup: () => {}
|
|
614
|
+
}, [o("div", {
|
|
615
|
+
class: "image",
|
|
616
|
+
onClick: n[0] ||= (e) => i.value = !i.value
|
|
617
|
+
}, [...n[3] ||= [o("img", {
|
|
618
|
+
src: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAADAUlEQVRIS+2WXcifcxjHPx89lBUrMwdbMtrBkHaA1oZGZLUozjgQQmPZMEeKnVhKqWENIaWkOJKXxCiUl81L0xoRaSnJyxJlXsZX17P7XvezPc//vp95tBPXyfPU/ftdn+v6Xi+/vxwm87/kJlmofjEZY1rgJCcAS4GFwHFAgN3Al8BW9dsWkuQ84Bd1+yGBk8wCrgWuAc4Epgr2Z+B49c8kc4D71aumUnRkxkluADYAlelvwCvAm8CnwA/A38Bc4FRgTL2vQEleAB5Tn58WOMmxwFPApcBPwL3AI2r9P9KS3ArcWMGoVYpJ7aCMG5leBxYDLwLXqd/1AZtMqxRvA7epDyc5uiQH7lS/7/qYAG4OlpRnAxuB20dF3XWU5BjgI2A2cJK6J8n1JXk1HnC+WuUatwPBDwE3AY+rVd/BluRp4ErgbnV9p7sLXAFsVm8+CJykxqRk+hhYov4xlNrJbA+woFuaJEcB24AzgHPU9yZknGQLcCGwrP04BJzk9MZxjd2j6qoD7yVZArwLvKZevB+cZBHwCbBFXTEE2DRTwSqbgv9Vf9XPJruf5FXgImCR+vl4jZPcAdwDXKE+Mw1wW7+68px6+VR3k1T9qw/uUje04FoMFc1ctVZgr3UctWerRCXnpJakVmwtnXG5W/DXJZW6oJe4T6Ha1R8CtWjK3lAv6LubZBdwhHpiC/61ulmtzh5pSY4E3gHO6hxcoVYN++6WIovVWS14b42SunzA5VqJtVxa+0CthdNrSd5qpmasBf8IfKPWrPVFXWNX/dDaJepLfffqe5IdwDx1Tgt+vxnw2ervo5w0TfUkUJIPqm0DHQPq6RwvaQveDKwGzlVre/VlfRpwGfBE9/HvCXhZsxk3quta8Eqg5HpQvaUPfCjfkzwArAVWqi+34JLhK6BemFOGzvLQAJoZLv8l9cnq3v2vU5I1lTGwSa3IZsw62a5VN5XjLriyrpdjp3r1jFH3dfOzwHxgeWU7ATyToCG+pvXzdojDoWf+Bw9V6l+fO2xS/wMInjMueg7JWQAAAABJRU5ErkJggg==",
|
|
619
|
+
alt: ""
|
|
620
|
+
}, null, -1)]]), s(J, {
|
|
621
|
+
style: { top: "-124px" },
|
|
622
|
+
show: i.value,
|
|
623
|
+
onPlus: n[1] ||= (e) => l("plus"),
|
|
624
|
+
onMinus: n[2] ||= (e) => l("minus")
|
|
625
|
+
}, {
|
|
626
|
+
center: w(() => [o("span", null, v(e.step), 1)]),
|
|
627
|
+
_: 1
|
|
628
|
+
}, 8, ["show"])], 32),
|
|
629
|
+
s(me, {
|
|
630
|
+
"is-locked": e.isLocked,
|
|
631
|
+
"is-locked-by-other": e.isLockedByOther,
|
|
632
|
+
onLockPtz: d,
|
|
633
|
+
onUnlockPtz: f
|
|
634
|
+
}, null, 8, ["is-locked", "is-locked-by-other"])
|
|
635
|
+
], 32));
|
|
636
|
+
}
|
|
637
|
+
}), ge = /* @__PURE__ */ U(/* @__PURE__ */ c({
|
|
638
|
+
__name: "message",
|
|
639
|
+
setup(e, { expose: n }) {
|
|
640
|
+
let o = h(!1), s = h(""), c = h("info");
|
|
641
|
+
return n({ show: (e, t = "info") => {
|
|
642
|
+
s.value = e, c.value = t, o.value = !0, setTimeout(() => {
|
|
643
|
+
o.value = !1;
|
|
644
|
+
}, 3e3);
|
|
645
|
+
} }), (e, n) => (m(), r(t, { name: "fade" }, {
|
|
646
|
+
default: w(() => [o.value ? (m(), a("div", {
|
|
647
|
+
key: 0,
|
|
648
|
+
class: d(["wwav-player__ptz-message", c.value])
|
|
649
|
+
}, v(s.value), 3)) : i("", !0)]),
|
|
650
|
+
_: 1
|
|
651
|
+
}));
|
|
652
|
+
}
|
|
653
|
+
}), [["__scopeId", "data-v-97aecee1"]]);
|
|
654
|
+
//#endregion
|
|
655
|
+
//#region src/package/ww-video-player/PTZ/composables/useLock.ts
|
|
656
|
+
function _e() {
|
|
657
|
+
let e = h(!1), t = h(null), n = h(!1), r = h(0), i = () => {
|
|
658
|
+
r.value && clearInterval(r.value), r.value = 0, t.value = null, e.value = !1, n.value = !1;
|
|
659
|
+
};
|
|
660
|
+
return f(() => {
|
|
661
|
+
i();
|
|
662
|
+
}), {
|
|
663
|
+
isLocked: e,
|
|
664
|
+
lockToken: t,
|
|
665
|
+
isLockedByOther: n,
|
|
666
|
+
unlockTimerId: r,
|
|
667
|
+
idle_timeout: 10,
|
|
668
|
+
resetLock: i
|
|
669
|
+
};
|
|
670
|
+
}
|
|
671
|
+
//#endregion
|
|
672
|
+
//#region src/package/ww-video-player/PTZ/index.vue
|
|
673
|
+
var ve = /* @__PURE__ */ c({
|
|
674
|
+
__name: "index",
|
|
675
|
+
props: {
|
|
676
|
+
devicePath: { default: "" },
|
|
677
|
+
isFullscreen: {
|
|
678
|
+
type: Boolean,
|
|
679
|
+
default: !1
|
|
680
|
+
}
|
|
681
|
+
},
|
|
682
|
+
emits: [
|
|
683
|
+
"move-to-direction",
|
|
684
|
+
"do-zoom",
|
|
685
|
+
"lock-ptz"
|
|
686
|
+
],
|
|
687
|
+
setup(e, { emit: t }) {
|
|
688
|
+
let n = t, r = h(null), i = h(null), { isLocked: c, isLockedByOther: l, resetLock: u } = _e(), d = h(4), p = h(!1), g = h(""), _ = (e) => {
|
|
689
|
+
g.value = e, n("move-to-direction", e);
|
|
690
|
+
}, b = (e) => {
|
|
691
|
+
n("do-zoom", e);
|
|
692
|
+
}, x = A(() => {
|
|
693
|
+
g.value = "";
|
|
694
|
+
}, 200), C = (e) => {
|
|
695
|
+
i.value?.show(e.message, e.type);
|
|
696
|
+
}, w = () => {
|
|
697
|
+
n("lock-ptz", !0), c.value = !0, C({
|
|
698
|
+
type: "success",
|
|
699
|
+
message: "云台已锁定"
|
|
700
|
+
});
|
|
701
|
+
}, D = () => {
|
|
702
|
+
n("lock-ptz", !1), u(), C({
|
|
703
|
+
type: "success",
|
|
704
|
+
message: "云台已解锁"
|
|
705
|
+
});
|
|
706
|
+
}, O = h(null), k = h(!1), j = (e) => {
|
|
707
|
+
O.value && clearTimeout(O.value), k.value || (k.value = !0, b(e.deltaY > 0 ? "zoom_out" : "zoom_in")), O.value = setTimeout(() => {
|
|
708
|
+
x(), k.value = !1;
|
|
709
|
+
}, 500);
|
|
710
|
+
}, M = () => {
|
|
711
|
+
p.value = !1, x();
|
|
712
|
+
};
|
|
713
|
+
return f(() => {
|
|
714
|
+
u(), O.value && clearTimeout(O.value);
|
|
715
|
+
}), (t, n) => (m(), a("div", {
|
|
716
|
+
ref_key: "videoContainer",
|
|
717
|
+
ref: r,
|
|
718
|
+
class: "wwav-player__ptz",
|
|
719
|
+
onWheel: E(j, ["self", "prevent"]),
|
|
720
|
+
onMouseleave: M
|
|
721
|
+
}, [
|
|
722
|
+
T(o("span", { class: "wwav-player__ptz-status-label" }, " 可操控: " + v(y(l) ? "否" : "是"), 513), [[S, e.isFullscreen]]),
|
|
723
|
+
T(s(q, {
|
|
724
|
+
"current-direction": g.value,
|
|
725
|
+
"stop-all-command": y(x),
|
|
726
|
+
"is-inside": p.value,
|
|
727
|
+
"is-fullscreen": e.isFullscreen,
|
|
728
|
+
onMoveToDirection: _,
|
|
729
|
+
onDoZoom: b
|
|
730
|
+
}, null, 8, [
|
|
731
|
+
"current-direction",
|
|
732
|
+
"stop-all-command",
|
|
733
|
+
"is-inside",
|
|
734
|
+
"is-fullscreen"
|
|
735
|
+
]), [[S, e.isFullscreen]]),
|
|
736
|
+
T(s(he, {
|
|
737
|
+
step: d.value,
|
|
738
|
+
"onUpdate:step": n[0] ||= (e) => d.value = e,
|
|
739
|
+
"is-locked": y(c),
|
|
740
|
+
"is-locked-by-other": y(l),
|
|
741
|
+
"stop-all-command": y(x),
|
|
742
|
+
onDoZoom: b,
|
|
743
|
+
onLockPtz: w,
|
|
744
|
+
onUnlockPtz: D
|
|
745
|
+
}, null, 8, [
|
|
746
|
+
"step",
|
|
747
|
+
"is-locked",
|
|
748
|
+
"is-locked-by-other",
|
|
749
|
+
"stop-all-command"
|
|
750
|
+
]), [[S, e.isFullscreen]]),
|
|
751
|
+
s(ge, {
|
|
752
|
+
ref_key: "messageRef",
|
|
753
|
+
ref: i
|
|
754
|
+
}, null, 512)
|
|
755
|
+
], 544));
|
|
756
|
+
}
|
|
757
|
+
});
|
|
758
|
+
//#endregion
|
|
759
|
+
//#region src/package/ww-video-player/composables/usePlayer.ts
|
|
760
|
+
function ye() {
|
|
761
|
+
let e = h(null), t = h(!1), n = h(!1), r = h("H264"), i = h({
|
|
762
|
+
format: "H264",
|
|
763
|
+
width: 0,
|
|
764
|
+
height: 0
|
|
765
|
+
}), a = h(4), o = (e, t, n) => {
|
|
766
|
+
console.error("Player error:", e, t, n);
|
|
767
|
+
}, s = (e) => {
|
|
768
|
+
i.value = e, r.value = e.format;
|
|
769
|
+
}, c = () => {
|
|
770
|
+
a.value = 2;
|
|
771
|
+
}, l = () => {
|
|
772
|
+
a.value = 3;
|
|
773
|
+
}, u = async (r, i, a, u) => {
|
|
774
|
+
let d = (await import("@vanwei-wcs/wwav-player")).default, f = new d(r);
|
|
775
|
+
f.on("error", (...e) => o(e[0], e[1], e[2])), f.on("media_info", (...e) => s(e[0])), f.on("play", c), f.on("pause", l), e.value = f, t.value = !0, n.value || g(i, a, u);
|
|
776
|
+
}, d = (t, n) => new Promise((r) => {
|
|
777
|
+
e.value ? (e.value.open(t.url, t.token), n(), a.value = 2, r()) : setTimeout(() => {
|
|
778
|
+
d(t, n).then(r);
|
|
779
|
+
}, 200);
|
|
780
|
+
}), f = (t) => {
|
|
781
|
+
e.value && e.value.openTalk(t.url, t.token);
|
|
782
|
+
}, p = () => {
|
|
783
|
+
e.value && e.value.closeTalk();
|
|
784
|
+
}, m = (t) => {
|
|
785
|
+
e.value && e.value.muted(t);
|
|
786
|
+
}, g = (t, r, i) => {
|
|
787
|
+
e.value && !n.value && (t && e.value.attachVideoElement(t, i), r && e.value.attachCanvasElement(r, i), n.value = !0);
|
|
788
|
+
};
|
|
789
|
+
return {
|
|
790
|
+
player: e,
|
|
791
|
+
playerCreated: t,
|
|
792
|
+
attachedElement: n,
|
|
793
|
+
streamType: r,
|
|
794
|
+
mediaInfo: i,
|
|
795
|
+
videoStatus: a,
|
|
796
|
+
createPlayer: u,
|
|
797
|
+
open: d,
|
|
798
|
+
openTalk: f,
|
|
799
|
+
closeTalk: p,
|
|
800
|
+
controlSound: m,
|
|
801
|
+
attachElement: g,
|
|
802
|
+
play: () => {
|
|
803
|
+
e.value && e.value.play();
|
|
804
|
+
},
|
|
805
|
+
pause: () => {
|
|
806
|
+
e.value && e.value.pause();
|
|
807
|
+
},
|
|
808
|
+
changePlayStatus: (t) => {
|
|
809
|
+
try {
|
|
810
|
+
e.value && (t === 2 ? e.value.play() : t === 3 && e.value.pause());
|
|
811
|
+
} catch (e) {
|
|
812
|
+
console.error("changePlayStatus error:", e);
|
|
813
|
+
}
|
|
814
|
+
},
|
|
815
|
+
destroyPlayer: async (r) => {
|
|
816
|
+
r(), e.value && await e.value.destroy(), a.value = 4, e.value = null, t.value = !1, n.value = !1;
|
|
817
|
+
}
|
|
818
|
+
};
|
|
819
|
+
}
|
|
820
|
+
//#endregion
|
|
821
|
+
//#region src/package/ww-video-player/composables/useStream.ts
|
|
822
|
+
function be() {
|
|
823
|
+
let e = h({
|
|
824
|
+
_staticsInfoTimer: null,
|
|
825
|
+
_timeDiff: 1e3,
|
|
826
|
+
_BPS: 0,
|
|
827
|
+
_FPS: 0,
|
|
828
|
+
speed: 0,
|
|
829
|
+
fps: 0
|
|
830
|
+
});
|
|
831
|
+
return {
|
|
832
|
+
streamOptions: e,
|
|
833
|
+
onStream: (t, n, r, i) => {
|
|
834
|
+
t.type === "video" && (e.value._BPS += t.data.byteLength, e.value._FPS++);
|
|
835
|
+
},
|
|
836
|
+
startStaticsInfoTimer: () => {
|
|
837
|
+
e.value._staticsInfoTimer && clearInterval(e.value._staticsInfoTimer), e.value._staticsInfoTimer = setInterval(() => {
|
|
838
|
+
let t = e.value._BPS;
|
|
839
|
+
e.value.speed = Math.floor(t / 1024), e.value.fps = e.value._FPS, e.value._BPS = 0, e.value._FPS = 0;
|
|
840
|
+
}, e.value._timeDiff);
|
|
841
|
+
},
|
|
842
|
+
clearStaticsInfoTimer: () => {
|
|
843
|
+
e.value._staticsInfoTimer && clearInterval(e.value._staticsInfoTimer), e.value._BPS = 0, e.value._FPS = 0, e.value.speed = 0, e.value.fps = 0;
|
|
844
|
+
}
|
|
845
|
+
};
|
|
846
|
+
}
|
|
847
|
+
//#endregion
|
|
848
|
+
//#region src/package/ww-video-player/composables/useVideo.ts
|
|
849
|
+
function xe() {
|
|
850
|
+
let e = h(4);
|
|
851
|
+
return {
|
|
852
|
+
_videoStatus: e,
|
|
853
|
+
capture: async (e = { download: !0 }, t, n, r, i) => {
|
|
854
|
+
if ([2, 3].includes(t.value) && n) try {
|
|
855
|
+
let t;
|
|
856
|
+
if (i.value === "H265" && r) t = r;
|
|
857
|
+
else {
|
|
858
|
+
t = document.createElement("canvas"), t.width = n.videoWidth, t.height = n.videoHeight;
|
|
859
|
+
let e = t.getContext("2d");
|
|
860
|
+
e && e.drawImage(n, 0, 0, t.width, t.height);
|
|
861
|
+
}
|
|
862
|
+
let a = await t.toDataURL("image/png");
|
|
863
|
+
return a === "data:," ? Promise.reject({
|
|
864
|
+
reply: 400,
|
|
865
|
+
err_msg: "没有视频流,无法截图"
|
|
866
|
+
}) : e?.download ? (await M(await N(a), "capture", ".png"), Promise.resolve()) : Promise.resolve(a);
|
|
867
|
+
} catch (e) {
|
|
868
|
+
let t = e;
|
|
869
|
+
return Promise.reject({
|
|
870
|
+
reply: 400,
|
|
871
|
+
err_msg: "截图失败" + t.message
|
|
872
|
+
});
|
|
873
|
+
}
|
|
874
|
+
else return Promise.reject({
|
|
875
|
+
reply: 400,
|
|
876
|
+
err_msg: "未打开视频,无法截图"
|
|
877
|
+
});
|
|
878
|
+
},
|
|
879
|
+
emitVideoStatus: (t, n) => {
|
|
880
|
+
e.value = t, n("video-status-change", t);
|
|
881
|
+
}
|
|
882
|
+
};
|
|
883
|
+
}
|
|
884
|
+
//#endregion
|
|
885
|
+
//#region src/package/ww-video-player/composables/useDom.ts
|
|
886
|
+
function Se() {
|
|
887
|
+
let e = h(null), t = h(null), n = h(0), r = h(0), i = h("both"), a = h(null), o = h(null), s = h(!1), c = h(.8), l = h(1), u = (e) => {
|
|
888
|
+
let { offsetWidth: t, offsetHeight: i } = e;
|
|
889
|
+
n.value = t, r.value = i, o.value && (o.value.width = t, o.value.height = i);
|
|
890
|
+
}, d = async (e, t = "both") => {
|
|
891
|
+
if (e) {
|
|
892
|
+
if (t !== "canvas") {
|
|
893
|
+
let t = document.createElement("video");
|
|
894
|
+
t.autoplay = !0, t.classList.add("wcs-wwav-base-video__content"), t.muted = !0, t.playsInline = !0, g(t), e.appendChild(t), a.value = t;
|
|
895
|
+
}
|
|
896
|
+
if (t !== "video") {
|
|
897
|
+
let i = document.createElement("canvas");
|
|
898
|
+
i.width = n.value, i.height = r.value, t === "canvas" ? i.style.display = "block" : i.style.display = "none", e.appendChild(i), o.value = i;
|
|
899
|
+
}
|
|
900
|
+
s.value = !0;
|
|
901
|
+
} else s.value = !1;
|
|
902
|
+
}, f = async (e) => {
|
|
903
|
+
e || (a.value && (_(a.value), a.value.remove()), o.value && o.value.remove(), a.value = null, o.value = null, s.value = !1);
|
|
904
|
+
}, p = (e) => {
|
|
905
|
+
e === "H265" ? (a.value && (a.value.style.display = "none"), o.value && (o.value.style.display = "block")) : (a.value && (a.value.style.display = "block"), o.value && (o.value.style.display = "none"));
|
|
906
|
+
}, m = (e, t) => {
|
|
907
|
+
t === "H264" && a.value && (a.value.playbackRate = e);
|
|
908
|
+
}, g = (e) => {
|
|
909
|
+
e.addEventListener("progress", v);
|
|
910
|
+
}, _ = (e) => {
|
|
911
|
+
e.removeEventListener("progress", v);
|
|
912
|
+
}, v = (e) => {};
|
|
913
|
+
return {
|
|
914
|
+
erd: e,
|
|
915
|
+
mediaBox: t,
|
|
916
|
+
mediaBoxWidth: n,
|
|
917
|
+
mediaBoxHeight: r,
|
|
918
|
+
domForceType: i,
|
|
919
|
+
videoMedia: a,
|
|
920
|
+
canvasMedia: o,
|
|
921
|
+
domCreated: s,
|
|
922
|
+
videoMediaDelay: c,
|
|
923
|
+
videoMediaPlaySpeed: l,
|
|
924
|
+
mediaBoxResize: u,
|
|
925
|
+
createMediaDom: d,
|
|
926
|
+
clearMediaDom: f,
|
|
927
|
+
changeDomDisplay: p,
|
|
928
|
+
changePlaybackRate: m,
|
|
929
|
+
addVideoListener: g,
|
|
930
|
+
removeVideoListener: _,
|
|
931
|
+
initResizeDetector: (n) => {
|
|
932
|
+
e.value = O(), e.value.listenTo(n, u), t.value = n;
|
|
933
|
+
},
|
|
934
|
+
destroyResizeDetector: () => {
|
|
935
|
+
e.value && t.value && e.value.uninstall(t.value), e.value = null;
|
|
936
|
+
}
|
|
937
|
+
};
|
|
938
|
+
}
|
|
939
|
+
//#endregion
|
|
940
|
+
//#region src/package/ww-video-player/index.vue
|
|
941
|
+
var Ce = /* @__PURE__ */ U(/* @__PURE__ */ c({
|
|
942
|
+
__name: "index",
|
|
943
|
+
props: {
|
|
944
|
+
debug: {
|
|
945
|
+
type: Boolean,
|
|
946
|
+
default: !1
|
|
947
|
+
},
|
|
948
|
+
isLive: {
|
|
949
|
+
type: Boolean,
|
|
950
|
+
default: !0
|
|
951
|
+
},
|
|
952
|
+
options: { default: () => ({
|
|
953
|
+
debug: !1,
|
|
954
|
+
mode: "video",
|
|
955
|
+
baseLibPath: "/lib/",
|
|
956
|
+
decoderLogLevel: 0
|
|
957
|
+
}) },
|
|
958
|
+
showPTZ: {
|
|
959
|
+
type: Boolean,
|
|
960
|
+
default: !1
|
|
961
|
+
},
|
|
962
|
+
showController: {
|
|
963
|
+
type: Boolean,
|
|
964
|
+
default: !1
|
|
965
|
+
}
|
|
966
|
+
},
|
|
967
|
+
emits: [
|
|
968
|
+
"stop-video",
|
|
969
|
+
"quality-change",
|
|
970
|
+
"change-play-speed",
|
|
971
|
+
"control-talk",
|
|
972
|
+
"lock-ptz",
|
|
973
|
+
"do-zoom",
|
|
974
|
+
"move-to-direction",
|
|
975
|
+
"error",
|
|
976
|
+
"video-status-change",
|
|
977
|
+
"sei-info"
|
|
978
|
+
],
|
|
979
|
+
setup(e, { expose: t, emit: c }) {
|
|
980
|
+
let l = e, d = c, g = h(null), _ = h(null), { player: v, playerCreated: b, streamType: x, mediaInfo: w, videoStatus: E, createPlayer: O, open: k, controlSound: A, changePlayStatus: j, destroyPlayer: M } = ye(), { streamOptions: N, onStream: P, startStaticsInfoTimer: ee, clearStaticsInfoTimer: F } = be(), { capture: te } = xe(), { videoMedia: ne, canvasMedia: I, domCreated: re, createMediaDom: ie, clearMediaDom: ae, changeDomDisplay: oe, initResizeDetector: se, destroyResizeDetector: ce } = Se(), L = h(!0), le = h(["PTZ"]), R = h(!1), z = h(!1), B = h(!1), V = h(1), ue = n(() => l.showController && !L.value), de = n(() => ({
|
|
981
|
+
speed: N.value.speed,
|
|
982
|
+
fps: N.value.fps
|
|
983
|
+
})), H = async (e) => {
|
|
984
|
+
L.value || await U(), !re.value && _.value && (await ie(_.value), se(_.value)), b.value || (await O({ debug: l.debug }, ne.value, I.value, l.options), v.value && (v.value.onStream = (e) => {
|
|
985
|
+
P(e, x, h(!1), E);
|
|
986
|
+
})), await k(e, ee), B.value = !0, L.value = !1;
|
|
987
|
+
}, U = async () => {
|
|
988
|
+
await M(F), await ae(v.value), B.value = !1, L.value = !0;
|
|
989
|
+
}, G = async () => {
|
|
990
|
+
d("stop-video"), await U(), N.value.speed = 0, N.value.fps = 0, L.value = !0, B.value = !1;
|
|
991
|
+
}, K = () => {
|
|
992
|
+
z.value = !z.value, g.value && D.isEnabled && D.toggle(g.value);
|
|
993
|
+
}, q = () => {
|
|
994
|
+
D.isFullscreen || (z.value = !1);
|
|
995
|
+
}, J = (e) => {
|
|
996
|
+
R.value = e;
|
|
997
|
+
}, Y = (e) => {
|
|
998
|
+
d("lock-ptz", e);
|
|
999
|
+
}, X = (e) => {
|
|
1000
|
+
d("control-talk", e);
|
|
1001
|
+
}, Z = (e) => {
|
|
1002
|
+
A(e);
|
|
1003
|
+
}, Q = (e) => {
|
|
1004
|
+
V.value = e, d("quality-change", e);
|
|
1005
|
+
}, $ = (e) => {
|
|
1006
|
+
d("change-play-speed", e);
|
|
1007
|
+
}, fe = (e) => {
|
|
1008
|
+
d("move-to-direction", e);
|
|
1009
|
+
}, pe = (e) => {
|
|
1010
|
+
d("do-zoom", e);
|
|
1011
|
+
}, me = async () => {
|
|
1012
|
+
try {
|
|
1013
|
+
await te({ download: !0 }, E, ne.value, I.value, x);
|
|
1014
|
+
} catch (e) {
|
|
1015
|
+
console.error("Capture failed:", e);
|
|
1016
|
+
}
|
|
1017
|
+
};
|
|
1018
|
+
return C(x, () => {
|
|
1019
|
+
u(() => {
|
|
1020
|
+
oe(x.value);
|
|
1021
|
+
});
|
|
1022
|
+
}), C(V, (e) => {
|
|
1023
|
+
console.log("videoQuality:", e);
|
|
1024
|
+
}), p(() => {
|
|
1025
|
+
u(() => {
|
|
1026
|
+
D.isEnabled && D.on("change", q);
|
|
1027
|
+
});
|
|
1028
|
+
}), f(() => {
|
|
1029
|
+
D.isEnabled && D.off("change", q), ce(), F();
|
|
1030
|
+
}), t({
|
|
1031
|
+
openVideo: H,
|
|
1032
|
+
closeVideo: U,
|
|
1033
|
+
captureVideo: me,
|
|
1034
|
+
changeQuality: Q
|
|
1035
|
+
}), (t, n) => (m(), a("div", {
|
|
1036
|
+
class: "base-content wwav-player",
|
|
1037
|
+
ref_key: "mediaContentBoxRef",
|
|
1038
|
+
ref: g
|
|
1039
|
+
}, [
|
|
1040
|
+
o("div", {
|
|
1041
|
+
ref_key: "mediaBoxRef",
|
|
1042
|
+
ref: _,
|
|
1043
|
+
class: "wcs-wwav-base-video"
|
|
1044
|
+
}, null, 512),
|
|
1045
|
+
T(s(W, {
|
|
1046
|
+
features: le.value,
|
|
1047
|
+
"stream-working": B.value,
|
|
1048
|
+
"media-info": y(w),
|
|
1049
|
+
"stream-info": de.value,
|
|
1050
|
+
"stream-type": y(x),
|
|
1051
|
+
"is-live": e.isLive,
|
|
1052
|
+
"is-closed": L.value,
|
|
1053
|
+
"video-status": y(E),
|
|
1054
|
+
"video-quality": V.value,
|
|
1055
|
+
"onUpdate:videoQuality": n[0] ||= (e) => V.value = e,
|
|
1056
|
+
onChangeQuality: Q,
|
|
1057
|
+
onFullscreen: K,
|
|
1058
|
+
onChangePtzSwitch: J,
|
|
1059
|
+
onStopVideo: G,
|
|
1060
|
+
onLockPtz: Y,
|
|
1061
|
+
onControlTalk: X,
|
|
1062
|
+
onControlSound: Z,
|
|
1063
|
+
onChangePlaySpeed: $,
|
|
1064
|
+
onChangePlayStatus: y(j),
|
|
1065
|
+
onCaptureVideo: me
|
|
1066
|
+
}, null, 8, [
|
|
1067
|
+
"features",
|
|
1068
|
+
"stream-working",
|
|
1069
|
+
"media-info",
|
|
1070
|
+
"stream-info",
|
|
1071
|
+
"stream-type",
|
|
1072
|
+
"is-live",
|
|
1073
|
+
"is-closed",
|
|
1074
|
+
"video-status",
|
|
1075
|
+
"video-quality",
|
|
1076
|
+
"onChangePlayStatus"
|
|
1077
|
+
]), [[S, ue.value]]),
|
|
1078
|
+
R.value && e.isLive && z.value && e.showPTZ ? (m(), r(ve, {
|
|
1079
|
+
key: 0,
|
|
1080
|
+
"is-fullscreen": z.value,
|
|
1081
|
+
onMoveToDirection: fe,
|
|
1082
|
+
onDoZoom: pe
|
|
1083
|
+
}, null, 8, ["is-fullscreen"])) : i("", !0)
|
|
1084
|
+
], 512));
|
|
1085
|
+
}
|
|
1086
|
+
}), [["__scopeId", "data-v-c3dbeeea"]]), we = {
|
|
1087
|
+
vConnect: 0,
|
|
1088
|
+
vStart: 1,
|
|
1089
|
+
vPlay: 2,
|
|
1090
|
+
vPause: 3,
|
|
1091
|
+
vStop: 4
|
|
1092
|
+
}, Te = [Ce], Ee = {
|
|
1093
|
+
install: (e) => {
|
|
1094
|
+
Te.forEach((t) => {
|
|
1095
|
+
t.name && e.component(t.name, t);
|
|
1096
|
+
});
|
|
1097
|
+
},
|
|
1098
|
+
WwVideoPlayer: Ce
|
|
1099
|
+
};
|
|
1100
|
+
//#endregion
|
|
1101
|
+
export { we as VideoStatus, Ce as WwVideoPlayer, Ee as default };
|
|
1102
|
+
|
|
1103
|
+
//# sourceMappingURL=video-player-v3.js.map
|