@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.
@@ -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