ts-video-player 0.1.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.
- package/LICENSE.md +21 -0
- package/README.md +438 -0
- package/dist/cdn.d.ts +10 -0
- package/dist/cdn.d.ts.map +1 -0
- package/dist/cdn.min.js +1046 -0
- package/dist/cdn.min.js.map +54 -0
- package/dist/cdn.test.d.ts +2 -0
- package/dist/cdn.test.d.ts.map +1 -0
- package/dist/chunk-36x4yhjn.js +765 -0
- package/dist/chunk-36x4yhjn.js.map +12 -0
- package/dist/chunk-eajts2jv.js +4243 -0
- package/dist/chunk-eajts2jv.js.map +42 -0
- package/dist/chunk-z1ehbz9f.js +380 -0
- package/dist/chunk-z1ehbz9f.js.map +19 -0
- package/dist/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/core/audio-gain.d.ts +67 -0
- package/dist/core/audio-gain.d.ts.map +1 -0
- package/dist/core/caption-styles.d.ts +121 -0
- package/dist/core/caption-styles.d.ts.map +1 -0
- package/dist/core/chapters.d.ts +150 -0
- package/dist/core/chapters.d.ts.map +1 -0
- package/dist/core/error-overlay.d.ts +71 -0
- package/dist/core/error-overlay.d.ts.map +1 -0
- package/dist/core/events.d.ts +119 -0
- package/dist/core/events.d.ts.map +1 -0
- package/dist/core/features.d.ts +64 -0
- package/dist/core/features.d.ts.map +1 -0
- package/dist/core/i18n.d.ts +132 -0
- package/dist/core/i18n.d.ts.map +1 -0
- package/dist/core/index.d.ts +37 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/live.d.ts +130 -0
- package/dist/core/live.d.ts.map +1 -0
- package/dist/core/media-session.d.ts +38 -0
- package/dist/core/media-session.d.ts.map +1 -0
- package/dist/core/orientation.d.ts +22 -0
- package/dist/core/orientation.d.ts.map +1 -0
- package/dist/core/popover.d.ts +42 -0
- package/dist/core/popover.d.ts.map +1 -0
- package/dist/core/remote-playback.d.ts +195 -0
- package/dist/core/remote-playback.d.ts.map +1 -0
- package/dist/core/settings-menu.d.ts +132 -0
- package/dist/core/settings-menu.d.ts.map +1 -0
- package/dist/core/spinner.d.ts +67 -0
- package/dist/core/spinner.d.ts.map +1 -0
- package/dist/core/state.d.ts +142 -0
- package/dist/core/state.d.ts.map +1 -0
- package/dist/core/text-tracks.d.ts +162 -0
- package/dist/core/text-tracks.d.ts.map +1 -0
- package/dist/core/themes.d.ts +213 -0
- package/dist/core/themes.d.ts.map +1 -0
- package/dist/core/thumbnails.d.ts +124 -0
- package/dist/core/thumbnails.d.ts.map +1 -0
- package/dist/core/tooltips.d.ts +100 -0
- package/dist/core/tooltips.d.ts.map +1 -0
- package/dist/elements/base.d.ts +3 -0
- package/dist/elements/base.d.ts.map +1 -0
- package/dist/elements/index.d.ts +33 -0
- package/dist/elements/index.d.ts.map +1 -0
- package/dist/elements/index.js +55 -0
- package/dist/elements/index.js.map +9 -0
- package/dist/elements/media-airplay-button.d.ts +13 -0
- package/dist/elements/media-airplay-button.d.ts.map +1 -0
- package/dist/elements/media-error-display.d.ts +13 -0
- package/dist/elements/media-error-display.d.ts.map +1 -0
- package/dist/elements/media-fullscreen-button.d.ts +13 -0
- package/dist/elements/media-fullscreen-button.d.ts.map +1 -0
- package/dist/elements/media-live-button.d.ts +13 -0
- package/dist/elements/media-live-button.d.ts.map +1 -0
- package/dist/elements/media-mute-button.d.ts +13 -0
- package/dist/elements/media-mute-button.d.ts.map +1 -0
- package/dist/elements/media-pip-button.d.ts +13 -0
- package/dist/elements/media-pip-button.d.ts.map +1 -0
- package/dist/elements/media-play-button.d.ts +14 -0
- package/dist/elements/media-play-button.d.ts.map +1 -0
- package/dist/elements/media-playback-rate-button.d.ts +10 -0
- package/dist/elements/media-playback-rate-button.d.ts.map +1 -0
- package/dist/elements/media-preview-time.d.ts +18 -0
- package/dist/elements/media-preview-time.d.ts.map +1 -0
- package/dist/elements/media-progress-bar.d.ts +16 -0
- package/dist/elements/media-progress-bar.d.ts.map +1 -0
- package/dist/elements/media-remote-playback-button.d.ts +16 -0
- package/dist/elements/media-remote-playback-button.d.ts.map +1 -0
- package/dist/elements/media-seek-button.d.ts +9 -0
- package/dist/elements/media-seek-button.d.ts.map +1 -0
- package/dist/elements/media-settings-menu.d.ts +32 -0
- package/dist/elements/media-settings-menu.d.ts.map +1 -0
- package/dist/elements/media-time-display.d.ts +21 -0
- package/dist/elements/media-time-display.d.ts.map +1 -0
- package/dist/elements/media-time-group.d.ts +22 -0
- package/dist/elements/media-time-group.d.ts.map +1 -0
- package/dist/elements/media-time-separator.d.ts +13 -0
- package/dist/elements/media-time-separator.d.ts.map +1 -0
- package/dist/elements/media-volume-slider.d.ts +16 -0
- package/dist/elements/media-volume-slider.d.ts.map +1 -0
- package/dist/elements/utils.d.ts +27 -0
- package/dist/elements/utils.d.ts.map +1 -0
- package/dist/elements/video-player.d.ts +23 -0
- package/dist/elements/video-player.d.ts.map +1 -0
- package/dist/elements/video-skin.d.ts +23 -0
- package/dist/elements/video-skin.d.ts.map +1 -0
- package/dist/features/captions.d.ts +8 -0
- package/dist/features/captions.d.ts.map +1 -0
- package/dist/features/create-player.d.ts +45 -0
- package/dist/features/create-player.d.ts.map +1 -0
- package/dist/features/fullscreen.d.ts +8 -0
- package/dist/features/fullscreen.d.ts.map +1 -0
- package/dist/features/gestures.d.ts +8 -0
- package/dist/features/gestures.d.ts.map +1 -0
- package/dist/features/index.d.ts +26 -0
- package/dist/features/index.d.ts.map +1 -0
- package/dist/features/index.js +31 -0
- package/dist/features/index.js.map +9 -0
- package/dist/features/keyboard.d.ts +8 -0
- package/dist/features/keyboard.d.ts.map +1 -0
- package/dist/features/pip.d.ts +8 -0
- package/dist/features/pip.d.ts.map +1 -0
- package/dist/features/playback.d.ts +8 -0
- package/dist/features/playback.d.ts.map +1 -0
- package/dist/features/quality.d.ts +8 -0
- package/dist/features/quality.d.ts.map +1 -0
- package/dist/features/types.d.ts +26 -0
- package/dist/features/types.d.ts.map +1 -0
- package/dist/features/volume.d.ts +8 -0
- package/dist/features/volume.d.ts.map +1 -0
- package/dist/index.d.ts +84 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8149 -0
- package/dist/index.js.map +31 -0
- package/dist/layouts/index.d.ts +58 -0
- package/dist/layouts/index.d.ts.map +1 -0
- package/dist/player.d.ts +90 -0
- package/dist/player.d.ts.map +1 -0
- package/dist/plugins/ads.d.ts +311 -0
- package/dist/plugins/ads.d.ts.map +1 -0
- package/dist/plugins/analytics.d.ts +203 -0
- package/dist/plugins/analytics.d.ts.map +1 -0
- package/dist/plugins/end-screen.d.ts +184 -0
- package/dist/plugins/end-screen.d.ts.map +1 -0
- package/dist/plugins/index.d.ts +13 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +20 -0
- package/dist/plugins/index.js.map +9 -0
- package/dist/plugins/skip-segments.d.ts +159 -0
- package/dist/plugins/skip-segments.d.ts.map +1 -0
- package/dist/plugins/watermark.d.ts +157 -0
- package/dist/plugins/watermark.d.ts.map +1 -0
- package/dist/providers/base.d.ts +56 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/dash.d.ts +94 -0
- package/dist/providers/dash.d.ts.map +1 -0
- package/dist/providers/hls.d.ts +182 -0
- package/dist/providers/hls.d.ts.map +1 -0
- package/dist/providers/html5.d.ts +64 -0
- package/dist/providers/html5.d.ts.map +1 -0
- package/dist/providers/index.d.ts +41 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/vimeo.d.ts +157 -0
- package/dist/providers/vimeo.d.ts.map +1 -0
- package/dist/providers/youtube.d.ts +134 -0
- package/dist/providers/youtube.d.ts.map +1 -0
- package/dist/stx/index.d.ts +59 -0
- package/dist/stx/index.d.ts.map +1 -0
- package/dist/stx/index.js +480 -0
- package/dist/stx/index.js.map +11 -0
- package/dist/types.d.ts +724 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/ui/components.d.ts +121 -0
- package/dist/ui/components.d.ts.map +1 -0
- package/dist/ui/index.d.ts +9 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +16 -0
- package/dist/ui/index.js.map +9 -0
- package/package.json +109 -0
- package/src/cdn.test.ts +10 -0
- package/src/cdn.ts +60 -0
- package/src/config.ts +25 -0
- package/src/core/audio-gain.ts +171 -0
- package/src/core/caption-styles.ts +568 -0
- package/src/core/chapters.ts +551 -0
- package/src/core/error-overlay.ts +354 -0
- package/src/core/events.ts +552 -0
- package/src/core/features.ts +287 -0
- package/src/core/i18n.ts +590 -0
- package/src/core/index.ts +249 -0
- package/src/core/live.ts +472 -0
- package/src/core/media-session.ts +137 -0
- package/src/core/orientation.ts +57 -0
- package/src/core/popover.ts +143 -0
- package/src/core/remote-playback.ts +661 -0
- package/src/core/settings-menu.ts +630 -0
- package/src/core/spinner.ts +310 -0
- package/src/core/state.ts +476 -0
- package/src/core/text-tracks.ts +599 -0
- package/src/core/themes.ts +607 -0
- package/src/core/thumbnails.ts +457 -0
- package/src/core/tooltips.ts +370 -0
- package/src/elements/base.ts +2 -0
- package/src/elements/index.ts +82 -0
- package/src/elements/media-airplay-button.ts +78 -0
- package/src/elements/media-error-display.ts +47 -0
- package/src/elements/media-fullscreen-button.ts +72 -0
- package/src/elements/media-live-button.ts +65 -0
- package/src/elements/media-mute-button.ts +69 -0
- package/src/elements/media-pip-button.ts +66 -0
- package/src/elements/media-play-button.ts +69 -0
- package/src/elements/media-playback-rate-button.ts +59 -0
- package/src/elements/media-preview-time.ts +75 -0
- package/src/elements/media-progress-bar.ts +200 -0
- package/src/elements/media-remote-playback-button.ts +108 -0
- package/src/elements/media-seek-button.ts +50 -0
- package/src/elements/media-settings-menu.ts +302 -0
- package/src/elements/media-time-display.ts +99 -0
- package/src/elements/media-time-group.ts +41 -0
- package/src/elements/media-time-separator.ts +35 -0
- package/src/elements/media-volume-slider.ts +140 -0
- package/src/elements/utils.ts +82 -0
- package/src/elements/video-player.ts +175 -0
- package/src/elements/video-skin.ts +127 -0
- package/src/features/captions.ts +56 -0
- package/src/features/create-player.ts +91 -0
- package/src/features/fullscreen.ts +44 -0
- package/src/features/gestures.ts +44 -0
- package/src/features/index.ts +44 -0
- package/src/features/keyboard.ts +89 -0
- package/src/features/pip.ts +47 -0
- package/src/features/playback.ts +68 -0
- package/src/features/quality.ts +19 -0
- package/src/features/types.ts +28 -0
- package/src/features/volume.ts +46 -0
- package/src/index.ts +635 -0
- package/src/layouts/index.ts +672 -0
- package/src/player.ts +821 -0
- package/src/plugins/ads.ts +1045 -0
- package/src/plugins/analytics.ts +673 -0
- package/src/plugins/end-screen.ts +793 -0
- package/src/plugins/index.ts +61 -0
- package/src/plugins/skip-segments.ts +537 -0
- package/src/plugins/watermark.ts +537 -0
- package/src/providers/base.ts +197 -0
- package/src/providers/dash.ts +588 -0
- package/src/providers/hls.ts +624 -0
- package/src/providers/html5.ts +473 -0
- package/src/providers/index.ts +97 -0
- package/src/providers/vimeo.ts +533 -0
- package/src/providers/youtube.ts +542 -0
- package/src/stx/index.ts +606 -0
- package/src/types.ts +874 -0
- package/src/ui/components.ts +910 -0
- package/src/ui/index.ts +29 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ts-video-player UI Components
|
|
3
|
+
*
|
|
4
|
+
* UI components for building video player interfaces.
|
|
5
|
+
*
|
|
6
|
+
* @module ui/components
|
|
7
|
+
*/
|
|
8
|
+
import type { Player, PlayerState, UIComponent, SliderOptions, MenuItem } from '../types';
|
|
9
|
+
/**
|
|
10
|
+
* Base class for UI components
|
|
11
|
+
*/
|
|
12
|
+
export declare abstract class BaseComponent implements UIComponent {
|
|
13
|
+
abstract name: string;
|
|
14
|
+
protected player: Player | null;
|
|
15
|
+
protected element: HTMLElement | null;
|
|
16
|
+
protected unsubscribes: Array<() => void>;
|
|
17
|
+
render(player: Player): HTMLElement;
|
|
18
|
+
protected abstract createElement(): HTMLElement;
|
|
19
|
+
protected abstract attachEvents(): void;
|
|
20
|
+
protected subscribeToState(): void;
|
|
21
|
+
update(_state: PlayerState): void;
|
|
22
|
+
destroy(): void;
|
|
23
|
+
protected el<T extends HTMLElement>(tag: string, attrs?: Record<string, string>, children?: (HTMLElement | string)[]): T;
|
|
24
|
+
}
|
|
25
|
+
export declare class PlayButton extends BaseComponent {
|
|
26
|
+
name: string;
|
|
27
|
+
protected createElement(): HTMLElement;
|
|
28
|
+
protected attachEvents(): void;
|
|
29
|
+
protected subscribeToState(): void;
|
|
30
|
+
update(state: PlayerState): void;
|
|
31
|
+
private getIcon;
|
|
32
|
+
}
|
|
33
|
+
export declare class MuteButton extends BaseComponent {
|
|
34
|
+
name: string;
|
|
35
|
+
protected createElement(): HTMLElement;
|
|
36
|
+
protected attachEvents(): void;
|
|
37
|
+
update(state: PlayerState): void;
|
|
38
|
+
private getIcon;
|
|
39
|
+
}
|
|
40
|
+
export declare class FullscreenButton extends BaseComponent {
|
|
41
|
+
name: string;
|
|
42
|
+
protected createElement(): HTMLElement;
|
|
43
|
+
protected attachEvents(): void;
|
|
44
|
+
update(state: PlayerState): void;
|
|
45
|
+
private getIcon;
|
|
46
|
+
}
|
|
47
|
+
export declare class PiPButton extends BaseComponent {
|
|
48
|
+
name: string;
|
|
49
|
+
protected createElement(): HTMLElement;
|
|
50
|
+
protected attachEvents(): void;
|
|
51
|
+
update(state: PlayerState): void;
|
|
52
|
+
private getIcon;
|
|
53
|
+
}
|
|
54
|
+
export declare class TimeDisplay extends BaseComponent {
|
|
55
|
+
name: string;
|
|
56
|
+
private showRemaining;
|
|
57
|
+
protected createElement(): HTMLElement;
|
|
58
|
+
protected attachEvents(): void;
|
|
59
|
+
update(state: PlayerState): void;
|
|
60
|
+
}
|
|
61
|
+
export declare class Slider extends BaseComponent {
|
|
62
|
+
name: string;
|
|
63
|
+
private options;
|
|
64
|
+
private track;
|
|
65
|
+
private fill;
|
|
66
|
+
private thumb;
|
|
67
|
+
private isDragging;
|
|
68
|
+
private boundPointerMove;
|
|
69
|
+
private boundPointerUp;
|
|
70
|
+
constructor(options: SliderOptions);
|
|
71
|
+
protected createElement(): HTMLElement;
|
|
72
|
+
protected attachEvents(): void;
|
|
73
|
+
private onPointerDown;
|
|
74
|
+
private onPointerMove;
|
|
75
|
+
private onPointerUp;
|
|
76
|
+
private onKeyDown;
|
|
77
|
+
private updateFromPointer;
|
|
78
|
+
setValue(value: number): void;
|
|
79
|
+
private updateVisual;
|
|
80
|
+
destroy(): void;
|
|
81
|
+
}
|
|
82
|
+
export declare class ProgressBar extends BaseComponent {
|
|
83
|
+
name: string;
|
|
84
|
+
private slider;
|
|
85
|
+
private buffered;
|
|
86
|
+
private isSeeking;
|
|
87
|
+
protected createElement(): HTMLElement;
|
|
88
|
+
protected attachEvents(): void;
|
|
89
|
+
update(state: PlayerState): void;
|
|
90
|
+
destroy(): void;
|
|
91
|
+
}
|
|
92
|
+
export declare class VolumeSlider extends BaseComponent {
|
|
93
|
+
name: string;
|
|
94
|
+
private slider;
|
|
95
|
+
protected createElement(): HTMLElement;
|
|
96
|
+
protected attachEvents(): void;
|
|
97
|
+
update(state: PlayerState): void;
|
|
98
|
+
destroy(): void;
|
|
99
|
+
}
|
|
100
|
+
export declare class Menu extends BaseComponent {
|
|
101
|
+
name: string;
|
|
102
|
+
private items;
|
|
103
|
+
private isOpen;
|
|
104
|
+
private menuEl;
|
|
105
|
+
private onSelect?;
|
|
106
|
+
constructor(items: MenuItem[], onSelect?: (item: MenuItem) => void);
|
|
107
|
+
protected createElement(): HTMLElement;
|
|
108
|
+
private renderItems;
|
|
109
|
+
protected attachEvents(): void;
|
|
110
|
+
toggle(): void;
|
|
111
|
+
open(): void;
|
|
112
|
+
close(): void;
|
|
113
|
+
setItems(items: MenuItem[]): void;
|
|
114
|
+
private getIcon;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Format time in seconds to MM:SS or HH:MM:SS
|
|
118
|
+
*/
|
|
119
|
+
export declare function formatTime(seconds: number): string;
|
|
120
|
+
export declare const UI_STYLES = "\n.ts-video-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n padding: 8px;\n background: transparent;\n border: none;\n color: white;\n cursor: pointer;\n transition: opacity 0.2s;\n}\n\n.ts-video-btn:hover {\n opacity: 0.8;\n}\n\n.ts-video-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.ts-video-time {\n font-size: 14px;\n color: white;\n font-variant-numeric: tabular-nums;\n user-select: none;\n cursor: pointer;\n}\n\n.ts-video-slider {\n position: relative;\n width: 100%;\n height: 20px;\n cursor: pointer;\n}\n\n.ts-video-slider__track {\n position: absolute;\n top: 50%;\n left: 0;\n right: 0;\n height: 4px;\n background: rgba(255, 255, 255, 0.3);\n border-radius: 2px;\n transform: translateY(-50%);\n}\n\n.ts-video-slider__fill {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n background: #fff;\n border-radius: 2px;\n}\n\n.ts-video-slider__thumb {\n position: absolute;\n top: 50%;\n width: 12px;\n height: 12px;\n background: #fff;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n transition: transform 0.1s;\n}\n\n.ts-video-slider:hover .ts-video-slider__thumb {\n transform: translate(-50%, -50%) scale(1.2);\n}\n\n.ts-video-progress {\n flex: 1;\n margin: 0 12px;\n}\n\n.ts-video-progress__buffered {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n background: rgba(255, 255, 255, 0.4);\n border-radius: 2px;\n}\n\n.ts-video-volume {\n width: 80px;\n}\n\n.ts-video-menu {\n position: relative;\n}\n\n.ts-video-menu__content {\n position: absolute;\n bottom: 100%;\n right: 0;\n min-width: 150px;\n max-height: 200px;\n overflow-y: auto;\n background: rgba(28, 28, 28, 0.95);\n border-radius: 4px;\n padding: 4px 0;\n opacity: 0;\n visibility: hidden;\n transform: translateY(10px);\n transition: opacity 0.2s, transform 0.2s, visibility 0.2s;\n}\n\n.ts-video-menu--open .ts-video-menu__content {\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n}\n\n.ts-video-menu__item {\n display: block;\n width: 100%;\n padding: 8px 16px;\n background: none;\n border: none;\n color: white;\n text-align: left;\n cursor: pointer;\n font-size: 14px;\n}\n\n.ts-video-menu__item:hover {\n background: rgba(255, 255, 255, 0.1);\n}\n\n.ts-video-menu__item--checked::before {\n content: '\u2713';\n margin-right: 8px;\n}\n\n.ts-video-menu__item--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n";
|
|
121
|
+
//# sourceMappingURL=components.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/ui/components.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ts-video-player UI
|
|
3
|
+
*
|
|
4
|
+
* UI components for building custom video player interfaces.
|
|
5
|
+
*
|
|
6
|
+
* @module ui
|
|
7
|
+
*/
|
|
8
|
+
export { BaseComponent, PlayButton, MuteButton, FullscreenButton, PiPButton, TimeDisplay, Slider, ProgressBar, VolumeSlider, Menu, formatTime, UI_STYLES, } from './components';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEL,aAAa,EAEb,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,SAAS,EAET,WAAW,EAEX,MAAM,EACN,WAAW,EACX,YAAY,EAEZ,IAAI,EAEJ,UAAU,EAEV,SAAS,GACV,MAAM,cAAc,CAAA"}
|
package/dist/ui/index.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ts-video-player",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "A modern, framework-agnostic video player with deep stx integration",
|
|
5
|
+
"author": "Chris Breuer <chris@stacksjs.org>",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"main": "./dist/index.js",
|
|
9
|
+
"module": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"sideEffects": [
|
|
12
|
+
"./dist/cdn.min.js"
|
|
13
|
+
],
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"import": "./dist/index.js"
|
|
18
|
+
},
|
|
19
|
+
"./elements": {
|
|
20
|
+
"types": "./dist/elements/index.d.ts",
|
|
21
|
+
"import": "./dist/elements/index.js"
|
|
22
|
+
},
|
|
23
|
+
"./features": {
|
|
24
|
+
"types": "./dist/features/index.d.ts",
|
|
25
|
+
"import": "./dist/features/index.js"
|
|
26
|
+
},
|
|
27
|
+
"./cdn": {
|
|
28
|
+
"import": "./dist/cdn.min.js"
|
|
29
|
+
},
|
|
30
|
+
"./core": {
|
|
31
|
+
"types": "./dist/core/index.d.ts"
|
|
32
|
+
},
|
|
33
|
+
"./stx": {
|
|
34
|
+
"types": "./dist/stx/index.d.ts",
|
|
35
|
+
"import": "./dist/stx/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./plugins": {
|
|
38
|
+
"types": "./dist/plugins/index.d.ts",
|
|
39
|
+
"import": "./dist/plugins/index.js"
|
|
40
|
+
},
|
|
41
|
+
"./providers/*": {
|
|
42
|
+
"types": "./dist/providers/*.d.ts",
|
|
43
|
+
"import": "./dist/providers/*.js"
|
|
44
|
+
},
|
|
45
|
+
"./ui": {
|
|
46
|
+
"types": "./dist/ui/index.d.ts",
|
|
47
|
+
"import": "./dist/ui/index.js"
|
|
48
|
+
},
|
|
49
|
+
"./styles/*": "./dist/styles/*"
|
|
50
|
+
},
|
|
51
|
+
"files": [
|
|
52
|
+
"dist",
|
|
53
|
+
"src"
|
|
54
|
+
],
|
|
55
|
+
"scripts": {
|
|
56
|
+
"build": "bun run build.ts",
|
|
57
|
+
"dev": "bun --watch src/index.ts",
|
|
58
|
+
"test": "bun test",
|
|
59
|
+
"typecheck": "tsc --noEmit",
|
|
60
|
+
"lint": "bunx --bun pickier .",
|
|
61
|
+
"lint:fix": "bunx --bun pickier . --fix"
|
|
62
|
+
},
|
|
63
|
+
"devDependencies": {
|
|
64
|
+
"@types/bun": "latest",
|
|
65
|
+
"typescript": "^5.7.0"
|
|
66
|
+
},
|
|
67
|
+
"peerDependencies": {
|
|
68
|
+
"stx": ">=0.65.0"
|
|
69
|
+
},
|
|
70
|
+
"peerDependenciesMeta": {
|
|
71
|
+
"stx": {
|
|
72
|
+
"optional": true
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"keywords": [
|
|
76
|
+
"video",
|
|
77
|
+
"player",
|
|
78
|
+
"media",
|
|
79
|
+
"hls",
|
|
80
|
+
"dash",
|
|
81
|
+
"youtube",
|
|
82
|
+
"vimeo",
|
|
83
|
+
"stx",
|
|
84
|
+
"web-components",
|
|
85
|
+
"accessibility",
|
|
86
|
+
"streaming",
|
|
87
|
+
"captions",
|
|
88
|
+
"subtitles",
|
|
89
|
+
"thumbnails",
|
|
90
|
+
"chapters",
|
|
91
|
+
"airplay",
|
|
92
|
+
"chromecast",
|
|
93
|
+
"analytics",
|
|
94
|
+
"ads",
|
|
95
|
+
"vast",
|
|
96
|
+
"vpaid",
|
|
97
|
+
"watermark",
|
|
98
|
+
"i18n",
|
|
99
|
+
"themes"
|
|
100
|
+
],
|
|
101
|
+
"repository": {
|
|
102
|
+
"type": "git",
|
|
103
|
+
"url": "https://github.com/stacksjs/ts-video-player"
|
|
104
|
+
},
|
|
105
|
+
"bugs": {
|
|
106
|
+
"url": "https://github.com/stacksjs/ts-video-player/issues"
|
|
107
|
+
},
|
|
108
|
+
"homepage": "https://github.com/stacksjs/ts-video-player#readme"
|
|
109
|
+
}
|
package/src/cdn.test.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { describe, expect, it } from 'bun:test'
|
|
2
|
+
|
|
3
|
+
describe('CDN entry', () => {
|
|
4
|
+
it('keeps browser registration isolated from server runtimes', async () => {
|
|
5
|
+
const previous = (globalThis as { window?: unknown }).window
|
|
6
|
+
delete (globalThis as { window?: unknown }).window
|
|
7
|
+
await expect(import(`./cdn?server=${Date.now()}`)).resolves.toBeDefined()
|
|
8
|
+
if (previous !== undefined) (globalThis as { window?: unknown }).window = previous
|
|
9
|
+
})
|
|
10
|
+
})
|
package/src/cdn.ts
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ts-video-player CDN Entry Point
|
|
3
|
+
*
|
|
4
|
+
* Registers the library on `window.VideoPlayer` for script-tag usage.
|
|
5
|
+
* This file has side effects and should be listed in package.json sideEffects.
|
|
6
|
+
*
|
|
7
|
+
* @module cdn
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { createPlayer, Player } from './player'
|
|
11
|
+
import { EventEmitter } from './core/events'
|
|
12
|
+
import { StateStore } from './core/state'
|
|
13
|
+
import { HTML5Provider } from './providers/html5'
|
|
14
|
+
import { YouTubeProvider } from './providers/youtube'
|
|
15
|
+
import { HLSProvider } from './providers/hls'
|
|
16
|
+
import { DASHProvider } from './providers/dash'
|
|
17
|
+
import { applyTheme, presetThemes } from './core/themes'
|
|
18
|
+
import { I18n, t } from './core/i18n'
|
|
19
|
+
import { layouts, createLayoutManager } from './layouts'
|
|
20
|
+
import {
|
|
21
|
+
VideoAnalytics, analyticsPlugin,
|
|
22
|
+
AdsManager, adsPlugin,
|
|
23
|
+
SkipSegmentsManager, skipSegmentsPlugin,
|
|
24
|
+
EndScreenManager, endScreenPlugin,
|
|
25
|
+
WatermarkManager, watermarkPlugin,
|
|
26
|
+
} from './plugins'
|
|
27
|
+
import { registerElements } from './elements'
|
|
28
|
+
|
|
29
|
+
if (typeof window !== 'undefined') {
|
|
30
|
+
registerElements();
|
|
31
|
+
(window as any).VideoPlayer = {
|
|
32
|
+
createPlayer,
|
|
33
|
+
Player,
|
|
34
|
+
EventEmitter,
|
|
35
|
+
StateStore,
|
|
36
|
+
HTML5Provider,
|
|
37
|
+
YouTubeProvider,
|
|
38
|
+
HLSProvider,
|
|
39
|
+
DASHProvider,
|
|
40
|
+
applyTheme,
|
|
41
|
+
presetThemes,
|
|
42
|
+
I18n,
|
|
43
|
+
t,
|
|
44
|
+
layouts,
|
|
45
|
+
createLayoutManager,
|
|
46
|
+
registerElements,
|
|
47
|
+
plugins: {
|
|
48
|
+
VideoAnalytics,
|
|
49
|
+
analyticsPlugin,
|
|
50
|
+
AdsManager,
|
|
51
|
+
adsPlugin,
|
|
52
|
+
SkipSegmentsManager,
|
|
53
|
+
skipSegmentsPlugin,
|
|
54
|
+
EndScreenManager,
|
|
55
|
+
endScreenPlugin,
|
|
56
|
+
WatermarkManager,
|
|
57
|
+
watermarkPlugin,
|
|
58
|
+
},
|
|
59
|
+
}
|
|
60
|
+
}
|
package/src/config.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
interface VideoConfig {
|
|
2
|
+
verbose: boolean
|
|
3
|
+
[key: string]: unknown
|
|
4
|
+
}
|
|
5
|
+
import { loadConfig } from 'bunfig'
|
|
6
|
+
|
|
7
|
+
export const defaultConfig: VideoConfig = {
|
|
8
|
+
verbose: true,
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// Lazy-loaded config to avoid top-level await (enables bun --compile)
|
|
12
|
+
let _config: VideoConfig | null = null
|
|
13
|
+
|
|
14
|
+
export async function getConfig(): Promise<VideoConfig> {
|
|
15
|
+
if (!_config) {
|
|
16
|
+
_config = await loadConfig({
|
|
17
|
+
name: 'video',
|
|
18
|
+
defaultConfig,
|
|
19
|
+
})
|
|
20
|
+
}
|
|
21
|
+
return _config
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// For backwards compatibility - synchronous access with default fallback
|
|
25
|
+
export const config: VideoConfig = defaultConfig
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ts-video-player Audio Gain
|
|
3
|
+
*
|
|
4
|
+
* Audio gain/boost using Web Audio API.
|
|
5
|
+
*
|
|
6
|
+
* @module core/audio-gain
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
// =============================================================================
|
|
10
|
+
// Types
|
|
11
|
+
// =============================================================================
|
|
12
|
+
|
|
13
|
+
export interface AudioGainAdapter {
|
|
14
|
+
/** Current gain value (1.0 = normal, >1.0 = boosted) */
|
|
15
|
+
readonly currentGain: number
|
|
16
|
+
/** Whether audio gain is supported */
|
|
17
|
+
readonly supported: boolean
|
|
18
|
+
/** Set the gain value */
|
|
19
|
+
setGain(gain: number): void
|
|
20
|
+
/** Remove gain (reset to 1.0) */
|
|
21
|
+
removeGain(): void
|
|
22
|
+
/** Destroy the gain node */
|
|
23
|
+
destroy(): void
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// =============================================================================
|
|
27
|
+
// Audio Gain Implementation
|
|
28
|
+
// =============================================================================
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Audio gain controller using Web Audio API
|
|
32
|
+
*/
|
|
33
|
+
export class AudioGain implements AudioGainAdapter {
|
|
34
|
+
private media: HTMLMediaElement
|
|
35
|
+
private audioContext: AudioContext | null = null
|
|
36
|
+
private sourceNode: MediaElementAudioSourceNode | null = null
|
|
37
|
+
private gainNode: GainNode | null = null
|
|
38
|
+
private _currentGain = 1
|
|
39
|
+
|
|
40
|
+
constructor(media: HTMLMediaElement) {
|
|
41
|
+
this.media = media
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
get currentGain(): number {
|
|
45
|
+
return this._currentGain
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
get supported(): boolean {
|
|
49
|
+
return typeof AudioContext !== 'undefined' || typeof (window as any).webkitAudioContext !== 'undefined'
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Set the gain value
|
|
54
|
+
*
|
|
55
|
+
* @param gain - Gain value (1.0 = normal, 2.0 = 2x volume)
|
|
56
|
+
*/
|
|
57
|
+
setGain(gain: number): void {
|
|
58
|
+
if (!this.supported) return
|
|
59
|
+
|
|
60
|
+
// Clamp gain to reasonable range
|
|
61
|
+
const clampedGain = Math.max(0, Math.min(10, gain))
|
|
62
|
+
|
|
63
|
+
// If gain is 1, just remove the effect
|
|
64
|
+
if (clampedGain === 1 && this._currentGain !== 1) {
|
|
65
|
+
this.removeGain()
|
|
66
|
+
return
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Create audio context if needed
|
|
70
|
+
if (!this.audioContext) {
|
|
71
|
+
this.createAudioContext()
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (!this.gainNode) return
|
|
75
|
+
|
|
76
|
+
this._currentGain = clampedGain
|
|
77
|
+
this.gainNode.gain.value = clampedGain
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Remove gain (reset to 1.0)
|
|
82
|
+
*/
|
|
83
|
+
removeGain(): void {
|
|
84
|
+
this._currentGain = 1
|
|
85
|
+
|
|
86
|
+
if (this.gainNode) {
|
|
87
|
+
this.gainNode.gain.value = 1
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Optionally disconnect to save resources
|
|
91
|
+
// this.disconnectNodes()
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Destroy the audio context and nodes
|
|
96
|
+
*/
|
|
97
|
+
destroy(): void {
|
|
98
|
+
this.disconnectNodes()
|
|
99
|
+
|
|
100
|
+
if (this.audioContext) {
|
|
101
|
+
this.audioContext.close().catch(() => {})
|
|
102
|
+
this.audioContext = null
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
this._currentGain = 1
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
private createAudioContext(): void {
|
|
109
|
+
try {
|
|
110
|
+
// Create audio context
|
|
111
|
+
const AudioContextClass = window.AudioContext || (window as any).webkitAudioContext
|
|
112
|
+
this.audioContext = new AudioContextClass()
|
|
113
|
+
|
|
114
|
+
// Create source node from media element
|
|
115
|
+
this.sourceNode = this.audioContext.createMediaElementSource(this.media)
|
|
116
|
+
|
|
117
|
+
// Create gain node
|
|
118
|
+
this.gainNode = this.audioContext.createGain()
|
|
119
|
+
this.gainNode.gain.value = this._currentGain
|
|
120
|
+
|
|
121
|
+
// Connect: source -> gain -> destination
|
|
122
|
+
this.sourceNode.connect(this.gainNode)
|
|
123
|
+
this.gainNode.connect(this.audioContext.destination)
|
|
124
|
+
} catch (error) {
|
|
125
|
+
console.warn('[ts-video-player] Failed to create audio gain context:', error)
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
private disconnectNodes(): void {
|
|
130
|
+
try {
|
|
131
|
+
this.sourceNode?.disconnect()
|
|
132
|
+
this.gainNode?.disconnect()
|
|
133
|
+
} catch {
|
|
134
|
+
// Ignore disconnect errors
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
this.sourceNode = null
|
|
138
|
+
this.gainNode = null
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// =============================================================================
|
|
143
|
+
// Factory
|
|
144
|
+
// =============================================================================
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Create an audio gain controller for a media element
|
|
148
|
+
*/
|
|
149
|
+
export function createAudioGain(media: HTMLMediaElement): AudioGainAdapter {
|
|
150
|
+
return new AudioGain(media)
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// =============================================================================
|
|
154
|
+
// Presets
|
|
155
|
+
// =============================================================================
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Common gain presets
|
|
159
|
+
*/
|
|
160
|
+
export const GAIN_PRESETS = {
|
|
161
|
+
normal: 1.0,
|
|
162
|
+
boost_small: 1.5,
|
|
163
|
+
boost_medium: 2.0,
|
|
164
|
+
boost_large: 3.0,
|
|
165
|
+
boost_max: 5.0,
|
|
166
|
+
} as const
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Available gain steps for UI
|
|
170
|
+
*/
|
|
171
|
+
export const GAIN_STEPS = [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 2.5, 3, 4, 5] as const
|