@yimou6/common-ui 1.11.5 → 1.11.7
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 +17 -17
- package/cdn/index.cdn.js.map +1 -1
- package/cdn/index.cdn.mjs +17 -17
- package/cdn/index.cdn.mjs.map +1 -1
- package/cdn/index.css +1 -1
- package/es/components/tenant-enterprise/index.d.ts +13 -0
- package/es/components/tenant-enterprise/src/tenant-enterprise.d.ts +6 -2
- package/es/components/tenant-enterprise/src/tenant-enterprise.mjs +5 -1
- package/es/components/tenant-enterprise/src/tenant-enterprise.mjs.map +1 -1
- package/es/components/tenant-enterprise/src/tenant-enterprise.vue.d.ts +13 -0
- package/es/components/tenant-enterprise/src/tenant-enterprise.vue2.mjs +334 -2
- package/es/components/tenant-enterprise/src/tenant-enterprise.vue2.mjs.map +1 -1
- package/es/components/tzj-player/index.d.ts +357 -368
- package/es/components/tzj-player/src/ctyun-player.vue.d.ts +7 -46
- package/es/components/tzj-player/src/easyPlayer.vue.d.ts +7 -46
- package/es/components/tzj-player/src/easyPlayer.vue2.mjs +164 -693
- package/es/components/tzj-player/src/easyPlayer.vue2.mjs.map +1 -1
- package/es/components/tzj-player/src/tzj-player.vue.d.ts +357 -368
- package/es/components/tzj-player/src/tzj-player.vue2.mjs +10 -7
- package/es/components/tzj-player/src/tzj-player.vue2.mjs.map +1 -1
- package/es/components/tzj-player/src/xgplayer.vue.d.ts +102 -0
- package/es/components/tzj-player/src/xgplayer.vue.mjs +6 -0
- package/es/components/tzj-player/src/xgplayer.vue.mjs.map +1 -0
- package/es/components/tzj-player/src/xgplayer.vue2.mjs +103 -0
- package/es/components/tzj-player/src/xgplayer.vue2.mjs.map +1 -0
- package/es/components/tzj-player/src/yunzhiyanPlayer.vue.d.ts +7 -46
- package/es/types.d.ts +2 -0
- package/lib/components/tenant-enterprise/index.d.ts +13 -0
- package/lib/components/tenant-enterprise/src/tenant-enterprise.d.ts +6 -2
- package/lib/components/tenant-enterprise/src/tenant-enterprise.js +5 -1
- package/lib/components/tenant-enterprise/src/tenant-enterprise.js.map +1 -1
- package/lib/components/tenant-enterprise/src/tenant-enterprise.vue.d.ts +13 -0
- package/lib/components/tenant-enterprise/src/tenant-enterprise.vue2.js +334 -2
- package/lib/components/tenant-enterprise/src/tenant-enterprise.vue2.js.map +1 -1
- package/lib/components/tzj-player/index.d.ts +357 -368
- package/lib/components/tzj-player/src/ctyun-player.vue.d.ts +7 -46
- package/lib/components/tzj-player/src/easyPlayer.vue.d.ts +7 -46
- package/lib/components/tzj-player/src/easyPlayer.vue2.js +163 -692
- package/lib/components/tzj-player/src/easyPlayer.vue2.js.map +1 -1
- package/lib/components/tzj-player/src/tzj-player.vue.d.ts +357 -368
- package/lib/components/tzj-player/src/tzj-player.vue2.js +4 -1
- package/lib/components/tzj-player/src/tzj-player.vue2.js.map +1 -1
- package/lib/components/tzj-player/src/xgplayer.vue.d.ts +102 -0
- package/lib/components/tzj-player/src/xgplayer.vue.js +10 -0
- package/lib/components/tzj-player/src/xgplayer.vue.js.map +1 -0
- package/lib/components/tzj-player/src/xgplayer.vue2.js +107 -0
- package/lib/components/tzj-player/src/xgplayer.vue2.js.map +1 -0
- package/lib/components/tzj-player/src/yunzhiyanPlayer.vue.d.ts +7 -46
- package/lib/types.d.ts +2 -0
- package/package.json +1 -1
- package/theme-default/i-tzj-player.css +1 -1
- package/theme-default/index.css +1 -1
|
@@ -6,6 +6,7 @@ var vue = require('vue');
|
|
|
6
6
|
var lodashEs = require('lodash-es');
|
|
7
7
|
require('./ctyun-player.vue.js');
|
|
8
8
|
require('./easyPlayer.vue.js');
|
|
9
|
+
require('./xgplayer.vue.js');
|
|
9
10
|
var tzjPlayer = require('./tzj-player.js');
|
|
10
11
|
require('./ysPlayer.vue.js');
|
|
11
12
|
require('./errorPage.vue.js');
|
|
@@ -13,6 +14,7 @@ require('./yunzhiyanPlayer.vue.js');
|
|
|
13
14
|
var yunzhiyanPlayer_vue_vue_type_script_setup_true_lang = require('./yunzhiyanPlayer.vue2.js');
|
|
14
15
|
var ysPlayer_vue_vue_type_script_setup_true_lang = require('./ysPlayer.vue2.js');
|
|
15
16
|
var ctyunPlayer_vue_vue_type_script_setup_true_lang = require('./ctyun-player.vue2.js');
|
|
17
|
+
var xgplayer_vue_vue_type_script_setup_true_lang = require('./xgplayer.vue2.js');
|
|
16
18
|
var easyPlayer_vue_vue_type_script_setup_true_lang = require('./easyPlayer.vue2.js');
|
|
17
19
|
var errorPage_vue_vue_type_script_setup_true_lang = require('./errorPage.vue2.js');
|
|
18
20
|
|
|
@@ -43,7 +45,8 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
43
45
|
const PLATFORM_COMPONENTS = {
|
|
44
46
|
\u4E91\u667A\u773C: yunzhiyanPlayer_vue_vue_type_script_setup_true_lang.default,
|
|
45
47
|
\u8424\u77F3\u4E91: ysPlayer_vue_vue_type_script_setup_true_lang.default,
|
|
46
|
-
\u5929\u7FFC\u4E91: ctyunPlayer_vue_vue_type_script_setup_true_lang.default
|
|
48
|
+
\u5929\u7FFC\u4E91: ctyunPlayer_vue_vue_type_script_setup_true_lang.default,
|
|
49
|
+
hls: xgplayer_vue_vue_type_script_setup_true_lang.default
|
|
47
50
|
};
|
|
48
51
|
const playerComponent = vue.computed(() => {
|
|
49
52
|
if (platformTypeName.value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tzj-player.vue2.js","sources":["../../../../../../../packages/components/tzj-player/src/tzj-player.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, shallowRef, toRefs, watch } from \"vue\";\nimport { debounce } from
|
|
1
|
+
{"version":3,"file":"tzj-player.vue2.js","sources":["../../../../../../../packages/components/tzj-player/src/tzj-player.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, shallowRef, toRefs, watch } from \"vue\";\nimport { debounce } from \"lodash-es\";\nimport CtyunPlayer from \"./ctyun-player.vue\";\nimport EasyPlayer from \"./easyPlayer.vue\";\nimport XgPlayer from \"./xgplayer.vue\";\nimport {\n getVideoType,\n isSupportedProtocol,\n TzjPlayerProps,\n} from \"./tzj-player\";\nimport YsPlayer from \"./ysPlayer.vue\";\nimport ErrorPage from \"./errorPage.vue\";\nimport YunzhiyanPlayer from \"./yunzhiyanPlayer.vue\";\n\ndefineOptions({\n name: \"ITzjPlayer\",\n});\n\nconst props = defineProps(TzjPlayerProps);\nconst { url, platformTypeName, accessToken } = toRefs(props);\n\nconst compRef = shallowRef();\n\n// 防抖处理组件渲染更新,避免频繁切换播放器类型\nconst updatePlayerComponent = debounce(() => {\n // 强制更新组件,销毁旧实例\n if (compRef.value) {\n compRef.value.destroy?.();\n }\n}, 300);\n\n// 监听URL变化,使用防抖处理\nwatch(\n () => [url.value, platformTypeName.value, accessToken.value],\n () => {\n // 更新播放器组件\n updatePlayerComponent();\n },\n { deep: true },\n);\n\n/**\n * 平台类型映射表,提升可维护性\n */\nconst PLATFORM_COMPONENTS = {\n 云智眼: YunzhiyanPlayer,\n 萤石云: YsPlayer,\n 天翼云: CtyunPlayer,\n hls: XgPlayer,\n} as const;\n\n/**\n * 计算当前播放器组件类型\n * 使用计算属性避免重复计算,提升性能\n */\nconst playerComponent = computed(() => {\n // 优先使用指定的平台类型\n if (platformTypeName.value) {\n return (\n PLATFORM_COMPONENTS[\n platformTypeName.value as keyof typeof PLATFORM_COMPONENTS\n ] || EasyPlayer\n );\n }\n\n // 未指定平台类型时,根据URL自动判断\n if (!url.value) {\n return null;\n }\n\n // 检查协议支持性\n if (!isSupportedProtocol(url.value)) {\n return null;\n }\n\n // ezopen协议使用萤石云播放器\n if (url.value.includes(\"ezopen\")) {\n return YsPlayer;\n }\n\n // 根据视频类型选择播放器\n const videoType = getVideoType(url.value);\n return videoType ? EasyPlayer : null;\n});\n\n/**\n * 计算错误状态信息\n * 统一错误状态管理,提升用户体验\n */\nconst errorState = computed(() => {\n // 云智眼平台不需要URL\n if (\n platformTypeName.value === \"云智眼\" ||\n platformTypeName.value === \"天翼云\"\n ) {\n return null;\n }\n\n // 检查URL是否存在\n if (!url.value) {\n return {\n type: \"no-url\",\n message: \"无视频地址\",\n };\n }\n\n // 检查协议支持性\n if (!isSupportedProtocol(url.value)) {\n return {\n type: \"unsupported-protocol\",\n message: \"不支持该视频协议\",\n };\n }\n\n // 萤石云平台需要accessToken\n if (\n (platformTypeName.value === \"萤石云\" || url.value.includes(\"ezopen\")) &&\n !accessToken.value\n ) {\n return {\n type: \"no-token\",\n message: \"缺少访问令牌\",\n };\n }\n\n return null;\n});\n\n/**\n * 计算是否显示播放器组件\n */\nconst shouldShowPlayer = computed(() => {\n return !errorState.value && playerComponent.value;\n});\n\n/**\n * 暴露的方法,增加错误处理\n */\ndefineExpose({\n /**\n * 播放视频\n * @param options 播放选项\n */\n play(options?: any) {\n if (!compRef.value) {\n props.debug && console.warn(\"[TzjPlayer] 播放器组件未初始化\");\n return;\n }\n compRef.value?.play(options);\n },\n\n /**\n * 销毁播放器\n */\n destroy() {\n if (!compRef.value) {\n props.debug && console.warn(\"[TzjPlayer] 播放器组件未初始化\");\n return;\n }\n compRef.value?.destroy();\n },\n\n /**\n * 调整播放器尺寸\n */\n resize() {\n if (!compRef.value) {\n props.debug && console.warn(\"[TzjPlayer] 播放器组件未初始化\");\n return;\n }\n compRef.value?.resize();\n },\n\n /**\n * 获取当前播放器类型\n */\n getPlayerType() {\n return playerComponent.value?.name || null;\n },\n\n /**\n * 获取错误状态\n */\n getErrorState() {\n return errorState.value;\n },\n});\n</script>\n\n<template>\n <div class=\"i-tzj-player\">\n <!-- 错误状态显示 -->\n <error-page\n :videoName=\"areaName || deviceSerial\"\n :message=\"errorState.message\"\n v-if=\"errorState\"\n />\n\n <!-- 播放器组件 -->\n <component\n :is=\"playerComponent\"\n v-else-if=\"shouldShowPlayer\"\n ref=\"compRef\"\n v-bind=\"props\"\n />\n\n <!-- 无可用播放器 -->\n <error-page :videoName=\"areaName || deviceSerial\" message=\"无信号\" v-else />\n </div>\n</template>\n"],"names":["toRefs","shallowRef","debounce","watch","YunzhiyanPlayer","YsPlayer","CtyunPlayer","XgPlayer","computed","EasyPlayer","isSupportedProtocol","getVideoType","_openBlock","_createElementBlock","_createCommentVNode","_createBlock","ErrorPage","areaName","deviceSerial","_Fragment","_resolveDynamicComponent","_mergeProps","_createVNode"],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
2
|
+
url: {
|
|
3
|
+
type: StringConstructor;
|
|
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;
|
|
25
|
+
};
|
|
26
|
+
}>, {
|
|
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
|
+
setCamera: () => void;
|
|
62
|
+
}, {}, {}, {}, 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<{
|
|
63
|
+
url: {
|
|
64
|
+
type: StringConstructor;
|
|
65
|
+
default: string;
|
|
66
|
+
};
|
|
67
|
+
accessToken: {
|
|
68
|
+
type: StringConstructor;
|
|
69
|
+
default: string;
|
|
70
|
+
};
|
|
71
|
+
areaName: {
|
|
72
|
+
type: StringConstructor;
|
|
73
|
+
default: string;
|
|
74
|
+
};
|
|
75
|
+
deviceSerial: {
|
|
76
|
+
type: StringConstructor;
|
|
77
|
+
default: string;
|
|
78
|
+
};
|
|
79
|
+
platformTypeName: {
|
|
80
|
+
type: StringConstructor;
|
|
81
|
+
default: string;
|
|
82
|
+
};
|
|
83
|
+
debug: {
|
|
84
|
+
type: BooleanConstructor;
|
|
85
|
+
default: boolean;
|
|
86
|
+
};
|
|
87
|
+
}>> & Readonly<{
|
|
88
|
+
onPlay?: ((...args: any[]) => any) | undefined;
|
|
89
|
+
onPause?: ((...args: any[]) => any) | undefined;
|
|
90
|
+
onError?: ((...args: any[]) => any) | undefined;
|
|
91
|
+
onVideoInfo?: ((...args: any[]) => any) | undefined;
|
|
92
|
+
onTimeout?: ((...args: any[]) => any) | undefined;
|
|
93
|
+
onMute?: ((...args: any[]) => any) | undefined;
|
|
94
|
+
}>, {
|
|
95
|
+
url: string;
|
|
96
|
+
accessToken: string;
|
|
97
|
+
debug: boolean;
|
|
98
|
+
deviceSerial: string;
|
|
99
|
+
areaName: string;
|
|
100
|
+
platformTypeName: string;
|
|
101
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
102
|
+
export default _default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var xgplayer_vue_vue_type_script_setup_true_lang = require('./xgplayer.vue2.js');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
exports.default = xgplayer_vue_vue_type_script_setup_true_lang.default;
|
|
10
|
+
//# sourceMappingURL=xgplayer.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xgplayer.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var vue = require('vue');
|
|
6
|
+
var tzjPlayer = require('./tzj-player.js');
|
|
7
|
+
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
10
|
+
const _hoisted_1 = { class: "i-tzj-xgplayer" };
|
|
11
|
+
const _hoisted_2 = {
|
|
12
|
+
key: 0,
|
|
13
|
+
class: "i-tzj-xgplayer__top"
|
|
14
|
+
};
|
|
15
|
+
var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
16
|
+
...{
|
|
17
|
+
name: "xgplayer1"
|
|
18
|
+
},
|
|
19
|
+
__name: "xgplayer",
|
|
20
|
+
props: tzjPlayer.TzjPlayerProps,
|
|
21
|
+
emits: [
|
|
22
|
+
"timeout",
|
|
23
|
+
"error",
|
|
24
|
+
"play",
|
|
25
|
+
"pause",
|
|
26
|
+
"mute",
|
|
27
|
+
"videoInfo"
|
|
28
|
+
],
|
|
29
|
+
setup(__props, { emit: __emit }) {
|
|
30
|
+
const props = __props;
|
|
31
|
+
const emits = __emit;
|
|
32
|
+
function setCamera() {
|
|
33
|
+
const config = {
|
|
34
|
+
id: "xgplayerId",
|
|
35
|
+
url: props.url,
|
|
36
|
+
playsinline: true,
|
|
37
|
+
plugins: [window.HlsPlayer],
|
|
38
|
+
isLive: true,
|
|
39
|
+
autoplayMuted: true,
|
|
40
|
+
autoplay: true,
|
|
41
|
+
playbackRate: [null],
|
|
42
|
+
// Edge特定优化
|
|
43
|
+
videoAttributes: {
|
|
44
|
+
playsInline: true,
|
|
45
|
+
crossOrigin: "anonymous"
|
|
46
|
+
},
|
|
47
|
+
live: {
|
|
48
|
+
alwaysLive: true,
|
|
49
|
+
// 保持直播状态,避免切换为点播
|
|
50
|
+
minCacheTime: 1,
|
|
51
|
+
maxCacheTime: 3
|
|
52
|
+
},
|
|
53
|
+
// Edge特有优化
|
|
54
|
+
customPlayback: false,
|
|
55
|
+
// 禁用可能冲突的自定义播放逻辑
|
|
56
|
+
ignoreMutedError: true,
|
|
57
|
+
// 忽略静音状态错误
|
|
58
|
+
edgeCompat: true,
|
|
59
|
+
// 西瓜播放器Edge兼容模式(v3.0+支持)
|
|
60
|
+
mediaDataSource: {
|
|
61
|
+
cors: true,
|
|
62
|
+
withCredentials: false
|
|
63
|
+
// 避免跨域凭证问题
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
new window.Player(config);
|
|
67
|
+
}
|
|
68
|
+
__name(setCamera, "setCamera");
|
|
69
|
+
vue.onMounted(() => {
|
|
70
|
+
setCamera();
|
|
71
|
+
});
|
|
72
|
+
return (_ctx, _cache) => {
|
|
73
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
|
74
|
+
vue.createCommentVNode(" \u64AD\u653E\u5668\u9876\u90E8\u663E\u793A\u533A\u57DF(\u8BBE\u5907)\u540D\u79F0 "),
|
|
75
|
+
_ctx.areaName || _ctx.deviceSerial ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
|
|
76
|
+
_cache[0] || (_cache[0] = vue.createElementVNode(
|
|
77
|
+
"i",
|
|
78
|
+
{ class: "iconfont icon-shexiangtou4" },
|
|
79
|
+
null,
|
|
80
|
+
-1
|
|
81
|
+
/* CACHED */
|
|
82
|
+
)),
|
|
83
|
+
vue.createElementVNode(
|
|
84
|
+
"span",
|
|
85
|
+
null,
|
|
86
|
+
vue.toDisplayString(_ctx.areaName || _ctx.deviceSerial),
|
|
87
|
+
1
|
|
88
|
+
/* TEXT */
|
|
89
|
+
)
|
|
90
|
+
])) : vue.createCommentVNode("v-if", true),
|
|
91
|
+
_cache[1] || (_cache[1] = vue.createElementVNode(
|
|
92
|
+
"div",
|
|
93
|
+
{
|
|
94
|
+
id: "xgplayerId",
|
|
95
|
+
style: { "flex": "1", "height": "0", "width": "100%" }
|
|
96
|
+
},
|
|
97
|
+
null,
|
|
98
|
+
-1
|
|
99
|
+
/* CACHED */
|
|
100
|
+
))
|
|
101
|
+
]);
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
exports.default = _sfc_main;
|
|
107
|
+
//# sourceMappingURL=xgplayer.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xgplayer.vue2.js","sources":["../../../../../../../packages/components/tzj-player/src/xgplayer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { onMounted } from \"vue\";\nimport { TzjPlayerProps } from \"./tzj-player\";\n\ndefineOptions({\n name: \"xgplayer1\",\n});\nconst props = defineProps(TzjPlayerProps);\nconst emits = defineEmits([\n \"timeout\",\n \"error\",\n \"play\",\n \"pause\",\n \"mute\",\n \"videoInfo\",\n]);\nfunction setCamera() {\n const config = {\n id: \"xgplayerId\",\n url: props.url,\n playsinline: true,\n plugins: [window.HlsPlayer],\n isLive: true,\n autoplayMuted: true,\n autoplay: true,\n playbackRate: [null],\n // Edge特定优化\n videoAttributes: {\n playsInline: true,\n crossOrigin: \"anonymous\",\n },\n live: {\n alwaysLive: true, // 保持直播状态,避免切换为点播\n minCacheTime: 1,\n maxCacheTime: 3,\n },\n // Edge特有优化\n customPlayback: false, // 禁用可能冲突的自定义播放逻辑\n ignoreMutedError: true, // 忽略静音状态错误\n edgeCompat: true, // 西瓜播放器Edge兼容模式(v3.0+支持)\n mediaDataSource: {\n cors: true,\n withCredentials: false, // 避免跨域凭证问题\n },\n };\n new window.Player(config);\n}\nonMounted(() => {\n setCamera();\n});\n</script>\n\n<template>\n <div class=\"i-tzj-xgplayer\">\n <!-- 播放器顶部显示区域(设备)名称 -->\n <div v-if=\"areaName || deviceSerial\" class=\"i-tzj-xgplayer__top\">\n <i class=\"iconfont icon-shexiangtou4\" />\n <span>{{ areaName || deviceSerial }}</span>\n </div>\n <div id=\"xgplayerId\" style=\"flex: 1; height: 0; width: 100%\"></div>\n </div>\n</template>\n"],"names":["onMounted","_openBlock","_createElementBlock","_createCommentVNode","areaName","deviceSerial","_createElementVNode","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAQd,IAAA,SAAS,SAAY,GAAA;AACnB,MAAA,MAAM,MAAS,GAAA;AAAA,QACb,EAAI,EAAA,YAAA;AAAA,QACJ,KAAK,KAAM,CAAA,GAAA;AAAA,QACX,WAAa,EAAA,IAAA;AAAA,QACb,OAAA,EAAS,CAAC,MAAA,CAAO,SAAS,CAAA;AAAA,QAC1B,MAAQ,EAAA,IAAA;AAAA,QACR,aAAe,EAAA,IAAA;AAAA,QACf,QAAU,EAAA,IAAA;AAAA,QACV,YAAA,EAAc,CAAC,IAAI,CAAA;AAAA;AAAA,QAEnB,eAAiB,EAAA;AAAA,UACf,WAAa,EAAA,IAAA;AAAA,UACb,WAAa,EAAA;AAAA,SACf;AAAA,QACA,IAAM,EAAA;AAAA,UACJ,UAAY,EAAA,IAAA;AAAA;AAAA,UACZ,YAAc,EAAA,CAAA;AAAA,UACd,YAAc,EAAA;AAAA,SAChB;AAAA;AAAA,QAEA,cAAgB,EAAA,KAAA;AAAA;AAAA,QAChB,gBAAkB,EAAA,IAAA;AAAA;AAAA,QAClB,UAAY,EAAA,IAAA;AAAA;AAAA,QACZ,eAAiB,EAAA;AAAA,UACf,IAAM,EAAA,IAAA;AAAA,UACN,eAAiB,EAAA;AAAA;AAAA;AACnB,OACF;AACA,MAAI,IAAA,MAAA,CAAO,OAAO,MAAM,CAAA;AAAA;AA7BjB,IAAA,MAAA,CAAA,SAAA,EAAA,WAAA,CAAA;AA+BT,IAAAA,aAAA,CAAU,MAAM;AACd,MAAU,SAAA,EAAA;AAAA,KACX,CAAA;;AAIC,MAAA,OAAAC,aAAA,EAAA,EAAAC,sBAOM,CAAA,KAAA,EAPN,UAOM,EAAA;AAAA,QANJC,uBAAwB,oFAAA,CAAA;AAAA,QACbC,IAAAA,CAAAA,YAAYC,IAAY,CAAA,YAAA,IAAnCJ,eAAA,EAAAC,sBAAA,CAGM,OAHN,UAGM,EAAA;AAAA,iCAFJ,GAAAI,sBAAA;AAAA,YAAwC,GAAA;AAAA,YAAA,EAArC,OAAM,4BAA4B,EAAA;AAAA,YAAA,IAAA;AAAA,YAAA,CAAA;AAAA;AAAA,WAAA,CAAA;AAAA,UACrCA,sBAAA;AAAA,YAA2C,MAAA;AAAA,YAAA,IAAA;AAAA,YAAAC,mBAAlCH,CAAAA,IAAAA,CAAQ,QAAIC,IAAAA,IAAAA,CAAY,YAAA,CAAA;AAAA,YAAA;AAAA;AAAA;AAAA;+BAEnC,GAAAC,sBAAA;AAAA,UAAmE,KAAA;AAAA,UAAA;AAAA,YAA9D,EAAG,EAAA,YAAA;AAAA,YAAa,OAAA,EAAuC,MAAA,EAAA,KAAA,QAAA,EAAA,GAAA,EAAA,SAAA,MAAA;AAAA;;;;;;;;;;;;"}
|
|
@@ -1420,15 +1420,12 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
1420
1420
|
onVideoInfo?: ((...args: any[]) => any) | undefined;
|
|
1421
1421
|
onTimeout?: ((...args: any[]) => any) | undefined;
|
|
1422
1422
|
onMute?: ((...args: any[]) => any) | undefined;
|
|
1423
|
-
onMemoryWarn?: ((...args: any[]) => any) | undefined;
|
|
1424
1423
|
}> & {}>;
|
|
1425
|
-
emits: (event: "error" | "play" | "pause" | "videoInfo" | "timeout" | "mute"
|
|
1424
|
+
emits: (event: "error" | "play" | "pause" | "videoInfo" | "timeout" | "mute", ...args: any[]) => void;
|
|
1426
1425
|
slots: Readonly<{
|
|
1427
1426
|
[name: string]: import("vue").Slot<any> | undefined;
|
|
1428
1427
|
}>;
|
|
1429
1428
|
customBar: import("vue").ComputedRef<import("vue").Slot<any> | undefined>;
|
|
1430
|
-
areaName: import("vue").Ref<string, string>;
|
|
1431
|
-
deviceSerial: import("vue").Ref<string, string>;
|
|
1432
1429
|
player: any;
|
|
1433
1430
|
id: string;
|
|
1434
1431
|
playerRef: import("vue").ShallowRef<HTMLDivElement | undefined, HTMLDivElement | undefined>;
|
|
@@ -1437,51 +1434,16 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
1437
1434
|
isFullscreen: import("vue").Ref<boolean, boolean>;
|
|
1438
1435
|
videoInfo: import("vue").Ref<any, any>;
|
|
1439
1436
|
realFullscreen: import("vue").Ref<boolean, boolean>;
|
|
1440
|
-
reconnectAttempts: import("vue").Ref<number, number>;
|
|
1441
|
-
maxReconnectAttempts: number;
|
|
1442
|
-
reconnectCoolDown: import("vue").Ref<number, number>;
|
|
1443
|
-
requestCache: Map<string, {
|
|
1444
|
-
timestamp: number;
|
|
1445
|
-
url: string;
|
|
1446
|
-
}>;
|
|
1447
|
-
DEBOUNCE_TIME: number;
|
|
1448
|
-
timers: {
|
|
1449
|
-
initTimer: number | null;
|
|
1450
|
-
cleanupInterval: number | null;
|
|
1451
|
-
memoryCheckInterval: number | null;
|
|
1452
|
-
reconnectTimer: number | null;
|
|
1453
|
-
debounceTimer: number | null;
|
|
1454
|
-
lightCleanInterval: number | null;
|
|
1455
|
-
rebuildInterval: number | null;
|
|
1456
|
-
};
|
|
1457
|
-
HIGH_MEMORY_THRESHOLD: number;
|
|
1458
|
-
EMERGENCY_CLEAN_TIMEOUT: number;
|
|
1459
|
-
MEMORY_CHECK_INTERVAL: number;
|
|
1460
|
-
eventHandlers: {
|
|
1461
|
-
event: string;
|
|
1462
|
-
handler: Function;
|
|
1463
|
-
}[];
|
|
1464
|
-
isPlayerIniting: import("vue").Ref<boolean, boolean>;
|
|
1465
|
-
isPlayerDestroyed: import("vue").Ref<boolean, boolean>;
|
|
1466
|
-
MEMORY_PEAK_THRESHOLD: number;
|
|
1467
|
-
CLEAN_INTERVAL: number;
|
|
1468
|
-
lastMemoryPeak: number;
|
|
1469
|
-
formatUrl: (url: string) => string;
|
|
1470
|
-
initPlayer: (url: string) => Promise<void>;
|
|
1471
|
-
debouncedInitPlayer: import("lodash").DebouncedFunc<(newUrl: string) => void>;
|
|
1472
1437
|
play: (url?: string) => void;
|
|
1473
1438
|
playerPause: () => void;
|
|
1474
1439
|
playerScreenShot: () => void;
|
|
1475
1440
|
playerFullscreen: (fullscreen: boolean) => void;
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
handleReconnect: () => void;
|
|
1479
|
-
createPlayerDom: () => void;
|
|
1480
|
-
startMemoryMonitoring: () => void;
|
|
1481
|
-
checkMemoryUsage: () => Promise<void>;
|
|
1482
|
-
performEmergencyCleanup: () => void;
|
|
1441
|
+
formatUrl: (url: string) => string;
|
|
1442
|
+
initPlayer: (url: string) => Promise<void>;
|
|
1483
1443
|
removePlayerDom: () => void;
|
|
1484
|
-
|
|
1444
|
+
createPlayerDom: () => void;
|
|
1445
|
+
createPlayer: () => Promise<void>;
|
|
1446
|
+
destroy: () => void;
|
|
1485
1447
|
ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
1486
1448
|
videoName: {
|
|
1487
1449
|
type: StringConstructor;
|
|
@@ -1515,7 +1477,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
1515
1477
|
message: string;
|
|
1516
1478
|
videoName: string;
|
|
1517
1479
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
1518
|
-
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("error" | "play" | "pause" | "videoInfo" | "timeout" | "mute"
|
|
1480
|
+
}, {}, {}, {}, 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<{
|
|
1519
1481
|
url: {
|
|
1520
1482
|
type: StringConstructor;
|
|
1521
1483
|
default: string;
|
|
@@ -1547,7 +1509,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
1547
1509
|
onVideoInfo?: ((...args: any[]) => any) | undefined;
|
|
1548
1510
|
onTimeout?: ((...args: any[]) => any) | undefined;
|
|
1549
1511
|
onMute?: ((...args: any[]) => any) | undefined;
|
|
1550
|
-
onMemoryWarn?: ((...args: any[]) => any) | undefined;
|
|
1551
1512
|
}>, {
|
|
1552
1513
|
url: string;
|
|
1553
1514
|
accessToken: string;
|
package/lib/types.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.i-tzj-player{display:flex;position:relative;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden;background-color:#000;color:#fff;font-size:14px}.i-tzj-player .i-tzj-player-content{width:100%;height:100%;background-color:#000}.i-tzj-player .i-tzj-easyPlayer,.i-tzj-player .i-tzj-ysplayer{display:flex;position:relative;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden}.i-tzj-player .i-tzj-player__error{display:flex;flex-direction:column;position:absolute;z-index:999;top:0;left:0;width:100%;height:100%;background-color:#000;color:#efefef;font-size:12px}.i-tzj-player .i-tzj-player__error .i-tzj-player__error_content{flex:1;height:0;display:flex;align-items:center;justify-content:center}.i-tzj-player .i-tzj-easyPlayer--custom .easyplayer-controls{display:none}.i-tzj-player .i-tzj-easyPlayer__top{display:flex;align-items:center;justify-content:flex-start;width:100%;height:32px;background-color:rgba(43,51,63,.7);color:#fff;font-size:12px}.i-tzj-player .i-tzj-easyPlayer__top .iconfont{margin-right:4px;margin-left:10px;font-size:12px}.i-tzj-player .i-easy-player-bar{display:flex;position:absolute;z-index:10;bottom:0;left:0;align-items:center;justify-content:space-between;width:100%;height:40px;background-color:rgba(43,51,63,.7);-webkit-user-select:none;user-select:none}.i-tzj-player .i-easy-player-bar .i-easy-player-bar-item{display:inline-flex;align-items:center;justify-content:flex-start;height:100%}.i-tzj-player .i-easy-player-bar .i-easy-player-bar-item .i-easy-player-bottom-bar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;cursor:pointer}.i-tzj-player .i-easy-player-bar .i-easy-player-bar-item .i-easy-player-bottom-bar .iconfont{color:#c7c9ce;font-size:20px}.i-tzj-player .i-easy-player-bar .i-easy-player-bar-item .i-easy-player-bottom-bar:hover .iconfont{color:#fff}.i-tzj-player .i-easy-player-bar .i-easy-player-bar-item .i-easy-player-bottom-bar+.i-easy-player-bottom-bar{margin-left:4px}.i-tzj-player .i-tzj-player__voice-default{display:flex;position:absolute;z-index:10;top:6px;right:6px;align-items:center;justify-content:center;height:28px;padding:0 10px;border-radius:14px;color:#fff;font-size:12px;text-align:center}.i-tzj-player .i-tzj-player__voice-success{background-color:#67c23a}.i-tzj-player .i-tzj-player__voice-info{background-color:#909399}.i-tzj-player .i-tzj-player__voice-error{background-color:#f56c6c}
|
|
1
|
+
.i-tzj-player{display:flex;position:relative;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden;background-color:#000;color:#fff;font-size:14px}.i-tzj-player .i-tzj-player-content{width:100%;height:100%;background-color:#000}.i-tzj-player .i-tzj-easyPlayer,.i-tzj-player .i-tzj-xgplayer,.i-tzj-player .i-tzj-ysplayer{display:flex;position:relative;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden}.i-tzj-player .i-tzj-player__error{display:flex;flex-direction:column;position:absolute;z-index:999;top:0;left:0;width:100%;height:100%;background-color:#000;color:#efefef;font-size:12px}.i-tzj-player .i-tzj-player__error .i-tzj-player__error_content{flex:1;height:0;display:flex;align-items:center;justify-content:center}.i-tzj-player .i-tzj-easyPlayer--custom .easyplayer-controls{display:none}.i-tzj-player .i-tzj-easyPlayer__top,.i-tzj-player .i-tzj-xgplayer__top{display:flex;align-items:center;justify-content:flex-start;width:100%;height:32px;background-color:rgba(43,51,63,.7);color:#fff;font-size:12px}.i-tzj-player .i-tzj-easyPlayer__top .iconfont,.i-tzj-player .i-tzj-xgplayer__top .iconfont{margin-right:4px;margin-left:10px;font-size:12px}.i-tzj-player .i-easy-player-bar{display:flex;position:absolute;z-index:10;bottom:0;left:0;align-items:center;justify-content:space-between;width:100%;height:40px;background-color:rgba(43,51,63,.7);-webkit-user-select:none;user-select:none}.i-tzj-player .i-easy-player-bar .i-easy-player-bar-item{display:inline-flex;align-items:center;justify-content:flex-start;height:100%}.i-tzj-player .i-easy-player-bar .i-easy-player-bar-item .i-easy-player-bottom-bar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;cursor:pointer}.i-tzj-player .i-easy-player-bar .i-easy-player-bar-item .i-easy-player-bottom-bar .iconfont{color:#c7c9ce;font-size:20px}.i-tzj-player .i-easy-player-bar .i-easy-player-bar-item .i-easy-player-bottom-bar:hover .iconfont{color:#fff}.i-tzj-player .i-easy-player-bar .i-easy-player-bar-item .i-easy-player-bottom-bar+.i-easy-player-bottom-bar{margin-left:4px}.i-tzj-player .i-tzj-player__voice-default{display:flex;position:absolute;z-index:10;top:6px;right:6px;align-items:center;justify-content:center;height:28px;padding:0 10px;border-radius:14px;color:#fff;font-size:12px;text-align:center}.i-tzj-player .i-tzj-player__voice-success{background-color:#67c23a}.i-tzj-player .i-tzj-player__voice-info{background-color:#909399}.i-tzj-player .i-tzj-player__voice-error{background-color:#f56c6c}
|