@yimou6/common-ui 1.10.7 → 1.10.9

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 (58) hide show
  1. package/cdn/index.cdn.js +30 -17
  2. package/cdn/index.cdn.js.map +1 -1
  3. package/cdn/index.cdn.mjs +28 -15
  4. package/cdn/index.cdn.mjs.map +1 -1
  5. package/cdn/index.css +1 -1
  6. package/es/components/tenant-enterprise/src/tenant-enterprise.vue2.mjs +12 -3
  7. package/es/components/tenant-enterprise/src/tenant-enterprise.vue2.mjs.map +1 -1
  8. package/es/components/tzj-player/index.d.ts +5066 -3
  9. package/es/components/tzj-player/src/easyPlayer.vue.d.ts +104 -8
  10. package/es/components/tzj-player/src/easyPlayer.vue2.mjs +179 -62
  11. package/es/components/tzj-player/src/easyPlayer.vue2.mjs.map +1 -1
  12. package/es/components/tzj-player/src/tzj-player.d.ts +19 -2
  13. package/es/components/tzj-player/src/tzj-player.mjs +47 -1
  14. package/es/components/tzj-player/src/tzj-player.mjs.map +1 -1
  15. package/es/components/tzj-player/src/tzj-player.vue.d.ts +5066 -3
  16. package/es/components/tzj-player/src/tzj-player.vue2.mjs +129 -36
  17. package/es/components/tzj-player/src/tzj-player.vue2.mjs.map +1 -1
  18. package/es/components/tzj-player/src/ysPlayer.vue.d.ts +2 -2
  19. package/es/components/tzj-player/src/ysPlayer.vue2.mjs +40 -29
  20. package/es/components/tzj-player/src/ysPlayer.vue2.mjs.map +1 -1
  21. package/es/components/tzj-player/src/yunzhiyan.d.ts +6 -0
  22. package/es/components/tzj-player/src/yunzhiyan.mjs +306 -0
  23. package/es/components/tzj-player/src/yunzhiyan.mjs.map +1 -0
  24. package/es/components/tzj-player/src/yunzhiyanPlayer.vue.d.ts +1519 -0
  25. package/es/components/tzj-player/src/yunzhiyanPlayer.vue.mjs +6 -0
  26. package/es/components/tzj-player/src/yunzhiyanPlayer.vue.mjs.map +1 -0
  27. package/es/components/tzj-player/src/yunzhiyanPlayer.vue2.mjs +637 -0
  28. package/es/components/tzj-player/src/yunzhiyanPlayer.vue2.mjs.map +1 -0
  29. package/es/utils/provide.d.ts +3 -3
  30. package/es/utils/provide.mjs.map +1 -1
  31. package/lib/components/tenant-enterprise/src/tenant-enterprise.vue2.js +12 -3
  32. package/lib/components/tenant-enterprise/src/tenant-enterprise.vue2.js.map +1 -1
  33. package/lib/components/tzj-player/index.d.ts +5066 -3
  34. package/lib/components/tzj-player/src/easyPlayer.vue.d.ts +104 -8
  35. package/lib/components/tzj-player/src/easyPlayer.vue2.js +177 -60
  36. package/lib/components/tzj-player/src/easyPlayer.vue2.js.map +1 -1
  37. package/lib/components/tzj-player/src/tzj-player.d.ts +19 -2
  38. package/lib/components/tzj-player/src/tzj-player.js +47 -0
  39. package/lib/components/tzj-player/src/tzj-player.js.map +1 -1
  40. package/lib/components/tzj-player/src/tzj-player.vue.d.ts +5066 -3
  41. package/lib/components/tzj-player/src/tzj-player.vue2.js +125 -32
  42. package/lib/components/tzj-player/src/tzj-player.vue2.js.map +1 -1
  43. package/lib/components/tzj-player/src/ysPlayer.vue.d.ts +2 -2
  44. package/lib/components/tzj-player/src/ysPlayer.vue2.js +40 -29
  45. package/lib/components/tzj-player/src/ysPlayer.vue2.js.map +1 -1
  46. package/lib/components/tzj-player/src/yunzhiyan.d.ts +6 -0
  47. package/lib/components/tzj-player/src/yunzhiyan.js +313 -0
  48. package/lib/components/tzj-player/src/yunzhiyan.js.map +1 -0
  49. package/lib/components/tzj-player/src/yunzhiyanPlayer.vue.d.ts +1519 -0
  50. package/lib/components/tzj-player/src/yunzhiyanPlayer.vue.js +10 -0
  51. package/lib/components/tzj-player/src/yunzhiyanPlayer.vue.js.map +1 -0
  52. package/lib/components/tzj-player/src/yunzhiyanPlayer.vue2.js +641 -0
  53. package/lib/components/tzj-player/src/yunzhiyanPlayer.vue2.js.map +1 -0
  54. package/lib/utils/provide.d.ts +3 -3
  55. package/lib/utils/provide.js.map +1 -1
  56. package/package.json +4 -2
  57. package/theme-default/i-tzj-player.css +1 -1
  58. package/theme-default/index.css +1 -1
@@ -1,26 +1,122 @@
1
1
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
2
  url: {
3
3
  type: StringConstructor;
4
- required: true;
4
+ default: string;
5
+ };
6
+ accessToken: {
7
+ type: StringConstructor;
8
+ default: string;
9
+ };
10
+ areaName: {
11
+ type: StringConstructor;
12
+ default: string;
13
+ };
14
+ deviceSerial: {
15
+ type: StringConstructor;
16
+ default: string;
17
+ };
18
+ platformTypeName: {
19
+ type: StringConstructor;
20
+ default: string;
21
+ };
22
+ debug: {
23
+ type: BooleanConstructor;
24
+ default: boolean;
5
25
  };
6
26
  }>, {
7
- props: any;
27
+ props: import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
28
+ url: {
29
+ type: StringConstructor;
30
+ default: string;
31
+ };
32
+ accessToken: {
33
+ type: StringConstructor;
34
+ default: string;
35
+ };
36
+ areaName: {
37
+ type: StringConstructor;
38
+ default: string;
39
+ };
40
+ deviceSerial: {
41
+ type: StringConstructor;
42
+ default: string;
43
+ };
44
+ platformTypeName: {
45
+ type: StringConstructor;
46
+ default: string;
47
+ };
48
+ debug: {
49
+ type: BooleanConstructor;
50
+ default: boolean;
51
+ };
52
+ }>> & Readonly<{
53
+ onPlay?: ((...args: any[]) => any) | undefined;
54
+ onPause?: ((...args: any[]) => any) | undefined;
55
+ onError?: ((...args: any[]) => any) | undefined;
56
+ onVideoInfo?: ((...args: any[]) => any) | undefined;
57
+ onTimeout?: ((...args: any[]) => any) | undefined;
58
+ onMute?: ((...args: any[]) => any) | undefined;
59
+ }> & {}>;
60
+ emits: (event: "error" | "play" | "pause" | "videoInfo" | "timeout" | "mute", ...args: any[]) => void;
61
+ slots: Readonly<{
62
+ [name: string]: import("vue").Slot<any> | undefined;
63
+ }>;
64
+ customBar: import("vue").ComputedRef<import("vue").Slot<any> | undefined>;
8
65
  player: any;
9
66
  id: string;
10
- playerRef: import("vue").ShallowRef<HTMLElement | undefined, HTMLElement | undefined>;
67
+ playerRef: import("vue").ShallowRef<HTMLDivElement | undefined, HTMLDivElement | undefined>;
11
68
  playSuccess: import("vue").Ref<boolean, boolean>;
12
69
  playUrl: import("vue").Ref<string, string>;
70
+ isFullscreen: import("vue").Ref<boolean, boolean>;
71
+ videoInfo: import("vue").Ref<any, any>;
72
+ play: (url?: string) => void;
73
+ playerPause: () => void;
74
+ playerScreenShot: () => void;
75
+ playerFullscreen: (fullscreen: boolean) => void;
76
+ formatUrl: (url: string) => string;
13
77
  initPlayer: (url: string) => Promise<void>;
14
78
  removePlayerDom: () => void;
15
79
  createPlayerDom: () => void;
16
80
  createPlayer: () => Promise<void>;
17
81
  destroy: () => void;
18
- play: (url?: string) => void;
19
- formatUrl: (url: string) => string;
20
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
82
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("error" | "play" | "pause" | "videoInfo" | "timeout" | "mute")[], "error" | "play" | "pause" | "videoInfo" | "timeout" | "mute", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
21
83
  url: {
22
84
  type: StringConstructor;
23
- required: true;
85
+ default: string;
86
+ };
87
+ accessToken: {
88
+ type: StringConstructor;
89
+ default: string;
24
90
  };
25
- }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
91
+ areaName: {
92
+ type: StringConstructor;
93
+ default: string;
94
+ };
95
+ deviceSerial: {
96
+ type: StringConstructor;
97
+ default: string;
98
+ };
99
+ platformTypeName: {
100
+ type: StringConstructor;
101
+ default: string;
102
+ };
103
+ debug: {
104
+ type: BooleanConstructor;
105
+ default: boolean;
106
+ };
107
+ }>> & Readonly<{
108
+ onPlay?: ((...args: any[]) => any) | undefined;
109
+ onPause?: ((...args: any[]) => any) | undefined;
110
+ onError?: ((...args: any[]) => any) | undefined;
111
+ onVideoInfo?: ((...args: any[]) => any) | undefined;
112
+ onTimeout?: ((...args: any[]) => any) | undefined;
113
+ onMute?: ((...args: any[]) => any) | undefined;
114
+ }>, {
115
+ url: string;
116
+ accessToken: string;
117
+ debug: boolean;
118
+ deviceSerial: string;
119
+ areaName: string;
120
+ platformTypeName: string;
121
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
26
122
  export default _default;
@@ -1,5 +1,5 @@
1
- import { defineComponent, shallowRef, ref, onMounted, watch, onBeforeUnmount, nextTick, openBlock, createElementBlock, createCommentVNode } from 'vue';
2
- import { uuid } from './tzj-player.mjs';
1
+ import { defineComponent, useSlots, computed, shallowRef, ref, onMounted, watch, onBeforeUnmount, nextTick, openBlock, createElementBlock, normalizeClass, createCommentVNode, renderSlot } from 'vue';
2
+ import { TzjPlayerProps, uuid } from './tzj-player.mjs';
3
3
 
4
4
  var __defProp = Object.defineProperty;
5
5
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
@@ -16,16 +16,27 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
16
16
  name: "EasyPlayer"
17
17
  },
18
18
  __name: "easyPlayer",
19
- props: {
20
- url: {}
21
- },
22
- setup(__props, { expose: __expose }) {
19
+ props: TzjPlayerProps,
20
+ emits: [
21
+ "timeout",
22
+ "error",
23
+ "play",
24
+ "pause",
25
+ "mute",
26
+ "videoInfo"
27
+ ],
28
+ setup(__props, { expose: __expose, emit: __emit }) {
23
29
  const props = __props;
30
+ const emits = __emit;
31
+ const slots = useSlots();
32
+ const customBar = computed(() => slots.customBar);
24
33
  let player = null;
25
34
  const id = uuid();
26
35
  const playerRef = shallowRef();
27
36
  const playSuccess = ref(true);
28
37
  const playUrl = ref("");
38
+ const isFullscreen = ref(false);
39
+ const videoInfo = ref(null);
29
40
  onMounted(() => {
30
41
  initPlayer(props.url || "");
31
42
  });
@@ -36,20 +47,96 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
36
47
  }
37
48
  );
38
49
  onBeforeUnmount(() => {
50
+ if (props.debug) {
51
+ console.log("\u7EC4\u4EF6\u5378\u8F7D");
52
+ }
39
53
  playUrl.value = "";
40
54
  destroy();
41
55
  });
56
+ const play = /* @__PURE__ */ __name((url) => {
57
+ if (url) {
58
+ initPlayer(url);
59
+ } else {
60
+ if (player) {
61
+ player.play(playUrl.value);
62
+ } else {
63
+ destroy();
64
+ }
65
+ }
66
+ }, "play");
67
+ const playerPause = /* @__PURE__ */ __name(() => {
68
+ var _a;
69
+ if (props.debug) {
70
+ console.log("\u6682\u505C");
71
+ }
72
+ (_a = player == null ? void 0 : player.pause) == null ? void 0 : _a.call(player);
73
+ }, "playerPause");
74
+ const playerScreenShot = /* @__PURE__ */ __name(() => {
75
+ var _a;
76
+ if (props.debug) {
77
+ console.log("\u622A\u56FE");
78
+ }
79
+ (_a = player == null ? void 0 : player.screenshot) == null ? void 0 : _a.call(
80
+ player,
81
+ `${props.areaName}_${(/* @__PURE__ */ new Date()).getTime()}`,
82
+ "png",
83
+ 0.5,
84
+ "download"
85
+ );
86
+ }, "playerScreenShot");
87
+ const playerFullscreen = /* @__PURE__ */ __name((fullscreen) => {
88
+ var _a, _b, _c;
89
+ if (props.debug) {
90
+ console.log("\u5168\u5C4F");
91
+ }
92
+ if (typeof document !== "undefined") {
93
+ if (fullscreen) {
94
+ (_a = document.exitFullscreen) == null ? void 0 : _a.call(document);
95
+ } else {
96
+ (_c = (_b = playerRef.value) == null ? void 0 : _b.requestFullscreen) == null ? void 0 : _c.call(_b);
97
+ }
98
+ }
99
+ isFullscreen.value = !fullscreen;
100
+ }, "playerFullscreen");
42
101
  __expose({
43
102
  play,
44
- destroy
103
+ destroy,
104
+ getPlayer: /* @__PURE__ */ __name(() => player, "getPlayer"),
105
+ pause: playerPause,
106
+ screenshot: playerScreenShot,
107
+ fullscreen: playerFullscreen,
108
+ isMute: /* @__PURE__ */ __name(() => {
109
+ var _a;
110
+ return (_a = player == null ? void 0 : player.isMute) == null ? void 0 : _a.call(player);
111
+ }, "isMute"),
112
+ setMute: /* @__PURE__ */ __name((mute) => {
113
+ var _a;
114
+ (_a = player == null ? void 0 : player.setMute) == null ? void 0 : _a.call(player, mute);
115
+ }, "setMute")
45
116
  });
117
+ const formatUrl = /* @__PURE__ */ __name((url) => {
118
+ if (!url) return "";
119
+ if (url.startsWith("http://") || url.startsWith("https://")) {
120
+ return url;
121
+ }
122
+ if (typeof window !== "undefined" && window.location) {
123
+ return `${window.location.origin}${url.startsWith("/") ? "" : "/"}${url}`;
124
+ }
125
+ return url;
126
+ }, "formatUrl");
46
127
  async function initPlayer(url) {
128
+ if (props.debug) {
129
+ console.log("\u521D\u59CB\u5316\u64AD\u653E\u5668", url);
130
+ }
47
131
  removePlayerDom();
48
132
  if (url) {
49
133
  playUrl.value = formatUrl(url);
50
- if (window == null ? void 0 : window.EasyPlayerPro) {
134
+ if (props.debug) {
135
+ console.log("\u683C\u5F0F\u5316\u540E\u7684url", playUrl.value);
136
+ }
137
+ if (typeof window !== "undefined" && (window == null ? void 0 : window.EasyPlayerPro)) {
51
138
  createPlayer();
52
- } else {
139
+ } else if (typeof window !== "undefined") {
53
140
  const timer = setInterval(() => {
54
141
  if (window == null ? void 0 : window.EasyPlayerPro) {
55
142
  createPlayer();
@@ -61,49 +148,93 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
61
148
  }
62
149
  __name(initPlayer, "initPlayer");
63
150
  function removePlayerDom() {
64
- const dom = document.getElementById(id);
65
- dom && dom.remove();
151
+ if (typeof document !== "undefined") {
152
+ const dom = document.getElementById(id);
153
+ dom && dom.remove();
154
+ }
66
155
  }
67
156
  __name(removePlayerDom, "removePlayerDom");
68
157
  function createPlayerDom() {
69
158
  var _a;
70
159
  removePlayerDom();
71
- const dom = document.createElement("div");
72
- dom.id = id;
73
- dom.style.width = "100%";
74
- dom.style.height = "100%";
75
- (_a = playerRef.value) == null ? void 0 : _a.appendChild(dom);
160
+ if (typeof document !== "undefined") {
161
+ const dom = document.createElement("div");
162
+ dom.id = id;
163
+ dom.style.width = "100%";
164
+ dom.style.height = "100%";
165
+ (_a = playerRef.value) == null ? void 0 : _a.appendChild(dom);
166
+ }
76
167
  }
77
168
  __name(createPlayerDom, "createPlayerDom");
78
169
  async function createPlayer() {
170
+ if (props.debug) {
171
+ console.log("\u521B\u5EFA\u64AD\u653E\u5668");
172
+ }
173
+ videoInfo.value = null;
79
174
  createPlayerDom();
80
175
  await nextTick();
81
- player = new window.EasyPlayerPro(document.getElementById(id), {
82
- isLive: true,
83
- // 是否直播
84
- hasAudio: true,
85
- // 是否解析音频
86
- bufferTime: 0.2,
87
- // 缓存时长
88
- stretch: true,
89
- // 加视频拉伸
90
- MSE: false,
91
- WCS: false,
92
- WASM: true,
93
- debug: false,
94
- operateBtns: {
95
- performance: false
96
- }
97
- });
98
- player.on("timeout", () => {
99
- playSuccess.value = false;
100
- destroy();
101
- });
102
- player.on("error", () => {
103
- playSuccess.value = false;
104
- destroy();
105
- });
106
- play(props.url);
176
+ if (typeof window !== "undefined" && typeof document !== "undefined") {
177
+ player = new window.EasyPlayerPro(document.getElementById(id), {
178
+ isLive: true,
179
+ // 是否直播
180
+ hasAudio: true,
181
+ // 是否解析音频
182
+ bufferTime: 0.2,
183
+ // 缓存时长
184
+ stretch: true,
185
+ // 加视频拉伸
186
+ MSE: false,
187
+ WCS: false,
188
+ WASM: true,
189
+ debug: false,
190
+ operateBtns: {
191
+ performance: false
192
+ }
193
+ });
194
+ }
195
+ if (player) {
196
+ player.play(playUrl.value);
197
+ const videoInfoTimer = setTimeout(() => {
198
+ if (!videoInfo.value) {
199
+ props.debug && console.log("15s\u672A\u83B7\u53D6\u5230\u89C6\u9891\u4FE1\u606F");
200
+ emits("error");
201
+ playSuccess.value = false;
202
+ destroy();
203
+ }
204
+ }, 3e3);
205
+ player.on("timeout", () => {
206
+ clearTimeout(videoInfoTimer);
207
+ props.debug && console.log("\u52A0\u8F7D\u8D85\u65F6");
208
+ emits("timeout");
209
+ playSuccess.value = false;
210
+ destroy();
211
+ });
212
+ player.on("error", () => {
213
+ props.debug && console.log("\u64AD\u653E\u5F02\u5E38");
214
+ emits("error");
215
+ playSuccess.value = false;
216
+ destroy();
217
+ });
218
+ player.on("play", () => {
219
+ playSuccess.value = true;
220
+ props.debug && console.log("\u64AD\u653E");
221
+ emits("play");
222
+ });
223
+ player.on("pause", () => {
224
+ props.debug && console.log("\u6682\u505C");
225
+ emits("pause");
226
+ });
227
+ player.on("videoInfo", (info) => {
228
+ clearTimeout(videoInfoTimer);
229
+ props.debug && console.log("\u89C6\u9891\u4FE1\u606F", info);
230
+ videoInfo.value = info;
231
+ emits("videoInfo", info);
232
+ });
233
+ player.on("mute", (mute) => {
234
+ props.debug && console.log("\u9759\u97F3");
235
+ emits("mute", mute);
236
+ });
237
+ }
107
238
  }
108
239
  __name(createPlayer, "createPlayer");
109
240
  function destroy() {
@@ -114,36 +245,22 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
114
245
  removePlayerDom();
115
246
  }
116
247
  __name(destroy, "destroy");
117
- function play(url) {
118
- if (player && (url || props.url)) {
119
- playUrl.value = formatUrl(url || props.url);
120
- player.play(playUrl.value);
121
- } else {
122
- initPlayer(url || props.url);
123
- }
124
- }
125
- __name(play, "play");
126
- function formatUrl(url) {
127
- if (url.startsWith("/")) {
128
- return `${window.location.origin}${url}`;
129
- }
130
- return url;
131
- }
132
- __name(formatUrl, "formatUrl");
133
248
  return (_ctx, _cache) => {
134
249
  return openBlock(), createElementBlock(
135
250
  "div",
136
251
  {
137
252
  ref_key: "playerRef",
138
253
  ref: playerRef,
139
- class: "i-tzj-player"
254
+ class: normalizeClass(["i-tzj-easyPlayer", customBar.value ? "i-tzj-easyPlayer--custom" : ""])
140
255
  },
141
256
  [
142
257
  !playSuccess.value ? (openBlock(), createElementBlock("div", _hoisted_1, "\u65E0\u4FE1\u53F7")) : createCommentVNode("v-if", true),
143
- !playUrl.value ? (openBlock(), createElementBlock("div", _hoisted_2, "\u65E0\u64AD\u653E\u5730\u5740")) : createCommentVNode("v-if", true)
258
+ !playUrl.value ? (openBlock(), createElementBlock("div", _hoisted_2, "\u65E0\u64AD\u653E\u5730\u5740")) : createCommentVNode("v-if", true),
259
+ createCommentVNode(" \u64AD\u653E\u5668\u5E95\u90E8\u64CD\u4F5C\u680F "),
260
+ renderSlot(_ctx.$slots, "customBar")
144
261
  ],
145
- 512
146
- /* NEED_PATCH */
262
+ 2
263
+ /* CLASS */
147
264
  );
148
265
  };
149
266
  }
@@ -1 +1 @@
1
- {"version":3,"file":"easyPlayer.vue2.mjs","sources":["../../../../../../../packages/components/tzj-player/src/easyPlayer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n shallowRef,\n watch,\n} from \"vue\";\nimport { uuid } from \"./tzj-player\";\n\ndefineOptions({\n name: \"EasyPlayer\",\n});\n\nconst props = defineProps<{\n url: string;\n}>();\n\nlet player: any = null;\nconst id = uuid();\nconst playerRef = shallowRef<HTMLElement>();\nconst playSuccess = ref(true);\nconst playUrl = ref(\"\");\n\nonMounted(() => {\n initPlayer(props.url || \"\");\n});\n\nwatch(\n () => props.url,\n (newUrl) => {\n initPlayer(newUrl || \"\");\n },\n);\n\nonBeforeUnmount(() => {\n playUrl.value = \"\";\n destroy();\n});\n\ndefineExpose({\n play,\n destroy,\n});\n\nasync function initPlayer(url: string) {\n removePlayerDom();\n if (url) {\n playUrl.value = formatUrl(url);\n\n if (window?.EasyPlayerPro) {\n createPlayer();\n } else {\n const timer = setInterval(() => {\n if (window?.EasyPlayerPro) {\n createPlayer();\n clearInterval(timer);\n }\n }, 100);\n }\n }\n}\n\n// 移除播放器DOM\nfunction removePlayerDom() {\n const dom = document.getElementById(id);\n dom && dom.remove();\n}\n\n// 创建播放器DOM\nfunction createPlayerDom() {\n removePlayerDom();\n const dom = document.createElement(\"div\");\n dom.id = id;\n dom.style.width = \"100%\";\n dom.style.height = \"100%\";\n playerRef.value?.appendChild(dom);\n}\n\nasync function createPlayer() {\n createPlayerDom();\n await nextTick();\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 });\n\n // 加载超时\n player.on(\"timeout\", () => {\n playSuccess.value = false;\n destroy();\n });\n // 播放异常\n player.on(\"error\", () => {\n playSuccess.value = false;\n destroy();\n });\n play(props.url);\n}\n\nfunction destroy() {\n if (player) {\n player.destroy();\n player = null;\n }\n removePlayerDom();\n}\n\nfunction play(url?: string) {\n if (player && (url || props.url)) {\n playUrl.value = formatUrl(url || props.url);\n player.play(playUrl.value);\n } else {\n initPlayer(url || props.url);\n }\n}\n\n/**\n * 格式化url\n * 当url为相对路径时,添加baseUrl。baseUrl为当前页面的url\n * @param url\n * @example\n * formatUrl('/test.mp4') => 'http://192.168.111.206:8080/test.mp4'\n * formatUrl('http://192.168.111.206:8080/test.mp4') => 'http://192.168.111.206:8080/test.mp4'\n */\nfunction formatUrl(url: string) {\n if (url.startsWith(\"/\")) {\n return `${window.location.origin}${url}`;\n }\n return url;\n}\n</script>\n\n<template>\n <div ref=\"playerRef\" class=\"i-tzj-player\">\n <div v-if=\"!playSuccess\" class=\"i-tzj-player__error\">无信号</div>\n <div v-if=\"!playUrl\" class=\"i-tzj-player__error\">无播放地址</div>\n </div>\n</template>\n"],"names":["_createElementBlock"],"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 { 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);\n\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 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 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 const dom = document.createElement(\"div\");\n dom.id = id;\n dom.style.width = \"100%\";\n dom.style.height = \"100%\";\n playerRef.value?.appendChild(dom);\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 });\n }\n if (player) {\n player.play(playUrl.value);\n\n // 15s未获取到视频信息,认为播放失败\n const videoInfoTimer = setTimeout(() => {\n if (!videoInfo.value) {\n props.debug && console.log(\"15s未获取到视频信息\");\n emits(\"error\");\n playSuccess.value = false;\n destroy();\n }\n }, 3000);\n // 加载超时\n player.on(\"timeout\", () => {\n clearTimeout(videoInfoTimer);\n props.debug && console.log(\"加载超时\");\n emits(\"timeout\");\n playSuccess.value = false;\n destroy();\n });\n // 播放异常\n player.on(\"error\", () => {\n props.debug && console.log(\"播放异常\");\n emits(\"error\");\n playSuccess.value = false;\n destroy();\n });\n player.on(\"play\", () => {\n playSuccess.value = true;\n props.debug && console.log(\"播放\");\n emits(\"play\");\n });\n player.on(\"pause\", () => {\n props.debug && console.log(\"暂停\");\n emits(\"pause\");\n });\n player.on(\"videoInfo\", (info: any) => {\n clearTimeout(videoInfoTimer);\n props.debug && console.log(\"视频信息\", info);\n videoInfo.value = info;\n emits(\"videoInfo\", info);\n });\n player.on(\"mute\", (mute: false) => {\n props.debug && console.log(\"静音\");\n emits(\"mute\", mute);\n });\n }\n}\n\nfunction destroy() {\n if (player) {\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 <div v-if=\"!playSuccess\" class=\"i-tzj-player__error\">无信号</div>\n <div v-if=\"!playUrl\" class=\"i-tzj-player__error\">无播放地址</div>\n\n <!-- 播放器底部操作栏 -->\n <slot name=\"customBar\" />\n </div>\n</template>\n"],"names":["_createElementBlock","_normalizeClass","_createCommentVNode","_renderSlot"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { ExtractPropTypes } from 'vue';
2
- import type TzjPlayer from './tzj-player.vue';
1
+ import type { ExtractPropTypes } from "vue";
2
+ import type TzjPlayer from "./tzj-player.vue";
3
3
  export declare const TzjPlayerProps: {
4
4
  url: {
5
5
  type: StringConstructor;
@@ -9,8 +9,25 @@ export declare const TzjPlayerProps: {
9
9
  type: StringConstructor;
10
10
  default: string;
11
11
  };
12
+ areaName: {
13
+ type: StringConstructor;
14
+ default: string;
15
+ };
16
+ deviceSerial: {
17
+ type: StringConstructor;
18
+ default: string;
19
+ };
20
+ platformTypeName: {
21
+ type: StringConstructor;
22
+ default: string;
23
+ };
24
+ debug: {
25
+ type: BooleanConstructor;
26
+ default: boolean;
27
+ };
12
28
  };
13
29
  export declare function uuid(): string;
14
30
  export declare function isSupportedProtocol(url: string): boolean;
31
+ export declare function getVideoType(url: string): string;
15
32
  export type TzjPlayerPropsType = ExtractPropTypes<typeof TzjPlayerProps>;
16
33
  export type TzjPlayerInstance = InstanceType<typeof TzjPlayer>;
@@ -1,13 +1,44 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
  const TzjPlayerProps = {
4
+ /**
5
+ * 视频地址
6
+ */
4
7
  url: {
5
8
  type: String,
6
9
  default: ""
7
10
  },
11
+ /**
12
+ * 访问令牌
13
+ */
8
14
  accessToken: {
9
15
  type: String,
10
16
  default: ""
17
+ },
18
+ /**
19
+ * 视频标题
20
+ */
21
+ areaName: {
22
+ type: String,
23
+ default: ""
24
+ },
25
+ /**
26
+ * 视频ID
27
+ */
28
+ deviceSerial: {
29
+ type: String,
30
+ default: ""
31
+ },
32
+ /**
33
+ * 视频平台类型名称
34
+ */
35
+ platformTypeName: {
36
+ type: String,
37
+ default: ""
38
+ },
39
+ debug: {
40
+ type: Boolean,
41
+ default: false
11
42
  }
12
43
  };
13
44
  function uuid() {
@@ -29,6 +60,21 @@ function isSupportedProtocol(url) {
29
60
  return protocolRegex.test(url.trim());
30
61
  }
31
62
  __name(isSupportedProtocol, "isSupportedProtocol");
63
+ function getVideoType(url) {
64
+ if (!url || typeof url !== "string") {
65
+ return "";
66
+ }
67
+ const pathWithoutQuery = url.split("?")[0];
68
+ const lowerPath = pathWithoutQuery.toLowerCase();
69
+ if (lowerPath.endsWith(".flv")) {
70
+ return "flv";
71
+ }
72
+ if (lowerPath.endsWith("/hls.m3u8")) {
73
+ return "hls";
74
+ }
75
+ return "";
76
+ }
77
+ __name(getVideoType, "getVideoType");
32
78
 
33
- export { TzjPlayerProps, isSupportedProtocol, uuid };
79
+ export { TzjPlayerProps, getVideoType, isSupportedProtocol, uuid };
34
80
  //# sourceMappingURL=tzj-player.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tzj-player.mjs","sources":["../../../../../../../packages/components/tzj-player/src/tzj-player.ts"],"sourcesContent":["import type { ExtractPropTypes } from 'vue';\nimport type TzjPlayer from './tzj-player.vue';\n\nexport const TzjPlayerProps = {\n url: {\n type: String,\n default: '',\n },\n accessToken: {\n type: String,\n default: '',\n },\n};\n\nexport function uuid(): string {\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, c => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n/**\n * 是否为支持的协议\n * 支持:http,https,ws,wss,ezopen(萤石云)\n * * 当URL不包含协议时(相对地址),也返回true\n */\nexport function isSupportedProtocol(url: string): boolean {\n if (!url || typeof url !== 'string') {\n return false;\n }\n\n // 如果URL不包含协议部分(相对地址),返回true\n if (!url.includes('://')) {\n return true;\n }\n\n const protocolRegex = /^(https?|wss?|ezopen):\\/\\/.+$/i;\n return protocolRegex.test(url.trim());\n}\n\nexport type TzjPlayerPropsType = ExtractPropTypes<typeof TzjPlayerProps>;\nexport type TzjPlayerInstance = InstanceType<typeof TzjPlayer>;\n"],"names":[],"mappings":";;AAGO,MAAM,cAAiB,GAAA;AAAA,EAC5B,GAAK,EAAA;AAAA,IACH,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA;AAAA;AAEb;AAEO,SAAS,IAAe,GAAA;AAC7B,EAAO,OAAA,kCAAA,CAAmC,OAAQ,CAAA,OAAA,EAAS,CAAK,CAAA,KAAA;AAC9D,IAAA,MAAM,CAAK,GAAA,IAAA,CAAK,MAAO,EAAA,GAAI,EAAM,GAAA,CAAA;AACjC,IAAA,MAAM,CAAI,GAAA,CAAA,KAAM,GAAM,GAAA,CAAA,GAAK,IAAI,CAAO,GAAA,CAAA;AACtC,IAAO,OAAA,CAAA,CAAE,SAAS,EAAE,CAAA;AAAA,GACrB,CAAA;AACH;AANgB,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAaT,SAAS,oBAAoB,GAAsB,EAAA;AACxD,EAAA,IAAI,CAAC,GAAA,IAAO,OAAO,GAAA,KAAQ,QAAU,EAAA;AACnC,IAAO,OAAA,KAAA;AAAA;AAIT,EAAA,IAAI,CAAC,GAAA,CAAI,QAAS,CAAA,KAAK,CAAG,EAAA;AACxB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,MAAM,aAAgB,GAAA,gCAAA;AACtB,EAAA,OAAO,aAAc,CAAA,IAAA,CAAK,GAAI,CAAA,IAAA,EAAM,CAAA;AACtC;AAZgB,MAAA,CAAA,mBAAA,EAAA,qBAAA,CAAA;;;;"}
1
+ {"version":3,"file":"tzj-player.mjs","sources":["../../../../../../../packages/components/tzj-player/src/tzj-player.ts"],"sourcesContent":["import type { ExtractPropTypes } from \"vue\";\nimport type TzjPlayer from \"./tzj-player.vue\";\n\nexport const TzjPlayerProps = {\n /**\n * 视频地址\n */\n url: {\n type: String,\n default: \"\",\n },\n /**\n * 访问令牌\n */\n accessToken: {\n type: String,\n default: \"\",\n },\n /**\n * 视频标题\n */\n areaName: {\n type: String,\n default: \"\",\n },\n /**\n * 视频ID\n */\n deviceSerial: {\n type: String,\n default: \"\",\n },\n /**\n * 视频平台类型名称\n */\n platformTypeName: {\n type: String,\n default: \"\",\n },\n debug: {\n type: Boolean,\n default: false,\n },\n};\n\nexport function uuid(): string {\n return \"xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === \"x\" ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n/**\n * 是否为支持的协议\n * 支持:http,https,ws,wss,ezopen(萤石云)\n * 当URL不包含协议时(相对地址),也返回true\n */\nexport function isSupportedProtocol(url: string): boolean {\n if (!url || typeof url !== \"string\") {\n return false;\n }\n\n // 如果URL不包含协议部分(相对地址),返回true\n if (!url.includes(\"://\")) {\n return true;\n }\n\n const protocolRegex = /^(https?|wss?|ezopen):\\/\\/.+$/i;\n return protocolRegex.test(url.trim());\n}\n\n/**\n * 从路径中获取视频类型\n * @param url 视频路径\n * @returns 视频类型\n * /asdasd.flv?asdaslkg=123 => flv\n * /asdasd.live.flv?asdaslkg=123 => flv\n * /asdasd/hls.m3u8?asdaslkg=123 => hls\n */\nexport function getVideoType(url: string): string {\n if (!url || typeof url !== \"string\") {\n return \"\";\n }\n\n // 移除查询参数部分(?及其之后的内容)\n const pathWithoutQuery = url.split(\"?\")[0];\n\n // 转换为小写进行不区分大小写的匹配\n const lowerPath = pathWithoutQuery.toLowerCase();\n\n // 判断是否以.flv结尾\n if (lowerPath.endsWith(\".flv\")) {\n return \"flv\";\n }\n\n // 判断是否以/hls.m3u8结尾\n if (lowerPath.endsWith(\"/hls.m3u8\")) {\n return \"hls\";\n }\n\n // 如果都不匹配,返回空字符串\n return \"\";\n}\n\nexport type TzjPlayerPropsType = ExtractPropTypes<typeof TzjPlayerProps>;\nexport type TzjPlayerInstance = InstanceType<typeof TzjPlayer>;\n"],"names":[],"mappings":";;AAGO,MAAM,cAAiB,GAAA;AAAA;AAAA;AAAA;AAAA,EAI5B,GAAK,EAAA;AAAA,IACH,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,YAAc,EAAA;AAAA,IACZ,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,gBAAkB,EAAA;AAAA,IAChB,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA,EACA,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA;AAAA;AAEb;AAEO,SAAS,IAAe,GAAA;AAC7B,EAAA,OAAO,kCAAmC,CAAA,OAAA,CAAQ,OAAS,EAAA,CAAC,CAAM,KAAA;AAChE,IAAA,MAAM,CAAK,GAAA,IAAA,CAAK,MAAO,EAAA,GAAI,EAAM,GAAA,CAAA;AACjC,IAAA,MAAM,CAAI,GAAA,CAAA,KAAM,GAAM,GAAA,CAAA,GAAK,IAAI,CAAO,GAAA,CAAA;AACtC,IAAO,OAAA,CAAA,CAAE,SAAS,EAAE,CAAA;AAAA,GACrB,CAAA;AACH;AANgB,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAaT,SAAS,oBAAoB,GAAsB,EAAA;AACxD,EAAA,IAAI,CAAC,GAAA,IAAO,OAAO,GAAA,KAAQ,QAAU,EAAA;AACnC,IAAO,OAAA,KAAA;AAAA;AAIT,EAAA,IAAI,CAAC,GAAA,CAAI,QAAS,CAAA,KAAK,CAAG,EAAA;AACxB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,MAAM,aAAgB,GAAA,gCAAA;AACtB,EAAA,OAAO,aAAc,CAAA,IAAA,CAAK,GAAI,CAAA,IAAA,EAAM,CAAA;AACtC;AAZgB,MAAA,CAAA,mBAAA,EAAA,qBAAA,CAAA;AAsBT,SAAS,aAAa,GAAqB,EAAA;AAChD,EAAA,IAAI,CAAC,GAAA,IAAO,OAAO,GAAA,KAAQ,QAAU,EAAA;AACnC,IAAO,OAAA,EAAA;AAAA;AAIT,EAAA,MAAM,gBAAmB,GAAA,GAAA,CAAI,KAAM,CAAA,GAAG,EAAE,CAAC,CAAA;AAGzC,EAAM,MAAA,SAAA,GAAY,iBAAiB,WAAY,EAAA;AAG/C,EAAI,IAAA,SAAA,CAAU,QAAS,CAAA,MAAM,CAAG,EAAA;AAC9B,IAAO,OAAA,KAAA;AAAA;AAIT,EAAI,IAAA,SAAA,CAAU,QAAS,CAAA,WAAW,CAAG,EAAA;AACnC,IAAO,OAAA,KAAA;AAAA;AAIT,EAAO,OAAA,EAAA;AACT;AAvBgB,MAAA,CAAA,YAAA,EAAA,cAAA,CAAA;;;;"}