@give-tech/ec-player-vue 0.0.1-beta.0

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.
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Vue Composables 导出
3
+ */
4
+ export { usePlayer, type UsePlayerReturn } from './usePlayer';
5
+ export { useControls, type UseControlsParams, type UseControlsReturn } from './useControls';
6
+ export { useEnvInfo, type UseEnvInfoReturn } from './useEnvInfo';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composables/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAC3F,OAAO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * 播放器控制条逻辑
3
+ */
4
+ import { type Ref } from 'vue';
5
+ /**
6
+ * 控制条逻辑参数
7
+ */
8
+ export interface UseControlsParams {
9
+ /** 是否正在播放 */
10
+ isPlaying: Ref<boolean>;
11
+ /** 是否已加载 */
12
+ isLoaded: Ref<boolean>;
13
+ /** 当前时间(毫秒) */
14
+ currentTime: Ref<number>;
15
+ /** 总时长(毫秒) */
16
+ duration: Ref<number>;
17
+ /** 分片索引 */
18
+ segmentIndex: Ref<number>;
19
+ /** 总分片数 */
20
+ totalSegments: Ref<number>;
21
+ /** 是否为直播流 */
22
+ isLive: Ref<boolean>;
23
+ /** 跳转方法 */
24
+ seek: (time: number) => Promise<void>;
25
+ }
26
+ /**
27
+ * 控制条逻辑返回值
28
+ */
29
+ export interface UseControlsReturn {
30
+ /** 是否显示控制条 */
31
+ showControls: Ref<boolean>;
32
+ /** 进度条 hover 时间 */
33
+ hoverTime: Ref<number | null>;
34
+ /** 进度条 hover 位置 */
35
+ hoverPosition: Ref<number>;
36
+ /** 播放进度百分比 */
37
+ playProgress: Ref<number>;
38
+ /** 缓冲进度百分比 */
39
+ bufferProgress: Ref<number>;
40
+ /** 显示控制条 */
41
+ showControlsBar: () => void;
42
+ /** 隐藏控制条 */
43
+ hideControlsBar: () => void;
44
+ /** 处理进度条点击 */
45
+ handleProgressClick: (event: MouseEvent) => Promise<void>;
46
+ /** 处理进度条悬停 */
47
+ handleProgressHover: (event: MouseEvent) => void;
48
+ /** 格式化时间 */
49
+ formatTime: (ms: number) => string;
50
+ }
51
+ /**
52
+ * 控制条逻辑 Hook
53
+ */
54
+ export declare function useControls(params: UseControlsParams): UseControlsReturn;
55
+ //# sourceMappingURL=useControls.d.ts.map
@@ -0,0 +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,WAAW;IACX,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACzB,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,CAoGxE"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * 环境信息逻辑
3
+ */
4
+ import { type Ref } from 'vue';
5
+ import { type EnvInfo } from '@give-tech/ec-player';
6
+ /**
7
+ * 环境信息逻辑返回值
8
+ */
9
+ export interface UseEnvInfoReturn {
10
+ /** 环境信息 */
11
+ envInfo: Ref<EnvInfo | null>;
12
+ /** 是否显示环境面板 */
13
+ showEnvPanel: Ref<boolean>;
14
+ /** 环境类型文本 */
15
+ envTypeText: Ref<string>;
16
+ /** 切换环境面板显示 */
17
+ toggleEnvPanel: () => void;
18
+ /** 检测环境 */
19
+ detectEnv: () => void;
20
+ }
21
+ /**
22
+ * 环境信息逻辑 Hook
23
+ */
24
+ export declare function useEnvInfo(initialShowPanel?: boolean): UseEnvInfoReturn;
25
+ //# sourceMappingURL=useEnvInfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEnvInfo.d.ts","sourceRoot":"","sources":["../../src/composables/useEnvInfo.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAA4B,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AACxD,OAAO,EAAe,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAEhE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW;IACX,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAC5B,eAAe;IACf,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAC1B,aAAa;IACb,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,eAAe;IACf,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,WAAW;IACX,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,gBAAgB,GAAE,OAAe,GAChC,gBAAgB,CAyClB"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * 播放器核心逻辑
3
+ */
4
+ import { type Ref } from 'vue';
5
+ import { EcPlayerCore, type EcPlayerState } from '@give-tech/ec-player';
6
+ import type { PlayerOptions } from '../types';
7
+ /**
8
+ * 播放器逻辑返回值
9
+ */
10
+ export interface UsePlayerReturn {
11
+ /** Canvas 元素引用 */
12
+ canvasRef: Ref<HTMLCanvasElement | null>;
13
+ /** 播放器实例 */
14
+ player: Ref<EcPlayerCore | null>;
15
+ /** 响应式状态 */
16
+ state: EcPlayerState;
17
+ /** 是否正在加载 */
18
+ isLoading: Ref<boolean>;
19
+ /** 检测到的格式 */
20
+ detectedFormat: Ref<string>;
21
+ /** 是否为直播流 */
22
+ isLive: Ref<boolean>;
23
+ /** 播放 */
24
+ play: (options: {
25
+ url: string;
26
+ isLive?: boolean;
27
+ }) => Promise<void>;
28
+ /** 设置配置 */
29
+ setOptions: (options: PlayerOptions) => void;
30
+ /** 设置日志级别 */
31
+ setLogLevel: (level: number) => void;
32
+ /** 暂停 */
33
+ pause: () => void;
34
+ /** 恢复播放 */
35
+ resume: () => Promise<void>;
36
+ /** 跳转 */
37
+ seek: (time: number) => Promise<void>;
38
+ /** 获取播放器实例 */
39
+ getPlayer: () => EcPlayerCore | null;
40
+ /** 获取状态 */
41
+ getState: () => EcPlayerState;
42
+ /** 获取当前时间 */
43
+ getCurrentTime: () => number;
44
+ /** 获取总时长 */
45
+ getDuration: () => number;
46
+ /** 销毁播放器 */
47
+ destroy: () => void;
48
+ }
49
+ /**
50
+ * 播放器逻辑 Hook
51
+ */
52
+ export declare function usePlayer(emit: {
53
+ (e: 'play'): void;
54
+ (e: 'pause'): void;
55
+ }): UsePlayerReturn;
56
+ //# sourceMappingURL=usePlayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePlayer.d.ts","sourceRoot":"","sources":["../../src/composables/usePlayer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAA0C,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AACtE,OAAO,EACL,YAAY,EAIZ,KAAK,aAAa,EAEnB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAiB,aAAa,EAAE,MAAM,UAAU,CAAA;AAG5D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kBAAkB;IAClB,SAAS,EAAE,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;IACxC,YAAY;IACZ,MAAM,EAAE,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IAChC,YAAY;IACZ,KAAK,EAAE,aAAa,CAAA;IACpB,aAAa;IACb,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACvB,aAAa;IACb,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,aAAa;IACb,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACpB,SAAS;IACT,IAAI,EAAE,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnE,WAAW;IACX,UAAU,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAA;IAC5C,aAAa;IACb,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,SAAS;IACT,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,WAAW;IACX,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,SAAS;IACT,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,cAAc;IACd,SAAS,EAAE,MAAM,YAAY,GAAG,IAAI,CAAA;IACpC,WAAW;IACX,QAAQ,EAAE,MAAM,aAAa,CAAA;IAC7B,aAAa;IACb,cAAc,EAAE,MAAM,MAAM,CAAA;IAC5B,YAAY;IACZ,WAAW,EAAE,MAAM,MAAM,CAAA;IACzB,YAAY;IACZ,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAkBD;;GAEG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE;IACJ,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACjB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;CACnB,GACA,eAAe,CA0NjB"}
@@ -0,0 +1,293 @@
1
+
2
+ .gt-player-container[data-v-d2d418df] {
3
+ width: 100%;
4
+ height: 100%;
5
+ }
6
+ .gt-video-wrapper[data-v-d2d418df] {
7
+ position: relative;
8
+ width: 100%;
9
+ height: 100%;
10
+ background: #000;
11
+ overflow: hidden;
12
+ }
13
+ .gt-player-canvas[data-v-d2d418df] {
14
+ position: absolute;
15
+ top: 50%;
16
+ left: 50%;
17
+ transform: translate(-50%, -50%);
18
+ max-width: 100%;
19
+ max-height: 100%;
20
+ }
21
+ .gt-placeholder[data-v-d2d418df] {
22
+ position: absolute;
23
+ top: 0;
24
+ left: 0;
25
+ width: 100%;
26
+ height: 100%;
27
+ display: flex;
28
+ align-items: center;
29
+ justify-content: center;
30
+ background: #000;
31
+ }
32
+
33
+ /* 加载中动画 */
34
+ .gt-loading-spinner[data-v-d2d418df] {
35
+ position: absolute;
36
+ top: 0;
37
+ left: 0;
38
+ right: 0;
39
+ bottom: 0;
40
+ display: flex;
41
+ align-items: center;
42
+ justify-content: center;
43
+ background: rgba(0, 0, 0, 0.5);
44
+ z-index: 10;
45
+ }
46
+ .gt-spinner[data-v-d2d418df] {
47
+ width: 8vmin;
48
+ height: 8vmin;
49
+ border: 0.5vmin solid rgba(255, 255, 255, 0.3);
50
+ border-top-color: #fff;
51
+ border-radius: 50%;
52
+ animation: gt-spin-d2d418df 1s linear infinite;
53
+ }
54
+ @keyframes gt-spin-d2d418df {
55
+ to {
56
+ transform: rotate(360deg);
57
+ }
58
+ }
59
+
60
+ /* 视频控制条 */
61
+ .gt-video-controls[data-v-d2d418df] {
62
+ position: absolute;
63
+ bottom: 0;
64
+ left: 0;
65
+ right: 0;
66
+ padding: 10px 16px;
67
+ background: linear-gradient(transparent, rgba(0, 0, 0, 0.7));
68
+ opacity: 0;
69
+ transition: opacity 0.3s ease;
70
+ display: flex;
71
+ align-items: center;
72
+ gap: 12px;
73
+ }
74
+ .gt-flex-spacer[data-v-d2d418df] {
75
+ flex: 1;
76
+ }
77
+ .gt-video-controls.visible[data-v-d2d418df] {
78
+ opacity: 1;
79
+ }
80
+ .gt-control-btn[data-v-d2d418df] {
81
+ width: 28px;
82
+ height: 28px;
83
+ border: none;
84
+ border-radius: 50%;
85
+ background: transparent;
86
+ color: white;
87
+ cursor: pointer;
88
+ display: flex;
89
+ align-items: center;
90
+ justify-content: center;
91
+ transition: all 0.2s ease;
92
+ flex-shrink: 0;
93
+ }
94
+ .gt-control-btn[data-v-d2d418df]:hover {
95
+ background: rgba(255, 255, 255, 0.2);
96
+ }
97
+ .gt-control-btn svg[data-v-d2d418df] {
98
+ width: 14px;
99
+ height: 14px;
100
+ }
101
+ .gt-progress-container[data-v-d2d418df] {
102
+ flex: 1;
103
+ position: relative;
104
+ cursor: pointer;
105
+ height: 20px;
106
+ display: flex;
107
+ align-items: center;
108
+ }
109
+ .gt-progress-bar[data-v-d2d418df] {
110
+ width: 100%;
111
+ height: 4px;
112
+ background: rgba(255, 255, 255, 0.2);
113
+ border-radius: 2px;
114
+ position: relative;
115
+ overflow: hidden;
116
+ transition: height 0.2s ease;
117
+ }
118
+ .gt-progress-container:hover .gt-progress-bar[data-v-d2d418df] {
119
+ height: 6px;
120
+ }
121
+ .gt-progress-buffered[data-v-d2d418df] {
122
+ position: absolute;
123
+ top: 0;
124
+ left: 0;
125
+ height: 100%;
126
+ background: rgba(255, 255, 255, 0.4);
127
+ border-radius: 2px;
128
+ transition: width 0.1s;
129
+ }
130
+ .gt-progress-played[data-v-d2d418df] {
131
+ position: absolute;
132
+ top: 0;
133
+ left: 0;
134
+ height: 100%;
135
+ background: #ff2d55;
136
+ border-radius: 2px;
137
+ transition: width 0.1s;
138
+ }
139
+ .gt-progress-handle[data-v-d2d418df] {
140
+ position: absolute;
141
+ right: -6px;
142
+ top: 50%;
143
+ transform: translateY(-50%);
144
+ width: 14px;
145
+ height: 14px;
146
+ background: #ff2d55;
147
+ border-radius: 50%;
148
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
149
+ opacity: 0;
150
+ transition: opacity 0.2s, transform 0.2s;
151
+ }
152
+ .gt-progress-container:hover .gt-progress-handle[data-v-d2d418df] {
153
+ opacity: 1;
154
+ transform: translateY(-50%) scale(1.2);
155
+ }
156
+ .gt-progress-tooltip[data-v-d2d418df] {
157
+ position: absolute;
158
+ bottom: calc(100% + 8px);
159
+ transform: translateX(-50%);
160
+ background: rgba(0, 0, 0, 0.85);
161
+ color: white;
162
+ padding: 4px 8px;
163
+ border-radius: 4px;
164
+ font-size: 11px;
165
+ white-space: nowrap;
166
+ pointer-events: none;
167
+ }
168
+ .gt-time-display[data-v-d2d418df] {
169
+ color: white;
170
+ font-size: 12px;
171
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
172
+ white-space: nowrap;
173
+ flex-shrink: 0;
174
+ }
175
+ .gt-time-separator[data-v-d2d418df] {
176
+ margin: 0 4px;
177
+ opacity: 0.6;
178
+ }
179
+
180
+ /* 直播指示器 */
181
+ .gt-live-indicator[data-v-d2d418df] {
182
+ display: flex;
183
+ align-items: center;
184
+ gap: 6px;
185
+ color: white;
186
+ font-size: 12px;
187
+ font-weight: 500;
188
+ }
189
+ .gt-live-dot[data-v-d2d418df] {
190
+ width: 8px;
191
+ height: 8px;
192
+ background: #ff2d55;
193
+ border-radius: 50%;
194
+ animation: gt-live-pulse-d2d418df 1.5s ease-in-out infinite;
195
+ }
196
+ .gt-live-text[data-v-d2d418df] {
197
+ color: #ff2d55;
198
+ }
199
+ @keyframes gt-live-pulse-d2d418df {
200
+ 0%, 100% {
201
+ opacity: 1;
202
+ }
203
+ 50% {
204
+ opacity: 0.4;
205
+ }
206
+ }
207
+
208
+ /* 居中播放按钮 */
209
+ .gt-center-play-btn[data-v-d2d418df] {
210
+ position: absolute;
211
+ top: 50%;
212
+ left: 50%;
213
+ transform: translate(-50%, -50%);
214
+ width: 56px;
215
+ height: 56px;
216
+ background: rgba(0, 0, 0, 0.5);
217
+ border-radius: 50%;
218
+ display: flex;
219
+ align-items: center;
220
+ justify-content: center;
221
+ cursor: pointer;
222
+ transition: all 0.2s ease;
223
+ }
224
+ .gt-center-play-btn[data-v-d2d418df]:hover {
225
+ background: rgba(0, 0, 0, 0.7);
226
+ transform: translate(-50%, -50%) scale(1.05);
227
+ }
228
+ .gt-center-play-btn svg[data-v-d2d418df] {
229
+ width: 24px;
230
+ height: 24px;
231
+ color: white;
232
+ margin-left: 3px;
233
+ }
234
+
235
+ /* 环境信息面板 */
236
+ .gt-env-panel[data-v-d2d418df] {
237
+ position: absolute;
238
+ top: 12px;
239
+ left: 12px;
240
+ background: rgba(0, 0, 0, 0.8);
241
+ border-radius: 6px;
242
+ padding: 8px 10px;
243
+ font-size: 11px;
244
+ font-family: 'SF Mono', 'Monaco', 'Consolas', monospace;
245
+ min-width: 160px;
246
+ max-width: 200px;
247
+ max-height: calc(100% - 24px);
248
+ overflow-y: auto;
249
+ backdrop-filter: blur(10px);
250
+ animation: gt-env-fade-in-d2d418df 0.15s ease;
251
+ z-index: 15;
252
+ }
253
+ .gt-env-panel[data-v-d2d418df]::-webkit-scrollbar {
254
+ width: 4px;
255
+ }
256
+ .gt-env-panel[data-v-d2d418df]::-webkit-scrollbar-track {
257
+ background: transparent;
258
+ }
259
+ .gt-env-panel[data-v-d2d418df]::-webkit-scrollbar-thumb {
260
+ background: rgba(255, 255, 255, 0.3);
261
+ border-radius: 2px;
262
+ }
263
+ @keyframes gt-env-fade-in-d2d418df {
264
+ from { opacity: 0; transform: translateY(-4px);
265
+ }
266
+ to { opacity: 1; transform: translateY(0);
267
+ }
268
+ }
269
+ .gt-env-panel .gt-env-row[data-v-d2d418df] {
270
+ display: flex;
271
+ justify-content: space-between;
272
+ align-items: center;
273
+ padding: 2px 0;
274
+ color: rgba(255, 255, 255, 0.7);
275
+ }
276
+ .gt-env-panel .gt-env-row span[data-v-d2d418df]:first-child {
277
+ color: rgba(255, 255, 255, 0.5);
278
+ margin-right: 16px;
279
+ }
280
+ .gt-env-panel .gt-env-row span[data-v-d2d418df]:last-child {
281
+ font-variant-numeric: tabular-nums;
282
+ }
283
+ .gt-env-panel .gt-env-row .ok[data-v-d2d418df] { color: #4caf50;
284
+ }
285
+ .gt-env-panel .gt-env-row .warn[data-v-d2d418df] { color: #ff9800;
286
+ }
287
+ .gt-env-panel .gt-env-row .err[data-v-d2d418df] { color: #f44336;
288
+ }
289
+ .gt-env-divider[data-v-d2d418df] {
290
+ height: 1px;
291
+ background: rgba(255, 255, 255, 0.1);
292
+ margin: 4px 0;
293
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @give-tech/ec-player-vue
3
+ *
4
+ * Vue 3 播放器组件
5
+ */
6
+ export { default as EcPlayer } from './components/EcPlayer.vue';
7
+ export type { EcPlayerProps, EcPlayerEmits, EcPlayerExpose, EcPlayerSource, EcPlayerControlOption, EnvPanelData, EcPlayerGlobalConfig, WasmPathConfig, PlayerOptions } from './types';
8
+ export { configureEcPlayer, getGlobalConfig, getWasmConfig, getMergedConfig, getMergedPlayerOptions, resolveWasmPath, DEFAULT_EC_PLAYER_PROPS, DEFAULT_PLAYER_OPTIONS, DEFAULT_WASM_CONFIG, LogLevel } from './types';
9
+ export { usePlayer, useControls, useEnvInfo, type UsePlayerReturn, type UseControlsParams, type UseControlsReturn, type UseEnvInfoReturn } from './composables';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAG/D,YAAY,EACV,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,aAAa,EACd,MAAM,SAAS,CAAA;AAGhB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,QAAQ,EACT,MAAM,SAAS,CAAA;AAGhB,OAAO,EACL,SAAS,EACT,WAAW,EACX,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAA"}