@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.
- package/cdn/index.cdn.js +30 -17
- package/cdn/index.cdn.js.map +1 -1
- package/cdn/index.cdn.mjs +28 -15
- 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 +104 -8
- package/es/components/tzj-player/src/easyPlayer.vue2.mjs +179 -62
- 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.vue.d.ts +2 -2
- package/es/components/tzj-player/src/ysPlayer.vue2.mjs +40 -29
- 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 +306 -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 +637 -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 +104 -8
- package/lib/components/tzj-player/src/easyPlayer.vue2.js +177 -60
- 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.vue.d.ts +2 -2
- package/lib/components/tzj-player/src/ysPlayer.vue2.js +40 -29
- 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 +313 -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 +641 -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 +4 -2
- package/theme-default/i-tzj-player.css +1 -1
- package/theme-default/index.css +1 -1
|
@@ -6,20 +6,16 @@ var vue = require('vue');
|
|
|
6
6
|
require('./easyPlayer.vue.js');
|
|
7
7
|
var tzjPlayer = require('./tzj-player.js');
|
|
8
8
|
require('./ysPlayer.vue.js');
|
|
9
|
+
require('./yunzhiyanPlayer.vue.js');
|
|
10
|
+
var yunzhiyanPlayer_vue_vue_type_script_setup_true_lang = require('./yunzhiyanPlayer.vue2.js');
|
|
9
11
|
var ysPlayer_vue_vue_type_script_setup_true_lang = require('./ysPlayer.vue2.js');
|
|
10
12
|
var easyPlayer_vue_vue_type_script_setup_true_lang = require('./easyPlayer.vue2.js');
|
|
11
13
|
|
|
12
|
-
var __defProp = Object.defineProperty;
|
|
13
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
14
14
|
const _hoisted_1 = { class: "i-tzj-player" };
|
|
15
15
|
const _hoisted_2 = {
|
|
16
16
|
key: 0,
|
|
17
17
|
class: "i-tzj-player__error"
|
|
18
18
|
};
|
|
19
|
-
const _hoisted_3 = {
|
|
20
|
-
key: 1,
|
|
21
|
-
class: "i-tzj-player__error"
|
|
22
|
-
};
|
|
23
19
|
var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
24
20
|
...{
|
|
25
21
|
name: "ITzjPlayer"
|
|
@@ -28,50 +24,147 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
28
24
|
props: tzjPlayer.TzjPlayerProps,
|
|
29
25
|
setup(__props, { expose: __expose }) {
|
|
30
26
|
const props = __props;
|
|
31
|
-
const
|
|
27
|
+
const { url, platformTypeName, accessToken } = vue.toRefs(props);
|
|
32
28
|
const compRef = vue.shallowRef();
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
|
|
29
|
+
const PLATFORM_COMPONENTS = {
|
|
30
|
+
\u4E91\u667A\u773C: yunzhiyanPlayer_vue_vue_type_script_setup_true_lang.default,
|
|
31
|
+
\u8424\u77F3\u4E91: ysPlayer_vue_vue_type_script_setup_true_lang.default
|
|
32
|
+
};
|
|
33
|
+
const playerComponent = vue.computed(() => {
|
|
34
|
+
if (platformTypeName.value) {
|
|
35
|
+
return PLATFORM_COMPONENTS[platformTypeName.value] || easyPlayer_vue_vue_type_script_setup_true_lang.default;
|
|
36
|
+
}
|
|
37
|
+
if (!url.value) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
if (!tzjPlayer.isSupportedProtocol(url.value)) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
if (url.value.includes("ezopen")) {
|
|
44
|
+
return ysPlayer_vue_vue_type_script_setup_true_lang.default;
|
|
45
|
+
}
|
|
46
|
+
const videoType = tzjPlayer.getVideoType(url.value);
|
|
47
|
+
return videoType ? easyPlayer_vue_vue_type_script_setup_true_lang.default : null;
|
|
48
|
+
});
|
|
49
|
+
const errorState = vue.computed(() => {
|
|
50
|
+
if (platformTypeName.value === "\u4E91\u667A\u773C") {
|
|
51
|
+
return null;
|
|
45
52
|
}
|
|
46
|
-
|
|
47
|
-
|
|
53
|
+
if (!url.value) {
|
|
54
|
+
return {
|
|
55
|
+
type: "no-url",
|
|
56
|
+
message: "\u65E0\u89C6\u9891\u5730\u5740"
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
if (!tzjPlayer.isSupportedProtocol(url.value)) {
|
|
60
|
+
return {
|
|
61
|
+
type: "unsupported-protocol",
|
|
62
|
+
message: "\u4E0D\u652F\u6301\u8BE5\u89C6\u9891\u534F\u8BAE"
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
if ((platformTypeName.value === "\u8424\u77F3\u4E91" || url.value.includes("ezopen")) && !accessToken.value) {
|
|
66
|
+
return {
|
|
67
|
+
type: "no-token",
|
|
68
|
+
message: "\u7F3A\u5C11\u8BBF\u95EE\u4EE4\u724C"
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
return null;
|
|
72
|
+
});
|
|
73
|
+
const shouldShowPlayer = vue.computed(() => {
|
|
74
|
+
return !errorState.value && playerComponent.value;
|
|
75
|
+
});
|
|
48
76
|
__expose({
|
|
77
|
+
/**
|
|
78
|
+
* 播放视频
|
|
79
|
+
* @param options 播放选项
|
|
80
|
+
*/
|
|
49
81
|
play(options) {
|
|
50
82
|
var _a;
|
|
83
|
+
if (!compRef.value) {
|
|
84
|
+
props.debug && console.warn("[TzjPlayer] \u64AD\u653E\u5668\u7EC4\u4EF6\u672A\u521D\u59CB\u5316");
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
51
87
|
(_a = compRef.value) == null ? void 0 : _a.play(options);
|
|
52
88
|
},
|
|
89
|
+
/**
|
|
90
|
+
* 销毁播放器
|
|
91
|
+
*/
|
|
53
92
|
destroy() {
|
|
54
93
|
var _a;
|
|
94
|
+
if (!compRef.value) {
|
|
95
|
+
props.debug && console.warn("[TzjPlayer] \u64AD\u653E\u5668\u7EC4\u4EF6\u672A\u521D\u59CB\u5316");
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
55
98
|
(_a = compRef.value) == null ? void 0 : _a.destroy();
|
|
56
99
|
},
|
|
100
|
+
/**
|
|
101
|
+
* 调整播放器尺寸
|
|
102
|
+
*/
|
|
57
103
|
resize() {
|
|
58
104
|
var _a;
|
|
105
|
+
if (!compRef.value) {
|
|
106
|
+
props.debug && console.warn("[TzjPlayer] \u64AD\u653E\u5668\u7EC4\u4EF6\u672A\u521D\u59CB\u5316");
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
59
109
|
(_a = compRef.value) == null ? void 0 : _a.resize();
|
|
110
|
+
},
|
|
111
|
+
/**
|
|
112
|
+
* 获取当前播放器类型
|
|
113
|
+
*/
|
|
114
|
+
getPlayerType() {
|
|
115
|
+
var _a;
|
|
116
|
+
return ((_a = playerComponent.value) == null ? void 0 : _a.name) || null;
|
|
117
|
+
},
|
|
118
|
+
/**
|
|
119
|
+
* 获取错误状态
|
|
120
|
+
*/
|
|
121
|
+
getErrorState() {
|
|
122
|
+
return errorState.value;
|
|
60
123
|
}
|
|
61
124
|
});
|
|
62
125
|
return (_ctx, _cache) => {
|
|
63
126
|
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
127
|
+
vue.createCommentVNode(" \u9519\u8BEF\u72B6\u6001\u663E\u793A "),
|
|
128
|
+
errorState.value ? (vue.openBlock(), vue.createElementBlock(
|
|
129
|
+
"div",
|
|
130
|
+
_hoisted_2,
|
|
131
|
+
vue.toDisplayString(errorState.value.message),
|
|
132
|
+
1
|
|
133
|
+
/* TEXT */
|
|
134
|
+
)) : shouldShowPlayer.value ? (vue.openBlock(), vue.createElementBlock(
|
|
135
|
+
vue.Fragment,
|
|
136
|
+
{ key: 1 },
|
|
137
|
+
[
|
|
138
|
+
vue.createCommentVNode(" \u64AD\u653E\u5668\u7EC4\u4EF6 "),
|
|
139
|
+
(vue.openBlock(), vue.createBlock(
|
|
140
|
+
vue.resolveDynamicComponent(playerComponent.value),
|
|
141
|
+
vue.mergeProps({
|
|
142
|
+
ref_key: "compRef",
|
|
143
|
+
ref: compRef
|
|
144
|
+
}, props),
|
|
145
|
+
null,
|
|
146
|
+
16
|
|
147
|
+
/* FULL_PROPS */
|
|
148
|
+
))
|
|
149
|
+
],
|
|
150
|
+
2112
|
|
151
|
+
/* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
|
|
152
|
+
)) : (vue.openBlock(), vue.createElementBlock(
|
|
153
|
+
vue.Fragment,
|
|
154
|
+
{ key: 2 },
|
|
155
|
+
[
|
|
156
|
+
vue.createCommentVNode(" \u65E0\u53EF\u7528\u64AD\u653E\u5668 "),
|
|
157
|
+
_cache[0] || (_cache[0] = vue.createElementVNode(
|
|
158
|
+
"div",
|
|
159
|
+
{ class: "i-tzj-player__error" },
|
|
160
|
+
"\u65E0\u4FE1\u53F7",
|
|
161
|
+
-1
|
|
162
|
+
/* CACHED */
|
|
163
|
+
))
|
|
164
|
+
],
|
|
165
|
+
2112
|
|
166
|
+
/* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
|
|
167
|
+
))
|
|
75
168
|
]);
|
|
76
169
|
};
|
|
77
170
|
}
|
|
@@ -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 {
|
|
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 } from \"vue\";\nimport EasyPlayer from \"./easyPlayer.vue\";\nimport {\n getVideoType,\n isSupportedProtocol,\n TzjPlayerProps,\n} from \"./tzj-player\";\nimport YsPlayer from \"./ysPlayer.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/**\n * 平台类型映射表,提升可维护性\n */\nconst PLATFORM_COMPONENTS = {\n 云智眼: YunzhiyanPlayer,\n 萤石云: YsPlayer,\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 (platformTypeName.value === \"云智眼\") {\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 <div v-if=\"errorState\" class=\"i-tzj-player__error\">\n {{ errorState.message }}\n </div>\n\n <!-- 播放器组件 -->\n <component\n :is=\"playerComponent\"\n v-else-if=\"shouldShowPlayer\"\n ref=\"compRef\"\n v-bind=\"props\"\n />\n\n <!-- 无可用播放器 -->\n <div v-else class=\"i-tzj-player__error\">无信号</div>\n </div>\n</template>\n"],"names":["toRefs","shallowRef","YunzhiyanPlayer","YsPlayer","computed","EasyPlayer","isSupportedProtocol","getVideoType","_openBlock","_createElementBlock","_createCommentVNode","_toDisplayString","_Fragment","_createBlock","_resolveDynamicComponent","_mergeProps","_createElementVNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,EAAE,GAAK,EAAA,gBAAA,EAAkB,WAAY,EAAA,GAAIA,WAAO,KAAK,CAAA;AAE3D,IAAA,MAAM,UAAUC,cAAW,EAAA;AAK3B,IAAA,MAAM,mBAAsB,GAAA;AAAA,MAC1B,kBAAK,EAAAC,2DAAA;AAAA,MACL,kBAAK,EAAAC;AAAA,KACP;AAMA,IAAM,MAAA,eAAA,GAAkBC,aAAS,MAAM;AAErC,MAAA,IAAI,iBAAiB,KAAO,EAAA;AAC1B,QACE,OAAA,mBAAA,CACE,gBAAiB,CAAA,KACnB,CAAK,IAAAC,sDAAA;AAAA;AAKT,MAAI,IAAA,CAAC,IAAI,KAAO,EAAA;AACd,QAAO,OAAA,IAAA;AAAA;AAIT,MAAA,IAAI,CAACC,6BAAA,CAAoB,GAAI,CAAA,KAAK,CAAG,EAAA;AACnC,QAAO,OAAA,IAAA;AAAA;AAIT,MAAA,IAAI,GAAI,CAAA,KAAA,CAAM,QAAS,CAAA,QAAQ,CAAG,EAAA;AAChC,QAAO,OAAAH,oDAAA;AAAA;AAIT,MAAM,MAAA,SAAA,GAAYI,sBAAa,CAAA,GAAA,CAAI,KAAK,CAAA;AACxC,MAAA,OAAO,YAAYF,sDAAa,GAAA,IAAA;AAAA,KACjC,CAAA;AAMD,IAAM,MAAA,UAAA,GAAaD,aAAS,MAAM;AAEhC,MAAI,IAAA,gBAAA,CAAiB,UAAU,oBAAO,EAAA;AACpC,QAAO,OAAA,IAAA;AAAA;AAIT,MAAI,IAAA,CAAC,IAAI,KAAO,EAAA;AACd,QAAO,OAAA;AAAA,UACL,IAAM,EAAA,QAAA;AAAA,UACN,OAAS,EAAA;AAAA,SACX;AAAA;AAIF,MAAA,IAAI,CAACE,6BAAA,CAAoB,GAAI,CAAA,KAAK,CAAG,EAAA;AACnC,QAAO,OAAA;AAAA,UACL,IAAM,EAAA,sBAAA;AAAA,UACN,OAAS,EAAA;AAAA,SACX;AAAA;AAIF,MACG,IAAA,CAAA,gBAAA,CAAiB,KAAU,KAAA,oBAAA,IAAS,GAAI,CAAA,KAAA,CAAM,SAAS,QAAQ,CAAA,KAChE,CAAC,WAAA,CAAY,KACb,EAAA;AACA,QAAO,OAAA;AAAA,UACL,IAAM,EAAA,UAAA;AAAA,UACN,OAAS,EAAA;AAAA,SACX;AAAA;AAGF,MAAO,OAAA,IAAA;AAAA,KACR,CAAA;AAKD,IAAM,MAAA,gBAAA,GAAmBF,aAAS,MAAM;AACtC,MAAO,OAAA,CAAC,UAAW,CAAA,KAAA,IAAS,eAAgB,CAAA,KAAA;AAAA,KAC7C,CAAA;AAKD,IAAa,QAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAKX,KAAK,OAAe,EAAA;;AAClB,QAAI,IAAA,CAAC,QAAQ,KAAO,EAAA;AAClB,UAAM,KAAA,CAAA,KAAA,IAAS,OAAQ,CAAA,IAAA,CAAK,oEAAuB,CAAA;AACnD,UAAA;AAAA;AAEF,QAAQ,CAAA,EAAA,GAAA,OAAA,CAAA,KAAA,KAAR,mBAAe,IAAK,CAAA,OAAA,CAAA;AAAA,OACtB;AAAA;AAAA;AAAA;AAAA,MAKA,OAAU,GAAA;;AACR,QAAI,IAAA,CAAC,QAAQ,KAAO,EAAA;AAClB,UAAM,KAAA,CAAA,KAAA,IAAS,OAAQ,CAAA,IAAA,CAAK,oEAAuB,CAAA;AACnD,UAAA;AAAA;AAEF,QAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,UAAR,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAA,EAAA;AAAA,OACjB;AAAA;AAAA;AAAA;AAAA,MAKA,MAAS,GAAA;;AACP,QAAI,IAAA,CAAC,QAAQ,KAAO,EAAA;AAClB,UAAM,KAAA,CAAA,KAAA,IAAS,OAAQ,CAAA,IAAA,CAAK,oEAAuB,CAAA;AACnD,UAAA;AAAA;AAEF,QAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,UAAR,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,EAAA;AAAA,OACjB;AAAA;AAAA;AAAA;AAAA,MAKA,aAAgB,GAAA;;AACd,QAAO,OAAA,CAAA,CAAA,EAAA,GAAA,eAAA,CAAgB,KAAhB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAuB,IAAQ,KAAA,IAAA;AAAA,OACxC;AAAA;AAAA;AAAA;AAAA,MAKA,aAAgB,GAAA;AACd,QAAA,OAAO,UAAW,CAAA,KAAA;AAAA;AACpB,KACD,CAAA;;AAIC,MAAA,OAAAI,aAAA,EAAA,EAAAC,sBAgBM,CAAA,KAAA,EAhBN,UAgBM,EAAA;AAAA,QAfJC,uBAAe,wCAAA,CAAA;AAAA,QACJ,UAAA,CAAU,KAArB,IAAAF,aAAA,EAAA,EAAAC,sBAAA;AAAA,UAEM,KAAA;AAAA,UAFN,UAAA;AAAA,UACKE,mBAAA,CAAA,UAAA,CAAA,KAAA,CAAW,OAAO,CAAA;AAAA,UAAA;AAAA;AAAA,SAMV,IAAA,gBAAA,CAAgB,wBAF7B,EAAAF,sBAAA;AAAA,UAKEG,YAAA;AAAA,UAAA,EAAA,KAAA,CAAA,EAAA;AAAA,UAAA;AAAA,YANFF,uBAAc,kCAAA,CAAA;AAAA,4BACd,EAAAG,eAAA;AAAA,cAKEC,2BAAA,CAJK,gBAAe,KAAA,CAAA;AAAA,cADtBC,cAKE,CAAA;AAAA,uBAFI,EAAA,SAAA;AAAA,gBAAJ,GAAI,EAAA;AAAA,iBACI,KAAK,CAAA;AAAA,cAAA,IAAA;AAAA,cAAA;AAAA;AAAA,aAAA;AAAA;;;6BAIf,EAAAN,sBAAA;AAAA,UAAiDG,YAAA;AAAA,UAAA,EAAA,KAAA,CAAA,EAAA;AAAA,UAAA;AAAA,YADjDF,uBAAe,wCAAA,CAAA;AAAA,YACf,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAAM,sBAAA;AAAA,cAAiD,KAAA;AAAA,cAArC,EAAA,OAAM;cAAsB,oBAAA;AAAA,cAAG,CAAA;AAAA;AAAA,aAAA;AAAA;;;;;;;;;;;"}
|
|
@@ -36,10 +36,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
36
36
|
isCurrentFullscreen: boolean;
|
|
37
37
|
debounce: (func: Function, wait: number) => (this: any, ...args: any[]) => void;
|
|
38
38
|
debouncedResize: (this: any, ...args: any[]) => void;
|
|
39
|
-
play: (options?: Record<string, any>) => void
|
|
39
|
+
play: (options?: Record<string, any>) => Promise<void>;
|
|
40
40
|
destroy: () => void;
|
|
41
41
|
resize: () => void;
|
|
42
|
-
createPlayer: (options?: Record<string, any>) => void
|
|
42
|
+
createPlayer: (options?: Record<string, any>) => Promise<void>;
|
|
43
43
|
formatterUrl: () => string;
|
|
44
44
|
removePlayerDom: () => void;
|
|
45
45
|
createPlayerDom: () => void;
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var vue = require('vue');
|
|
6
6
|
var core = require('@vueuse/core');
|
|
7
7
|
var tzjPlayer = require('./tzj-player.js');
|
|
8
|
-
var EZUIKit = require('ezuikit-js');
|
|
9
8
|
|
|
10
9
|
var __defProp = Object.defineProperty;
|
|
11
10
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
@@ -56,14 +55,15 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
56
55
|
}
|
|
57
56
|
}
|
|
58
57
|
);
|
|
59
|
-
function play(options) {
|
|
58
|
+
async function play(options) {
|
|
60
59
|
if (!props.accessToken) {
|
|
61
60
|
errorMsg = `params 'accessToken' is not found`;
|
|
62
61
|
} else {
|
|
63
62
|
const url = formatterUrl();
|
|
64
63
|
if (url) {
|
|
65
64
|
createPlayerDom();
|
|
66
|
-
vue.nextTick(
|
|
65
|
+
await vue.nextTick();
|
|
66
|
+
await createPlayer(options);
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
}
|
|
@@ -86,7 +86,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
86
86
|
}
|
|
87
87
|
if (playerInstance == null ? void 0 : playerInstance.resize) {
|
|
88
88
|
playerInstance.resize(calculatedWidth, calculatedHeight);
|
|
89
|
-
} else {
|
|
89
|
+
} else if (typeof document !== "undefined") {
|
|
90
90
|
const dom = document.getElementById(id);
|
|
91
91
|
if (dom) {
|
|
92
92
|
dom.style.width = `${calculatedWidth}px`;
|
|
@@ -96,24 +96,31 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
__name(resize, "resize");
|
|
99
|
-
function createPlayer(options) {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
99
|
+
async function createPlayer(options) {
|
|
100
|
+
try {
|
|
101
|
+
const EZUIKit = await import('ezuikit-js');
|
|
102
|
+
playerInstance = new EZUIKit.default.EZUIKitPlayer({
|
|
103
|
+
id,
|
|
104
|
+
url: formatterUrl(),
|
|
105
|
+
accessToken: props.accessToken,
|
|
106
|
+
template: props.playerTemplate || PLAYER_TEMPLATE,
|
|
107
|
+
width: width.value,
|
|
108
|
+
height: height.value,
|
|
109
|
+
audio: 1,
|
|
110
|
+
// @ts-ignore
|
|
111
|
+
loggerOptions: {
|
|
112
|
+
name: "YSPLAYER",
|
|
113
|
+
level: "ERROR",
|
|
114
|
+
showTime: true
|
|
115
|
+
},
|
|
116
|
+
staticPath: "/plugins/ezuikit/ezuikit_static",
|
|
117
|
+
...options
|
|
118
|
+
});
|
|
119
|
+
} catch (error) {
|
|
120
|
+
console.error("Failed to load EZUIKit:", error);
|
|
121
|
+
errorMsg = "\u64AD\u653E\u5668\u52A0\u8F7D\u5931\u8D25";
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
117
124
|
playerInstance.eventEmitter.on("fullscreen", () => {
|
|
118
125
|
isCurrentFullscreen = true;
|
|
119
126
|
});
|
|
@@ -144,19 +151,23 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
144
151
|
}
|
|
145
152
|
__name(formatterUrl, "formatterUrl");
|
|
146
153
|
function removePlayerDom() {
|
|
147
|
-
|
|
148
|
-
|
|
154
|
+
if (typeof document !== "undefined") {
|
|
155
|
+
const dom = document.getElementById(id);
|
|
156
|
+
dom && dom.remove();
|
|
157
|
+
}
|
|
149
158
|
}
|
|
150
159
|
__name(removePlayerDom, "removePlayerDom");
|
|
151
160
|
function createPlayerDom() {
|
|
152
161
|
var _a;
|
|
153
162
|
if (!errorMsg) {
|
|
154
163
|
removePlayerDom();
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
164
|
+
if (typeof document !== "undefined") {
|
|
165
|
+
const dom = document.createElement("div");
|
|
166
|
+
dom.id = id;
|
|
167
|
+
dom.style.width = "100%";
|
|
168
|
+
dom.style.height = "100%";
|
|
169
|
+
(_a = ysRef.value) == null ? void 0 : _a.appendChild(dom);
|
|
170
|
+
}
|
|
160
171
|
}
|
|
161
172
|
}
|
|
162
173
|
__name(createPlayerDom, "createPlayerDom");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ysPlayer.vue2.js","sources":["../../../../../../../packages/components/tzj-player/src/ysPlayer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useElementSize } from \"@vueuse/core\";\nimport { nextTick, onBeforeUnmount, onMounted, shallowRef, watch } from \"vue\";\nimport { uuid } from \"./tzj-player\";\nimport EZUIKit from \"ezuikit-js\";\n// 萤石云播放器\ndefineOptions({\n name: \"YsPlayer\",\n});\n\n// 传值方式\n// 1、传url、accessToken\n// 2、传deviceSerial、channel、accessToken\nconst props = defineProps<{\n // 播放地址\n // 高清:ezopen://open.ys7.com/${设备序列号}/${通道号}.hd.live\n // 流畅:ezopen://open.ys7.com/${设备序列号}/${通道号}.live\n url?: string;\n // 设备序列号\n deviceSerial?: string;\n // 通道号\n channel?: number;\n // 清晰度,默认为空,也表示高清\n // hd:高清;sd:流畅\n quality?: \"hd\" | \"sd\" | \"\";\n accessToken: string;\n // 播放器模板ID\n playerTemplate?: string;\n}>();\n\n// 播放器模板ID\n// 可在萤石云控制台查看、修改、获取\n// 位置:云直播-轻应用-特致珈默认模板\nconst PLAYER_TEMPLATE = \"5f295a9341a74d439b5d69374c90d501\";\nconst id = uuid();\nlet playerInstance: any = null;\nlet errorMsg = \"\";\nconst ysRef = shallowRef();\nconst { width, height } = useElementSize(ysRef);\nlet ratio = 16 / 9;\nlet isCurrentFullscreen = false;\n\nonMounted(() => play());\n\nonBeforeUnmount(() => destroy());\n\ndefineExpose({ play, destroy, resize });\n\n// 防抖函数\nfunction debounce(func: Function, wait: number) {\n let timeout: ReturnType<typeof setTimeout> | null = null;\n return function (this: any, ...args: any[]) {\n if (timeout) clearTimeout(timeout);\n timeout = setTimeout(() => func.apply(this, args), wait);\n };\n}\n\n// 加上防抖的 resize 函数\nconst debouncedResize = debounce(resize, 300);\n\nwatch(\n () => [width.value, height.value, ratio],\n () => {\n if (!isCurrentFullscreen) {\n debouncedResize();\n }\n },\n);\n\nfunction play(options?: Record<string, any>) {\n if (!props.accessToken) {\n errorMsg = `params 'accessToken' is not found`;\n } else {\n const url = formatterUrl();\n if (url) {\n createPlayerDom();\n nextTick(() => createPlayer(options));\n }\n }\n}\nfunction destroy() {\n if (playerInstance) {\n playerInstance.destroy();\n playerInstance = null;\n removePlayerDom();\n }\n}\nfunction resize() {\n // 根据播放器宽高比,设置播放器高度\n if (width.value > 0 && height.value > 0) {\n let calculatedWidth = width.value;\n let calculatedHeight = calculatedWidth / ratio;\n if (calculatedHeight > height.value) {\n calculatedHeight = height.value;\n calculatedWidth = calculatedHeight * ratio;\n }\n if (playerInstance?.resize) {\n playerInstance.resize(calculatedWidth, calculatedHeight);\n } else {\n const dom = document.getElementById(id);\n if (dom) {\n dom.style.width = `${calculatedWidth}px`;\n dom.style.height = `${calculatedHeight}px`;\n }\n }\n }\n}\n\n/**\n * 创建萤石云播放器实例,播放萤石云直播流\n */\nfunction createPlayer(options?: Record<string, any>) {\n playerInstance = new EZUIKit.EZUIKitPlayer({\n id,\n url: formatterUrl(),\n accessToken: props.accessToken,\n template: props.playerTemplate || PLAYER_TEMPLATE,\n width: width.value,\n height: height.value,\n audio: 1,\n // @ts-ignore\n loggerOptions: {\n name: \"YSPLAYER\",\n level: \"ERROR\",\n showTime: true,\n },\n staticPath: \"/plugins/ezuikit/ezuikit_static\",\n ...options,\n });\n\n playerInstance.eventEmitter.on(\"fullscreen\", () => {\n isCurrentFullscreen = true;\n });\n playerInstance.eventEmitter.on(\"exitFullscreen\", () => {\n isCurrentFullscreen = false;\n });\n playerInstance.eventEmitter.on(\"videoInfo\", (args: any) => {\n const { width: w, height: h } = args;\n // 计算播放器宽高比\n if (w && h) {\n ratio = w / h;\n }\n debouncedResize();\n });\n}\n\nfunction formatterUrl(): string {\n if (props.url) {\n return props.url;\n } else {\n if (props.deviceSerial && props.channel) {\n const quality =\n props.quality === \"\" || props.quality === \"hd\" ? \"hd.\" : \"\";\n return `ezopen://open.ys7.com/${props.deviceSerial}/${props.channel}.${quality}live`;\n } else {\n errorMsg = `params 'deviceSerial' or 'channel' is not found`;\n return \"\";\n }\n }\n}\n\n// 移除播放器DOM\nfunction removePlayerDom() {\n const dom = document.getElementById(id);\n dom && dom.remove();\n}\n// 创建播放器DOM\nfunction createPlayerDom() {\n if (!errorMsg) {\n removePlayerDom();\n const dom = document.createElement(\"div\");\n dom.id = id;\n dom.style.width = \"100%\";\n dom.style.height = \"100%\";\n ysRef.value?.appendChild(dom);\n }\n}\n</script>\n\n<template>\n <div ref=\"ysRef\" class=\"i-tzj-ysplayer\">\n <div v-if=\"errorMsg\" class=\"i-tzj-player__error\">\n {{ errorMsg }}\n </div>\n </div>\n</template>\n"],"names":["uuid","shallowRef","useElementSize","onMounted","onBeforeUnmount","watch","nextTick","_createElementBlock","_unref","_toDisplayString"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ysPlayer.vue2.js","sources":["../../../../../../../packages/components/tzj-player/src/ysPlayer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useElementSize } from \"@vueuse/core\";\nimport { nextTick, onBeforeUnmount, onMounted, shallowRef, watch } from \"vue\";\nimport { uuid } from \"./tzj-player\";\n// 萤石云播放器\ndefineOptions({\n name: \"YsPlayer\",\n});\n\n// 传值方式\n// 1、传url、accessToken\n// 2、传deviceSerial、channel、accessToken\nconst props = defineProps<{\n // 播放地址\n // 高清:ezopen://open.ys7.com/${设备序列号}/${通道号}.hd.live\n // 流畅:ezopen://open.ys7.com/${设备序列号}/${通道号}.live\n url?: string;\n // 设备序列号\n deviceSerial?: string;\n // 通道号\n channel?: number;\n // 清晰度,默认为空,也表示高清\n // hd:高清;sd:流畅\n quality?: \"hd\" | \"sd\" | \"\";\n accessToken: string;\n // 播放器模板ID\n playerTemplate?: string;\n}>();\n\n// 播放器模板ID\n// 可在萤石云控制台查看、修改、获取\n// 位置:云直播-轻应用-特致珈默认模板\nconst PLAYER_TEMPLATE = \"5f295a9341a74d439b5d69374c90d501\";\nconst id = uuid();\nlet playerInstance: any = null;\nlet errorMsg = \"\";\nconst ysRef = shallowRef();\nconst { width, height } = useElementSize(ysRef);\nlet ratio = 16 / 9;\nlet isCurrentFullscreen = false;\n\nonMounted(() => play());\n\nonBeforeUnmount(() => destroy());\n\ndefineExpose({ play, destroy, resize });\n\n// 防抖函数\nfunction debounce(func: Function, wait: number) {\n let timeout: ReturnType<typeof setTimeout> | null = null;\n return function (this: any, ...args: any[]) {\n if (timeout) clearTimeout(timeout);\n timeout = setTimeout(() => func.apply(this, args), wait);\n };\n}\n\n// 加上防抖的 resize 函数\nconst debouncedResize = debounce(resize, 300);\n\nwatch(\n () => [width.value, height.value, ratio],\n () => {\n if (!isCurrentFullscreen) {\n debouncedResize();\n }\n },\n);\n\nasync function play(options?: Record<string, any>) {\n if (!props.accessToken) {\n errorMsg = `params 'accessToken' is not found`;\n } else {\n const url = formatterUrl();\n if (url) {\n createPlayerDom();\n await nextTick();\n await createPlayer(options);\n }\n }\n}\nfunction destroy() {\n if (playerInstance) {\n playerInstance.destroy();\n playerInstance = null;\n removePlayerDom();\n }\n}\nfunction resize() {\n // 根据播放器宽高比,设置播放器高度\n if (width.value > 0 && height.value > 0) {\n let calculatedWidth = width.value;\n let calculatedHeight = calculatedWidth / ratio;\n if (calculatedHeight > height.value) {\n calculatedHeight = height.value;\n calculatedWidth = calculatedHeight * ratio;\n }\n if (playerInstance?.resize) {\n playerInstance.resize(calculatedWidth, calculatedHeight);\n } else if (typeof document !== \"undefined\") {\n const dom = document.getElementById(id);\n if (dom) {\n dom.style.width = `${calculatedWidth}px`;\n dom.style.height = `${calculatedHeight}px`;\n }\n }\n }\n}\n\n/**\n * 创建萤石云播放器实例,播放萤石云直播流\n */\nasync function createPlayer(options?: Record<string, any>) {\n try {\n // 动态导入 EZUIKit,避免 SSR 环境下的 window 访问错误\n const EZUIKit = await import(\"ezuikit-js\");\n\n playerInstance = new EZUIKit.default.EZUIKitPlayer({\n id,\n url: formatterUrl(),\n accessToken: props.accessToken,\n template: props.playerTemplate || PLAYER_TEMPLATE,\n width: width.value,\n height: height.value,\n audio: 1,\n // @ts-ignore\n loggerOptions: {\n name: \"YSPLAYER\",\n level: \"ERROR\",\n showTime: true,\n },\n staticPath: \"/plugins/ezuikit/ezuikit_static\",\n ...options,\n });\n } catch (error) {\n console.error(\"Failed to load EZUIKit:\", error);\n errorMsg = \"播放器加载失败\";\n return;\n }\n\n playerInstance.eventEmitter.on(\"fullscreen\", () => {\n isCurrentFullscreen = true;\n });\n playerInstance.eventEmitter.on(\"exitFullscreen\", () => {\n isCurrentFullscreen = false;\n });\n playerInstance.eventEmitter.on(\"videoInfo\", (args: any) => {\n const { width: w, height: h } = args;\n // 计算播放器宽高比\n if (w && h) {\n ratio = w / h;\n }\n debouncedResize();\n });\n}\n\nfunction formatterUrl(): string {\n if (props.url) {\n return props.url;\n } else {\n if (props.deviceSerial && props.channel) {\n const quality =\n props.quality === \"\" || props.quality === \"hd\" ? \"hd.\" : \"\";\n return `ezopen://open.ys7.com/${props.deviceSerial}/${props.channel}.${quality}live`;\n } else {\n errorMsg = `params 'deviceSerial' or 'channel' is not found`;\n return \"\";\n }\n }\n}\n\n// 移除播放器DOM\nfunction removePlayerDom() {\n if (typeof document !== \"undefined\") {\n const dom = document.getElementById(id);\n dom && dom.remove();\n }\n}\n// 创建播放器DOM\nfunction createPlayerDom() {\n if (!errorMsg) {\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 ysRef.value?.appendChild(dom);\n }\n }\n}\n</script>\n\n<template>\n <div ref=\"ysRef\" class=\"i-tzj-ysplayer\">\n <div v-if=\"errorMsg\" class=\"i-tzj-player__error\">\n {{ errorMsg }}\n </div>\n </div>\n</template>\n"],"names":["uuid","shallowRef","useElementSize","onMounted","onBeforeUnmount","watch","nextTick","_createElementBlock","_unref","_toDisplayString"],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function sign(headers: Record<string, string | number>, params: Record<string, any>, sk?: string): string;
|
|
2
|
+
export declare function GetYunZhiYanDeviceChannel(deviceId: string): Promise<string | false>;
|
|
3
|
+
export declare function GetYunZhiYanDeviceVideoUrl(deviceId: string, channelCodeId: string): Promise<string | false>;
|
|
4
|
+
export declare function GetYunZhiYanOpenVoiceIntercom(deviceId: string): Promise<any | false>;
|
|
5
|
+
export declare function GetYunZhiYanUserPlaySecretKey(taskId: string): Promise<string | false>;
|
|
6
|
+
export declare function GetYunZhiYanCloseVoiceIntercom(deviceId: string, taskId: string): Promise<any | false>;
|