@yimou6/common-ui 1.11.14 → 1.12.1
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 +10 -10
- package/cdn/index.cdn.js.map +1 -1
- package/cdn/index.cdn.mjs +10 -10
- package/cdn/index.cdn.mjs.map +1 -1
- package/cdn/index.css +1 -1
- package/es/components/tzj-player/index.d.ts +40 -8
- package/es/components/tzj-player/src/ctyun-player.vue.d.ts +5 -1
- package/es/components/tzj-player/src/easyPlayer.vue.d.ts +5 -1
- package/es/components/tzj-player/src/easyPlayer.vue2.mjs +128 -80
- package/es/components/tzj-player/src/easyPlayer.vue2.mjs.map +1 -1
- package/es/components/tzj-player/src/newPlayer.vue.d.ts +7 -0
- package/es/components/tzj-player/src/newPlayer.vue.mjs +6 -0
- package/es/components/tzj-player/src/newPlayer.vue.mjs.map +1 -0
- package/es/components/tzj-player/src/newPlayer.vue2.mjs +67 -0
- package/es/components/tzj-player/src/newPlayer.vue2.mjs.map +1 -0
- package/es/components/tzj-player/src/tzj-player.vue.d.ts +40 -8
- package/es/components/tzj-player/src/tzj-player.vue2.mjs +5 -5
- package/es/components/tzj-player/src/tzj-player.vue2.mjs.map +1 -1
- package/es/components/tzj-player/src/xgplayer.vue.d.ts +5 -1
- package/es/components/tzj-player/src/xgplayer.vue2.mjs +77 -23
- package/es/components/tzj-player/src/xgplayer.vue2.mjs.map +1 -1
- package/es/components/tzj-player/src/yunzhiyanPlayer.vue.d.ts +5 -1
- package/es/components/tzj-player/src/yunzhiyanPlayer.vue2.mjs +3 -3
- package/es/components/tzj-player/src/yunzhiyanPlayer.vue2.mjs.map +1 -1
- package/es/installer.d.ts +1 -1
- package/es/installer.mjs.map +1 -1
- package/lib/components/tzj-player/index.d.ts +40 -8
- package/lib/components/tzj-player/src/ctyun-player.vue.d.ts +5 -1
- package/lib/components/tzj-player/src/easyPlayer.vue.d.ts +5 -1
- package/lib/components/tzj-player/src/easyPlayer.vue2.js +128 -80
- package/lib/components/tzj-player/src/easyPlayer.vue2.js.map +1 -1
- package/lib/components/tzj-player/src/newPlayer.vue.d.ts +7 -0
- package/lib/components/tzj-player/src/newPlayer.vue.js +10 -0
- package/lib/components/tzj-player/src/newPlayer.vue.js.map +1 -0
- package/lib/components/tzj-player/src/newPlayer.vue2.js +71 -0
- package/lib/components/tzj-player/src/newPlayer.vue2.js.map +1 -0
- package/lib/components/tzj-player/src/tzj-player.vue.d.ts +40 -8
- package/lib/components/tzj-player/src/tzj-player.vue2.js +5 -5
- package/lib/components/tzj-player/src/tzj-player.vue2.js.map +1 -1
- package/lib/components/tzj-player/src/xgplayer.vue.d.ts +5 -1
- package/lib/components/tzj-player/src/xgplayer.vue2.js +76 -22
- package/lib/components/tzj-player/src/xgplayer.vue2.js.map +1 -1
- package/lib/components/tzj-player/src/yunzhiyanPlayer.vue.d.ts +5 -1
- package/lib/components/tzj-player/src/yunzhiyanPlayer.vue2.js +3 -3
- package/lib/components/tzj-player/src/yunzhiyanPlayer.vue2.js.map +1 -1
- package/lib/installer.d.ts +1 -1
- package/lib/installer.js.map +1 -1
- package/package.json +1 -1
- package/theme-default/i-tzj-player.css +1 -1
- package/theme-default/index.css +1 -1
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var vue = require('vue');
|
|
6
|
+
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
9
|
+
const _hoisted_1 = {
|
|
10
|
+
id: "player",
|
|
11
|
+
class: "w-50 h-50"
|
|
12
|
+
};
|
|
13
|
+
var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
14
|
+
...{
|
|
15
|
+
name: ""
|
|
16
|
+
},
|
|
17
|
+
__name: "newPlayer",
|
|
18
|
+
setup(__props) {
|
|
19
|
+
const player = vue.ref(null);
|
|
20
|
+
function destroy() {
|
|
21
|
+
var _a;
|
|
22
|
+
(_a = player.value) == null ? void 0 : _a.destroy();
|
|
23
|
+
player.value = null;
|
|
24
|
+
}
|
|
25
|
+
__name(destroy, "destroy");
|
|
26
|
+
function play() {
|
|
27
|
+
player.value = new window.EasyPlayerPro(document.getElementById("player"), {
|
|
28
|
+
isLive: true,
|
|
29
|
+
// 是否直播
|
|
30
|
+
hasAudio: true,
|
|
31
|
+
// 是否解析音频
|
|
32
|
+
bufferTime: 0.2,
|
|
33
|
+
// 缓存时长
|
|
34
|
+
stretch: true,
|
|
35
|
+
// 加视频拉伸
|
|
36
|
+
MSE: false,
|
|
37
|
+
WCS: false,
|
|
38
|
+
WASM: true,
|
|
39
|
+
gpuDecoder: true,
|
|
40
|
+
debug: false
|
|
41
|
+
// operateBtns: {
|
|
42
|
+
// performance: false,
|
|
43
|
+
// },
|
|
44
|
+
});
|
|
45
|
+
console.log("\u{1F680} ~ player.value:", player.value);
|
|
46
|
+
player.value.play("http://192.168.111.212:8099/tzjzlm/23_39-1/hls.m3u8");
|
|
47
|
+
}
|
|
48
|
+
__name(play, "play");
|
|
49
|
+
function initPlayer() {
|
|
50
|
+
console.log("initPlayer");
|
|
51
|
+
destroy();
|
|
52
|
+
try {
|
|
53
|
+
play();
|
|
54
|
+
} catch (error) {
|
|
55
|
+
setTimeout(() => {
|
|
56
|
+
initPlayer();
|
|
57
|
+
}, 1e3);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
__name(initPlayer, "initPlayer");
|
|
61
|
+
vue.onMounted(() => {
|
|
62
|
+
initPlayer();
|
|
63
|
+
});
|
|
64
|
+
return (_ctx, _cache) => {
|
|
65
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1);
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
exports.default = _sfc_main;
|
|
71
|
+
//# sourceMappingURL=newPlayer.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"newPlayer.vue2.js","sources":["../../../../../../../packages/components/tzj-player/src/newPlayer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\n\ndefineOptions({\n name: \"\",\n});\nconst player = ref<any>(null);\nfunction destroy() {\n // player.value?.pause();\n player.value?.destroy();\n player.value = null;\n}\nfunction play() {\n player.value = new window.EasyPlayerPro(document.getElementById(\"player\"), {\n isLive: true, // 是否直播\n hasAudio: true, // 是否解析音频\n bufferTime: 0.2, // 缓存时长\n stretch: true, // 加视频拉伸\n MSE: false,\n WCS: false,\n WASM: true,\n gpuDecoder: true,\n debug: false,\n // operateBtns: {\n // performance: false,\n // },\n });\n console.log(\"🚀 ~ player.value:\", player.value);\n\n player.value.play(\"http://192.168.111.212:8099/tzjzlm/23_39-1/hls.m3u8\");\n}\nfunction initPlayer() {\n console.log(\"initPlayer\");\n destroy();\n try {\n play();\n } catch (error) {\n setTimeout(() => {\n initPlayer();\n }, 1000);\n }\n}\n\nonMounted(() => {\n initPlayer();\n});\n</script>\n\n<template>\n <div id=\"player\" class=\"w-50 h-50\" />\n</template>\n\n<style lang=\"scss\" scoped></style>\n"],"names":["ref","onMounted","_openBlock","_createElementBlock"],"mappings":";;;;;;;;;;;;;;;;;;AAMA,IAAM,MAAA,MAAA,GAASA,QAAS,IAAI,CAAA;AAC5B,IAAA,SAAS,OAAU,GAAA;;AAEjB,MAAA,CAAA,EAAA,GAAA,MAAA,CAAO,UAAP,IAAc,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAA,EAAA;AACd,MAAA,MAAA,CAAO,KAAQ,GAAA,IAAA;AAAA;AAHR,IAAA,MAAA,CAAA,OAAA,EAAA,SAAA,CAAA;AAKT,IAAA,SAAS,IAAO,GAAA;AACd,MAAA,MAAA,CAAO,QAAQ,IAAI,MAAA,CAAO,cAAc,QAAS,CAAA,cAAA,CAAe,QAAQ,CAAG,EAAA;AAAA,QACzE,MAAQ,EAAA,IAAA;AAAA;AAAA,QACR,QAAU,EAAA,IAAA;AAAA;AAAA,QACV,UAAY,EAAA,GAAA;AAAA;AAAA,QACZ,OAAS,EAAA,IAAA;AAAA;AAAA,QACT,GAAK,EAAA,KAAA;AAAA,QACL,GAAK,EAAA,KAAA;AAAA,QACL,IAAM,EAAA,IAAA;AAAA,QACN,UAAY,EAAA,IAAA;AAAA,QACZ,KAAO,EAAA;AAAA;AAAA;AAAA;AAAA,OAIR,CAAA;AACD,MAAQ,OAAA,CAAA,GAAA,CAAI,2BAAsB,EAAA,MAAA,CAAO,KAAK,CAAA;AAE9C,MAAO,MAAA,CAAA,KAAA,CAAM,KAAK,qDAAqD,CAAA;AAAA;AAjBhE,IAAA,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAmBT,IAAA,SAAS,UAAa,GAAA;AACpB,MAAA,OAAA,CAAQ,IAAI,YAAY,CAAA;AACxB,MAAQ,OAAA,EAAA;AACR,MAAI,IAAA;AACF,QAAK,IAAA,EAAA;AAAA,eACE,KAAO,EAAA;AACd,QAAA,UAAA,CAAW,MAAM;AACf,UAAW,UAAA,EAAA;AAAA,WACV,GAAI,CAAA;AAAA;AACT;AATO,IAAA,MAAA,CAAA,UAAA,EAAA,YAAA,CAAA;AAYT,IAAAC,aAAA,CAAU,MAAM;AACd,MAAW,UAAA,EAAA;AAAA,KACZ,CAAA;;AAIC,MAAA,OAAAC,aAAA,EAAA,EAAAC,sBAAqC,CAAA,KAAA,EAArC,UAAqC,CAAA;AAAA;;;;;;"}
|
|
@@ -1493,6 +1493,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
1493
1493
|
videoInfo: import("vue").Ref<any, any>;
|
|
1494
1494
|
realFullscreen: import("vue").Ref<boolean, boolean>;
|
|
1495
1495
|
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>>)>;
|
|
1496
|
+
waitTimer: number | null;
|
|
1497
|
+
restartTimer: import("vue").Ref<number | null, number | null>;
|
|
1498
|
+
isUnmounted: boolean;
|
|
1496
1499
|
play: (url?: string) => void;
|
|
1497
1500
|
playerPause: () => void;
|
|
1498
1501
|
playerScreenShot: () => void;
|
|
@@ -1502,7 +1505,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
1502
1505
|
removePlayerDom: () => void;
|
|
1503
1506
|
createPlayerDom: () => void;
|
|
1504
1507
|
createPlayer: () => Promise<void>;
|
|
1505
|
-
|
|
1508
|
+
startPlayer: () => Promise<void>;
|
|
1509
|
+
destroy: (flag?: boolean) => void;
|
|
1506
1510
|
ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
1507
1511
|
videoName: {
|
|
1508
1512
|
type: StringConstructor;
|
|
@@ -3197,6 +3201,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
3197
3201
|
videoInfo: import("vue").Ref<any, any>;
|
|
3198
3202
|
realFullscreen: import("vue").Ref<boolean, boolean>;
|
|
3199
3203
|
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>>)>;
|
|
3204
|
+
waitTimer: number | null;
|
|
3205
|
+
restartTimer: import("vue").Ref<number | null, number | null>;
|
|
3206
|
+
isUnmounted: boolean;
|
|
3200
3207
|
play: (url?: string) => void;
|
|
3201
3208
|
playerPause: () => void;
|
|
3202
3209
|
playerScreenShot: () => void;
|
|
@@ -3206,7 +3213,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
3206
3213
|
removePlayerDom: () => void;
|
|
3207
3214
|
createPlayerDom: () => void;
|
|
3208
3215
|
createPlayer: () => Promise<void>;
|
|
3209
|
-
|
|
3216
|
+
startPlayer: () => Promise<void>;
|
|
3217
|
+
destroy: (flag?: boolean) => void;
|
|
3210
3218
|
ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
3211
3219
|
videoName: {
|
|
3212
3220
|
type: StringConstructor;
|
|
@@ -3420,6 +3428,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
3420
3428
|
videoInfo: import("vue").Ref<any, any>;
|
|
3421
3429
|
realFullscreen: import("vue").Ref<boolean, boolean>;
|
|
3422
3430
|
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>>)>;
|
|
3431
|
+
waitTimer: number | null;
|
|
3432
|
+
restartTimer: import("vue").Ref<number | null, number | null>;
|
|
3433
|
+
isUnmounted: boolean;
|
|
3423
3434
|
play: (url?: string) => void;
|
|
3424
3435
|
playerPause: () => void;
|
|
3425
3436
|
playerScreenShot: () => void;
|
|
@@ -3429,7 +3440,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
3429
3440
|
removePlayerDom: () => void;
|
|
3430
3441
|
createPlayerDom: () => void;
|
|
3431
3442
|
createPlayer: () => Promise<void>;
|
|
3432
|
-
|
|
3443
|
+
startPlayer: () => Promise<void>;
|
|
3444
|
+
destroy: (flag?: boolean) => void;
|
|
3433
3445
|
ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
3434
3446
|
videoName: {
|
|
3435
3447
|
type: StringConstructor;
|
|
@@ -4939,6 +4951,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
4939
4951
|
videoInfo: import("vue").Ref<any, any>;
|
|
4940
4952
|
realFullscreen: import("vue").Ref<boolean, boolean>;
|
|
4941
4953
|
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>>)>;
|
|
4954
|
+
waitTimer: number | null;
|
|
4955
|
+
restartTimer: import("vue").Ref<number | null, number | null>;
|
|
4956
|
+
isUnmounted: boolean;
|
|
4942
4957
|
play: (url?: string) => void;
|
|
4943
4958
|
playerPause: () => void;
|
|
4944
4959
|
playerScreenShot: () => void;
|
|
@@ -4948,7 +4963,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
4948
4963
|
removePlayerDom: () => void;
|
|
4949
4964
|
createPlayerDom: () => void;
|
|
4950
4965
|
createPlayer: () => Promise<void>;
|
|
4951
|
-
|
|
4966
|
+
startPlayer: () => Promise<void>;
|
|
4967
|
+
destroy: (flag?: boolean) => void;
|
|
4952
4968
|
ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
4953
4969
|
videoName: {
|
|
4954
4970
|
type: StringConstructor;
|
|
@@ -6641,6 +6657,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
6641
6657
|
videoInfo: import("vue").Ref<any, any>;
|
|
6642
6658
|
realFullscreen: import("vue").Ref<boolean, boolean>;
|
|
6643
6659
|
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>>)>;
|
|
6660
|
+
waitTimer: number | null;
|
|
6661
|
+
restartTimer: import("vue").Ref<number | null, number | null>;
|
|
6662
|
+
isUnmounted: boolean;
|
|
6644
6663
|
play: (url?: string) => void;
|
|
6645
6664
|
playerPause: () => void;
|
|
6646
6665
|
playerScreenShot: () => void;
|
|
@@ -6650,7 +6669,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
6650
6669
|
removePlayerDom: () => void;
|
|
6651
6670
|
createPlayerDom: () => void;
|
|
6652
6671
|
createPlayer: () => Promise<void>;
|
|
6653
|
-
|
|
6672
|
+
startPlayer: () => Promise<void>;
|
|
6673
|
+
destroy: (flag?: boolean) => void;
|
|
6654
6674
|
ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
6655
6675
|
videoName: {
|
|
6656
6676
|
type: StringConstructor;
|
|
@@ -6867,6 +6887,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
6867
6887
|
videoInfo: import("vue").Ref<any, any>;
|
|
6868
6888
|
realFullscreen: import("vue").Ref<boolean, boolean>;
|
|
6869
6889
|
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>>)>;
|
|
6890
|
+
waitTimer: number | null;
|
|
6891
|
+
restartTimer: import("vue").Ref<number | null, number | null>;
|
|
6892
|
+
isUnmounted: boolean;
|
|
6870
6893
|
play: (url?: string) => void;
|
|
6871
6894
|
playerPause: () => void;
|
|
6872
6895
|
playerScreenShot: () => void;
|
|
@@ -6876,7 +6899,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
6876
6899
|
removePlayerDom: () => void;
|
|
6877
6900
|
createPlayerDom: () => void;
|
|
6878
6901
|
createPlayer: () => Promise<void>;
|
|
6879
|
-
|
|
6902
|
+
startPlayer: () => Promise<void>;
|
|
6903
|
+
destroy: (flag?: boolean) => void;
|
|
6880
6904
|
ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
6881
6905
|
videoName: {
|
|
6882
6906
|
type: StringConstructor;
|
|
@@ -8386,6 +8410,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
8386
8410
|
videoInfo: import("vue").Ref<any, any>;
|
|
8387
8411
|
realFullscreen: import("vue").Ref<boolean, boolean>;
|
|
8388
8412
|
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>>)>;
|
|
8413
|
+
waitTimer: number | null;
|
|
8414
|
+
restartTimer: import("vue").Ref<number | null, number | null>;
|
|
8415
|
+
isUnmounted: boolean;
|
|
8389
8416
|
play: (url?: string) => void;
|
|
8390
8417
|
playerPause: () => void;
|
|
8391
8418
|
playerScreenShot: () => void;
|
|
@@ -8395,7 +8422,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
8395
8422
|
removePlayerDom: () => void;
|
|
8396
8423
|
createPlayerDom: () => void;
|
|
8397
8424
|
createPlayer: () => Promise<void>;
|
|
8398
|
-
|
|
8425
|
+
startPlayer: () => Promise<void>;
|
|
8426
|
+
destroy: (flag?: boolean) => void;
|
|
8399
8427
|
ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
8400
8428
|
videoName: {
|
|
8401
8429
|
type: StringConstructor;
|
|
@@ -10088,6 +10116,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
10088
10116
|
videoInfo: import("vue").Ref<any, any>;
|
|
10089
10117
|
realFullscreen: import("vue").Ref<boolean, boolean>;
|
|
10090
10118
|
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>>)>;
|
|
10119
|
+
waitTimer: number | null;
|
|
10120
|
+
restartTimer: import("vue").Ref<number | null, number | null>;
|
|
10121
|
+
isUnmounted: boolean;
|
|
10091
10122
|
play: (url?: string) => void;
|
|
10092
10123
|
playerPause: () => void;
|
|
10093
10124
|
playerScreenShot: () => void;
|
|
@@ -10097,7 +10128,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
10097
10128
|
removePlayerDom: () => void;
|
|
10098
10129
|
createPlayerDom: () => void;
|
|
10099
10130
|
createPlayer: () => Promise<void>;
|
|
10100
|
-
|
|
10131
|
+
startPlayer: () => Promise<void>;
|
|
10132
|
+
destroy: (flag?: boolean) => void;
|
|
10101
10133
|
ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
10102
10134
|
videoName: {
|
|
10103
10135
|
type: StringConstructor;
|
|
@@ -6,9 +6,9 @@ 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('./errorPage.vue.js');
|
|
9
10
|
var tzjPlayer = require('./tzj-player.js');
|
|
10
11
|
require('./ysPlayer.vue.js');
|
|
11
|
-
require('./errorPage.vue.js');
|
|
12
12
|
require('./yunzhiyanPlayer.vue.js');
|
|
13
13
|
var yunzhiyanPlayer_vue_vue_type_script_setup_true_lang = require('./yunzhiyanPlayer.vue2.js');
|
|
14
14
|
var ysPlayer_vue_vue_type_script_setup_true_lang = require('./ysPlayer.vue2.js');
|
|
@@ -144,9 +144,9 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
144
144
|
vue.createCommentVNode(" \u9519\u8BEF\u72B6\u6001\u663E\u793A "),
|
|
145
145
|
errorState.value ? (vue.openBlock(), vue.createBlock(errorPage_vue_vue_type_script_setup_true_lang.default, {
|
|
146
146
|
key: 0,
|
|
147
|
-
|
|
147
|
+
"video-name": _ctx.areaName || _ctx.deviceSerial,
|
|
148
148
|
message: errorState.value.message
|
|
149
|
-
}, null, 8, ["
|
|
149
|
+
}, null, 8, ["video-name", "message"])) : shouldShowPlayer.value ? (vue.openBlock(), vue.createElementBlock(
|
|
150
150
|
vue.Fragment,
|
|
151
151
|
{ key: 1 },
|
|
152
152
|
[
|
|
@@ -170,9 +170,9 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
170
170
|
[
|
|
171
171
|
vue.createCommentVNode(" \u65E0\u53EF\u7528\u64AD\u653E\u5668 "),
|
|
172
172
|
vue.createVNode(errorPage_vue_vue_type_script_setup_true_lang.default, {
|
|
173
|
-
|
|
173
|
+
"video-name": _ctx.areaName || _ctx.deviceSerial,
|
|
174
174
|
message: "\u65E0\u4FE1\u53F7"
|
|
175
|
-
}, null, 8, ["
|
|
175
|
+
}, null, 8, ["video-name"])
|
|
176
176
|
],
|
|
177
177
|
2112
|
|
178
178
|
/* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
|
|
@@ -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 { debounce } from \"lodash-es\";\nimport { computed, shallowRef, toRefs, watch } from \"vue\";\nimport CtyunPlayer from \"./ctyun-player.vue\";\nimport EasyPlayer from \"./easyPlayer.vue\";\nimport ErrorPage from \"./errorPage.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// 防抖处理组件渲染更新,避免频繁切换播放器类型\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 ([newUrl, newPlatform, newToken], [oldUrl, oldPlatform, oldToken]) => {\n // 只有当值真正发生变化时才更新\n if (\n newUrl !== oldUrl ||\n newPlatform !== oldPlatform ||\n newToken !== oldToken\n ) {\n // 更新播放器组件\n updatePlayerComponent();\n }\n },\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 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 <ErrorPage\n v-if=\"errorState\"\n :video-name=\"areaName || deviceSerial\"\n :message=\"errorState.message\"\n />\n\n <!-- 播放器组件 -->\n <component\n :is=\"playerComponent\"\n v-else-if=\"shouldShowPlayer\"\n ref=\"compRef\"\n v-bind=\"props\"\n />\n\n <!-- 无可用播放器 -->\n <ErrorPage v-else :video-name=\"areaName || deviceSerial\" message=\"无信号\" />\n </div>\n</template>\n"],"names":["toRefs","shallowRef","debounce","watch","YunzhiyanPlayer","YsPlayer","CtyunPlayer","computed","EasyPlayer","isSupportedProtocol","getVideoType","_openBlock","_createElementBlock","_createCommentVNode","_createBlock","ErrorPage","areaName","deviceSerial","_Fragment","_resolveDynamicComponent","_mergeProps","_createVNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,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;AAG3B,IAAM,MAAA,qBAAA,GAAwBC,kBAAS,MAAM;;AAE3C,MAAA,IAAI,QAAQ,KAAO,EAAA;AACjB,QAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,OAAM,OAAd,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,CAAA;AAAA;AACF,OACC,GAAG,CAAA;AAGN,IAAAC,SAAA;AAAA,MACE,MAAM,CAAC,GAAA,CAAI,OAAO,gBAAiB,CAAA,KAAA,EAAO,YAAY,KAAK,CAAA;AAAA,MAC3D,CAAC,CAAC,MAAA,EAAQ,WAAa,EAAA,QAAQ,GAAG,CAAC,MAAA,EAAQ,WAAa,EAAA,QAAQ,CAAM,KAAA;AAEpE,QAAA,IACE,MAAW,KAAA,MAAA,IACX,WAAgB,KAAA,WAAA,IAChB,aAAa,QACb,EAAA;AAEA,UAAsB,qBAAA,EAAA;AAAA;AACxB;AACF,KACF;AAKA,IAAA,MAAM,mBAAsB,GAAA;AAAA,MAC1B,kBAAK,EAAAC,2DAAA;AAAA,MACL,kBAAK,EAAAC,oDAAA;AAAA,MACL,kBAAK,EAAAC;AAAA;AAAA,KAEP;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,OAAAJ,oDAAA;AAAA;AAIT,MAAM,MAAA,SAAA,GAAYK,sBAAa,CAAA,GAAA,CAAI,KAAK,CAAA;AACxC,MAAA,OAAO,YAAYF,sDAAa,GAAA,IAAA;AAAA,KACjC,CAAA;AAMD,IAAM,MAAA,UAAA,GAAaD,aAAS,MAAM;AAEhC,MAAA,IACE,gBAAiB,CAAA,KAAA,KAAU,oBAC3B,IAAA,gBAAA,CAAiB,UAAU,oBAC3B,EAAA;AACA,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;AAGF,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,sBAkBM,CAAA,KAAA,EAlBN,UAkBM,EAAA;AAAA,QAjBJC,uBAAe,wCAAA,CAAA;AAAA,QAEP,UAAU,CAAA,KAAA,qBADlBC,gBAIEC,qDAAA,EAAA;AAAA;UAFC,YAAA,EAAYC,IAAQ,CAAA,QAAA,IAAIC,IAAY,CAAA,YAAA;AAAA,UACpC,OAAA,EAAS,WAAU,KAAC,CAAA;AAAA,8CAMV,IAAA,gBAAA,CAAgB,wBAF7B,EAAAL,sBAAA;AAAA,UAKEM,YAAA;AAAA,UAAA,EAAA,KAAA,CAAA,EAAA;AAAA,UAAA;AAAA,YANFL,uBAAc,kCAAA,CAAA;AAAA,4BACd,EAAAC,eAAA;AAAA,cAKEK,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,EAAAR,sBAAA;AAAA,UAAyEM,YAAA;AAAA,UAAA,EAAA,KAAA,CAAA,EAAA;AAAA,UAAA;AAAA,YADzEL,uBAAe,wCAAA,CAAA;AAAA,YACfQ,gBAAyEN,qDAAA,EAAA;AAAA,cAAtD,YAAA,EAAYC,IAAQ,CAAA,QAAA,IAAIC,IAAY,CAAA,YAAA;AAAA,cAAE,OAAQ,EAAA;AAAA;;;;;;;;;;;;"}
|
|
@@ -57,7 +57,11 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
57
57
|
onTimeout?: ((...args: any[]) => any) | undefined;
|
|
58
58
|
onMute?: ((...args: any[]) => any) | undefined;
|
|
59
59
|
}> & {}>;
|
|
60
|
-
|
|
60
|
+
isH265Supported: import("vue").Ref<boolean, boolean>;
|
|
61
|
+
showBrowserTip: import("vue").Ref<boolean, boolean>;
|
|
62
|
+
isH265Video: import("vue").Ref<boolean, boolean>;
|
|
63
|
+
checkIsH265Video: (url: string) => boolean;
|
|
64
|
+
checkH265Support: () => any;
|
|
61
65
|
setCamera: () => void;
|
|
62
66
|
}, {}, {}, {}, 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
67
|
url: {
|
|
@@ -12,24 +12,72 @@ const _hoisted_2 = {
|
|
|
12
12
|
key: 0,
|
|
13
13
|
class: "i-tzj-xgplayer__top"
|
|
14
14
|
};
|
|
15
|
+
const _hoisted_3 = {
|
|
16
|
+
key: 1,
|
|
17
|
+
class: "i-tzj-xgplayer__browser-tip"
|
|
18
|
+
};
|
|
19
|
+
const _hoisted_4 = {
|
|
20
|
+
key: 2,
|
|
21
|
+
id: "xgplayerId",
|
|
22
|
+
style: { "flex": "1", "height": "0", "width": "100%" }
|
|
23
|
+
};
|
|
15
24
|
var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
16
25
|
...{
|
|
17
|
-
name: "
|
|
26
|
+
name: "Xgplayer1"
|
|
18
27
|
},
|
|
19
28
|
__name: "xgplayer",
|
|
20
29
|
props: tzjPlayer.TzjPlayerProps,
|
|
21
|
-
emits: [
|
|
22
|
-
|
|
23
|
-
"error",
|
|
24
|
-
"play",
|
|
25
|
-
"pause",
|
|
26
|
-
"mute",
|
|
27
|
-
"videoInfo"
|
|
28
|
-
],
|
|
29
|
-
setup(__props, { emit: __emit }) {
|
|
30
|
+
emits: ["timeout", "error", "play", "pause", "mute", "videoInfo"],
|
|
31
|
+
setup(__props) {
|
|
30
32
|
const props = __props;
|
|
31
|
-
const
|
|
33
|
+
const isH265Supported = vue.ref(true);
|
|
34
|
+
const showBrowserTip = vue.ref(false);
|
|
35
|
+
const isH265Video = vue.ref(false);
|
|
36
|
+
function checkIsH265Video(url) {
|
|
37
|
+
if (!url) return false;
|
|
38
|
+
const urlLower = url.toLowerCase();
|
|
39
|
+
if (urlLower.includes("h265") || urlLower.includes("hevc")) {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
if (urlLower.includes(".m3u8")) {
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
__name(checkIsH265Video, "checkIsH265Video");
|
|
48
|
+
function checkH265Support() {
|
|
49
|
+
var _a;
|
|
50
|
+
if (typeof ((_a = window.Player) == null ? void 0 : _a.isHevcSupported) === "function") {
|
|
51
|
+
try {
|
|
52
|
+
return window.Player.isHevcSupported();
|
|
53
|
+
} catch (e) {
|
|
54
|
+
console.error("\u68C0\u6D4B H265 \u652F\u6301\u5931\u8D25:", e);
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (typeof MediaSource !== "undefined") {
|
|
59
|
+
const mediaSource = new MediaSource();
|
|
60
|
+
try {
|
|
61
|
+
return mediaSource.isTypeSupported('video/mp4; codecs="hvc1.1.6.L123"');
|
|
62
|
+
} catch (e) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
__name(checkH265Support, "checkH265Support");
|
|
32
69
|
function setCamera() {
|
|
70
|
+
isH265Video.value = checkIsH265Video(props.url);
|
|
71
|
+
console.log("\u662F\u5426\u4E3A H265 \u89C6\u9891:", isH265Video.value);
|
|
72
|
+
if (isH265Video.value) {
|
|
73
|
+
isH265Supported.value = checkH265Support();
|
|
74
|
+
console.log("H265 \u652F\u6301\u72B6\u6001:", isH265Supported.value);
|
|
75
|
+
if (!isH265Supported.value) {
|
|
76
|
+
showBrowserTip.value = true;
|
|
77
|
+
console.log("H265 \u89C6\u9891\u4F46\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\uFF0C\u663E\u793A\u63D0\u793A");
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
33
81
|
const config = {
|
|
34
82
|
id: "xgplayerId",
|
|
35
83
|
url: props.url,
|
|
@@ -64,7 +112,8 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
64
112
|
}
|
|
65
113
|
};
|
|
66
114
|
if (window == null ? void 0 : window.Player) {
|
|
67
|
-
new window.Player(config);
|
|
115
|
+
const player = new window.Player(config);
|
|
116
|
+
window.__tzjPlayerInstance = player;
|
|
68
117
|
}
|
|
69
118
|
}
|
|
70
119
|
__name(setCamera, "setCamera");
|
|
@@ -90,16 +139,21 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
90
139
|
/* TEXT */
|
|
91
140
|
)
|
|
92
141
|
])) : vue.createCommentVNode("v-if", true),
|
|
93
|
-
_cache[1] || (_cache[1] =
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
142
|
+
showBrowserTip.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, _cache[1] || (_cache[1] = [
|
|
143
|
+
vue.createElementVNode(
|
|
144
|
+
"div",
|
|
145
|
+
{ class: "browser-tip-content" },
|
|
146
|
+
[
|
|
147
|
+
vue.createElementVNode("i", {
|
|
148
|
+
class: "iconfont icon-tishi",
|
|
149
|
+
style: { "color": "#ff9800", "margin-right": "8px" }
|
|
150
|
+
}),
|
|
151
|
+
vue.createElementVNode("span", null, "\u5F53\u524D\u89C6\u9891\u4E3A H265 \u7F16\u7801\uFF0C\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u652F\u6301 H265 \u64AD\u653E\uFF0C\u8BF7\u4F7F\u7528 Chrome \u6D4F\u89C8\u5668\u89C2\u770B")
|
|
152
|
+
],
|
|
153
|
+
-1
|
|
154
|
+
/* CACHED */
|
|
155
|
+
)
|
|
156
|
+
]))) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4))
|
|
103
157
|
]);
|
|
104
158
|
};
|
|
105
159
|
}
|
|
@@ -1 +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: \"
|
|
1
|
+
{"version":3,"file":"xgplayer.vue2.js","sources":["../../../../../../../packages/components/tzj-player/src/xgplayer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\nimport { TzjPlayerProps } from \"./tzj-player\";\n\ndefineOptions({\n name: \"Xgplayer1\",\n});\nconst props = defineProps(TzjPlayerProps);\ndefineEmits([\"timeout\", \"error\", \"play\", \"pause\", \"mute\", \"videoInfo\"]);\n\nconst isH265Supported = ref(true);\nconst showBrowserTip = ref(false);\nconst isH265Video = ref(false);\n\n// 检测是否为 H265 视频(通过 URL 或视频类型判断)\nfunction checkIsH265Video(url: string): boolean {\n if (!url) return false;\n\n // 通过 URL 路径判断\n const urlLower = url.toLowerCase();\n if (urlLower.includes(\"h265\") || urlLower.includes(\"hevc\")) {\n return true;\n }\n\n // HLS m3u8 文件需要进一步检测\n if (urlLower.includes(\".m3u8\")) {\n // 如果 URL 明确标识为 h265,返回 true\n return true;\n }\n\n return false;\n}\n\n// 检测是否支持 H265 编码\nfunction checkH265Support() {\n if (typeof window.Player?.isHevcSupported === \"function\") {\n try {\n return window.Player.isHevcSupported();\n } catch (e) {\n console.error(\"检测 H265 支持失败:\", e);\n return false;\n }\n }\n // 备用检测方法\n if (typeof MediaSource !== \"undefined\") {\n const mediaSource: any = new MediaSource();\n try {\n return mediaSource.isTypeSupported('video/mp4; codecs=\"hvc1.1.6.L123\"');\n } catch (e) {\n return false;\n }\n }\n return false;\n}\n\nfunction setCamera() {\n // 先判断是否为 H265 视频\n isH265Video.value = checkIsH265Video(props.url);\n console.log(\"是否为 H265 视频:\", isH265Video.value);\n\n // 如果是 H265 视频,才检测浏览器支持\n if (isH265Video.value) {\n isH265Supported.value = checkH265Support();\n console.log(\"H265 支持状态:\", isH265Supported.value);\n\n if (!isH265Supported.value) {\n showBrowserTip.value = true;\n console.log(\"H265 视频但浏览器不支持,显示提示\");\n return;\n }\n }\n\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\n if (window?.Player) {\n const player = new window.Player(config);\n // 将player实例存储到组件中,避免new表达式被识别为纯副作用\n (window as any).__tzjPlayerInstance = player;\n }\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 v-if=\"showBrowserTip\" class=\"i-tzj-xgplayer__browser-tip\">\n <div class=\"browser-tip-content\">\n <i\n class=\"iconfont icon-tishi\"\n style=\"color: #ff9800; margin-right: 8px\"\n />\n <span\n >当前视频为 H265 编码,当前浏览器不支持 H265 播放,请使用 Chrome\n 浏览器观看</span\n >\n </div>\n </div>\n <div v-else id=\"xgplayerId\" style=\"flex: 1; height: 0; width: 100%\" />\n </div>\n</template>\n\n<style scoped></style>\n"],"names":["ref","onMounted","_openBlock","_createElementBlock","_createCommentVNode","areaName","deviceSerial","_createElementVNode","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAM,MAAA,eAAA,GAAkBA,QAAI,IAAI,CAAA;AAChC,IAAM,MAAA,cAAA,GAAiBA,QAAI,KAAK,CAAA;AAChC,IAAM,MAAA,WAAA,GAAcA,QAAI,KAAK,CAAA;AAG7B,IAAA,SAAS,iBAAiB,GAAsB,EAAA;AAC9C,MAAI,IAAA,CAAC,KAAY,OAAA,KAAA;AAGjB,MAAM,MAAA,QAAA,GAAW,IAAI,WAAY,EAAA;AACjC,MAAA,IAAI,SAAS,QAAS,CAAA,MAAM,KAAK,QAAS,CAAA,QAAA,CAAS,MAAM,CAAG,EAAA;AAC1D,QAAO,OAAA,IAAA;AAAA;AAIT,MAAI,IAAA,QAAA,CAAS,QAAS,CAAA,OAAO,CAAG,EAAA;AAE9B,QAAO,OAAA,IAAA;AAAA;AAGT,MAAO,OAAA,KAAA;AAAA;AAfA,IAAA,MAAA,CAAA,gBAAA,EAAA,kBAAA,CAAA;AAmBT,IAAA,SAAS,gBAAmB,GAAA;;AAC1B,MAAA,IAAI,QAAO,CAAA,EAAA,GAAA,MAAA,CAAO,MAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAe,qBAAoB,UAAY,EAAA;AACxD,QAAI,IAAA;AACF,UAAO,OAAA,MAAA,CAAO,OAAO,eAAgB,EAAA;AAAA,iBAC9B,CAAG,EAAA;AACV,UAAQ,OAAA,CAAA,KAAA,CAAM,+CAAiB,CAAC,CAAA;AAChC,UAAO,OAAA,KAAA;AAAA;AACT;AAGF,MAAI,IAAA,OAAO,gBAAgB,WAAa,EAAA;AACtC,QAAM,MAAA,WAAA,GAAmB,IAAI,WAAY,EAAA;AACzC,QAAI,IAAA;AACF,UAAO,OAAA,WAAA,CAAY,gBAAgB,mCAAmC,CAAA;AAAA,iBAC/D,CAAG,EAAA;AACV,UAAO,OAAA,KAAA;AAAA;AACT;AAEF,MAAO,OAAA,KAAA;AAAA;AAlBA,IAAA,MAAA,CAAA,gBAAA,EAAA,kBAAA,CAAA;AAqBT,IAAA,SAAS,SAAY,GAAA;AAEnB,MAAY,WAAA,CAAA,KAAA,GAAQ,gBAAiB,CAAA,KAAA,CAAM,GAAG,CAAA;AAC9C,MAAQ,OAAA,CAAA,GAAA,CAAI,uCAAgB,EAAA,WAAA,CAAY,KAAK,CAAA;AAG7C,MAAA,IAAI,YAAY,KAAO,EAAA;AACrB,QAAA,eAAA,CAAgB,QAAQ,gBAAiB,EAAA;AACzC,QAAQ,OAAA,CAAA,GAAA,CAAI,gCAAc,EAAA,eAAA,CAAgB,KAAK,CAAA;AAE/C,QAAI,IAAA,CAAC,gBAAgB,KAAO,EAAA;AAC1B,UAAA,cAAA,CAAe,KAAQ,GAAA,IAAA;AACvB,UAAA,OAAA,CAAQ,IAAI,2FAAqB,CAAA;AACjC,UAAA;AAAA;AACF;AAGF,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;AAEA,MAAA,IAAI,iCAAQ,MAAQ,EAAA;AAClB,QAAA,MAAM,MAAS,GAAA,IAAI,MAAO,CAAA,MAAA,CAAO,MAAM,CAAA;AAEvC,QAAC,OAAe,mBAAsB,GAAA,MAAA;AAAA;AACxC;AAlDO,IAAA,MAAA,CAAA,SAAA,EAAA,WAAA,CAAA;AAoDT,IAAAC,aAAA,CAAU,MAAM;AACd,MAAU,SAAA,EAAA;AAAA,KACX,CAAA;;AAIC,MAAA,OAAAC,aAAA,EAAA,EAAAC,sBAmBM,CAAA,KAAA,EAnBN,UAmBM,EAAA;AAAA,QAlBJC,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;QAExB,cAAc,CAAA,KAAA,IAAzBJ,aAAA,EAAA,EAAAC,sBAWM,CAAA,KAAA,EAXN,UAWM,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA;AAAA,UAVJI,sBAAA;AAAA,YASM,KAAA;AAAA,YAAA,EATD,OAAM,qBAAqB,EAAA;AAAA,YAAA;AAAA,cAC9BA,uBAGE,GAAA,EAAA;AAAA,gBAFA,KAAM,EAAA,qBAAA;AAAA,gBACN,KAAA,EAAA,EAAyC,OAAA,EAAA,SAAA,EAAA,gBAAA,KAAA;AAAA;cAE3CA,sBAAA,CAGC,cAFE,wLACI;AAAA;;;;WAIX,KAAAL,aAAA,EAAA,EAAAC,sBAAA,CAAsE,OAAtE,UAAsE,CAAA;AAAA;;;;;;;"}
|
|
@@ -1435,6 +1435,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
1435
1435
|
videoInfo: import("vue").Ref<any, any>;
|
|
1436
1436
|
realFullscreen: import("vue").Ref<boolean, boolean>;
|
|
1437
1437
|
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>>)>;
|
|
1438
|
+
waitTimer: number | null;
|
|
1439
|
+
restartTimer: import("vue").Ref<number | null, number | null>;
|
|
1440
|
+
isUnmounted: boolean;
|
|
1438
1441
|
play: (url?: string) => void;
|
|
1439
1442
|
playerPause: () => void;
|
|
1440
1443
|
playerScreenShot: () => void;
|
|
@@ -1444,7 +1447,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
1444
1447
|
removePlayerDom: () => void;
|
|
1445
1448
|
createPlayerDom: () => void;
|
|
1446
1449
|
createPlayer: () => Promise<void>;
|
|
1447
|
-
|
|
1450
|
+
startPlayer: () => Promise<void>;
|
|
1451
|
+
destroy: (flag?: boolean) => void;
|
|
1448
1452
|
ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
1449
1453
|
videoName: {
|
|
1450
1454
|
type: StringConstructor;
|
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var vue = require('vue');
|
|
6
6
|
require('./easyPlayer.vue.js');
|
|
7
|
+
require('./errorPage.vue.js');
|
|
7
8
|
var tzjPlayer = require('./tzj-player.js');
|
|
8
9
|
var yunzhiyan = require('./yunzhiyan.js');
|
|
9
|
-
require('./errorPage.vue.js');
|
|
10
10
|
var errorPage_vue_vue_type_script_setup_true_lang = require('./errorPage.vue2.js');
|
|
11
11
|
var easyPlayer_vue_vue_type_script_setup_true_lang = require('./easyPlayer.vue2.js');
|
|
12
12
|
|
|
@@ -467,9 +467,9 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
467
467
|
[
|
|
468
468
|
errorMsg.value ? (vue.openBlock(), vue.createBlock(errorPage_vue_vue_type_script_setup_true_lang.default, {
|
|
469
469
|
key: 0,
|
|
470
|
-
|
|
470
|
+
"video-name": _ctx.areaName || _ctx.deviceSerial,
|
|
471
471
|
message: errorMsg.value
|
|
472
|
-
}, null, 8, ["
|
|
472
|
+
}, null, 8, ["video-name", "message"])) : videoUrl.value ? (vue.openBlock(), vue.createBlock(easyPlayer_vue_vue_type_script_setup_true_lang.default, {
|
|
473
473
|
key: 1,
|
|
474
474
|
ref_key: "playerRef",
|
|
475
475
|
ref: playerRef,
|