@yimou6/common-ui 1.10.6 → 1.10.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cdn/index.cdn.js +30 -17
- package/cdn/index.cdn.js.map +1 -1
- package/cdn/index.cdn.mjs +26 -13
- package/cdn/index.cdn.mjs.map +1 -1
- package/cdn/index.css +1 -1
- package/es/components/tenant-enterprise/src/tenant-enterprise.vue2.mjs +12 -3
- package/es/components/tenant-enterprise/src/tenant-enterprise.vue2.mjs.map +1 -1
- package/es/components/tzj-player/index.d.ts +5066 -3
- package/es/components/tzj-player/src/easyPlayer.vue.d.ts +103 -7
- package/es/components/tzj-player/src/easyPlayer.vue2.mjs +125 -21
- package/es/components/tzj-player/src/easyPlayer.vue2.mjs.map +1 -1
- package/es/components/tzj-player/src/tzj-player.d.ts +19 -2
- package/es/components/tzj-player/src/tzj-player.mjs +47 -1
- package/es/components/tzj-player/src/tzj-player.mjs.map +1 -1
- package/es/components/tzj-player/src/tzj-player.vue.d.ts +5066 -3
- package/es/components/tzj-player/src/tzj-player.vue2.mjs +129 -36
- package/es/components/tzj-player/src/tzj-player.vue2.mjs.map +1 -1
- package/es/components/tzj-player/src/ysPlayer.vue2.mjs +3 -2
- package/es/components/tzj-player/src/ysPlayer.vue2.mjs.map +1 -1
- package/es/components/tzj-player/src/yunzhiyan.d.ts +6 -0
- package/es/components/tzj-player/src/yunzhiyan.mjs +159 -0
- package/es/components/tzj-player/src/yunzhiyan.mjs.map +1 -0
- package/es/components/tzj-player/src/yunzhiyanPlayer.vue.d.ts +1519 -0
- package/es/components/tzj-player/src/yunzhiyanPlayer.vue.mjs +6 -0
- package/es/components/tzj-player/src/yunzhiyanPlayer.vue.mjs.map +1 -0
- package/es/components/tzj-player/src/yunzhiyanPlayer.vue2.mjs +630 -0
- package/es/components/tzj-player/src/yunzhiyanPlayer.vue2.mjs.map +1 -0
- package/es/utils/provide.d.ts +3 -3
- package/es/utils/provide.mjs.map +1 -1
- package/lib/components/tenant-enterprise/src/tenant-enterprise.vue2.js +12 -3
- package/lib/components/tenant-enterprise/src/tenant-enterprise.vue2.js.map +1 -1
- package/lib/components/tzj-player/index.d.ts +5066 -3
- package/lib/components/tzj-player/src/easyPlayer.vue.d.ts +103 -7
- package/lib/components/tzj-player/src/easyPlayer.vue2.js +123 -19
- package/lib/components/tzj-player/src/easyPlayer.vue2.js.map +1 -1
- package/lib/components/tzj-player/src/tzj-player.d.ts +19 -2
- package/lib/components/tzj-player/src/tzj-player.js +47 -0
- package/lib/components/tzj-player/src/tzj-player.js.map +1 -1
- package/lib/components/tzj-player/src/tzj-player.vue.d.ts +5066 -3
- package/lib/components/tzj-player/src/tzj-player.vue2.js +125 -32
- package/lib/components/tzj-player/src/tzj-player.vue2.js.map +1 -1
- package/lib/components/tzj-player/src/ysPlayer.vue2.js +3 -2
- package/lib/components/tzj-player/src/ysPlayer.vue2.js.map +1 -1
- package/lib/components/tzj-player/src/yunzhiyan.d.ts +6 -0
- package/lib/components/tzj-player/src/yunzhiyan.js +166 -0
- package/lib/components/tzj-player/src/yunzhiyan.js.map +1 -0
- package/lib/components/tzj-player/src/yunzhiyanPlayer.vue.d.ts +1519 -0
- package/lib/components/tzj-player/src/yunzhiyanPlayer.vue.js +10 -0
- package/lib/components/tzj-player/src/yunzhiyanPlayer.vue.js.map +1 -0
- package/lib/components/tzj-player/src/yunzhiyanPlayer.vue2.js +634 -0
- package/lib/components/tzj-player/src/yunzhiyanPlayer.vue2.js.map +1 -0
- package/lib/utils/provide.d.ts +3 -3
- package/lib/utils/provide.js.map +1 -1
- package/package.json +5 -3
- package/theme-default/i-tzj-player.css +1 -1
- 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
|
-
|
|
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:
|
|
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<
|
|
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;
|
|
13
76
|
initPlayer: (url: string) => Promise<void>;
|
|
14
77
|
removePlayerDom: () => void;
|
|
15
78
|
createPlayerDom: () => void;
|
|
16
79
|
createPlayer: () => Promise<void>;
|
|
17
80
|
destroy: () => void;
|
|
18
|
-
play: (url?: string) => void;
|
|
19
81
|
formatUrl: (url: string) => string;
|
|
20
|
-
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin,
|
|
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
|
-
|
|
85
|
+
default: string;
|
|
24
86
|
};
|
|
25
|
-
|
|
87
|
+
accessToken: {
|
|
88
|
+
type: StringConstructor;
|
|
89
|
+
default: string;
|
|
90
|
+
};
|
|
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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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,17 +47,81 @@ 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 (fullscreen) {
|
|
93
|
+
(_a = document.exitFullscreen) == null ? void 0 : _a.call(document);
|
|
94
|
+
} else {
|
|
95
|
+
(_c = (_b = playerRef.value) == null ? void 0 : _b.requestFullscreen) == null ? void 0 : _c.call(_b);
|
|
96
|
+
}
|
|
97
|
+
isFullscreen.value = !fullscreen;
|
|
98
|
+
}, "playerFullscreen");
|
|
42
99
|
__expose({
|
|
43
100
|
play,
|
|
44
|
-
destroy
|
|
101
|
+
destroy,
|
|
102
|
+
getPlayer: /* @__PURE__ */ __name(() => player, "getPlayer"),
|
|
103
|
+
pause: playerPause,
|
|
104
|
+
screenshot: playerScreenShot,
|
|
105
|
+
fullscreen: playerFullscreen,
|
|
106
|
+
isMute: /* @__PURE__ */ __name(() => {
|
|
107
|
+
var _a;
|
|
108
|
+
return (_a = player == null ? void 0 : player.isMute) == null ? void 0 : _a.call(player);
|
|
109
|
+
}, "isMute"),
|
|
110
|
+
setMute: /* @__PURE__ */ __name((mute) => {
|
|
111
|
+
var _a;
|
|
112
|
+
(_a = player == null ? void 0 : player.setMute) == null ? void 0 : _a.call(player, mute);
|
|
113
|
+
}, "setMute")
|
|
45
114
|
});
|
|
46
115
|
async function initPlayer(url) {
|
|
116
|
+
if (props.debug) {
|
|
117
|
+
console.log("\u521D\u59CB\u5316\u64AD\u653E\u5668", url);
|
|
118
|
+
}
|
|
47
119
|
removePlayerDom();
|
|
48
120
|
if (url) {
|
|
49
121
|
playUrl.value = formatUrl(url);
|
|
122
|
+
if (props.debug) {
|
|
123
|
+
console.log("\u683C\u5F0F\u5316\u540E\u7684url", playUrl.value);
|
|
124
|
+
}
|
|
50
125
|
if (window == null ? void 0 : window.EasyPlayerPro) {
|
|
51
126
|
createPlayer();
|
|
52
127
|
} else {
|
|
@@ -76,6 +151,10 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
76
151
|
}
|
|
77
152
|
__name(createPlayerDom, "createPlayerDom");
|
|
78
153
|
async function createPlayer() {
|
|
154
|
+
if (props.debug) {
|
|
155
|
+
console.log("\u521B\u5EFA\u64AD\u653E\u5668");
|
|
156
|
+
}
|
|
157
|
+
videoInfo.value = null;
|
|
79
158
|
createPlayerDom();
|
|
80
159
|
await nextTick();
|
|
81
160
|
player = new window.EasyPlayerPro(document.getElementById(id), {
|
|
@@ -95,15 +174,47 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
95
174
|
performance: false
|
|
96
175
|
}
|
|
97
176
|
});
|
|
177
|
+
player == null ? void 0 : player.play(playUrl.value);
|
|
178
|
+
const videoInfoTimer = setTimeout(() => {
|
|
179
|
+
if (!videoInfo.value) {
|
|
180
|
+
props.debug && console.log("15s\u672A\u83B7\u53D6\u5230\u89C6\u9891\u4FE1\u606F");
|
|
181
|
+
emits("error");
|
|
182
|
+
playSuccess.value = false;
|
|
183
|
+
destroy();
|
|
184
|
+
}
|
|
185
|
+
}, 3e3);
|
|
98
186
|
player.on("timeout", () => {
|
|
187
|
+
clearTimeout(videoInfoTimer);
|
|
188
|
+
props.debug && console.log("\u52A0\u8F7D\u8D85\u65F6");
|
|
189
|
+
emits("timeout");
|
|
99
190
|
playSuccess.value = false;
|
|
100
191
|
destroy();
|
|
101
192
|
});
|
|
102
193
|
player.on("error", () => {
|
|
194
|
+
props.debug && console.log("\u64AD\u653E\u5F02\u5E38");
|
|
195
|
+
emits("error");
|
|
103
196
|
playSuccess.value = false;
|
|
104
197
|
destroy();
|
|
105
198
|
});
|
|
106
|
-
play(
|
|
199
|
+
player.on("play", () => {
|
|
200
|
+
playSuccess.value = true;
|
|
201
|
+
props.debug && console.log("\u64AD\u653E");
|
|
202
|
+
emits("play");
|
|
203
|
+
});
|
|
204
|
+
player.on("pause", () => {
|
|
205
|
+
props.debug && console.log("\u6682\u505C");
|
|
206
|
+
emits("pause");
|
|
207
|
+
});
|
|
208
|
+
player.on("videoInfo", (info) => {
|
|
209
|
+
clearTimeout(videoInfoTimer);
|
|
210
|
+
props.debug && console.log("\u89C6\u9891\u4FE1\u606F", info);
|
|
211
|
+
videoInfo.value = info;
|
|
212
|
+
emits("videoInfo", info);
|
|
213
|
+
});
|
|
214
|
+
player.on("mute", (mute) => {
|
|
215
|
+
props.debug && console.log("\u9759\u97F3");
|
|
216
|
+
emits("mute", mute);
|
|
217
|
+
});
|
|
107
218
|
}
|
|
108
219
|
__name(createPlayer, "createPlayer");
|
|
109
220
|
function destroy() {
|
|
@@ -114,15 +225,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
114
225
|
removePlayerDom();
|
|
115
226
|
}
|
|
116
227
|
__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
228
|
function formatUrl(url) {
|
|
127
229
|
if (url.startsWith("/")) {
|
|
128
230
|
return `${window.location.origin}${url}`;
|
|
@@ -136,14 +238,16 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
136
238
|
{
|
|
137
239
|
ref_key: "playerRef",
|
|
138
240
|
ref: playerRef,
|
|
139
|
-
class: "i-tzj-
|
|
241
|
+
class: normalizeClass(["i-tzj-easyPlayer", customBar.value ? "i-tzj-easyPlayer--custom" : ""])
|
|
140
242
|
},
|
|
141
243
|
[
|
|
142
244
|
!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)
|
|
245
|
+
!playUrl.value ? (openBlock(), createElementBlock("div", _hoisted_2, "\u65E0\u64AD\u653E\u5730\u5740")) : createCommentVNode("v-if", true),
|
|
246
|
+
createCommentVNode(" \u64AD\u653E\u5668\u5E95\u90E8\u64CD\u4F5C\u680F "),
|
|
247
|
+
renderSlot(_ctx.$slots, "customBar")
|
|
144
248
|
],
|
|
145
|
-
|
|
146
|
-
/*
|
|
249
|
+
2
|
|
250
|
+
/* CLASS */
|
|
147
251
|
);
|
|
148
252
|
};
|
|
149
253
|
}
|
|
@@ -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 (fullscreen) {\n document.exitFullscreen?.();\n } else {\n playerRef.value?.requestFullscreen?.();\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\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 (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 if (props.debug) {\n console.log(\"创建播放器\");\n }\n videoInfo.value = null;\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 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\nfunction destroy() {\n if (player) {\n player.destroy();\n player = null;\n }\n removePlayerDom();\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\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
|
|
2
|
-
import type TzjPlayer from
|
|
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
|
|
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;;;;"}
|