@yimou6/common-ui 1.11.14 → 1.12.1

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.
Files changed (50) hide show
  1. package/cdn/index.cdn.js +10 -10
  2. package/cdn/index.cdn.js.map +1 -1
  3. package/cdn/index.cdn.mjs +10 -10
  4. package/cdn/index.cdn.mjs.map +1 -1
  5. package/cdn/index.css +1 -1
  6. package/es/components/tzj-player/index.d.ts +40 -8
  7. package/es/components/tzj-player/src/ctyun-player.vue.d.ts +5 -1
  8. package/es/components/tzj-player/src/easyPlayer.vue.d.ts +5 -1
  9. package/es/components/tzj-player/src/easyPlayer.vue2.mjs +128 -80
  10. package/es/components/tzj-player/src/easyPlayer.vue2.mjs.map +1 -1
  11. package/es/components/tzj-player/src/newPlayer.vue.d.ts +7 -0
  12. package/es/components/tzj-player/src/newPlayer.vue.mjs +6 -0
  13. package/es/components/tzj-player/src/newPlayer.vue.mjs.map +1 -0
  14. package/es/components/tzj-player/src/newPlayer.vue2.mjs +67 -0
  15. package/es/components/tzj-player/src/newPlayer.vue2.mjs.map +1 -0
  16. package/es/components/tzj-player/src/tzj-player.vue.d.ts +40 -8
  17. package/es/components/tzj-player/src/tzj-player.vue2.mjs +5 -5
  18. package/es/components/tzj-player/src/tzj-player.vue2.mjs.map +1 -1
  19. package/es/components/tzj-player/src/xgplayer.vue.d.ts +5 -1
  20. package/es/components/tzj-player/src/xgplayer.vue2.mjs +77 -23
  21. package/es/components/tzj-player/src/xgplayer.vue2.mjs.map +1 -1
  22. package/es/components/tzj-player/src/yunzhiyanPlayer.vue.d.ts +5 -1
  23. package/es/components/tzj-player/src/yunzhiyanPlayer.vue2.mjs +3 -3
  24. package/es/components/tzj-player/src/yunzhiyanPlayer.vue2.mjs.map +1 -1
  25. package/es/installer.d.ts +1 -1
  26. package/es/installer.mjs.map +1 -1
  27. package/lib/components/tzj-player/index.d.ts +40 -8
  28. package/lib/components/tzj-player/src/ctyun-player.vue.d.ts +5 -1
  29. package/lib/components/tzj-player/src/easyPlayer.vue.d.ts +5 -1
  30. package/lib/components/tzj-player/src/easyPlayer.vue2.js +128 -80
  31. package/lib/components/tzj-player/src/easyPlayer.vue2.js.map +1 -1
  32. package/lib/components/tzj-player/src/newPlayer.vue.d.ts +7 -0
  33. package/lib/components/tzj-player/src/newPlayer.vue.js +10 -0
  34. package/lib/components/tzj-player/src/newPlayer.vue.js.map +1 -0
  35. package/lib/components/tzj-player/src/newPlayer.vue2.js +71 -0
  36. package/lib/components/tzj-player/src/newPlayer.vue2.js.map +1 -0
  37. package/lib/components/tzj-player/src/tzj-player.vue.d.ts +40 -8
  38. package/lib/components/tzj-player/src/tzj-player.vue2.js +5 -5
  39. package/lib/components/tzj-player/src/tzj-player.vue2.js.map +1 -1
  40. package/lib/components/tzj-player/src/xgplayer.vue.d.ts +5 -1
  41. package/lib/components/tzj-player/src/xgplayer.vue2.js +76 -22
  42. package/lib/components/tzj-player/src/xgplayer.vue2.js.map +1 -1
  43. package/lib/components/tzj-player/src/yunzhiyanPlayer.vue.d.ts +5 -1
  44. package/lib/components/tzj-player/src/yunzhiyanPlayer.vue2.js +3 -3
  45. package/lib/components/tzj-player/src/yunzhiyanPlayer.vue2.js.map +1 -1
  46. package/lib/installer.d.ts +1 -1
  47. package/lib/installer.js.map +1 -1
  48. package/package.json +1 -1
  49. package/theme-default/i-tzj-player.css +1 -1
  50. package/theme-default/index.css +1 -1
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, useSlots, computed, shallowRef, ref, onMounted, watch, onBeforeUnmount, nextTick, openBlock, createElementBlock, normalizeClass, createCommentVNode, createElementVNode, toDisplayString, createBlock, renderSlot } from 'vue';
2
- import { TzjPlayerProps, uuid } from './tzj-player.mjs';
3
2
  import './errorPage.vue.mjs';
3
+ import { TzjPlayerProps, uuid } from './tzj-player.mjs';
4
4
  import _sfc_main$1 from './errorPage.vue2.mjs';
5
5
 
6
6
  var __defProp = Object.defineProperty;
@@ -37,6 +37,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
37
37
  const videoInfo = ref(null);
38
38
  const realFullscreen = ref(false);
39
39
  const eventHandlers = ref(/* @__PURE__ */ new Map());
40
+ let waitTimer = null;
41
+ const restartTimer = ref(null);
42
+ let isUnmounted = false;
40
43
  onMounted(() => {
41
44
  initPlayer(props.url || "");
42
45
  });
@@ -47,6 +50,11 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
47
50
  }
48
51
  );
49
52
  onBeforeUnmount(() => {
53
+ isUnmounted = true;
54
+ if (waitTimer !== null) {
55
+ clearInterval(waitTimer);
56
+ waitTimer = null;
57
+ }
50
58
  if (props.debug) {
51
59
  console.log("\u7EC4\u4EF6\u5378\u8F7D");
52
60
  }
@@ -96,9 +104,11 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
96
104
  } else {
97
105
  (_c = (_b = playerRef.value) == null ? void 0 : _b.requestFullscreen) == null ? void 0 : _c.call(_b);
98
106
  }
107
+ destroy();
99
108
  setTimeout(() => {
100
- destroy();
101
- initPlayer(playUrl.value);
109
+ if (!isUnmounted) {
110
+ initPlayer(playUrl.value);
111
+ }
102
112
  }, 200);
103
113
  }
104
114
  isFullscreen.value = !fullscreen;
@@ -133,6 +143,10 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
133
143
  if (props.debug) {
134
144
  console.log("\u521D\u59CB\u5316\u64AD\u653E\u5668", url);
135
145
  }
146
+ if (waitTimer !== null) {
147
+ clearInterval(waitTimer);
148
+ waitTimer = null;
149
+ }
136
150
  removePlayerDom();
137
151
  if (url) {
138
152
  playUrl.value = formatUrl(url);
@@ -142,10 +156,13 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
142
156
  if (typeof window !== "undefined" && (window == null ? void 0 : window.EasyPlayerPro)) {
143
157
  createPlayer();
144
158
  } else if (typeof window !== "undefined") {
145
- const timer = setInterval(() => {
159
+ waitTimer = setInterval(() => {
146
160
  if (window == null ? void 0 : window.EasyPlayerPro) {
147
- createPlayer();
148
- clearInterval(timer);
161
+ clearInterval(waitTimer);
162
+ waitTimer = null;
163
+ if (!isUnmounted) {
164
+ createPlayer();
165
+ }
149
166
  }
150
167
  }, 100);
151
168
  }
@@ -186,78 +203,103 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
186
203
  videoInfo.value = null;
187
204
  createPlayerDom();
188
205
  await nextTick();
189
- if (typeof window !== "undefined" && typeof document !== "undefined") {
190
- player = new window.EasyPlayerPro(document.getElementById(id), {
191
- isLive: true,
192
- // 是否直播
193
- hasAudio: true,
194
- // 是否解析音频
195
- bufferTime: 0.2,
196
- // 缓存时长
197
- stretch: true,
198
- // 加视频拉伸
199
- MSE: false,
200
- WCS: false,
201
- WASM: true,
202
- debug: false,
203
- operateBtns: {
204
- performance: false
205
- },
206
- autoCleanupSourceBuffer: true,
207
- //(对 SourceBuffer 进行自动清理)
208
- autoCleanupMinBackwardDuration: 60
209
- // (指示在执行自动清理时为后向缓冲区保留的持续时间,以秒为单位)
210
- });
211
- }
212
- if (player) {
213
- player.play(playUrl.value);
214
- const timeoutHandler = /* @__PURE__ */ __name(() => {
215
- props.debug && console.log("\u52A0\u8F7D\u8D85\u65F6");
216
- emits("timeout");
217
- playSuccess.value = false;
218
- destroy();
219
- initPlayer(playUrl.value);
220
- }, "timeoutHandler");
221
- const errorHandler = /* @__PURE__ */ __name(() => {
222
- props.debug && console.log("\u64AD\u653E\u5F02\u5E38");
223
- emits("error");
224
- playSuccess.value = false;
225
- destroy();
226
- }, "errorHandler");
227
- const playHandler = /* @__PURE__ */ __name(() => {
228
- playSuccess.value = true;
229
- props.debug && console.log("\u64AD\u653E");
230
- emits("play");
231
- }, "playHandler");
232
- const pauseHandler = /* @__PURE__ */ __name(() => {
233
- props.debug && console.log("\u6682\u505C");
234
- emits("pause");
235
- }, "pauseHandler");
236
- const videoInfoHandler = /* @__PURE__ */ __name((info) => {
237
- props.debug && console.log("\u89C6\u9891\u4FE1\u606F", info);
238
- videoInfo.value = info;
239
- emits("videoInfo", info);
240
- }, "videoInfoHandler");
241
- const muteHandler = /* @__PURE__ */ __name((mute) => {
242
- props.debug && console.log("\u9759\u97F3");
243
- emits("mute", mute);
244
- }, "muteHandler");
245
- player.on("timeout", timeoutHandler);
246
- player.on("error", errorHandler);
247
- player.on("play", playHandler);
248
- player.on("pause", pauseHandler);
249
- player.on("videoInfo", videoInfoHandler);
250
- player.on("mute", muteHandler);
251
- eventHandlers.value.set("timeout", timeoutHandler);
252
- eventHandlers.value.set("error", errorHandler);
253
- eventHandlers.value.set("play", playHandler);
254
- eventHandlers.value.set("pause", pauseHandler);
255
- eventHandlers.value.set("videoInfo", videoInfoHandler);
256
- eventHandlers.value.set("mute", muteHandler);
206
+ if (restartTimer.value !== null) {
207
+ clearInterval(restartTimer.value);
208
+ restartTimer.value = null;
257
209
  }
210
+ restartTimer.value = setInterval(
211
+ () => {
212
+ destroy(false);
213
+ setTimeout(() => {
214
+ startPlayer();
215
+ }, 1e3 * 20);
216
+ },
217
+ 1e3 * 60 * 60
218
+ );
219
+ startPlayer();
258
220
  }
259
221
  __name(createPlayer, "createPlayer");
260
- function destroy() {
222
+ async function startPlayer() {
223
+ try {
224
+ if (typeof window !== "undefined" && typeof document !== "undefined") {
225
+ player = new window.EasyPlayerPro(document.getElementById(id), {
226
+ isLive: true,
227
+ // 是否直播
228
+ hasAudio: true,
229
+ // 是否解析音频
230
+ bufferTime: 0,
231
+ // 直播监控缓存时长设为0,减少内存堆积
232
+ stretch: true,
233
+ // 加视频拉伸
234
+ MSE: false,
235
+ WCS: false,
236
+ WASM: true,
237
+ debug: false,
238
+ // operateBtns: {
239
+ // performance: false,
240
+ // },
241
+ autoCleanupSourceBuffer: true,
242
+ //(对 SourceBuffer 进行自动清理)
243
+ // H.265 直播监控场景:后向缓冲区保留时长设为0,避免长时间占用大量内存
244
+ // 原值60秒会导致H.265高码率视频内存持续增长
245
+ autoCleanupMinBackwardDuration: 0
246
+ });
247
+ }
248
+ if (player) {
249
+ player.play(playUrl.value);
250
+ const timeoutHandler = /* @__PURE__ */ __name(() => {
251
+ props.debug && console.log("\u52A0\u8F7D\u8D85\u65F6");
252
+ emits("timeout");
253
+ playSuccess.value = false;
254
+ destroy();
255
+ initPlayer(playUrl.value);
256
+ }, "timeoutHandler");
257
+ const errorHandler = /* @__PURE__ */ __name(() => {
258
+ props.debug && console.log("\u64AD\u653E\u5F02\u5E38");
259
+ emits("error");
260
+ playSuccess.value = false;
261
+ destroy();
262
+ }, "errorHandler");
263
+ const playHandler = /* @__PURE__ */ __name(() => {
264
+ playSuccess.value = true;
265
+ props.debug && console.log("\u64AD\u653E");
266
+ emits("play");
267
+ }, "playHandler");
268
+ const pauseHandler = /* @__PURE__ */ __name(() => {
269
+ props.debug && console.log("\u6682\u505C");
270
+ emits("pause");
271
+ }, "pauseHandler");
272
+ const videoInfoHandler = /* @__PURE__ */ __name((info) => {
273
+ props.debug && console.log("\u89C6\u9891\u4FE1\u606F", info);
274
+ videoInfo.value = info;
275
+ emits("videoInfo", info);
276
+ }, "videoInfoHandler");
277
+ const muteHandler = /* @__PURE__ */ __name((mute) => {
278
+ props.debug && console.log("\u9759\u97F3");
279
+ emits("mute", mute);
280
+ }, "muteHandler");
281
+ player.on("timeout", timeoutHandler);
282
+ player.on("error", errorHandler);
283
+ player.on("play", playHandler);
284
+ player.on("pause", pauseHandler);
285
+ player.on("videoInfo", videoInfoHandler);
286
+ player.on("mute", muteHandler);
287
+ eventHandlers.value.set("timeout", timeoutHandler);
288
+ eventHandlers.value.set("error", errorHandler);
289
+ eventHandlers.value.set("play", playHandler);
290
+ eventHandlers.value.set("pause", pauseHandler);
291
+ eventHandlers.value.set("videoInfo", videoInfoHandler);
292
+ eventHandlers.value.set("mute", muteHandler);
293
+ }
294
+ } catch (error) {
295
+ console.error("\u521B\u5EFA\u64AD\u653E\u5668\u5931\u8D25:", error);
296
+ setTimeout(() => {
297
+ startPlayer();
298
+ }, 1e3);
299
+ }
300
+ }
301
+ __name(startPlayer, "startPlayer");
302
+ function destroy(flag = true) {
261
303
  if (player) {
262
304
  eventHandlers.value.forEach((handler, eventName) => {
263
305
  player.off(eventName, handler);
@@ -266,7 +308,13 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
266
308
  player.destroy();
267
309
  player = null;
268
310
  }
269
- removePlayerDom();
311
+ if (flag) {
312
+ if (restartTimer.value !== null) {
313
+ clearInterval(restartTimer.value);
314
+ restartTimer.value = null;
315
+ }
316
+ removePlayerDom();
317
+ }
270
318
  }
271
319
  __name(destroy, "destroy");
272
320
  return (_ctx, _cache) => {
@@ -297,14 +345,14 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
297
345
  ])) : createCommentVNode("v-if", true),
298
346
  !playSuccess.value ? (openBlock(), createBlock(_sfc_main$1, {
299
347
  key: 1,
300
- videoName: _ctx.areaName || _ctx.deviceSerial,
348
+ "video-name": _ctx.areaName || _ctx.deviceSerial,
301
349
  message: "\u65E0\u4FE1\u53F7"
302
- }, null, 8, ["videoName"])) : createCommentVNode("v-if", true),
350
+ }, null, 8, ["video-name"])) : createCommentVNode("v-if", true),
303
351
  !playUrl.value ? (openBlock(), createBlock(_sfc_main$1, {
304
352
  key: 2,
305
- videoName: _ctx.areaName || _ctx.deviceSerial,
353
+ "video-name": _ctx.areaName || _ctx.deviceSerial,
306
354
  message: "\u65E0\u64AD\u653E\u5730\u5740"
307
- }, null, 8, ["videoName"])) : createCommentVNode("v-if", true),
355
+ }, null, 8, ["video-name"])) : createCommentVNode("v-if", true),
308
356
  createCommentVNode(" \u64AD\u653E\u5668\u5E95\u90E8\u64CD\u4F5C\u680F "),
309
357
  renderSlot(_ctx.$slots, "customBar")
310
358
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"easyPlayer.vue2.mjs","sources":["../../../../../../../packages/components/tzj-player/src/easyPlayer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n shallowRef,\n useSlots,\n watch,\n} from \"vue\";\nimport { TzjPlayerProps, uuid } from \"./tzj-player\";\nimport ErrorPage from \"./errorPage.vue\";\n\ndefineOptions({\n name: \"EasyPlayer\",\n});\n\nconst props = defineProps(TzjPlayerProps);\nconst emits = defineEmits([\n \"timeout\",\n \"error\",\n \"play\",\n \"pause\",\n \"mute\",\n \"videoInfo\",\n]);\nconst slots = useSlots();\nconst customBar = computed(() => slots.customBar);\n\nlet player: any = null;\nconst id = uuid();\nconst playerRef = shallowRef<HTMLDivElement>();\nconst playSuccess = ref(true);\nconst playUrl = ref(\"\");\nconst isFullscreen = ref(false);\nconst videoInfo = ref<any>(null);\nconst realFullscreen = ref(false);\nconst eventHandlers = ref<Map<string, Function>>(new Map());\nonMounted(() => {\n initPlayer(props.url || \"\");\n});\n\nwatch(\n () => props.url,\n (newUrl: string) => {\n initPlayer(newUrl || \"\");\n },\n);\n\nonBeforeUnmount(() => {\n if (props.debug) {\n console.log(\"组件卸载\");\n }\n playUrl.value = \"\";\n destroy();\n});\n\nconst play = (url?: string) => {\n if (url) {\n initPlayer(url);\n } else {\n if (player) {\n player.play(playUrl.value);\n } else {\n destroy();\n }\n }\n};\n\nconst playerPause = () => {\n if (props.debug) {\n console.log(\"暂停\");\n }\n player?.pause?.();\n};\n\nconst playerScreenShot = () => {\n if (props.debug) {\n console.log(\"截图\");\n }\n player?.screenshot?.(\n `${props.areaName}_${new Date().getTime()}`,\n \"png\",\n 0.5,\n \"download\",\n );\n};\n\nconst playerFullscreen = (fullscreen: boolean) => {\n realFullscreen.value = fullscreen;\n if (props.debug) {\n console.log(\"全屏\");\n }\n // 自定义全屏逻辑\n if (typeof document !== \"undefined\") {\n if (!fullscreen) {\n document.exitFullscreen?.();\n } else {\n playerRef.value?.requestFullscreen?.();\n }\n setTimeout(() => {\n destroy();\n initPlayer(playUrl.value);\n }, 200);\n }\n isFullscreen.value = !fullscreen;\n};\ndefineExpose({\n play,\n destroy,\n getPlayer: () => player,\n pause: playerPause,\n screenshot: playerScreenShot,\n fullscreen: playerFullscreen,\n isMute: () => {\n return player?.isMute?.();\n },\n setMute: (mute: number) => {\n player?.setMute?.(mute);\n },\n});\n\n/**\n * 格式化URL,确保使用完整的URL\n * @param url - 原始URL\n * @returns 格式化后的URL\n */\nconst formatUrl = (url: string): string => {\n if (!url) return \"\";\n\n // 如果已经是完整URL,直接返回\n if (url.startsWith(\"http://\") || url.startsWith(\"https://\")) {\n return url;\n }\n\n // 检查是否在浏览器环境中,避免SSR环境下的location访问错误\n if (typeof window !== \"undefined\" && window.location) {\n // 如果是相对路径,添加当前域名\n return `${window.location.origin}${url.startsWith(\"/\") ? \"\" : \"/\"}${url}`;\n }\n\n // SSR 环境下返回相对路径\n return url;\n};\n\nasync function initPlayer(url: string) {\n if (props.debug) {\n console.log(\"初始化播放器\", url);\n }\n removePlayerDom();\n if (url) {\n playUrl.value = formatUrl(url);\n if (props.debug) {\n console.log(\"格式化后的url\", playUrl.value);\n }\n if (typeof window !== \"undefined\" && window?.EasyPlayerPro) {\n createPlayer();\n } else if (typeof window !== \"undefined\") {\n const timer = setInterval(() => {\n if (window?.EasyPlayerPro) {\n createPlayer();\n clearInterval(timer);\n }\n }, 100);\n }\n }\n}\n\n/**\n * 移除播放器DOM\n */\nfunction removePlayerDom() {\n if (typeof document !== \"undefined\") {\n const dom = document.getElementById(id);\n dom && dom.remove();\n }\n}\n\n/**\n * 创建播放器DOM\n */\nfunction createPlayerDom() {\n removePlayerDom();\n if (typeof document !== \"undefined\") {\n nextTick(() => {\n const dom = document.createElement(\"div\");\n const { width, height } = playerRef.value!.getBoundingClientRect();\n dom.id = id;\n if (realFullscreen.value) {\n dom.style.width = `100vw`;\n dom.style.height =\n props.areaName || props.deviceSerial ? `calc(100vh - 32px)` : `100vh`;\n } else {\n dom.style.width = `${width}px`;\n dom.style.height =\n props.areaName || props.deviceSerial\n ? `${height - 32}px`\n : `${height}px`;\n }\n playerRef.value?.appendChild(dom);\n });\n }\n}\n\nasync function createPlayer() {\n if (props.debug) {\n console.log(\"创建播放器\");\n }\n videoInfo.value = null;\n createPlayerDom();\n await nextTick();\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n player = new window.EasyPlayerPro(document.getElementById(id), {\n isLive: true, // 是否直播\n hasAudio: true, // 是否解析音频\n bufferTime: 0.2, // 缓存时长\n stretch: true, // 加视频拉伸\n MSE: false,\n WCS: false,\n WASM: true,\n debug: false,\n operateBtns: {\n performance: false,\n },\n autoCleanupSourceBuffer: true, //(对 SourceBuffer 进行自动清理)\n\n autoCleanupMinBackwardDuration: 60, // (指示在执行自动清理时为后向缓冲区保留的持续时间,以秒为单位)\n });\n }\n if (player) {\n player.play(playUrl.value);\n\n const timeoutHandler = () => {\n props.debug && console.log(\"加载超时\");\n emits(\"timeout\");\n playSuccess.value = false;\n destroy();\n initPlayer(playUrl.value);\n };\n\n const errorHandler = () => {\n props.debug && console.log(\"播放异常\");\n emits(\"error\");\n playSuccess.value = false;\n destroy();\n };\n\n const playHandler = () => {\n playSuccess.value = true;\n props.debug && console.log(\"播放\");\n emits(\"play\");\n };\n\n const pauseHandler = () => {\n props.debug && console.log(\"暂停\");\n emits(\"pause\");\n };\n\n const videoInfoHandler = (info: any) => {\n props.debug && console.log(\"视频信息\", info);\n videoInfo.value = info;\n emits(\"videoInfo\", info);\n };\n\n const muteHandler = (mute: false) => {\n props.debug && console.log(\"静音\");\n emits(\"mute\", mute);\n };\n\n player.on(\"timeout\", timeoutHandler);\n player.on(\"error\", errorHandler);\n player.on(\"play\", playHandler);\n player.on(\"pause\", pauseHandler);\n player.on(\"videoInfo\", videoInfoHandler);\n player.on(\"mute\", muteHandler);\n\n eventHandlers.value.set(\"timeout\", timeoutHandler);\n eventHandlers.value.set(\"error\", errorHandler);\n eventHandlers.value.set(\"play\", playHandler);\n eventHandlers.value.set(\"pause\", pauseHandler);\n eventHandlers.value.set(\"videoInfo\", videoInfoHandler);\n eventHandlers.value.set(\"mute\", muteHandler);\n }\n}\n\nfunction destroy() {\n if (player) {\n eventHandlers.value.forEach((handler, eventName) => {\n player.off(eventName, handler);\n });\n eventHandlers.value.clear();\n player.destroy();\n player = null;\n }\n removePlayerDom();\n}\n</script>\n\n<template>\n <div\n ref=\"playerRef\"\n class=\"i-tzj-easyPlayer\"\n :class=\"customBar ? 'i-tzj-easyPlayer--custom' : ''\"\n >\n <!-- 播放器顶部显示区域(设备)名称 -->\n <div v-if=\"areaName || deviceSerial\" class=\"i-tzj-easyPlayer__top\">\n <i class=\"iconfont icon-shexiangtou4\" />\n <span>{{ areaName || deviceSerial }}</span>\n </div>\n <error-page\n :videoName=\"areaName || deviceSerial\"\n message=\"无信号\"\n v-if=\"!playSuccess\"\n />\n <error-page\n :videoName=\"areaName || deviceSerial\"\n message=\"无播放地址\"\n v-if=\"!playUrl\"\n />\n\n <!-- 播放器底部操作栏 -->\n <slot name=\"customBar\" />\n </div>\n</template>\n"],"names":["_createElementBlock","_normalizeClass","_createCommentVNode","areaName","deviceSerial","_openBlock","_createElementVNode","_toDisplayString","_createBlock","ErrorPage","_renderSlot"],"mappings":"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"}
1
+ {"version":3,"file":"easyPlayer.vue2.mjs","sources":["../../../../../../../packages/components/tzj-player/src/easyPlayer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n shallowRef,\n useSlots,\n watch,\n} from \"vue\";\nimport ErrorPage from \"./errorPage.vue\";\nimport { TzjPlayerProps, uuid } from \"./tzj-player\";\n\ndefineOptions({\n name: \"EasyPlayer\",\n});\n\nconst props = defineProps(TzjPlayerProps);\nconst emits = defineEmits([\n \"timeout\",\n \"error\",\n \"play\",\n \"pause\",\n \"mute\",\n \"videoInfo\",\n]);\nconst slots = useSlots();\nconst customBar = computed(() => slots.customBar);\n\nlet player: any = null;\nconst id = uuid();\nconst playerRef = shallowRef<HTMLDivElement>();\nconst playSuccess = ref(true);\nconst playUrl = ref(\"\");\nconst isFullscreen = ref(false);\nconst videoInfo = ref<any>(null);\nconst realFullscreen = ref(false);\nconst eventHandlers = ref<Map<string, Function>>(new Map());\n// 用于追踪等待 EasyPlayerPro 加载的轮询定时器,防止组件卸载后泄漏\nlet waitTimer: ReturnType<typeof setInterval> | null = null;\n// 用于定时重启播放器的定时器,防止播放器卡死\nconst restartTimer = ref<ReturnType<typeof setInterval> | null>(null);\n// 标记组件是否已卸载,防止卸载后的异步操作继续执行\nlet isUnmounted = false;\nonMounted(() => {\n initPlayer(props.url || \"\");\n});\n\nwatch(\n () => props.url,\n (newUrl: string) => {\n initPlayer(newUrl || \"\");\n },\n);\n\nonBeforeUnmount(() => {\n isUnmounted = true;\n // 清除等待 EasyPlayerPro 加载的轮询定时器,防止卸载后继续创建播放器\n if (waitTimer !== null) {\n clearInterval(waitTimer);\n waitTimer = null;\n }\n if (props.debug) {\n console.log(\"组件卸载\");\n }\n playUrl.value = \"\";\n destroy();\n});\n\nconst play = (url?: string) => {\n if (url) {\n initPlayer(url);\n } else {\n if (player) {\n player.play(playUrl.value);\n } else {\n destroy();\n }\n }\n};\n\nconst playerPause = () => {\n if (props.debug) {\n console.log(\"暂停\");\n }\n player?.pause?.();\n};\n\nconst playerScreenShot = () => {\n if (props.debug) {\n console.log(\"截图\");\n }\n player?.screenshot?.(\n `${props.areaName}_${new Date().getTime()}`,\n \"png\",\n 0.5,\n \"download\",\n );\n};\n\nconst playerFullscreen = (fullscreen: boolean) => {\n realFullscreen.value = fullscreen;\n if (props.debug) {\n console.log(\"全屏\");\n }\n // 自定义全屏逻辑\n if (typeof document !== \"undefined\") {\n if (!fullscreen) {\n document.exitFullscreen?.();\n } else {\n playerRef.value?.requestFullscreen?.();\n }\n // 先同步销毁,再延迟重建,避免异步销毁时组件已卸载导致实例泄漏\n destroy();\n setTimeout(() => {\n if (!isUnmounted) {\n initPlayer(playUrl.value);\n }\n }, 200);\n }\n isFullscreen.value = !fullscreen;\n};\ndefineExpose({\n play,\n destroy,\n getPlayer: () => player,\n pause: playerPause,\n screenshot: playerScreenShot,\n fullscreen: playerFullscreen,\n isMute: () => {\n return player?.isMute?.();\n },\n setMute: (mute: number) => {\n player?.setMute?.(mute);\n },\n});\n\n/**\n * 格式化URL,确保使用完整的URL\n * @param url - 原始URL\n * @returns 格式化后的URL\n */\nconst formatUrl = (url: string): string => {\n if (!url) return \"\";\n\n // 如果已经是完整URL,直接返回\n if (url.startsWith(\"http://\") || url.startsWith(\"https://\")) {\n return url;\n }\n\n // 检查是否在浏览器环境中,避免SSR环境下的location访问错误\n if (typeof window !== \"undefined\" && window.location) {\n // 如果是相对路径,添加当前域名\n return `${window.location.origin}${url.startsWith(\"/\") ? \"\" : \"/\"}${url}`;\n }\n\n // SSR 环境下返回相对路径\n return url;\n};\n\nasync function initPlayer(url: string) {\n if (props.debug) {\n console.log(\"初始化播放器\", url);\n }\n // 清除上一次可能残留的轮询定时器\n if (waitTimer !== null) {\n clearInterval(waitTimer);\n waitTimer = null;\n }\n removePlayerDom();\n if (url) {\n playUrl.value = formatUrl(url);\n if (props.debug) {\n console.log(\"格式化后的url\", playUrl.value);\n }\n if (typeof window !== \"undefined\" && window?.EasyPlayerPro) {\n createPlayer();\n } else if (typeof window !== \"undefined\") {\n waitTimer = setInterval(() => {\n if (window?.EasyPlayerPro) {\n clearInterval(waitTimer!);\n waitTimer = null;\n // 组件已卸载则不再创建播放器\n if (!isUnmounted) {\n createPlayer();\n }\n }\n }, 100);\n }\n }\n}\n\n/**\n * 移除播放器DOM\n */\nfunction removePlayerDom() {\n if (typeof document !== \"undefined\") {\n const dom = document.getElementById(id);\n dom && dom.remove();\n }\n}\n\n/**\n * 创建播放器DOM\n */\nfunction createPlayerDom() {\n removePlayerDom();\n if (typeof document !== \"undefined\") {\n nextTick(() => {\n const dom = document.createElement(\"div\");\n const { width, height } = playerRef.value!.getBoundingClientRect();\n dom.id = id;\n if (realFullscreen.value) {\n dom.style.width = `100vw`;\n dom.style.height =\n props.areaName || props.deviceSerial ? `calc(100vh - 32px)` : `100vh`;\n } else {\n dom.style.width = `${width}px`;\n dom.style.height =\n props.areaName || props.deviceSerial\n ? `${height - 32}px`\n : `${height}px`;\n }\n playerRef.value?.appendChild(dom);\n });\n }\n}\n\nasync function createPlayer() {\n if (props.debug) {\n console.log(\"创建播放器\");\n }\n videoInfo.value = null;\n createPlayerDom();\n await nextTick();\n // 每30秒重启一次播放器,防止播放器卡死\n if (restartTimer.value !== null) {\n clearInterval(restartTimer.value);\n restartTimer.value = null;\n }\n restartTimer.value = setInterval(\n () => {\n destroy(false);\n setTimeout(() => {\n startPlayer();\n }, 1000 * 20);\n },\n 1000 * 60 * 60,\n );\n startPlayer();\n}\n\nasync function startPlayer() {\n try {\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n player = new window.EasyPlayerPro(document.getElementById(id), {\n isLive: true, // 是否直播\n hasAudio: true, // 是否解析音频\n bufferTime: 0, // 直播监控缓存时长设为0,减少内存堆积\n stretch: true, // 加视频拉伸\n MSE: false,\n WCS: false,\n WASM: true,\n debug: false,\n // operateBtns: {\n // performance: false,\n // },\n autoCleanupSourceBuffer: true, //(对 SourceBuffer 进行自动清理)\n // H.265 直播监控场景:后向缓冲区保留时长设为0,避免长时间占用大量内存\n // 原值60秒会导致H.265高码率视频内存持续增长\n autoCleanupMinBackwardDuration: 0,\n });\n }\n if (player) {\n player.play(playUrl.value);\n\n const timeoutHandler = () => {\n props.debug && console.log(\"加载超时\");\n emits(\"timeout\");\n playSuccess.value = false;\n destroy();\n initPlayer(playUrl.value);\n };\n\n const errorHandler = () => {\n props.debug && console.log(\"播放异常\");\n emits(\"error\");\n playSuccess.value = false;\n destroy();\n };\n\n const playHandler = () => {\n playSuccess.value = true;\n props.debug && console.log(\"播放\");\n emits(\"play\");\n };\n\n const pauseHandler = () => {\n props.debug && console.log(\"暂停\");\n emits(\"pause\");\n };\n\n const videoInfoHandler = (info: any) => {\n props.debug && console.log(\"视频信息\", info);\n videoInfo.value = info;\n emits(\"videoInfo\", info);\n };\n\n const muteHandler = (mute: false) => {\n props.debug && console.log(\"静音\");\n emits(\"mute\", mute);\n };\n\n player.on(\"timeout\", timeoutHandler);\n player.on(\"error\", errorHandler);\n player.on(\"play\", playHandler);\n player.on(\"pause\", pauseHandler);\n player.on(\"videoInfo\", videoInfoHandler);\n player.on(\"mute\", muteHandler);\n\n eventHandlers.value.set(\"timeout\", timeoutHandler);\n eventHandlers.value.set(\"error\", errorHandler);\n eventHandlers.value.set(\"play\", playHandler);\n eventHandlers.value.set(\"pause\", pauseHandler);\n eventHandlers.value.set(\"videoInfo\", videoInfoHandler);\n eventHandlers.value.set(\"mute\", muteHandler);\n }\n } catch (error) {\n console.error(\"创建播放器失败:\", error);\n setTimeout(() => {\n startPlayer();\n }, 1000);\n }\n}\n\nfunction destroy(flag = true) {\n if (player) {\n eventHandlers.value.forEach((handler, eventName) => {\n player.off(eventName, handler);\n });\n eventHandlers.value.clear();\n player.destroy();\n player = null;\n }\n\n if (flag) {\n // 清除定时重启播放器的定时器\n if (restartTimer.value !== null) {\n clearInterval(restartTimer.value);\n restartTimer.value = null;\n }\n removePlayerDom();\n }\n}\n</script>\n\n<template>\n <div\n ref=\"playerRef\"\n class=\"i-tzj-easyPlayer\"\n :class=\"customBar ? 'i-tzj-easyPlayer--custom' : ''\"\n >\n <!-- 播放器顶部显示区域(设备)名称 -->\n <div v-if=\"areaName || deviceSerial\" class=\"i-tzj-easyPlayer__top\">\n <i class=\"iconfont icon-shexiangtou4\" />\n <span>{{ areaName || deviceSerial }}</span>\n </div>\n <ErrorPage\n v-if=\"!playSuccess\"\n :video-name=\"areaName || deviceSerial\"\n message=\"无信号\"\n />\n <ErrorPage\n v-if=\"!playUrl\"\n :video-name=\"areaName || deviceSerial\"\n message=\"无播放地址\"\n />\n\n <!-- 播放器底部操作栏 -->\n <slot name=\"customBar\" />\n </div>\n</template>\n"],"names":["_createElementBlock","_normalizeClass","_createCommentVNode","areaName","deviceSerial","_openBlock","_createElementVNode","_toDisplayString","_createBlock","ErrorPage","_renderSlot"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {
2
+ player: import("vue").Ref<any, any>;
3
+ destroy: () => void;
4
+ play: () => void;
5
+ initPlayer: () => void;
6
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
7
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import _sfc_main from './newPlayer.vue2.mjs';
2
+
3
+
4
+
5
+ export { _sfc_main as default };
6
+ //# sourceMappingURL=newPlayer.vue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"newPlayer.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,67 @@
1
+ import { defineComponent, ref, onMounted, openBlock, createElementBlock } from 'vue';
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
+ const _hoisted_1 = {
6
+ id: "player",
7
+ class: "w-50 h-50"
8
+ };
9
+ var _sfc_main = /* @__PURE__ */ defineComponent({
10
+ ...{
11
+ name: ""
12
+ },
13
+ __name: "newPlayer",
14
+ setup(__props) {
15
+ const player = ref(null);
16
+ function destroy() {
17
+ var _a;
18
+ (_a = player.value) == null ? void 0 : _a.destroy();
19
+ player.value = null;
20
+ }
21
+ __name(destroy, "destroy");
22
+ function play() {
23
+ player.value = new window.EasyPlayerPro(document.getElementById("player"), {
24
+ isLive: true,
25
+ // 是否直播
26
+ hasAudio: true,
27
+ // 是否解析音频
28
+ bufferTime: 0.2,
29
+ // 缓存时长
30
+ stretch: true,
31
+ // 加视频拉伸
32
+ MSE: false,
33
+ WCS: false,
34
+ WASM: true,
35
+ gpuDecoder: true,
36
+ debug: false
37
+ // operateBtns: {
38
+ // performance: false,
39
+ // },
40
+ });
41
+ console.log("\u{1F680} ~ player.value:", player.value);
42
+ player.value.play("http://192.168.111.212:8099/tzjzlm/23_39-1/hls.m3u8");
43
+ }
44
+ __name(play, "play");
45
+ function initPlayer() {
46
+ console.log("initPlayer");
47
+ destroy();
48
+ try {
49
+ play();
50
+ } catch (error) {
51
+ setTimeout(() => {
52
+ initPlayer();
53
+ }, 1e3);
54
+ }
55
+ }
56
+ __name(initPlayer, "initPlayer");
57
+ onMounted(() => {
58
+ initPlayer();
59
+ });
60
+ return (_ctx, _cache) => {
61
+ return openBlock(), createElementBlock("div", _hoisted_1);
62
+ };
63
+ }
64
+ });
65
+
66
+ export { _sfc_main as default };
67
+ //# sourceMappingURL=newPlayer.vue2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"newPlayer.vue2.mjs","sources":["../../../../../../../packages/components/tzj-player/src/newPlayer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\n\ndefineOptions({\n name: \"\",\n});\nconst player = ref<any>(null);\nfunction destroy() {\n // player.value?.pause();\n player.value?.destroy();\n player.value = null;\n}\nfunction play() {\n player.value = new window.EasyPlayerPro(document.getElementById(\"player\"), {\n isLive: true, // 是否直播\n hasAudio: true, // 是否解析音频\n bufferTime: 0.2, // 缓存时长\n stretch: true, // 加视频拉伸\n MSE: false,\n WCS: false,\n WASM: true,\n gpuDecoder: true,\n debug: false,\n // operateBtns: {\n // performance: false,\n // },\n });\n console.log(\"🚀 ~ player.value:\", player.value);\n\n player.value.play(\"http://192.168.111.212:8099/tzjzlm/23_39-1/hls.m3u8\");\n}\nfunction initPlayer() {\n console.log(\"initPlayer\");\n destroy();\n try {\n play();\n } catch (error) {\n setTimeout(() => {\n initPlayer();\n }, 1000);\n }\n}\n\nonMounted(() => {\n initPlayer();\n});\n</script>\n\n<template>\n <div id=\"player\" class=\"w-50 h-50\" />\n</template>\n\n<style lang=\"scss\" scoped></style>\n"],"names":["_openBlock","_createElementBlock"],"mappings":";;;;;;;;;;;;;;AAMA,IAAM,MAAA,MAAA,GAAS,IAAS,IAAI,CAAA;AAC5B,IAAA,SAAS,OAAU,GAAA;;AAEjB,MAAA,CAAA,EAAA,GAAA,MAAA,CAAO,UAAP,IAAc,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAA,EAAA;AACd,MAAA,MAAA,CAAO,KAAQ,GAAA,IAAA;AAAA;AAHR,IAAA,MAAA,CAAA,OAAA,EAAA,SAAA,CAAA;AAKT,IAAA,SAAS,IAAO,GAAA;AACd,MAAA,MAAA,CAAO,QAAQ,IAAI,MAAA,CAAO,cAAc,QAAS,CAAA,cAAA,CAAe,QAAQ,CAAG,EAAA;AAAA,QACzE,MAAQ,EAAA,IAAA;AAAA;AAAA,QACR,QAAU,EAAA,IAAA;AAAA;AAAA,QACV,UAAY,EAAA,GAAA;AAAA;AAAA,QACZ,OAAS,EAAA,IAAA;AAAA;AAAA,QACT,GAAK,EAAA,KAAA;AAAA,QACL,GAAK,EAAA,KAAA;AAAA,QACL,IAAM,EAAA,IAAA;AAAA,QACN,UAAY,EAAA,IAAA;AAAA,QACZ,KAAO,EAAA;AAAA;AAAA;AAAA;AAAA,OAIR,CAAA;AACD,MAAQ,OAAA,CAAA,GAAA,CAAI,2BAAsB,EAAA,MAAA,CAAO,KAAK,CAAA;AAE9C,MAAO,MAAA,CAAA,KAAA,CAAM,KAAK,qDAAqD,CAAA;AAAA;AAjBhE,IAAA,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAmBT,IAAA,SAAS,UAAa,GAAA;AACpB,MAAA,OAAA,CAAQ,IAAI,YAAY,CAAA;AACxB,MAAQ,OAAA,EAAA;AACR,MAAI,IAAA;AACF,QAAK,IAAA,EAAA;AAAA,eACE,KAAO,EAAA;AACd,QAAA,UAAA,CAAW,MAAM;AACf,UAAW,UAAA,EAAA;AAAA,WACV,GAAI,CAAA;AAAA;AACT;AATO,IAAA,MAAA,CAAA,UAAA,EAAA,YAAA,CAAA;AAYT,IAAA,SAAA,CAAU,MAAM;AACd,MAAW,UAAA,EAAA;AAAA,KACZ,CAAA;;AAIC,MAAA,OAAAA,SAAA,EAAA,EAAAC,kBAAqC,CAAA,KAAA,EAArC,UAAqC,CAAA;AAAA;;;;;;"}
@@ -1493,6 +1493,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1493
1493
  videoInfo: import("vue").Ref<any, any>;
1494
1494
  realFullscreen: import("vue").Ref<boolean, boolean>;
1495
1495
  eventHandlers: import("vue").Ref<Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>, Map<string, Function> | (Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>)>;
1496
+ waitTimer: number | null;
1497
+ restartTimer: import("vue").Ref<number | null, number | null>;
1498
+ isUnmounted: boolean;
1496
1499
  play: (url?: string) => void;
1497
1500
  playerPause: () => void;
1498
1501
  playerScreenShot: () => void;
@@ -1502,7 +1505,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1502
1505
  removePlayerDom: () => void;
1503
1506
  createPlayerDom: () => void;
1504
1507
  createPlayer: () => Promise<void>;
1505
- destroy: () => void;
1508
+ startPlayer: () => Promise<void>;
1509
+ destroy: (flag?: boolean) => void;
1506
1510
  ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
1507
1511
  videoName: {
1508
1512
  type: StringConstructor;
@@ -3197,6 +3201,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3197
3201
  videoInfo: import("vue").Ref<any, any>;
3198
3202
  realFullscreen: import("vue").Ref<boolean, boolean>;
3199
3203
  eventHandlers: import("vue").Ref<Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>, Map<string, Function> | (Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>)>;
3204
+ waitTimer: number | null;
3205
+ restartTimer: import("vue").Ref<number | null, number | null>;
3206
+ isUnmounted: boolean;
3200
3207
  play: (url?: string) => void;
3201
3208
  playerPause: () => void;
3202
3209
  playerScreenShot: () => void;
@@ -3206,7 +3213,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3206
3213
  removePlayerDom: () => void;
3207
3214
  createPlayerDom: () => void;
3208
3215
  createPlayer: () => Promise<void>;
3209
- destroy: () => void;
3216
+ startPlayer: () => Promise<void>;
3217
+ destroy: (flag?: boolean) => void;
3210
3218
  ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
3211
3219
  videoName: {
3212
3220
  type: StringConstructor;
@@ -3420,6 +3428,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3420
3428
  videoInfo: import("vue").Ref<any, any>;
3421
3429
  realFullscreen: import("vue").Ref<boolean, boolean>;
3422
3430
  eventHandlers: import("vue").Ref<Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>, Map<string, Function> | (Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>)>;
3431
+ waitTimer: number | null;
3432
+ restartTimer: import("vue").Ref<number | null, number | null>;
3433
+ isUnmounted: boolean;
3423
3434
  play: (url?: string) => void;
3424
3435
  playerPause: () => void;
3425
3436
  playerScreenShot: () => void;
@@ -3429,7 +3440,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3429
3440
  removePlayerDom: () => void;
3430
3441
  createPlayerDom: () => void;
3431
3442
  createPlayer: () => Promise<void>;
3432
- destroy: () => void;
3443
+ startPlayer: () => Promise<void>;
3444
+ destroy: (flag?: boolean) => void;
3433
3445
  ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
3434
3446
  videoName: {
3435
3447
  type: StringConstructor;
@@ -4939,6 +4951,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
4939
4951
  videoInfo: import("vue").Ref<any, any>;
4940
4952
  realFullscreen: import("vue").Ref<boolean, boolean>;
4941
4953
  eventHandlers: import("vue").Ref<Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>, Map<string, Function> | (Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>)>;
4954
+ waitTimer: number | null;
4955
+ restartTimer: import("vue").Ref<number | null, number | null>;
4956
+ isUnmounted: boolean;
4942
4957
  play: (url?: string) => void;
4943
4958
  playerPause: () => void;
4944
4959
  playerScreenShot: () => void;
@@ -4948,7 +4963,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
4948
4963
  removePlayerDom: () => void;
4949
4964
  createPlayerDom: () => void;
4950
4965
  createPlayer: () => Promise<void>;
4951
- destroy: () => void;
4966
+ startPlayer: () => Promise<void>;
4967
+ destroy: (flag?: boolean) => void;
4952
4968
  ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
4953
4969
  videoName: {
4954
4970
  type: StringConstructor;
@@ -6641,6 +6657,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
6641
6657
  videoInfo: import("vue").Ref<any, any>;
6642
6658
  realFullscreen: import("vue").Ref<boolean, boolean>;
6643
6659
  eventHandlers: import("vue").Ref<Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>, Map<string, Function> | (Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>)>;
6660
+ waitTimer: number | null;
6661
+ restartTimer: import("vue").Ref<number | null, number | null>;
6662
+ isUnmounted: boolean;
6644
6663
  play: (url?: string) => void;
6645
6664
  playerPause: () => void;
6646
6665
  playerScreenShot: () => void;
@@ -6650,7 +6669,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
6650
6669
  removePlayerDom: () => void;
6651
6670
  createPlayerDom: () => void;
6652
6671
  createPlayer: () => Promise<void>;
6653
- destroy: () => void;
6672
+ startPlayer: () => Promise<void>;
6673
+ destroy: (flag?: boolean) => void;
6654
6674
  ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
6655
6675
  videoName: {
6656
6676
  type: StringConstructor;
@@ -6867,6 +6887,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
6867
6887
  videoInfo: import("vue").Ref<any, any>;
6868
6888
  realFullscreen: import("vue").Ref<boolean, boolean>;
6869
6889
  eventHandlers: import("vue").Ref<Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>, Map<string, Function> | (Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>)>;
6890
+ waitTimer: number | null;
6891
+ restartTimer: import("vue").Ref<number | null, number | null>;
6892
+ isUnmounted: boolean;
6870
6893
  play: (url?: string) => void;
6871
6894
  playerPause: () => void;
6872
6895
  playerScreenShot: () => void;
@@ -6876,7 +6899,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
6876
6899
  removePlayerDom: () => void;
6877
6900
  createPlayerDom: () => void;
6878
6901
  createPlayer: () => Promise<void>;
6879
- destroy: () => void;
6902
+ startPlayer: () => Promise<void>;
6903
+ destroy: (flag?: boolean) => void;
6880
6904
  ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
6881
6905
  videoName: {
6882
6906
  type: StringConstructor;
@@ -8386,6 +8410,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
8386
8410
  videoInfo: import("vue").Ref<any, any>;
8387
8411
  realFullscreen: import("vue").Ref<boolean, boolean>;
8388
8412
  eventHandlers: import("vue").Ref<Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>, Map<string, Function> | (Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>)>;
8413
+ waitTimer: number | null;
8414
+ restartTimer: import("vue").Ref<number | null, number | null>;
8415
+ isUnmounted: boolean;
8389
8416
  play: (url?: string) => void;
8390
8417
  playerPause: () => void;
8391
8418
  playerScreenShot: () => void;
@@ -8395,7 +8422,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
8395
8422
  removePlayerDom: () => void;
8396
8423
  createPlayerDom: () => void;
8397
8424
  createPlayer: () => Promise<void>;
8398
- destroy: () => void;
8425
+ startPlayer: () => Promise<void>;
8426
+ destroy: (flag?: boolean) => void;
8399
8427
  ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
8400
8428
  videoName: {
8401
8429
  type: StringConstructor;
@@ -10088,6 +10116,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
10088
10116
  videoInfo: import("vue").Ref<any, any>;
10089
10117
  realFullscreen: import("vue").Ref<boolean, boolean>;
10090
10118
  eventHandlers: import("vue").Ref<Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>, Map<string, Function> | (Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>)>;
10119
+ waitTimer: number | null;
10120
+ restartTimer: import("vue").Ref<number | null, number | null>;
10121
+ isUnmounted: boolean;
10091
10122
  play: (url?: string) => void;
10092
10123
  playerPause: () => void;
10093
10124
  playerScreenShot: () => void;
@@ -10097,7 +10128,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
10097
10128
  removePlayerDom: () => void;
10098
10129
  createPlayerDom: () => void;
10099
10130
  createPlayer: () => Promise<void>;
10100
- destroy: () => void;
10131
+ startPlayer: () => Promise<void>;
10132
+ destroy: (flag?: boolean) => void;
10101
10133
  ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
10102
10134
  videoName: {
10103
10135
  type: StringConstructor;