@yimou6/common-ui 1.10.11 → 1.10.12

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.
@@ -1 +1 @@
1
- {"version":3,"file":"easyPlayer.vue2.js","sources":["../../../../../../../packages/components/tzj-player/src/easyPlayer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n shallowRef,\n useSlots,\n watch,\n} from \"vue\";\nimport { TzjPlayerProps, uuid } from \"./tzj-player\";\n\ndefineOptions({\n name: \"EasyPlayer\",\n});\n\nconst props = defineProps(TzjPlayerProps);\nconst emits = defineEmits([\n \"timeout\",\n \"error\",\n \"play\",\n \"pause\",\n \"mute\",\n \"videoInfo\",\n]);\nconst slots = useSlots();\nconst customBar = computed(() => slots.customBar);\n\nlet player: any = null;\nconst id = uuid();\nconst playerRef = shallowRef<HTMLDivElement>();\nconst playSuccess = ref(true);\nconst playUrl = ref(\"\");\nconst isFullscreen = ref(false);\nconst videoInfo = ref<any>(null);\n\nonMounted(() => {\n initPlayer(props.url || \"\");\n});\n\nwatch(\n () => props.url,\n (newUrl: string) => {\n initPlayer(newUrl || \"\");\n },\n);\n\nonBeforeUnmount(() => {\n if (props.debug) {\n console.log(\"组件卸载\");\n }\n playUrl.value = \"\";\n destroy();\n});\n\nconst play = (url?: string) => {\n if (url) {\n initPlayer(url);\n } else {\n if (player) {\n player.play(playUrl.value);\n } else {\n destroy();\n }\n }\n};\n\nconst playerPause = () => {\n if (props.debug) {\n console.log(\"暂停\");\n }\n player?.pause?.();\n};\n\nconst playerScreenShot = () => {\n if (props.debug) {\n console.log(\"截图\");\n }\n player?.screenshot?.(\n `${props.areaName}_${new Date().getTime()}`,\n \"png\",\n 0.5,\n \"download\",\n );\n};\n\nconst playerFullscreen = (fullscreen: boolean) => {\n if (props.debug) {\n console.log(\"全屏\");\n }\n // 自定义全屏逻辑\n if (typeof document !== \"undefined\") {\n if (!fullscreen) {\n document.exitFullscreen?.();\n } else {\n playerRef.value?.requestFullscreen?.();\n }\n }\n isFullscreen.value = !fullscreen;\n};\ndefineExpose({\n play,\n destroy,\n getPlayer: () => player,\n pause: playerPause,\n screenshot: playerScreenShot,\n fullscreen: playerFullscreen,\n isMute: () => {\n return player?.isMute?.();\n },\n setMute: (mute: number) => {\n player?.setMute?.(mute);\n },\n});\n\n/**\n * 格式化URL,确保使用完整的URL\n * @param url - 原始URL\n * @returns 格式化后的URL\n */\nconst formatUrl = (url: string): string => {\n if (!url) return \"\";\n\n // 如果已经是完整URL,直接返回\n if (url.startsWith(\"http://\") || url.startsWith(\"https://\")) {\n return url;\n }\n\n // 检查是否在浏览器环境中,避免SSR环境下的location访问错误\n if (typeof window !== \"undefined\" && window.location) {\n // 如果是相对路径,添加当前域名\n return `${window.location.origin}${url.startsWith(\"/\") ? \"\" : \"/\"}${url}`;\n }\n\n // SSR 环境下返回相对路径\n return url;\n};\n\nasync function initPlayer(url: string) {\n if (props.debug) {\n console.log(\"初始化播放器\", url);\n }\n removePlayerDom();\n if (url) {\n playUrl.value = formatUrl(url);\n if (props.debug) {\n console.log(\"格式化后的url\", playUrl.value);\n }\n if (typeof window !== \"undefined\" && window?.EasyPlayerPro) {\n createPlayer();\n } else if (typeof window !== \"undefined\") {\n const timer = setInterval(() => {\n if (window?.EasyPlayerPro) {\n createPlayer();\n clearInterval(timer);\n }\n }, 100);\n }\n }\n}\n\n/**\n * 移除播放器DOM\n */\nfunction removePlayerDom() {\n if (typeof document !== \"undefined\") {\n const dom = document.getElementById(id);\n dom && dom.remove();\n }\n}\n\n/**\n * 创建播放器DOM\n */\nfunction createPlayerDom() {\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 playerRef.value?.appendChild(dom);\n }\n}\n\nasync function createPlayer() {\n if (props.debug) {\n console.log(\"创建播放器\");\n }\n videoInfo.value = null;\n createPlayerDom();\n await nextTick();\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n player = new window.EasyPlayerPro(document.getElementById(id), {\n isLive: true, // 是否直播\n hasAudio: true, // 是否解析音频\n bufferTime: 0.2, // 缓存时长\n stretch: true, // 加视频拉伸\n MSE: false,\n WCS: false,\n WASM: true,\n debug: false,\n operateBtns: {\n performance: false,\n },\n });\n }\n if (player) {\n player.play(playUrl.value);\n\n // 15s未获取到视频信息,认为播放失败\n const videoInfoTimer = setTimeout(() => {\n if (!videoInfo.value) {\n props.debug && console.log(\"15s未获取到视频信息\");\n emits(\"error\");\n playSuccess.value = false;\n destroy();\n }\n }, 3000);\n // 加载超时\n player.on(\"timeout\", () => {\n clearTimeout(videoInfoTimer);\n props.debug && console.log(\"加载超时\");\n emits(\"timeout\");\n playSuccess.value = false;\n destroy();\n });\n // 播放异常\n player.on(\"error\", () => {\n props.debug && console.log(\"播放异常\");\n emits(\"error\");\n playSuccess.value = false;\n destroy();\n });\n player.on(\"play\", () => {\n playSuccess.value = true;\n props.debug && console.log(\"播放\");\n emits(\"play\");\n });\n player.on(\"pause\", () => {\n props.debug && console.log(\"暂停\");\n emits(\"pause\");\n });\n player.on(\"videoInfo\", (info: any) => {\n clearTimeout(videoInfoTimer);\n props.debug && console.log(\"视频信息\", info);\n videoInfo.value = info;\n emits(\"videoInfo\", info);\n });\n player.on(\"mute\", (mute: false) => {\n props.debug && console.log(\"静音\");\n emits(\"mute\", mute);\n });\n }\n}\n\nfunction destroy() {\n if (player) {\n player.destroy();\n player = null;\n }\n removePlayerDom();\n}\nconst topBar = ref();\nlet topBarTimer: any = null;\nconst handleMouseEnter = () => {\n if (topBarTimer) {\n clearTimeout(topBarTimer);\n topBarTimer = null;\n }\n topBar.value.style.opacity = 1;\n};\nconst handleMouseLeave = () => {\n topBarTimer = setTimeout(() => {\n topBar.value.style.opacity = 0;\n }, 5200);\n};\n</script>\n\n<template>\n <div\n ref=\"playerRef\"\n class=\"i-tzj-easyPlayer\"\n :class=\"customBar ? 'i-tzj-easyPlayer--custom' : ''\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n >\n <!-- 播放器顶部操作栏 -->\n <div ref=\"topBar\" class=\"i-tzj-easyPlayer__top\">\n <i class=\"iconfont icon-shexiangtou4\" />\n <span>{{ areaName }}</span>\n </div>\n\n <div v-if=\"!playSuccess\" class=\"i-tzj-player__error\">无信号</div>\n <div v-if=\"!playUrl\" class=\"i-tzj-player__error\">无播放地址</div>\n\n <!-- 播放器底部操作栏 -->\n <slot name=\"customBar\" />\n </div>\n</template>\n"],"names":["useSlots","computed","uuid","shallowRef","ref","onMounted","watch","onBeforeUnmount","nextTick","_createElementBlock","_normalizeClass","_createCommentVNode","_createElementVNode","areaName","_renderSlot"],"mappings":"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"}
1
+ {"version":3,"file":"easyPlayer.vue2.js","sources":["../../../../../../../packages/components/tzj-player/src/easyPlayer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n shallowRef,\n useSlots,\n watch,\n} from \"vue\";\nimport { TzjPlayerProps, uuid } from \"./tzj-player\";\n\ndefineOptions({\n name: \"EasyPlayer\",\n});\n\nconst props = defineProps(TzjPlayerProps);\nconst emits = defineEmits([\n \"timeout\",\n \"error\",\n \"play\",\n \"pause\",\n \"mute\",\n \"videoInfo\",\n]);\nconst slots = useSlots();\nconst customBar = computed(() => slots.customBar);\n\nlet player: any = null;\nconst id = uuid();\nconst playerRef = shallowRef<HTMLDivElement>();\nconst playSuccess = ref(true);\nconst playUrl = ref(\"\");\nconst isFullscreen = ref(false);\nconst videoInfo = ref<any>(null);\n\nonMounted(() => {\n initPlayer(props.url || \"\");\n});\n\nwatch(\n () => props.url,\n (newUrl: string) => {\n initPlayer(newUrl || \"\");\n },\n);\n\nonBeforeUnmount(() => {\n if (props.debug) {\n console.log(\"组件卸载\");\n }\n playUrl.value = \"\";\n destroy();\n});\n\nconst play = (url?: string) => {\n if (url) {\n initPlayer(url);\n } else {\n if (player) {\n player.play(playUrl.value);\n } else {\n destroy();\n }\n }\n};\n\nconst playerPause = () => {\n if (props.debug) {\n console.log(\"暂停\");\n }\n player?.pause?.();\n};\n\nconst playerScreenShot = () => {\n if (props.debug) {\n console.log(\"截图\");\n }\n player?.screenshot?.(\n `${props.areaName}_${new Date().getTime()}`,\n \"png\",\n 0.5,\n \"download\",\n );\n};\n\nconst playerFullscreen = (fullscreen: boolean) => {\n if (props.debug) {\n console.log(\"全屏\");\n }\n // 自定义全屏逻辑\n if (typeof document !== \"undefined\") {\n if (!fullscreen) {\n document.exitFullscreen?.();\n } else {\n playerRef.value?.requestFullscreen?.();\n }\n }\n isFullscreen.value = !fullscreen;\n};\ndefineExpose({\n play,\n destroy,\n getPlayer: () => player,\n pause: playerPause,\n screenshot: playerScreenShot,\n fullscreen: playerFullscreen,\n isMute: () => {\n return player?.isMute?.();\n },\n setMute: (mute: number) => {\n player?.setMute?.(mute);\n },\n});\n\n/**\n * 格式化URL,确保使用完整的URL\n * @param url - 原始URL\n * @returns 格式化后的URL\n */\nconst formatUrl = (url: string): string => {\n if (!url) return \"\";\n\n // 如果已经是完整URL,直接返回\n if (url.startsWith(\"http://\") || url.startsWith(\"https://\")) {\n return url;\n }\n\n // 检查是否在浏览器环境中,避免SSR环境下的location访问错误\n if (typeof window !== \"undefined\" && window.location) {\n // 如果是相对路径,添加当前域名\n return `${window.location.origin}${url.startsWith(\"/\") ? \"\" : \"/\"}${url}`;\n }\n\n // SSR 环境下返回相对路径\n return url;\n};\n\nasync function initPlayer(url: string) {\n if (props.debug) {\n console.log(\"初始化播放器\", url);\n }\n removePlayerDom();\n if (url) {\n playUrl.value = formatUrl(url);\n if (props.debug) {\n console.log(\"格式化后的url\", playUrl.value);\n }\n if (typeof window !== \"undefined\" && window?.EasyPlayerPro) {\n createPlayer();\n } else if (typeof window !== \"undefined\") {\n const timer = setInterval(() => {\n if (window?.EasyPlayerPro) {\n createPlayer();\n clearInterval(timer);\n }\n }, 100);\n }\n }\n}\n\n/**\n * 移除播放器DOM\n */\nfunction removePlayerDom() {\n if (typeof document !== \"undefined\") {\n const dom = document.getElementById(id);\n dom && dom.remove();\n }\n}\n\n/**\n * 创建播放器DOM\n */\nfunction createPlayerDom() {\n removePlayerDom();\n if (typeof document !== \"undefined\") {\n const dom = document.createElement(\"div\");\n const { width, height } = playerRef.value!.getBoundingClientRect();\n dom.id = id;\n dom.style.width = `${width}px`;\n dom.style.height = props.areaName ? `${height - 32}px` : `${height}px`;\n playerRef.value?.appendChild(dom);\n }\n}\n\nasync function createPlayer() {\n if (props.debug) {\n console.log(\"创建播放器\");\n }\n videoInfo.value = null;\n createPlayerDom();\n await nextTick();\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n player = new window.EasyPlayerPro(document.getElementById(id), {\n isLive: true, // 是否直播\n hasAudio: true, // 是否解析音频\n bufferTime: 0.2, // 缓存时长\n stretch: true, // 加视频拉伸\n MSE: false,\n WCS: false,\n WASM: true,\n debug: false,\n operateBtns: {\n performance: false,\n },\n });\n }\n if (player) {\n player.play(playUrl.value);\n\n // 15s未获取到视频信息,认为播放失败\n const videoInfoTimer = setTimeout(() => {\n if (!videoInfo.value) {\n props.debug && console.log(\"15s未获取到视频信息\");\n emits(\"error\");\n playSuccess.value = false;\n destroy();\n }\n }, 3000);\n // 加载超时\n player.on(\"timeout\", () => {\n clearTimeout(videoInfoTimer);\n props.debug && console.log(\"加载超时\");\n emits(\"timeout\");\n playSuccess.value = false;\n destroy();\n });\n // 播放异常\n player.on(\"error\", () => {\n props.debug && console.log(\"播放异常\");\n emits(\"error\");\n playSuccess.value = false;\n destroy();\n });\n player.on(\"play\", () => {\n playSuccess.value = true;\n props.debug && console.log(\"播放\");\n emits(\"play\");\n });\n player.on(\"pause\", () => {\n props.debug && console.log(\"暂停\");\n emits(\"pause\");\n });\n player.on(\"videoInfo\", (info: any) => {\n clearTimeout(videoInfoTimer);\n props.debug && console.log(\"视频信息\", info);\n videoInfo.value = info;\n emits(\"videoInfo\", info);\n });\n player.on(\"mute\", (mute: false) => {\n props.debug && console.log(\"静音\");\n emits(\"mute\", mute);\n });\n }\n}\n\nfunction destroy() {\n if (player) {\n player.destroy();\n player = null;\n }\n removePlayerDom();\n}\n</script>\n\n<template>\n <div\n ref=\"playerRef\"\n class=\"i-tzj-easyPlayer\"\n :class=\"customBar ? 'i-tzj-easyPlayer--custom' : ''\"\n >\n <!-- 播放器顶部显示区域(设备)名称 -->\n <div v-if=\"areaName\" class=\"i-tzj-easyPlayer__top\">\n <i class=\"iconfont icon-shexiangtou4\" />\n <span>{{ areaName }}</span>\n </div>\n\n <div v-if=\"!playSuccess\" class=\"i-tzj-player__error\">无信号</div>\n <div v-if=\"!playUrl\" class=\"i-tzj-player__error\">无播放地址</div>\n\n <!-- 播放器底部操作栏 -->\n <slot name=\"customBar\" />\n </div>\n</template>\n"],"names":["useSlots","computed","uuid","shallowRef","ref","onMounted","watch","onBeforeUnmount","nextTick","_createElementBlock","_normalizeClass","_createCommentVNode","areaName","_openBlock","_createElementVNode","_renderSlot"],"mappings":"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"}
@@ -1500,10 +1500,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1500
1500
  createPlayerDom: () => void;
1501
1501
  createPlayer: () => Promise<void>;
1502
1502
  destroy: () => void;
1503
- topBar: import("vue").Ref<any, any>;
1504
- topBarTimer: any;
1505
- handleMouseEnter: () => void;
1506
- handleMouseLeave: () => void;
1507
1503
  }, {}, {}, {}, 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<{
1508
1504
  url: {
1509
1505
  type: StringConstructor;
@@ -1602,6 +1598,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1602
1598
  type: StringConstructor;
1603
1599
  required: false;
1604
1600
  };
1601
+ areaName: {
1602
+ type: StringConstructor;
1603
+ required: false;
1604
+ };
1605
1605
  }>, {
1606
1606
  props: any;
1607
1607
  PLAYER_TEMPLATE: string;
@@ -1609,6 +1609,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1609
1609
  playerInstance: any;
1610
1610
  errorMsg: string;
1611
1611
  ysRef: import("vue").ShallowRef<any, any>;
1612
+ containerRef: import("vue").ShallowRef<any, any>;
1612
1613
  width: import("vue").Ref<number, number>;
1613
1614
  height: import("vue").Ref<number, number>;
1614
1615
  ratio: number;
@@ -1647,6 +1648,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1647
1648
  type: StringConstructor;
1648
1649
  required: false;
1649
1650
  };
1651
+ areaName: {
1652
+ type: StringConstructor;
1653
+ required: false;
1654
+ };
1650
1655
  }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
1651
1656
  };
1652
1657
  playerComponent: import("vue").ComputedRef<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
@@ -1730,10 +1735,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1730
1735
  createPlayerDom: () => void;
1731
1736
  createPlayer: () => Promise<void>;
1732
1737
  destroy: () => void;
1733
- topBar: import("vue").Ref<any, any>;
1734
- topBarTimer: any;
1735
- handleMouseEnter: () => void;
1736
- handleMouseLeave: () => void;
1737
1738
  }, {}, {}, {}, 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<{
1738
1739
  url: {
1739
1740
  type: StringConstructor;
@@ -3218,10 +3219,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3218
3219
  createPlayerDom: () => void;
3219
3220
  createPlayer: () => Promise<void>;
3220
3221
  destroy: () => void;
3221
- topBar: import("vue").Ref<any, any>;
3222
- topBarTimer: any;
3223
- handleMouseEnter: () => void;
3224
- handleMouseLeave: () => void;
3225
3222
  }, {}, {}, {}, 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<{
3226
3223
  url: {
3227
3224
  type: StringConstructor;
@@ -3319,6 +3316,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3319
3316
  type: StringConstructor;
3320
3317
  required: false;
3321
3318
  };
3319
+ areaName: {
3320
+ type: StringConstructor;
3321
+ required: false;
3322
+ };
3322
3323
  }>, {
3323
3324
  props: any;
3324
3325
  PLAYER_TEMPLATE: string;
@@ -3326,6 +3327,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3326
3327
  playerInstance: any;
3327
3328
  errorMsg: string;
3328
3329
  ysRef: import("vue").ShallowRef<any, any>;
3330
+ containerRef: import("vue").ShallowRef<any, any>;
3329
3331
  width: import("vue").Ref<number, number>;
3330
3332
  height: import("vue").Ref<number, number>;
3331
3333
  ratio: number;
@@ -3364,6 +3366,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3364
3366
  type: StringConstructor;
3365
3367
  required: false;
3366
3368
  };
3369
+ areaName: {
3370
+ type: StringConstructor;
3371
+ required: false;
3372
+ };
3367
3373
  }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any> | null>;
3368
3374
  errorState: import("vue").ComputedRef<{
3369
3375
  type: string;
@@ -3450,10 +3456,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3450
3456
  createPlayerDom: () => void;
3451
3457
  createPlayer: () => Promise<void>;
3452
3458
  destroy: () => void;
3453
- topBar: import("vue").Ref<any, any>;
3454
- topBarTimer: any;
3455
- handleMouseEnter: () => void;
3456
- handleMouseLeave: () => void;
3457
3459
  }, {}, {}, {}, 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<{
3458
3460
  url: {
3459
3461
  type: StringConstructor;
@@ -4938,10 +4940,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
4938
4940
  createPlayerDom: () => void;
4939
4941
  createPlayer: () => Promise<void>;
4940
4942
  destroy: () => void;
4941
- topBar: import("vue").Ref<any, any>;
4942
- topBarTimer: any;
4943
- handleMouseEnter: () => void;
4944
- handleMouseLeave: () => void;
4945
4943
  }, {}, {}, {}, 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<{
4946
4944
  url: {
4947
4945
  type: StringConstructor;
@@ -5039,6 +5037,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
5039
5037
  type: StringConstructor;
5040
5038
  required: false;
5041
5039
  };
5040
+ areaName: {
5041
+ type: StringConstructor;
5042
+ required: false;
5043
+ };
5042
5044
  }>, {
5043
5045
  props: any;
5044
5046
  PLAYER_TEMPLATE: string;
@@ -5046,6 +5048,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
5046
5048
  playerInstance: any;
5047
5049
  errorMsg: string;
5048
5050
  ysRef: import("vue").ShallowRef<any, any>;
5051
+ containerRef: import("vue").ShallowRef<any, any>;
5049
5052
  width: import("vue").Ref<number, number>;
5050
5053
  height: import("vue").Ref<number, number>;
5051
5054
  ratio: number;
@@ -5084,6 +5087,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
5084
5087
  type: StringConstructor;
5085
5088
  required: false;
5086
5089
  };
5090
+ areaName: {
5091
+ type: StringConstructor;
5092
+ required: false;
5093
+ };
5087
5094
  }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any> | null>;
5088
5095
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
5089
5096
  url: {
@@ -23,6 +23,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
23
23
  type: StringConstructor;
24
24
  required: false;
25
25
  };
26
+ areaName: {
27
+ type: StringConstructor;
28
+ required: false;
29
+ };
26
30
  }>, {
27
31
  props: any;
28
32
  PLAYER_TEMPLATE: string;
@@ -30,6 +34,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
30
34
  playerInstance: any;
31
35
  errorMsg: string;
32
36
  ysRef: import("vue").ShallowRef<any, any>;
37
+ containerRef: import("vue").ShallowRef<any, any>;
33
38
  width: import("vue").Ref<number, number>;
34
39
  height: import("vue").Ref<number, number>;
35
40
  ratio: number;
@@ -68,5 +73,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
68
73
  type: StringConstructor;
69
74
  required: false;
70
75
  };
76
+ areaName: {
77
+ type: StringConstructor;
78
+ required: false;
79
+ };
71
80
  }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
72
81
  export default _default;
@@ -10,6 +10,10 @@ var __defProp = Object.defineProperty;
10
10
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
11
11
  const _hoisted_1 = {
12
12
  key: 0,
13
+ class: "i-tzj-easyPlayer__top"
14
+ };
15
+ const _hoisted_2 = {
16
+ key: 1,
13
17
  class: "i-tzj-player__error"
14
18
  };
15
19
  const PLAYER_TEMPLATE = "5f295a9341a74d439b5d69374c90d501";
@@ -24,7 +28,8 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
24
28
  channel: {},
25
29
  quality: {},
26
30
  accessToken: {},
27
- playerTemplate: {}
31
+ playerTemplate: {},
32
+ areaName: {}
28
33
  },
29
34
  setup(__props, { expose: __expose }) {
30
35
  const props = __props;
@@ -32,6 +37,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
32
37
  let playerInstance = null;
33
38
  let errorMsg = "";
34
39
  const ysRef = vue.shallowRef();
40
+ const containerRef = vue.shallowRef();
35
41
  const { width, height } = core.useElementSize(ysRef);
36
42
  let ratio = 16 / 9;
37
43
  let isCurrentFullscreen = false;
@@ -166,7 +172,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
166
172
  dom.id = id;
167
173
  dom.style.width = "100%";
168
174
  dom.style.height = "100%";
169
- (_a = ysRef.value) == null ? void 0 : _a.appendChild(dom);
175
+ (_a = containerRef.value) == null ? void 0 : _a.appendChild(dom);
170
176
  }
171
177
  }
172
178
  }
@@ -180,9 +186,41 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
180
186
  class: "i-tzj-ysplayer"
181
187
  },
182
188
  [
189
+ vue.createCommentVNode(" \u64AD\u653E\u5668\u9876\u90E8\u663E\u793A\u533A\u57DF(\u8BBE\u5907)\u540D\u79F0 "),
190
+ _ctx.areaName ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
191
+ _cache[0] || (_cache[0] = vue.createElementVNode(
192
+ "i",
193
+ { class: "iconfont icon-shexiangtou4" },
194
+ null,
195
+ -1
196
+ /* CACHED */
197
+ )),
198
+ vue.createElementVNode(
199
+ "span",
200
+ null,
201
+ vue.toDisplayString(_ctx.areaName),
202
+ 1
203
+ /* TEXT */
204
+ )
205
+ ])) : vue.createCommentVNode("v-if", true),
206
+ vue.createElementVNode(
207
+ "div",
208
+ {
209
+ ref_key: "containerRef",
210
+ ref: containerRef,
211
+ class: "i-tzj-ysplayer",
212
+ style: vue.normalizeStyle([{ "width": "100%" }, {
213
+ height: _ctx.areaName ? "calc(100% - 32px)" : "100%",
214
+ position: "relative"
215
+ }])
216
+ },
217
+ null,
218
+ 4
219
+ /* STYLE */
220
+ ),
183
221
  vue.unref(errorMsg) ? (vue.openBlock(), vue.createElementBlock(
184
222
  "div",
185
- _hoisted_1,
223
+ _hoisted_2,
186
224
  vue.toDisplayString(vue.unref(errorMsg)),
187
225
  1
188
226
  /* TEXT */
@@ -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\";\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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"}
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 areaName?: string;\n}>();\n\n// 播放器模板ID\n// 可在萤石云控制台查看、修改、获取\n// 位置:云直播-轻应用-特致珈默认模板\nconst PLAYER_TEMPLATE = \"5f295a9341a74d439b5d69374c90d501\";\nconst id = uuid();\nlet playerInstance: any = null;\nlet errorMsg = \"\";\nconst ysRef = shallowRef();\nconst containerRef = 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 containerRef.value?.appendChild(dom);\n }\n }\n}\n</script>\n\n<template>\n <div ref=\"ysRef\" class=\"i-tzj-ysplayer\">\n <!-- 播放器顶部显示区域(设备)名称 -->\n <div v-if=\"areaName\" class=\"i-tzj-easyPlayer__top\">\n <i class=\"iconfont icon-shexiangtou4\" />\n <span>{{ areaName }}</span>\n </div>\n <div\n ref=\"containerRef\"\n class=\"i-tzj-ysplayer\"\n style=\"width: 100%\"\n :style=\"{\n height: areaName ? 'calc(100% - 32px)' : '100%',\n position: 'relative',\n }\"\n />\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","_createCommentVNode","areaName","_openBlock","_createElementVNode","_unref","_toDisplayString"],"mappings":"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"}
@@ -1443,10 +1443,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1443
1443
  createPlayerDom: () => void;
1444
1444
  createPlayer: () => Promise<void>;
1445
1445
  destroy: () => void;
1446
- topBar: import("vue").Ref<any, any>;
1447
- topBarTimer: any;
1448
- handleMouseEnter: () => void;
1449
- handleMouseLeave: () => void;
1450
1446
  }, {}, {}, {}, 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<{
1451
1447
  url: {
1452
1448
  type: StringConstructor;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yimou6/common-ui",
3
- "version": "1.10.11",
3
+ "version": "1.10.12",
4
4
  "description": "Vue3 Component Library",
5
5
  "author": "yimou6",
6
6
  "license": "MIT",
@@ -1 +1 @@
1
- .i-tzj-player{display:flex;position:relative;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden;background-color:#000;color:#fff;font-size:14px}.i-tzj-player .i-tzj-player-content{width:100%;height:100%;background-color:#000}.i-tzj-player .i-tzj-easyPlayer,.i-tzj-player .i-tzj-ysplayer{display:flex;position:relative;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden}.i-tzj-player .i-tzj-player__error{display:flex;position:absolute;z-index:999;top:0;left:0;align-items:center;justify-content:center;width:100%;height:100%;background-color:#000;color:#efefef;font-size:12px}.i-tzj-player .i-tzj-easyPlayer--custom .easyplayer-controls{display:none}.i-tzj-player .i-tzj-easyPlayer__top{display:flex;position:absolute;z-index:1;top:0;left:0;align-items:center;width:100%;height:40px;padding:0 10px;transition:opacity .3s ease-in-out;opacity:0;background-color:rgba(43,51,63,.7);color:#fff;font-size:13px}.i-tzj-player .i-tzj-easyPlayer__top .iconfont{font-size:12px;margin-right:4px}.i-tzj-player .i-easy-player-bar{display:flex;position:absolute;z-index:10;bottom:0;left:0;align-items:center;justify-content:space-between;width:100%;height:40px;background-color:rgba(43,51,63,.7);-webkit-user-select:none;user-select:none}.i-tzj-player .i-easy-player-bar .i-easy-player-bar-item{display:inline-flex;align-items:center;justify-content:flex-start;height:100%}.i-tzj-player .i-easy-player-bar .i-easy-player-bar-item .i-easy-player-bottom-bar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;cursor:pointer}.i-tzj-player .i-easy-player-bar .i-easy-player-bar-item .i-easy-player-bottom-bar .iconfont{color:#c7c9ce;font-size:20px}.i-tzj-player .i-easy-player-bar .i-easy-player-bar-item .i-easy-player-bottom-bar:hover .iconfont{color:#fff}.i-tzj-player .i-easy-player-bar .i-easy-player-bar-item .i-easy-player-bottom-bar+.i-easy-player-bottom-bar{margin-left:4px}.i-tzj-player .i-tzj-player__voice-default{display:flex;position:absolute;z-index:10;top:6px;right:6px;align-items:center;justify-content:center;height:28px;padding:0 10px;border-radius:14px;color:#fff;font-size:12px;text-align:center}.i-tzj-player .i-tzj-player__voice-success{background-color:#67c23a}.i-tzj-player .i-tzj-player__voice-info{background-color:#909399}.i-tzj-player .i-tzj-player__voice-error{background-color:#f56c6c}
1
+ .i-tzj-player{display:flex;position:relative;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden;background-color:#000;color:#fff;font-size:14px}.i-tzj-player .i-tzj-player-content{width:100%;height:100%;background-color:#000}.i-tzj-player .i-tzj-easyPlayer,.i-tzj-player .i-tzj-ysplayer{display:flex;position:relative;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden}.i-tzj-player .i-tzj-player__error{display:flex;position:absolute;z-index:999;top:0;left:0;align-items:center;justify-content:center;width:100%;height:100%;background-color:#000;color:#efefef;font-size:12px}.i-tzj-player .i-tzj-easyPlayer--custom .easyplayer-controls{display:none}.i-tzj-player .i-tzj-easyPlayer__top{display:flex;align-items:center;justify-content:flex-start;width:100%;height:32px;background-color:rgba(43,51,63,.7);color:#fff;font-size:12px}.i-tzj-player .i-tzj-easyPlayer__top .iconfont{margin-right:4px;margin-left:10px;font-size:12px}.i-tzj-player .i-easy-player-bar{display:flex;position:absolute;z-index:10;bottom:0;left:0;align-items:center;justify-content:space-between;width:100%;height:40px;background-color:rgba(43,51,63,.7);-webkit-user-select:none;user-select:none}.i-tzj-player .i-easy-player-bar .i-easy-player-bar-item{display:inline-flex;align-items:center;justify-content:flex-start;height:100%}.i-tzj-player .i-easy-player-bar .i-easy-player-bar-item .i-easy-player-bottom-bar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;cursor:pointer}.i-tzj-player .i-easy-player-bar .i-easy-player-bar-item .i-easy-player-bottom-bar .iconfont{color:#c7c9ce;font-size:20px}.i-tzj-player .i-easy-player-bar .i-easy-player-bar-item .i-easy-player-bottom-bar:hover .iconfont{color:#fff}.i-tzj-player .i-easy-player-bar .i-easy-player-bar-item .i-easy-player-bottom-bar+.i-easy-player-bottom-bar{margin-left:4px}.i-tzj-player .i-tzj-player__voice-default{display:flex;position:absolute;z-index:10;top:6px;right:6px;align-items:center;justify-content:center;height:28px;padding:0 10px;border-radius:14px;color:#fff;font-size:12px;text-align:center}.i-tzj-player .i-tzj-player__voice-success{background-color:#67c23a}.i-tzj-player .i-tzj-player__voice-info{background-color:#909399}.i-tzj-player .i-tzj-player__voice-error{background-color:#f56c6c}