@yimou6/common-ui 1.15.0 → 1.15.3
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 +20 -20
- package/cdn/index.cdn.js.map +1 -1
- package/cdn/index.cdn.mjs +20 -20
- package/cdn/index.cdn.mjs.map +1 -1
- package/cdn/index.css +1 -1
- package/es/components/index.mjs +1 -1
- package/es/components/tzj-player/index.d.ts +659 -118
- package/es/components/tzj-player/index.mjs +1 -1
- package/es/components/tzj-player/src/icc-player.d.ts +6 -0
- package/es/components/tzj-player/src/icc-player.mjs +61 -0
- package/es/components/tzj-player/src/icc-player.mjs.map +1 -0
- package/es/components/tzj-player/src/icc-player.vue.d.ts +277 -0
- package/es/components/tzj-player/src/icc-player.vue.mjs +6 -0
- package/es/components/tzj-player/src/icc-player.vue.mjs.map +1 -0
- package/es/components/tzj-player/src/icc-player.vue2.mjs +87 -0
- package/es/components/tzj-player/src/icc-player.vue2.mjs.map +1 -0
- package/es/components/tzj-player/src/tzj-player.vue.d.ts +659 -118
- package/es/components/tzj-player/src/tzj-player.vue2.mjs +7 -4
- package/es/components/tzj-player/src/tzj-player.vue2.mjs.map +1 -1
- package/es/components/tzj-player/src/yunzhiyan.d.ts +0 -1
- package/es/components/tzj-player/src/yunzhiyan.mjs +4 -14
- package/es/components/tzj-player/src/yunzhiyan.mjs.map +1 -1
- package/es/components/tzj-player/src/yunzhiyanPlayer.vue.d.ts +0 -10
- package/es/components/tzj-player/src/yunzhiyanPlayer.vue2.mjs +22 -45
- package/es/components/tzj-player/src/yunzhiyanPlayer.vue2.mjs.map +1 -1
- package/es/index.mjs +2 -2
- package/es/utils/index.mjs +1 -1
- package/es/utils/util.d.ts +1 -0
- package/es/utils/util.mjs +14 -1
- package/es/utils/util.mjs.map +1 -1
- package/lib/components/index.js +0 -1
- package/lib/components/index.js.map +1 -1
- package/lib/components/tzj-player/index.d.ts +659 -118
- package/lib/components/tzj-player/index.js +0 -1
- package/lib/components/tzj-player/index.js.map +1 -1
- package/lib/components/tzj-player/src/icc-player.d.ts +6 -0
- package/lib/components/tzj-player/src/icc-player.js +63 -0
- package/lib/components/tzj-player/src/icc-player.js.map +1 -0
- package/lib/components/tzj-player/src/icc-player.vue.d.ts +277 -0
- package/lib/components/tzj-player/src/icc-player.vue.js +10 -0
- package/lib/components/tzj-player/src/icc-player.vue.js.map +1 -0
- package/lib/components/tzj-player/src/icc-player.vue2.js +91 -0
- package/lib/components/tzj-player/src/icc-player.vue2.js.map +1 -0
- package/lib/components/tzj-player/src/tzj-player.vue.d.ts +659 -118
- 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/yunzhiyan.d.ts +0 -1
- package/lib/components/tzj-player/src/yunzhiyan.js +4 -15
- package/lib/components/tzj-player/src/yunzhiyan.js.map +1 -1
- package/lib/components/tzj-player/src/yunzhiyanPlayer.vue.d.ts +0 -10
- package/lib/components/tzj-player/src/yunzhiyanPlayer.vue2.js +21 -44
- package/lib/components/tzj-player/src/yunzhiyanPlayer.vue2.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/utils/index.js +1 -0
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/util.d.ts +1 -0
- package/lib/utils/util.js +14 -0
- package/lib/utils/util.js.map +1 -1
- package/package.json +1 -1
- package/theme-default/i-geo-mark.css +1 -1
- package/theme-default/index.css +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import '../../utils/index.mjs';
|
|
2
2
|
import './src/tzj-player.vue.mjs';
|
|
3
|
-
export { getVideoUrlByCamreaId
|
|
3
|
+
export { getVideoUrlByCamreaId } from './src/yunzhiyan.mjs';
|
|
4
4
|
import { withInstall } from '../../utils/install.mjs';
|
|
5
5
|
import _sfc_main from './src/tzj-player.vue2.mjs';
|
|
6
6
|
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import '../../../utils/index.mjs';
|
|
2
|
+
import { parseAuthorizedTokenCookie } from '../../../utils/util.mjs';
|
|
3
|
+
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
+
const REQUEST_TIMEOUT = 1e4;
|
|
7
|
+
async function getVideoUrlByCamreaId(deviceId, refresh = false) {
|
|
8
|
+
if (!deviceId) {
|
|
9
|
+
return { code: -1, data: null, msg: "\u8BBE\u5907ID\u4E0D\u80FD\u4E3A\u7A7A" };
|
|
10
|
+
}
|
|
11
|
+
const controller = new AbortController();
|
|
12
|
+
const timeoutId = setTimeout(() => controller.abort(), REQUEST_TIMEOUT);
|
|
13
|
+
try {
|
|
14
|
+
const token = parseAuthorizedTokenCookie();
|
|
15
|
+
const headers = {};
|
|
16
|
+
if (token) {
|
|
17
|
+
headers.authorization = token;
|
|
18
|
+
} else {
|
|
19
|
+
console.warn(
|
|
20
|
+
"[tzj-player] \u672A\u83B7\u53D6\u5230 authorized-token\uFF0C\u672C\u6B21\u8BF7\u6C42\u5C06\u4E0D\u5E26\u9274\u6743\u5934"
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
const response = await fetch(
|
|
24
|
+
`/production/device/${encodeURIComponent(deviceId)}/play-url?refresh=${refresh}`,
|
|
25
|
+
{ method: "GET", headers, signal: controller.signal }
|
|
26
|
+
);
|
|
27
|
+
if (!response.ok) {
|
|
28
|
+
console.error(
|
|
29
|
+
`[tzj-player] HTTP\u9519\u8BEF: ${response.status} ${response.statusText} - getVideoUrlByCamreaId`
|
|
30
|
+
);
|
|
31
|
+
return { code: response.status, data: null, msg: response.statusText };
|
|
32
|
+
}
|
|
33
|
+
const { code, data, msg } = await response.json();
|
|
34
|
+
if (code === 401) {
|
|
35
|
+
if (!refresh) {
|
|
36
|
+
return getVideoUrlByCamreaId(deviceId, true);
|
|
37
|
+
}
|
|
38
|
+
console.error("[tzj-player] \u5237\u65B0\u540E\u4ECD\u8FD4\u56DE 401\uFF0C\u505C\u6B62\u91CD\u8BD5", msg);
|
|
39
|
+
}
|
|
40
|
+
return { code, data, msg };
|
|
41
|
+
} catch (error) {
|
|
42
|
+
if (error instanceof Error && error.name === "AbortError") {
|
|
43
|
+
console.error(
|
|
44
|
+
`[tzj-player] \u8BF7\u6C42\u8D85\u65F6\uFF08${REQUEST_TIMEOUT / 1e3}s\uFF09: getVideoUrlByCamreaId`
|
|
45
|
+
);
|
|
46
|
+
return { code: -1, data: null, msg: "\u8BF7\u6C42\u8D85\u65F6" };
|
|
47
|
+
}
|
|
48
|
+
console.error("[tzj-player] \u8BF7\u6C42\u5931\u8D25: getVideoUrlByCamreaId", error);
|
|
49
|
+
return {
|
|
50
|
+
code: -1,
|
|
51
|
+
data: null,
|
|
52
|
+
msg: error instanceof Error ? error.message : "\u672A\u77E5\u9519\u8BEF"
|
|
53
|
+
};
|
|
54
|
+
} finally {
|
|
55
|
+
clearTimeout(timeoutId);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
__name(getVideoUrlByCamreaId, "getVideoUrlByCamreaId");
|
|
59
|
+
|
|
60
|
+
export { getVideoUrlByCamreaId };
|
|
61
|
+
//# sourceMappingURL=icc-player.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icc-player.mjs","sources":["../../../../../../../packages/components/tzj-player/src/icc-player.ts"],"sourcesContent":["import { parseAuthorizedTokenCookie } from \"../../../utils\";\n\n/** 取流地址接口的统一返回结构 */\nexport interface VideoUrlResult {\n code: number;\n data: string | null;\n msg: string;\n}\n\n// 请求超时时间:网关无响应时及时失败,避免调用方无限等待黑屏\nconst REQUEST_TIMEOUT = 10_000;\n\nexport async function getVideoUrlByCamreaId(\n deviceId?: string,\n refresh: boolean = false,\n): Promise<VideoUrlResult> {\n // deviceId 缺失时直接失败,避免发出 /device/undefined/play-url 的无效请求\n if (!deviceId) {\n return { code: -1, data: null, msg: \"设备ID不能为空\" };\n }\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), REQUEST_TIMEOUT);\n\n try {\n // token 可能不存在或解析失败,不能把 null 直接塞进请求头\n const token = parseAuthorizedTokenCookie();\n const headers: Record<string, string> = {};\n if (token) {\n headers.authorization = token;\n } else {\n console.warn(\n \"[tzj-player] 未获取到 authorized-token,本次请求将不带鉴权头\",\n );\n }\n\n const response = await fetch(\n `/production/device/${encodeURIComponent(deviceId)}/play-url?refresh=${refresh}`,\n { method: \"GET\", headers, signal: controller.signal },\n );\n\n // 网关异常时可能返回 HTML 或空 body,先校验状态码再解析,避免抛出晦涩的 JSON 解析错误\n if (!response.ok) {\n console.error(\n `[tzj-player] HTTP错误: ${response.status} ${response.statusText} - getVideoUrlByCamreaId`,\n );\n return { code: response.status, data: null, msg: response.statusText };\n }\n\n const { code, data, msg } = await response.json();\n if (code === 401) {\n // 仅在首次调用(refresh=false)时带 refresh=true 重试一次;\n // refresh=true 仍 401 说明 token 彻底失效,必须停止递归,否则会无限请求\n if (!refresh) {\n return getVideoUrlByCamreaId(deviceId, true);\n }\n console.error(\"[tzj-player] 刷新后仍返回 401,停止重试\", msg);\n }\n\n return { code, data, msg };\n } catch (error) {\n if (error instanceof Error && error.name === \"AbortError\") {\n console.error(\n `[tzj-player] 请求超时(${REQUEST_TIMEOUT / 1000}s): getVideoUrlByCamreaId`,\n );\n return { code: -1, data: null, msg: \"请求超时\" };\n }\n console.error(\"[tzj-player] 请求失败: getVideoUrlByCamreaId\", error);\n return {\n code: -1,\n data: null,\n msg: error instanceof Error ? error.message : \"未知错误\",\n };\n } finally {\n // 无论成功、失败还是 401 递归返回,都清掉本层的超时定时器\n clearTimeout(timeoutId);\n }\n}\n"],"names":[],"mappings":";;;;;AAUA,MAAM,eAAkB,GAAA,GAAA;AAEF,eAAA,qBAAA,CACpB,QACA,EAAA,OAAA,GAAmB,KACM,EAAA;AAEzB,EAAA,IAAI,CAAC,QAAU,EAAA;AACb,IAAA,OAAO,EAAE,IAAM,EAAA,CAAA,CAAA,EAAI,IAAM,EAAA,IAAA,EAAM,KAAK,wCAAW,EAAA;AAAA;AAGjD,EAAM,MAAA,UAAA,GAAa,IAAI,eAAgB,EAAA;AACvC,EAAA,MAAM,YAAY,UAAW,CAAA,MAAM,UAAW,CAAA,KAAA,IAAS,eAAe,CAAA;AAEtE,EAAI,IAAA;AAEF,IAAA,MAAM,QAAQ,0BAA2B,EAAA;AACzC,IAAA,MAAM,UAAkC,EAAC;AACzC,IAAA,IAAI,KAAO,EAAA;AACT,MAAA,OAAA,CAAQ,aAAgB,GAAA,KAAA;AAAA,KACnB,MAAA;AACL,MAAQ,OAAA,CAAA,IAAA;AAAA,QACN;AAAA,OACF;AAAA;AAGF,IAAA,MAAM,WAAW,MAAM,KAAA;AAAA,MACrB,CAAsB,mBAAA,EAAA,kBAAA,CAAmB,QAAQ,CAAC,qBAAqB,OAAO,CAAA,CAAA;AAAA,MAC9E,EAAE,MAAQ,EAAA,KAAA,EAAO,OAAS,EAAA,MAAA,EAAQ,WAAW,MAAO;AAAA,KACtD;AAGA,IAAI,IAAA,CAAC,SAAS,EAAI,EAAA;AAChB,MAAQ,OAAA,CAAA,KAAA;AAAA,QACN,CAAwB,+BAAA,EAAA,QAAA,CAAS,MAAM,CAAA,CAAA,EAAI,SAAS,UAAU,CAAA,wBAAA;AAAA,OAChE;AACA,MAAO,OAAA,EAAE,MAAM,QAAS,CAAA,MAAA,EAAQ,MAAM,IAAM,EAAA,GAAA,EAAK,SAAS,UAAW,EAAA;AAAA;AAGvE,IAAA,MAAM,EAAE,IAAM,EAAA,IAAA,EAAM,KAAQ,GAAA,MAAM,SAAS,IAAK,EAAA;AAChD,IAAA,IAAI,SAAS,GAAK,EAAA;AAGhB,MAAA,IAAI,CAAC,OAAS,EAAA;AACZ,QAAO,OAAA,qBAAA,CAAsB,UAAU,IAAI,CAAA;AAAA;AAE7C,MAAQ,OAAA,CAAA,KAAA,CAAM,uFAAgC,GAAG,CAAA;AAAA;AAGnD,IAAO,OAAA,EAAE,IAAM,EAAA,IAAA,EAAM,GAAI,EAAA;AAAA,WAClB,KAAO,EAAA;AACd,IAAA,IAAI,KAAiB,YAAA,KAAA,IAAS,KAAM,CAAA,IAAA,KAAS,YAAc,EAAA;AACzD,MAAQ,OAAA,CAAA,KAAA;AAAA,QACN,CAAA,2CAAA,EAAqB,kBAAkB,GAAI,CAAA,8BAAA;AAAA,OAC7C;AACA,MAAA,OAAO,EAAE,IAAM,EAAA,CAAA,CAAA,EAAI,IAAM,EAAA,IAAA,EAAM,KAAK,0BAAO,EAAA;AAAA;AAE7C,IAAQ,OAAA,CAAA,KAAA,CAAM,gEAA4C,KAAK,CAAA;AAC/D,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,CAAA,CAAA;AAAA,MACN,IAAM,EAAA,IAAA;AAAA,MACN,GAAK,EAAA,KAAA,YAAiB,KAAQ,GAAA,KAAA,CAAM,OAAU,GAAA;AAAA,KAChD;AAAA,GACA,SAAA;AAEA,IAAA,YAAA,CAAa,SAAS,CAAA;AAAA;AAE1B;AAjEsB,MAAA,CAAA,qBAAA,EAAA,uBAAA,CAAA;;;;"}
|
|
@@ -0,0 +1,277 @@
|
|
|
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
|
+
pauseMode: {
|
|
27
|
+
type: NumberConstructor;
|
|
28
|
+
default: number;
|
|
29
|
+
validator: (value: number) => boolean;
|
|
30
|
+
};
|
|
31
|
+
}>, {
|
|
32
|
+
props: import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
|
33
|
+
url: {
|
|
34
|
+
type: StringConstructor;
|
|
35
|
+
default: string;
|
|
36
|
+
};
|
|
37
|
+
accessToken: {
|
|
38
|
+
type: StringConstructor;
|
|
39
|
+
default: string;
|
|
40
|
+
};
|
|
41
|
+
areaName: {
|
|
42
|
+
type: StringConstructor;
|
|
43
|
+
default: string;
|
|
44
|
+
};
|
|
45
|
+
deviceSerial: {
|
|
46
|
+
type: StringConstructor;
|
|
47
|
+
default: string;
|
|
48
|
+
};
|
|
49
|
+
platformTypeName: {
|
|
50
|
+
type: StringConstructor;
|
|
51
|
+
default: string;
|
|
52
|
+
};
|
|
53
|
+
debug: {
|
|
54
|
+
type: BooleanConstructor;
|
|
55
|
+
default: boolean;
|
|
56
|
+
};
|
|
57
|
+
pauseMode: {
|
|
58
|
+
type: NumberConstructor;
|
|
59
|
+
default: number;
|
|
60
|
+
validator: (value: number) => boolean;
|
|
61
|
+
};
|
|
62
|
+
}>> & Readonly<{}> & {}>;
|
|
63
|
+
videoUrl: import("vue").Ref<string, string>;
|
|
64
|
+
errorMsg: import("vue").Ref<string, string>;
|
|
65
|
+
showBottomBar: import("vue").Ref<boolean, boolean>;
|
|
66
|
+
playerRef: import("vue").ShallowRef<any, any>;
|
|
67
|
+
isPlaying: import("vue").Ref<boolean, boolean>;
|
|
68
|
+
isVolumeMuted: import("vue").Ref<boolean, boolean>;
|
|
69
|
+
initPlayer: () => Promise<void>;
|
|
70
|
+
handleVideoInfo: () => void;
|
|
71
|
+
handleMute: (mute: boolean) => void;
|
|
72
|
+
EasyPlayer: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
73
|
+
url: {
|
|
74
|
+
type: StringConstructor;
|
|
75
|
+
default: string;
|
|
76
|
+
};
|
|
77
|
+
accessToken: {
|
|
78
|
+
type: StringConstructor;
|
|
79
|
+
default: string;
|
|
80
|
+
};
|
|
81
|
+
areaName: {
|
|
82
|
+
type: StringConstructor;
|
|
83
|
+
default: string;
|
|
84
|
+
};
|
|
85
|
+
deviceSerial: {
|
|
86
|
+
type: StringConstructor;
|
|
87
|
+
default: string;
|
|
88
|
+
};
|
|
89
|
+
platformTypeName: {
|
|
90
|
+
type: StringConstructor;
|
|
91
|
+
default: string;
|
|
92
|
+
};
|
|
93
|
+
debug: {
|
|
94
|
+
type: BooleanConstructor;
|
|
95
|
+
default: boolean;
|
|
96
|
+
};
|
|
97
|
+
pauseMode: {
|
|
98
|
+
type: NumberConstructor;
|
|
99
|
+
default: number;
|
|
100
|
+
validator: (value: number) => boolean;
|
|
101
|
+
};
|
|
102
|
+
}>, {
|
|
103
|
+
props: import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
|
104
|
+
url: {
|
|
105
|
+
type: StringConstructor;
|
|
106
|
+
default: string;
|
|
107
|
+
};
|
|
108
|
+
accessToken: {
|
|
109
|
+
type: StringConstructor;
|
|
110
|
+
default: string;
|
|
111
|
+
};
|
|
112
|
+
areaName: {
|
|
113
|
+
type: StringConstructor;
|
|
114
|
+
default: string;
|
|
115
|
+
};
|
|
116
|
+
deviceSerial: {
|
|
117
|
+
type: StringConstructor;
|
|
118
|
+
default: string;
|
|
119
|
+
};
|
|
120
|
+
platformTypeName: {
|
|
121
|
+
type: StringConstructor;
|
|
122
|
+
default: string;
|
|
123
|
+
};
|
|
124
|
+
debug: {
|
|
125
|
+
type: BooleanConstructor;
|
|
126
|
+
default: boolean;
|
|
127
|
+
};
|
|
128
|
+
pauseMode: {
|
|
129
|
+
type: NumberConstructor;
|
|
130
|
+
default: number;
|
|
131
|
+
validator: (value: number) => boolean;
|
|
132
|
+
};
|
|
133
|
+
}>> & Readonly<{
|
|
134
|
+
onPlay?: ((...args: any[]) => any) | undefined;
|
|
135
|
+
onPause?: ((...args: any[]) => any) | undefined;
|
|
136
|
+
onError?: ((...args: any[]) => any) | undefined;
|
|
137
|
+
onVideoInfo?: ((...args: any[]) => any) | undefined;
|
|
138
|
+
onTimeout?: ((...args: any[]) => any) | undefined;
|
|
139
|
+
onMute?: ((...args: any[]) => any) | undefined;
|
|
140
|
+
}> & {}>;
|
|
141
|
+
emits: (event: "error" | "play" | "pause" | "videoInfo" | "timeout" | "mute", ...args: any[]) => void;
|
|
142
|
+
slots: Readonly<{
|
|
143
|
+
[name: string]: import("vue").Slot<any> | undefined;
|
|
144
|
+
}>;
|
|
145
|
+
customBar: import("vue").ComputedRef<import("vue").Slot<any> | undefined>;
|
|
146
|
+
player: any;
|
|
147
|
+
id: string;
|
|
148
|
+
playerRef: import("vue").ShallowRef<HTMLDivElement | undefined, HTMLDivElement | undefined>;
|
|
149
|
+
playSuccess: import("vue").Ref<boolean, boolean>;
|
|
150
|
+
playUrl: import("vue").Ref<string, string>;
|
|
151
|
+
videoInfo: import("vue").Ref<any, any>;
|
|
152
|
+
eventHandlers: import("vue").Ref<Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>, Map<string, Function> | (Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>)>;
|
|
153
|
+
waitTimer: number | null;
|
|
154
|
+
restartTimer: import("vue").Ref<number | null, number | null>;
|
|
155
|
+
pauseCycleTimer: import("vue").Ref<number | null, number | null>;
|
|
156
|
+
resizeObserver: ResizeObserver | null;
|
|
157
|
+
createRetryCount: number;
|
|
158
|
+
MAX_CREATE_RETRY: number;
|
|
159
|
+
isUnmounted: boolean;
|
|
160
|
+
play: (url?: string) => void;
|
|
161
|
+
playerPause: () => void;
|
|
162
|
+
playerScreenShot: () => void;
|
|
163
|
+
formatUrl: (url: string) => string;
|
|
164
|
+
initPlayer: (url: string) => Promise<void>;
|
|
165
|
+
removePlayerDom: () => void;
|
|
166
|
+
createPlayerDom: () => Promise<HTMLDivElement>;
|
|
167
|
+
createPlayer: () => Promise<void>;
|
|
168
|
+
startPlayer: () => Promise<void>;
|
|
169
|
+
destroy: (flag?: boolean) => void;
|
|
170
|
+
}, {}, {}, {}, 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<{
|
|
171
|
+
url: {
|
|
172
|
+
type: StringConstructor;
|
|
173
|
+
default: string;
|
|
174
|
+
};
|
|
175
|
+
accessToken: {
|
|
176
|
+
type: StringConstructor;
|
|
177
|
+
default: string;
|
|
178
|
+
};
|
|
179
|
+
areaName: {
|
|
180
|
+
type: StringConstructor;
|
|
181
|
+
default: string;
|
|
182
|
+
};
|
|
183
|
+
deviceSerial: {
|
|
184
|
+
type: StringConstructor;
|
|
185
|
+
default: string;
|
|
186
|
+
};
|
|
187
|
+
platformTypeName: {
|
|
188
|
+
type: StringConstructor;
|
|
189
|
+
default: string;
|
|
190
|
+
};
|
|
191
|
+
debug: {
|
|
192
|
+
type: BooleanConstructor;
|
|
193
|
+
default: boolean;
|
|
194
|
+
};
|
|
195
|
+
pauseMode: {
|
|
196
|
+
type: NumberConstructor;
|
|
197
|
+
default: number;
|
|
198
|
+
validator: (value: number) => boolean;
|
|
199
|
+
};
|
|
200
|
+
}>> & Readonly<{
|
|
201
|
+
onPlay?: ((...args: any[]) => any) | undefined;
|
|
202
|
+
onPause?: ((...args: any[]) => any) | undefined;
|
|
203
|
+
onError?: ((...args: any[]) => any) | undefined;
|
|
204
|
+
onVideoInfo?: ((...args: any[]) => any) | undefined;
|
|
205
|
+
onTimeout?: ((...args: any[]) => any) | undefined;
|
|
206
|
+
onMute?: ((...args: any[]) => any) | undefined;
|
|
207
|
+
}>, {
|
|
208
|
+
url: string;
|
|
209
|
+
accessToken: string;
|
|
210
|
+
debug: boolean;
|
|
211
|
+
deviceSerial: string;
|
|
212
|
+
areaName: string;
|
|
213
|
+
platformTypeName: string;
|
|
214
|
+
pauseMode: number;
|
|
215
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
216
|
+
ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
217
|
+
videoName: {
|
|
218
|
+
type: StringConstructor;
|
|
219
|
+
default: string;
|
|
220
|
+
};
|
|
221
|
+
message: {
|
|
222
|
+
type: StringConstructor;
|
|
223
|
+
default: string;
|
|
224
|
+
};
|
|
225
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
226
|
+
videoName: {
|
|
227
|
+
type: StringConstructor;
|
|
228
|
+
default: string;
|
|
229
|
+
};
|
|
230
|
+
message: {
|
|
231
|
+
type: StringConstructor;
|
|
232
|
+
default: string;
|
|
233
|
+
};
|
|
234
|
+
}>> & Readonly<{}>, {
|
|
235
|
+
message: string;
|
|
236
|
+
videoName: string;
|
|
237
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
238
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
239
|
+
url: {
|
|
240
|
+
type: StringConstructor;
|
|
241
|
+
default: string;
|
|
242
|
+
};
|
|
243
|
+
accessToken: {
|
|
244
|
+
type: StringConstructor;
|
|
245
|
+
default: string;
|
|
246
|
+
};
|
|
247
|
+
areaName: {
|
|
248
|
+
type: StringConstructor;
|
|
249
|
+
default: string;
|
|
250
|
+
};
|
|
251
|
+
deviceSerial: {
|
|
252
|
+
type: StringConstructor;
|
|
253
|
+
default: string;
|
|
254
|
+
};
|
|
255
|
+
platformTypeName: {
|
|
256
|
+
type: StringConstructor;
|
|
257
|
+
default: string;
|
|
258
|
+
};
|
|
259
|
+
debug: {
|
|
260
|
+
type: BooleanConstructor;
|
|
261
|
+
default: boolean;
|
|
262
|
+
};
|
|
263
|
+
pauseMode: {
|
|
264
|
+
type: NumberConstructor;
|
|
265
|
+
default: number;
|
|
266
|
+
validator: (value: number) => boolean;
|
|
267
|
+
};
|
|
268
|
+
}>> & Readonly<{}>, {
|
|
269
|
+
url: string;
|
|
270
|
+
accessToken: string;
|
|
271
|
+
debug: boolean;
|
|
272
|
+
deviceSerial: string;
|
|
273
|
+
areaName: string;
|
|
274
|
+
platformTypeName: string;
|
|
275
|
+
pauseMode: number;
|
|
276
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
277
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icc-player.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { defineComponent, ref, shallowRef, onMounted, openBlock, createBlock, createCommentVNode } from 'vue';
|
|
2
|
+
import { ElMessage } from 'element-plus';
|
|
3
|
+
import './easyPlayer.vue.mjs';
|
|
4
|
+
import './errorPage.vue.mjs';
|
|
5
|
+
import { TzjPlayerProps } from './tzj-player.mjs';
|
|
6
|
+
import { getVideoUrlByCamreaId } from './icc-player.mjs';
|
|
7
|
+
import _sfc_main$1 from './errorPage.vue2.mjs';
|
|
8
|
+
import _sfc_main$2 from './easyPlayer.vue2.mjs';
|
|
9
|
+
|
|
10
|
+
var __defProp = Object.defineProperty;
|
|
11
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
12
|
+
var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
13
|
+
...{
|
|
14
|
+
name: "iccPlayer"
|
|
15
|
+
},
|
|
16
|
+
__name: "icc-player",
|
|
17
|
+
props: TzjPlayerProps,
|
|
18
|
+
setup(__props) {
|
|
19
|
+
const props = __props;
|
|
20
|
+
const videoUrl = ref("");
|
|
21
|
+
const errorMsg = ref("");
|
|
22
|
+
const showBottomBar = ref(false);
|
|
23
|
+
const playerRef = shallowRef();
|
|
24
|
+
const isPlaying = ref(false);
|
|
25
|
+
const isVolumeMuted = ref(true);
|
|
26
|
+
const initPlayer = /* @__PURE__ */ __name(async () => {
|
|
27
|
+
try {
|
|
28
|
+
if (!props.deviceSerial) {
|
|
29
|
+
errorMsg.value = "\u8BBE\u5907\u5E8F\u5217\u53F7\u4E0D\u80FD\u4E3A\u7A7A";
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const { code, data, msg } = await getVideoUrlByCamreaId(props.deviceSerial);
|
|
33
|
+
if (props.debug) {
|
|
34
|
+
console.log("\u83B7\u53D6\u4E91\u667A\u773C\u8BBE\u5907\u89C6\u9891\u64AD\u653E\u5730\u5740", data);
|
|
35
|
+
}
|
|
36
|
+
if (code !== 200) {
|
|
37
|
+
errorMsg.value = "\u83B7\u53D6\u89C6\u9891\u64AD\u653E\u5730\u5740\u5931\u8D25";
|
|
38
|
+
ElMessage.error(msg || "\u6570\u636E\u83B7\u53D6\u5931\u8D25!");
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
videoUrl.value = data != null ? data : "";
|
|
42
|
+
errorMsg.value = "";
|
|
43
|
+
} catch (error) {
|
|
44
|
+
if (props.debug) {
|
|
45
|
+
console.error("\u521D\u59CB\u5316\u4E91\u667A\u773C\u64AD\u653E\u5668\u5931\u8D25:", error);
|
|
46
|
+
}
|
|
47
|
+
errorMsg.value = `\u521D\u59CB\u5316\u5931\u8D25: ${error instanceof Error ? error.message : "\u672A\u77E5\u9519\u8BEF"}`;
|
|
48
|
+
}
|
|
49
|
+
}, "initPlayer");
|
|
50
|
+
const handleVideoInfo = /* @__PURE__ */ __name(() => {
|
|
51
|
+
var _a;
|
|
52
|
+
isVolumeMuted.value = (_a = playerRef.value) == null ? void 0 : _a.isMute();
|
|
53
|
+
}, "handleVideoInfo");
|
|
54
|
+
const handleMute = /* @__PURE__ */ __name((mute) => {
|
|
55
|
+
isVolumeMuted.value = mute;
|
|
56
|
+
}, "handleMute");
|
|
57
|
+
onMounted(async () => {
|
|
58
|
+
initPlayer();
|
|
59
|
+
});
|
|
60
|
+
return (_ctx, _cache) => {
|
|
61
|
+
return errorMsg.value ? (openBlock(), createBlock(_sfc_main$1, {
|
|
62
|
+
key: 0,
|
|
63
|
+
message: errorMsg.value
|
|
64
|
+
}, null, 8, ["message"])) : videoUrl.value ? (openBlock(), createBlock(_sfc_main$2, {
|
|
65
|
+
key: 1,
|
|
66
|
+
ref_key: "playerRef",
|
|
67
|
+
ref: playerRef,
|
|
68
|
+
url: videoUrl.value,
|
|
69
|
+
debug: _ctx.debug,
|
|
70
|
+
"access-token": _ctx.accessToken,
|
|
71
|
+
"platform-type-name": _ctx.platformTypeName,
|
|
72
|
+
"device-serial": _ctx.deviceSerial,
|
|
73
|
+
"area-name": _ctx.areaName,
|
|
74
|
+
"pause-mode": _ctx.pauseMode,
|
|
75
|
+
onMouseenter: _cache[0] || (_cache[0] = ($event) => showBottomBar.value = true),
|
|
76
|
+
onMouseleave: _cache[1] || (_cache[1] = ($event) => showBottomBar.value = false),
|
|
77
|
+
onPause: _cache[2] || (_cache[2] = ($event) => isPlaying.value = false),
|
|
78
|
+
onPlay: _cache[3] || (_cache[3] = ($event) => isPlaying.value = true),
|
|
79
|
+
onVideoInfo: handleVideoInfo,
|
|
80
|
+
onMute: handleMute
|
|
81
|
+
}, null, 8, ["url", "debug", "access-token", "platform-type-name", "device-serial", "area-name", "pause-mode"])) : createCommentVNode("v-if", true);
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
export { _sfc_main as default };
|
|
87
|
+
//# sourceMappingURL=icc-player.vue2.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icc-player.vue2.mjs","sources":["../../../../../../../packages/components/tzj-player/src/icc-player.vue"],"sourcesContent":["<!-- 大华播放器 -->\n<!-- packages\\components\\tzj-player\\src\\icc-player.vue -->\n<script setup lang=\"ts\">\nimport { onMounted, ref, shallowRef } from \"vue\";\nimport { ElMessage } from \"element-plus\";\nimport EasyPlayer from \"./easyPlayer.vue\";\nimport ErrorPage from \"./errorPage.vue\";\nimport { TzjPlayerProps } from \"./tzj-player\";\nimport { getVideoUrlByCamreaId } from \"./icc-player\";\n\ndefineOptions({\n name: \"iccPlayer\",\n});\n\nconst props = defineProps(TzjPlayerProps);\nconst videoUrl = ref(\"\");\nconst errorMsg = ref(\"\");\nconst showBottomBar = ref(false);\n\n// 播放器相关状态\nconst playerRef = shallowRef();\nconst isPlaying = ref(false); // 是否播放,播放true,暂停false\nconst isVolumeMuted = ref(true);\n\n/**\n * 初始化云智眼播放器\n * 获取设备通道ID和视频播放地址\n */\nconst initPlayer = async (): Promise<void> => {\n try {\n if (!props.deviceSerial) {\n errorMsg.value = \"设备序列号不能为空\";\n return;\n }\n\n const { code, data, msg } = await getVideoUrlByCamreaId(props.deviceSerial);\n\n if (props.debug) {\n console.log(\"获取云智眼设备视频播放地址\", data);\n }\n\n if (code !== 200) {\n errorMsg.value = \"获取视频播放地址失败\";\n ElMessage.error(msg || \"数据获取失败!\");\n return;\n }\n\n videoUrl.value = data ?? \"\";\n errorMsg.value = \"\"; // 清除错误信息\n } catch (error) {\n if (props.debug) {\n console.error(\"初始化云智眼播放器失败:\", error);\n }\n errorMsg.value = `初始化失败: ${error instanceof Error ? error.message : \"未知错误\"}`;\n }\n};\n\n// 获取视频信息,判断当前是否为静音状态\nconst handleVideoInfo = () => {\n // 判断是否静音\n isVolumeMuted.value = playerRef.value?.isMute();\n};\nconst handleMute = (mute: boolean) => {\n isVolumeMuted.value = mute;\n};\n\nonMounted(async () => {\n initPlayer();\n});\n</script>\n\n<template>\n <ErrorPage v-if=\"errorMsg\" :message=\"errorMsg\" />\n <EasyPlayer\n v-else-if=\"videoUrl\"\n ref=\"playerRef\"\n :url=\"videoUrl\"\n :debug=\"debug\"\n :access-token=\"accessToken\"\n :platform-type-name=\"platformTypeName\"\n :device-serial=\"deviceSerial\"\n :area-name=\"areaName\"\n :pause-mode=\"pauseMode\"\n @mouseenter=\"showBottomBar = true\"\n @mouseleave=\"showBottomBar = false\"\n @pause=\"isPlaying = false\"\n @play=\"isPlaying = true\"\n @video-info=\"handleVideoInfo\"\n @mute=\"handleMute\"\n >\n </EasyPlayer>\n</template>\n"],"names":["_createBlock","ErrorPage","EasyPlayer","debug","accessToken","platformTypeName","deviceSerial","areaName","pauseMode"],"mappings":"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"}
|