@give-tech/ec-player-vue 0.0.1-beta.61 → 0.0.1-beta.62.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.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * 播放器控制条逻辑
3
3
  */
4
- import { type Ref } from 'vue';
4
+ import { type Ref } from "vue";
5
5
  /**
6
6
  * 控制条逻辑参数
7
7
  */
@@ -39,14 +39,22 @@ export interface UseControlsReturn {
39
39
  playProgress: Ref<number>;
40
40
  /** 缓冲进度百分比 */
41
41
  bufferProgress: Ref<number>;
42
+ /** 是否正在拖动进度条 */
43
+ isDragging: Ref<boolean>;
44
+ /** 拖动中的进度百分比 */
45
+ dragProgress: Ref<number>;
46
+ /** 显示时间(拖动时显示拖动时间,否则显示当前时间) */
47
+ displayTime: Ref<number>;
42
48
  /** 显示控制条 */
43
49
  showControlsBar: () => void;
44
50
  /** 隐藏控制条 */
45
51
  hideControlsBar: () => void;
46
- /** 处理进度条点击 */
47
- handleProgressClick: (event: MouseEvent) => Promise<void>;
52
+ /** 处理进度条鼠标按下(开始拖动) */
53
+ handleProgressMouseDown: (event: MouseEvent) => void;
48
54
  /** 处理进度条悬停 */
49
55
  handleProgressHover: (event: MouseEvent) => void;
56
+ /** 处理进度条鼠标离开 */
57
+ handleProgressMouseLeave: () => void;
50
58
  /** 格式化时间 */
51
59
  formatTime: (ms: number) => string;
52
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useControls.d.ts","sourceRoot":"","sources":["../../src/composables/useControls.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAiB,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAE7C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,aAAa;IACb,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACvB,YAAY;IACZ,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACtB,eAAe;IACf,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,cAAc;IACd,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACrB,eAAe;IACf,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACzB,eAAe;IACf,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAChC,WAAW;IACX,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,aAAa;IACb,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACpB,WAAW;IACX,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,cAAc;IACd,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAC1B,mBAAmB;IACnB,SAAS,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC7B,mBAAmB;IACnB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,cAAc;IACd,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACzB,cAAc;IACd,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,YAAY;IACZ,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,YAAY;IACZ,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,cAAc;IACd,mBAAmB,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,cAAc;IACd,mBAAmB,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IAChD,YAAY;IACZ,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAA;CACnC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAqGxE"}
1
+ {"version":3,"file":"useControls.d.ts","sourceRoot":"","sources":["../../src/composables/useControls.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAiC,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAE7D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,aAAa;IACb,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACvB,YAAY;IACZ,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACtB,eAAe;IACf,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,cAAc;IACd,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACrB,eAAe;IACf,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACzB,eAAe;IACf,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAChC,WAAW;IACX,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,aAAa;IACb,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACpB,WAAW;IACX,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,cAAc;IACd,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAC1B,mBAAmB;IACnB,SAAS,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC7B,mBAAmB;IACnB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,cAAc;IACd,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACzB,cAAc;IACd,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,gBAAgB;IAChB,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACxB,gBAAgB;IAChB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACzB,+BAA+B;IAC/B,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,YAAY;IACZ,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,YAAY;IACZ,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,sBAAsB;IACtB,uBAAuB,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IACpD,cAAc;IACd,mBAAmB,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IAChD,gBAAgB;IAChB,wBAAwB,EAAE,MAAM,IAAI,CAAA;IACpC,YAAY;IACZ,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAA;CACnC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAmJxE"}
@@ -1,21 +1,21 @@
1
1
 
2
- .gt-player-container[data-v-f1b9acea] {
2
+ .gt-player-container[data-v-0812a7e6] {
3
3
  width: 100%;
4
4
  height: 100%;
5
5
  }
6
- .gt-video-wrapper[data-v-f1b9acea] {
6
+ .gt-video-wrapper[data-v-0812a7e6] {
7
7
  position: relative;
8
8
  width: 100%;
9
9
  height: 100%;
10
10
  background: #000;
11
11
  overflow: hidden;
12
12
  }
13
- .gt-player-canvas[data-v-f1b9acea] {
13
+ .gt-player-canvas[data-v-0812a7e6] {
14
14
  width: 100%;
15
15
  height: 100%;
16
16
  object-fit: contain;
17
17
  }
18
- .gt-placeholder[data-v-f1b9acea] {
18
+ .gt-placeholder[data-v-0812a7e6] {
19
19
  position: absolute;
20
20
  top: 0;
21
21
  left: 0;
@@ -28,7 +28,7 @@
28
28
  }
29
29
 
30
30
  /* 加载中动画 */
31
- .gt-loading-spinner[data-v-f1b9acea] {
31
+ .gt-loading-spinner[data-v-0812a7e6] {
32
32
  position: absolute;
33
33
  top: 0;
34
34
  left: 0;
@@ -40,13 +40,13 @@
40
40
  background: rgba(0, 0, 0, 0.5);
41
41
  z-index: 10;
42
42
  }
43
- .gt-loading-content[data-v-f1b9acea] {
43
+ .gt-loading-content[data-v-0812a7e6] {
44
44
  display: flex;
45
45
  flex-direction: column;
46
46
  align-items: center;
47
47
  gap: 16px;
48
48
  }
49
- .gt-spinner[data-v-f1b9acea] {
49
+ .gt-spinner[data-v-0812a7e6] {
50
50
  width: 10%;
51
51
  max-width: 48px;
52
52
  min-width: 20px;
@@ -54,18 +54,18 @@
54
54
  border: 0.3em solid rgba(255, 255, 255, 0.3);
55
55
  border-top-color: #fff;
56
56
  border-radius: 50%;
57
- animation: gt-spin-f1b9acea 1s linear infinite;
57
+ animation: gt-spin-0812a7e6 1s linear infinite;
58
58
  }
59
- .gt-loading-text[data-v-f1b9acea] {
59
+ .gt-loading-text[data-v-0812a7e6] {
60
60
  color: rgba(255, 255, 255, 0.85);
61
61
  font-size: 13px;
62
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
62
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
63
63
  text-align: center;
64
64
  padding: 0 20px;
65
65
  }
66
66
 
67
67
  /* 加载进度条 */
68
- .gt-loading-progress[data-v-f1b9acea] {
68
+ .gt-loading-progress[data-v-0812a7e6] {
69
69
  display: flex;
70
70
  align-items: center;
71
71
  gap: 12px;
@@ -73,35 +73,35 @@
73
73
  width: 100%;
74
74
  max-width: 280px;
75
75
  }
76
- .gt-progress-bar-bg[data-v-f1b9acea] {
76
+ .gt-progress-bar-bg[data-v-0812a7e6] {
77
77
  flex: 1;
78
78
  height: 4px;
79
79
  background: rgba(255, 255, 255, 0.2);
80
80
  border-radius: 2px;
81
81
  overflow: hidden;
82
82
  }
83
- .gt-progress-bar-fill[data-v-f1b9acea] {
83
+ .gt-progress-bar-fill[data-v-0812a7e6] {
84
84
  height: 100%;
85
85
  background: linear-gradient(90deg, #ff2d55, #ff6b6b);
86
86
  border-radius: 2px;
87
87
  transition: width 0.2s ease;
88
88
  }
89
- .gt-progress-text[data-v-f1b9acea] {
89
+ .gt-progress-text[data-v-0812a7e6] {
90
90
  color: rgba(255, 255, 255, 0.9);
91
91
  font-size: 12px;
92
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
92
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
93
93
  min-width: 36px;
94
94
  text-align: right;
95
95
  font-variant-numeric: tabular-nums;
96
96
  }
97
- @keyframes gt-spin-f1b9acea {
97
+ @keyframes gt-spin-0812a7e6 {
98
98
  to {
99
99
  transform: rotate(360deg);
100
100
  }
101
101
  }
102
102
 
103
103
  /* 错误提示 */
104
- .gt-error-message[data-v-f1b9acea] {
104
+ .gt-error-message[data-v-0812a7e6] {
105
105
  position: absolute;
106
106
  top: 0;
107
107
  left: 0;
@@ -112,9 +112,9 @@ to {
112
112
  justify-content: center;
113
113
  background: rgba(0, 0, 0, 0.75);
114
114
  z-index: 15;
115
- animation: gt-error-fade-in-f1b9acea 0.25s ease;
115
+ animation: gt-error-fade-in-0812a7e6 0.25s ease;
116
116
  }
117
- @keyframes gt-error-fade-in-f1b9acea {
117
+ @keyframes gt-error-fade-in-0812a7e6 {
118
118
  from {
119
119
  opacity: 0;
120
120
  }
@@ -122,7 +122,7 @@ to {
122
122
  opacity: 1;
123
123
  }
124
124
  }
125
- .gt-error-content[data-v-f1b9acea] {
125
+ .gt-error-content[data-v-0812a7e6] {
126
126
  display: flex;
127
127
  align-items: flex-start;
128
128
  gap: 16px;
@@ -133,10 +133,12 @@ to {
133
133
  max-width: 85%;
134
134
  min-width: 280px;
135
135
  backdrop-filter: blur(12px);
136
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.05) inset;
137
- animation: gt-error-slide-in-f1b9acea 0.3s ease;
136
+ box-shadow:
137
+ 0 8px 32px rgba(0, 0, 0, 0.4),
138
+ 0 0 0 1px rgba(255, 255, 255, 0.05) inset;
139
+ animation: gt-error-slide-in-0812a7e6 0.3s ease;
138
140
  }
139
- @keyframes gt-error-slide-in-f1b9acea {
141
+ @keyframes gt-error-slide-in-0812a7e6 {
140
142
  from {
141
143
  opacity: 0;
142
144
  transform: translateY(-10px) scale(0.95);
@@ -146,7 +148,7 @@ to {
146
148
  transform: translateY(0) scale(1);
147
149
  }
148
150
  }
149
- .gt-error-icon-wrapper[data-v-f1b9acea] {
151
+ .gt-error-icon-wrapper[data-v-0812a7e6] {
150
152
  flex-shrink: 0;
151
153
  width: 40px;
152
154
  height: 40px;
@@ -156,28 +158,28 @@ to {
156
158
  background: rgba(255, 77, 77, 0.2);
157
159
  border-radius: 50%;
158
160
  }
159
- .gt-error-icon[data-v-f1b9acea] {
161
+ .gt-error-icon[data-v-0812a7e6] {
160
162
  width: 22px;
161
163
  height: 22px;
162
164
  color: #ff4d4f;
163
165
  }
164
- .gt-error-body[data-v-f1b9acea] {
166
+ .gt-error-body[data-v-0812a7e6] {
165
167
  flex: 1;
166
168
  min-width: 0;
167
169
  }
168
- .gt-error-title[data-v-f1b9acea] {
170
+ .gt-error-title[data-v-0812a7e6] {
169
171
  color: #ff4d4f;
170
172
  font-size: 15px;
171
173
  font-weight: 600;
172
174
  margin-bottom: 6px;
173
175
  }
174
- .gt-error-text[data-v-f1b9acea] {
176
+ .gt-error-text[data-v-0812a7e6] {
175
177
  color: rgba(255, 255, 255, 0.85);
176
178
  font-size: 13px;
177
179
  line-height: 1.5;
178
180
  word-break: break-word;
179
181
  }
180
- .gt-error-retry[data-v-f1b9acea] {
182
+ .gt-error-retry[data-v-0812a7e6] {
181
183
  flex-shrink: 0;
182
184
  width: 32px;
183
185
  height: 32px;
@@ -192,17 +194,17 @@ to {
192
194
  transition: all 0.2s ease;
193
195
  margin-left: 8px;
194
196
  }
195
- .gt-error-retry[data-v-f1b9acea]:hover {
197
+ .gt-error-retry[data-v-0812a7e6]:hover {
196
198
  background: rgba(255, 255, 255, 0.25);
197
199
  color: white;
198
200
  }
199
- .gt-error-retry svg[data-v-f1b9acea] {
201
+ .gt-error-retry svg[data-v-0812a7e6] {
200
202
  width: 20px;
201
203
  height: 20px;
202
204
  }
203
205
 
204
206
  /* 视频控制条 */
205
- .gt-video-controls[data-v-f1b9acea] {
207
+ .gt-video-controls[data-v-0812a7e6] {
206
208
  position: absolute;
207
209
  bottom: 0;
208
210
  left: 0;
@@ -215,13 +217,13 @@ to {
215
217
  align-items: center;
216
218
  gap: 12px;
217
219
  }
218
- .gt-flex-spacer[data-v-f1b9acea] {
220
+ .gt-flex-spacer[data-v-0812a7e6] {
219
221
  flex: 1;
220
222
  }
221
- .gt-video-controls.visible[data-v-f1b9acea] {
223
+ .gt-video-controls.visible[data-v-0812a7e6] {
222
224
  opacity: 1;
223
225
  }
224
- .gt-control-btn[data-v-f1b9acea] {
226
+ .gt-control-btn[data-v-0812a7e6] {
225
227
  width: 28px;
226
228
  height: 28px;
227
229
  border: none;
@@ -235,14 +237,14 @@ to {
235
237
  transition: all 0.2s ease;
236
238
  flex-shrink: 0;
237
239
  }
238
- .gt-control-btn[data-v-f1b9acea]:hover {
240
+ .gt-control-btn[data-v-0812a7e6]:hover {
239
241
  background: rgba(255, 255, 255, 0.2);
240
242
  }
241
- .gt-control-btn svg[data-v-f1b9acea] {
243
+ .gt-control-btn svg[data-v-0812a7e6] {
242
244
  width: 14px;
243
245
  height: 14px;
244
246
  }
245
- .gt-progress-container[data-v-f1b9acea] {
247
+ .gt-progress-container[data-v-0812a7e6] {
246
248
  flex: 1;
247
249
  position: relative;
248
250
  cursor: pointer;
@@ -250,7 +252,7 @@ to {
250
252
  display: flex;
251
253
  align-items: center;
252
254
  }
253
- .gt-progress-bar[data-v-f1b9acea] {
255
+ .gt-progress-bar[data-v-0812a7e6] {
254
256
  width: 100%;
255
257
  height: 4px;
256
258
  background: rgba(255, 255, 255, 0.2);
@@ -259,10 +261,10 @@ to {
259
261
  overflow: hidden;
260
262
  transition: height 0.2s ease;
261
263
  }
262
- .gt-progress-container:hover .gt-progress-bar[data-v-f1b9acea] {
264
+ .gt-progress-container:hover .gt-progress-bar[data-v-0812a7e6] {
263
265
  height: 6px;
264
266
  }
265
- .gt-progress-buffered[data-v-f1b9acea] {
267
+ .gt-progress-buffered[data-v-0812a7e6] {
266
268
  position: absolute;
267
269
  top: 0;
268
270
  left: 0;
@@ -271,7 +273,7 @@ to {
271
273
  border-radius: 2px;
272
274
  transition: width 0.1s;
273
275
  }
274
- .gt-progress-played[data-v-f1b9acea] {
276
+ .gt-progress-played[data-v-0812a7e6] {
275
277
  position: absolute;
276
278
  top: 0;
277
279
  left: 0;
@@ -280,7 +282,7 @@ to {
280
282
  border-radius: 2px;
281
283
  transition: width 0.1s;
282
284
  }
283
- .gt-progress-handle[data-v-f1b9acea] {
285
+ .gt-progress-handle[data-v-0812a7e6] {
284
286
  position: absolute;
285
287
  right: -6px;
286
288
  top: 50%;
@@ -291,13 +293,20 @@ to {
291
293
  border-radius: 50%;
292
294
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
293
295
  opacity: 0;
294
- transition: opacity 0.2s, transform 0.2s;
296
+ transition:
297
+ opacity 0.2s,
298
+ transform 0.2s;
295
299
  }
296
- .gt-progress-container:hover .gt-progress-handle[data-v-f1b9acea] {
300
+ .gt-progress-container:hover .gt-progress-handle[data-v-0812a7e6],
301
+ .gt-progress-container.is-dragging .gt-progress-handle[data-v-0812a7e6] {
297
302
  opacity: 1;
298
303
  transform: translateY(-50%) scale(1.2);
299
304
  }
300
- .gt-progress-tooltip[data-v-f1b9acea] {
305
+ .gt-progress-container.is-dragging[data-v-0812a7e6] {
306
+ cursor: grabbing;
307
+ user-select: none;
308
+ }
309
+ .gt-progress-tooltip[data-v-0812a7e6] {
301
310
  position: absolute;
302
311
  bottom: calc(100% + 8px);
303
312
  transform: translateX(-50%);
@@ -309,20 +318,20 @@ to {
309
318
  white-space: nowrap;
310
319
  pointer-events: none;
311
320
  }
312
- .gt-time-display[data-v-f1b9acea] {
321
+ .gt-time-display[data-v-0812a7e6] {
313
322
  color: white;
314
323
  font-size: 12px;
315
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
324
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
316
325
  white-space: nowrap;
317
326
  flex-shrink: 0;
318
327
  }
319
- .gt-time-separator[data-v-f1b9acea] {
328
+ .gt-time-separator[data-v-0812a7e6] {
320
329
  margin: 0 4px;
321
330
  opacity: 0.6;
322
331
  }
323
332
 
324
333
  /* 直播指示器 */
325
- .gt-live-indicator[data-v-f1b9acea] {
334
+ .gt-live-indicator[data-v-0812a7e6] {
326
335
  display: flex;
327
336
  align-items: center;
328
337
  gap: 6px;
@@ -330,18 +339,19 @@ to {
330
339
  font-size: 12px;
331
340
  font-weight: 500;
332
341
  }
333
- .gt-live-dot[data-v-f1b9acea] {
342
+ .gt-live-dot[data-v-0812a7e6] {
334
343
  width: 8px;
335
344
  height: 8px;
336
345
  background: #ff2d55;
337
346
  border-radius: 50%;
338
- animation: gt-live-pulse-f1b9acea 1.5s ease-in-out infinite;
347
+ animation: gt-live-pulse-0812a7e6 1.5s ease-in-out infinite;
339
348
  }
340
- .gt-live-text[data-v-f1b9acea] {
349
+ .gt-live-text[data-v-0812a7e6] {
341
350
  color: #ff2d55;
342
351
  }
343
- @keyframes gt-live-pulse-f1b9acea {
344
- 0%, 100% {
352
+ @keyframes gt-live-pulse-0812a7e6 {
353
+ 0%,
354
+ 100% {
345
355
  opacity: 1;
346
356
  }
347
357
  50% {
@@ -350,21 +360,21 @@ to {
350
360
  }
351
361
 
352
362
  /* 倍速按钮 */
353
- .gt-playback-rate-container[data-v-f1b9acea] {
363
+ .gt-playback-rate-container[data-v-0812a7e6] {
354
364
  position: relative;
355
365
  flex-shrink: 0;
356
366
  }
357
- .gt-playback-rate-btn[data-v-f1b9acea] {
367
+ .gt-playback-rate-btn[data-v-0812a7e6] {
358
368
  width: auto !important;
359
369
  min-width: 28px;
360
370
  padding: 0 8px;
361
371
  font-size: 12px;
362
372
  font-weight: 500;
363
373
  }
364
- .gt-playback-rate-text[data-v-f1b9acea] {
374
+ .gt-playback-rate-text[data-v-0812a7e6] {
365
375
  color: white;
366
376
  }
367
- .gt-playback-rate-menu[data-v-f1b9acea] {
377
+ .gt-playback-rate-menu[data-v-0812a7e6] {
368
378
  position: absolute;
369
379
  bottom: calc(100% + 8px);
370
380
  left: 50%;
@@ -374,15 +384,19 @@ to {
374
384
  padding: 4px 0;
375
385
  min-width: 60px;
376
386
  z-index: 20;
377
- animation: gt-rate-menu-fade-in-f1b9acea 0.15s ease;
387
+ animation: gt-rate-menu-fade-in-0812a7e6 0.15s ease;
378
388
  }
379
- @keyframes gt-rate-menu-fade-in-f1b9acea {
380
- from { opacity: 0; transform: translateX(-50%) translateY(4px);
389
+ @keyframes gt-rate-menu-fade-in-0812a7e6 {
390
+ from {
391
+ opacity: 0;
392
+ transform: translateX(-50%) translateY(4px);
381
393
  }
382
- to { opacity: 1; transform: translateX(-50%) translateY(0);
394
+ to {
395
+ opacity: 1;
396
+ transform: translateX(-50%) translateY(0);
383
397
  }
384
398
  }
385
- .gt-playback-rate-option[data-v-f1b9acea] {
399
+ .gt-playback-rate-option[data-v-0812a7e6] {
386
400
  display: block;
387
401
  width: 100%;
388
402
  padding: 6px 12px;
@@ -394,17 +408,17 @@ to { opacity: 1; transform: translateX(-50%) translateY(0);
394
408
  text-align: center;
395
409
  transition: all 0.15s ease;
396
410
  }
397
- .gt-playback-rate-option[data-v-f1b9acea]:hover {
411
+ .gt-playback-rate-option[data-v-0812a7e6]:hover {
398
412
  background: rgba(255, 255, 255, 0.1);
399
413
  color: white;
400
414
  }
401
- .gt-playback-rate-option.active[data-v-f1b9acea] {
415
+ .gt-playback-rate-option.active[data-v-0812a7e6] {
402
416
  color: #ff2d55;
403
417
  font-weight: 500;
404
418
  }
405
419
 
406
420
  /* 居中播放按钮 */
407
- .gt-center-play-btn[data-v-f1b9acea] {
421
+ .gt-center-play-btn[data-v-0812a7e6] {
408
422
  position: absolute;
409
423
  top: 50%;
410
424
  left: 50%;
@@ -419,11 +433,11 @@ to { opacity: 1; transform: translateX(-50%) translateY(0);
419
433
  cursor: pointer;
420
434
  transition: all 0.2s ease;
421
435
  }
422
- .gt-center-play-btn[data-v-f1b9acea]:hover {
436
+ .gt-center-play-btn[data-v-0812a7e6]:hover {
423
437
  background: rgba(0, 0, 0, 0.7);
424
438
  transform: translate(-50%, -50%) scale(1.05);
425
439
  }
426
- .gt-center-play-btn svg[data-v-f1b9acea] {
440
+ .gt-center-play-btn svg[data-v-0812a7e6] {
427
441
  width: 24px;
428
442
  height: 24px;
429
443
  color: white;
@@ -431,7 +445,7 @@ to { opacity: 1; transform: translateX(-50%) translateY(0);
431
445
  }
432
446
 
433
447
  /* 环境信息面板 */
434
- .gt-env-panel[data-v-f1b9acea] {
448
+ .gt-env-panel[data-v-0812a7e6] {
435
449
  position: absolute;
436
450
  top: 12px;
437
451
  left: 12px;
@@ -439,66 +453,73 @@ to { opacity: 1; transform: translateX(-50%) translateY(0);
439
453
  border-radius: 6px;
440
454
  padding: 8px 10px;
441
455
  font-size: 11px;
442
- font-family: 'SF Mono', 'Monaco', 'Consolas', monospace;
456
+ font-family: "SF Mono", "Monaco", "Consolas", monospace;
443
457
  min-width: 160px;
444
458
  max-width: 200px;
445
459
  max-height: calc(100% - 24px);
446
460
  overflow-y: auto;
447
461
  backdrop-filter: blur(10px);
448
- animation: gt-env-fade-in-f1b9acea 0.15s ease;
462
+ animation: gt-env-fade-in-0812a7e6 0.15s ease;
449
463
  z-index: 15;
450
464
  }
451
- .gt-env-panel[data-v-f1b9acea]::-webkit-scrollbar {
465
+ .gt-env-panel[data-v-0812a7e6]::-webkit-scrollbar {
452
466
  width: 4px;
453
467
  }
454
- .gt-env-panel[data-v-f1b9acea]::-webkit-scrollbar-track {
468
+ .gt-env-panel[data-v-0812a7e6]::-webkit-scrollbar-track {
455
469
  background: transparent;
456
470
  }
457
- .gt-env-panel[data-v-f1b9acea]::-webkit-scrollbar-thumb {
471
+ .gt-env-panel[data-v-0812a7e6]::-webkit-scrollbar-thumb {
458
472
  background: rgba(255, 255, 255, 0.3);
459
473
  border-radius: 2px;
460
474
  }
461
- @keyframes gt-env-fade-in-f1b9acea {
462
- from { opacity: 0; transform: translateY(-4px);
475
+ @keyframes gt-env-fade-in-0812a7e6 {
476
+ from {
477
+ opacity: 0;
478
+ transform: translateY(-4px);
463
479
  }
464
- to { opacity: 1; transform: translateY(0);
480
+ to {
481
+ opacity: 1;
482
+ transform: translateY(0);
465
483
  }
466
484
  }
467
- .gt-env-panel .gt-env-row[data-v-f1b9acea] {
485
+ .gt-env-panel .gt-env-row[data-v-0812a7e6] {
468
486
  display: flex;
469
487
  justify-content: space-between;
470
488
  align-items: center;
471
489
  padding: 2px 0;
472
490
  color: rgba(255, 255, 255, 0.7);
473
491
  }
474
- .gt-env-panel .gt-env-row span[data-v-f1b9acea]:first-child {
492
+ .gt-env-panel .gt-env-row span[data-v-0812a7e6]:first-child {
475
493
  color: rgba(255, 255, 255, 0.5);
476
494
  margin-right: 16px;
477
495
  }
478
- .gt-env-panel .gt-env-row span[data-v-f1b9acea]:last-child {
496
+ .gt-env-panel .gt-env-row span[data-v-0812a7e6]:last-child {
479
497
  font-variant-numeric: tabular-nums;
480
498
  }
481
- .gt-env-panel .gt-env-row .ok[data-v-f1b9acea] { color: #4caf50;
499
+ .gt-env-panel .gt-env-row .ok[data-v-0812a7e6] {
500
+ color: #4caf50;
482
501
  }
483
- .gt-env-panel .gt-env-row .warn[data-v-f1b9acea] { color: #ff9800;
502
+ .gt-env-panel .gt-env-row .warn[data-v-0812a7e6] {
503
+ color: #ff9800;
484
504
  }
485
- .gt-env-panel .gt-env-row .err[data-v-f1b9acea] { color: #f44336;
505
+ .gt-env-panel .gt-env-row .err[data-v-0812a7e6] {
506
+ color: #f44336;
486
507
  }
487
- .gt-env-divider[data-v-f1b9acea] {
508
+ .gt-env-divider[data-v-0812a7e6] {
488
509
  height: 1px;
489
510
  background: rgba(255, 255, 255, 0.1);
490
511
  margin: 4px 0;
491
512
  }
492
513
 
493
514
  /* 播放中缓冲提示 */
494
- .gt-buffering-indicator[data-v-f1b9acea] {
515
+ .gt-buffering-indicator[data-v-0812a7e6] {
495
516
  position: absolute;
496
517
  top: 50%;
497
518
  left: 50%;
498
519
  transform: translate(-50%, -50%);
499
520
  z-index: 10;
500
521
  }
501
- .gt-buffering-content[data-v-f1b9acea] {
522
+ .gt-buffering-content[data-v-0812a7e6] {
502
523
  display: flex;
503
524
  align-items: center;
504
525
  gap: 8px;
@@ -508,11 +529,11 @@ to { opacity: 1; transform: translateY(0);
508
529
  color: white;
509
530
  font-size: 13px;
510
531
  }
511
- .gt-buffering-spinner[data-v-f1b9acea] {
532
+ .gt-buffering-spinner[data-v-0812a7e6] {
512
533
  width: 16px;
513
534
  height: 16px;
514
535
  border: 2px solid rgba(255, 255, 255, 0.3);
515
536
  border-top-color: #fff;
516
537
  border-radius: 50%;
517
- animation: gt-spin-f1b9acea 1s linear infinite;
538
+ animation: gt-spin-0812a7e6 1s linear infinite;
518
539
  }