playron 1.0.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/README.md +287 -0
- package/dist/Docs.d.ts +2 -0
- package/dist/Docs.d.ts.map +1 -0
- package/dist/ErrorManager-CDf_sFKX.cjs +1 -0
- package/dist/ErrorManager-i9WcRsWb.js +43 -0
- package/dist/Why.d.ts +2 -0
- package/dist/Why.d.ts.map +1 -0
- package/dist/components/PlayerConfig.d.ts +34 -0
- package/dist/components/PlayerConfig.d.ts.map +1 -0
- package/dist/components/PlayronControls.d.ts +26 -0
- package/dist/components/PlayronControls.d.ts.map +1 -0
- package/dist/components/PlayronPlayer.d.ts +37 -0
- package/dist/components/PlayronPlayer.d.ts.map +1 -0
- package/dist/components/SiteHeader.d.ts +6 -0
- package/dist/components/SiteHeader.d.ts.map +1 -0
- package/dist/constants/sample-intro-outro.d.ts +3 -0
- package/dist/constants/sample-intro-outro.d.ts.map +1 -0
- package/dist/constants/source.d.ts +2 -0
- package/dist/constants/source.d.ts.map +1 -0
- package/dist/constants/sports-events.d.ts +58 -0
- package/dist/constants/sports-events.d.ts.map +1 -0
- package/dist/context/PlayerContext.d.ts +3 -0
- package/dist/context/PlayerContext.d.ts.map +1 -0
- package/dist/context/PlayerMethodsContext.d.ts +63 -0
- package/dist/context/PlayerMethodsContext.d.ts.map +1 -0
- package/dist/context/PlayerProvider.d.ts +9 -0
- package/dist/context/PlayerProvider.d.ts.map +1 -0
- package/dist/context/PlayerStateContext.d.ts +4 -0
- package/dist/context/PlayerStateContext.d.ts.map +1 -0
- package/dist/context/PlayronContext.d.ts +100 -0
- package/dist/context/PlayronContext.d.ts.map +1 -0
- package/dist/context/SubtitleStyleContext.d.ts +22 -0
- package/dist/context/SubtitleStyleContext.d.ts.map +1 -0
- package/dist/core/ConfigManager.d.ts +78 -0
- package/dist/core/ConfigManager.d.ts.map +1 -0
- package/dist/core/ErrorManager.d.ts +22 -0
- package/dist/core/ErrorManager.d.ts.map +1 -0
- package/dist/core/EventBus.d.ts +32 -0
- package/dist/core/EventBus.d.ts.map +1 -0
- package/dist/core/PlayerCore.d.ts +170 -0
- package/dist/core/PlayerCore.d.ts.map +1 -0
- package/dist/core/PlayronEventEmitter.d.ts +162 -0
- package/dist/core/PlayronEventEmitter.d.ts.map +1 -0
- package/dist/core/PluginSystem.d.ts +111 -0
- package/dist/core/PluginSystem.d.ts.map +1 -0
- package/dist/core/StallDetector.d.ts +27 -0
- package/dist/core/StallDetector.d.ts.map +1 -0
- package/dist/core/StateManager.d.ts +90 -0
- package/dist/core/StateManager.d.ts.map +1 -0
- package/dist/core/VideoEngine.d.ts +92 -0
- package/dist/core/VideoEngine.d.ts.map +1 -0
- package/dist/core/adaptive/StreamDetector.d.ts +73 -0
- package/dist/core/adaptive/StreamDetector.d.ts.map +1 -0
- package/dist/core/drm/DrmCapabilityProbe.d.ts +13 -0
- package/dist/core/drm/DrmCapabilityProbe.d.ts.map +1 -0
- package/dist/core/network/index.d.ts +6 -0
- package/dist/core/network/index.d.ts.map +1 -0
- package/dist/core/streaming/DashEngine.d.ts +149 -0
- package/dist/core/streaming/DashEngine.d.ts.map +1 -0
- package/dist/core/streaming/HlsEngine.d.ts +168 -0
- package/dist/core/streaming/HlsEngine.d.ts.map +1 -0
- package/dist/core/streaming/SubtitleManager.d.ts +88 -0
- package/dist/core/streaming/SubtitleManager.d.ts.map +1 -0
- package/dist/core/streaming/ThumbnailManager.d.ts +44 -0
- package/dist/core/streaming/ThumbnailManager.d.ts.map +1 -0
- package/dist/core/streaming/index.d.ts +11 -0
- package/dist/core/streaming/index.d.ts.map +1 -0
- package/dist/core/streaming/parsers/WebVttParser.d.ts +56 -0
- package/dist/core/streaming/parsers/WebVttParser.d.ts.map +1 -0
- package/dist/hooks/useClickOutside.d.ts +4 -0
- package/dist/hooks/useClickOutside.d.ts.map +1 -0
- package/dist/hooks/useKeyboardControls.d.ts +20 -0
- package/dist/hooks/useKeyboardControls.d.ts.map +1 -0
- package/dist/hooks/useMobileGestures.d.ts +17 -0
- package/dist/hooks/useMobileGestures.d.ts.map +1 -0
- package/dist/hooks/useMouseActivity.d.ts +10 -0
- package/dist/hooks/useMouseActivity.d.ts.map +1 -0
- package/dist/hooks/usePlayer.d.ts +6 -0
- package/dist/hooks/usePlayer.d.ts.map +1 -0
- package/dist/hooks/usePlayerMethods.d.ts +6 -0
- package/dist/hooks/usePlayerMethods.d.ts.map +1 -0
- package/dist/hooks/usePlayerState.d.ts +11 -0
- package/dist/hooks/usePlayerState.d.ts.map +1 -0
- package/dist/index.d.ts +99 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/layout/ControlsContainer.d.ts +9 -0
- package/dist/layout/ControlsContainer.d.ts.map +1 -0
- package/dist/layout/ControlsContainer.responsive.d.ts +8 -0
- package/dist/layout/ControlsContainer.responsive.d.ts.map +1 -0
- package/dist/layout/SeekBarContainer.d.ts +16 -0
- package/dist/layout/SeekBarContainer.d.ts.map +1 -0
- package/dist/playron.cjs.js +248 -0
- package/dist/playron.css +1 -0
- package/dist/playron.es.js +47631 -0
- package/dist/plugins/AdPlugin.d.ts +8 -0
- package/dist/plugins/AdPlugin.d.ts.map +1 -0
- package/dist/plugins/AnalyticsPlugin.d.ts +50 -0
- package/dist/plugins/AnalyticsPlugin.d.ts.map +1 -0
- package/dist/plugins/PluginManager.d.ts +2 -0
- package/dist/plugins/PluginManager.d.ts.map +1 -0
- package/dist/plugins/SocialPlugin.d.ts +2 -0
- package/dist/plugins/SocialPlugin.d.ts.map +1 -0
- package/dist/plugins/ads/AdManager.d.ts +79 -0
- package/dist/plugins/ads/AdManager.d.ts.map +1 -0
- package/dist/plugins/ads/AdPlayer.d.ts +33 -0
- package/dist/plugins/ads/AdPlayer.d.ts.map +1 -0
- package/dist/plugins/ads/AdTracker.d.ts +34 -0
- package/dist/plugins/ads/AdTracker.d.ts.map +1 -0
- package/dist/plugins/ads/VASTParser.d.ts +52 -0
- package/dist/plugins/ads/VASTParser.d.ts.map +1 -0
- package/dist/plugins/ads/VMAPParser.d.ts +31 -0
- package/dist/plugins/ads/VMAPParser.d.ts.map +1 -0
- package/dist/plugins/ads/types.d.ts +108 -0
- package/dist/plugins/ads/types.d.ts.map +1 -0
- package/dist/poster.png +0 -0
- package/dist/test-ad.xml +37 -0
- package/dist/test-vmap.xml +30 -0
- package/dist/types/analytics.d.ts +86 -0
- package/dist/types/analytics.d.ts.map +1 -0
- package/dist/types/chapters.types.d.ts +17 -0
- package/dist/types/chapters.types.d.ts.map +1 -0
- package/dist/types/config.d.ts +23 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.types.d.ts +244 -0
- package/dist/types/config.types.d.ts.map +1 -0
- package/dist/types/controlbar.types.d.ts +5 -0
- package/dist/types/controlbar.types.d.ts.map +1 -0
- package/dist/types/drm.types.d.ts +163 -0
- package/dist/types/drm.types.d.ts.map +1 -0
- package/dist/types/events.d.ts +36 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/extended.types.d.ts +85 -0
- package/dist/types/extended.types.d.ts.map +1 -0
- package/dist/types/manifest.types.d.ts +297 -0
- package/dist/types/manifest.types.d.ts.map +1 -0
- package/dist/types/playbutton.types.d.ts +2 -0
- package/dist/types/playbutton.types.d.ts.map +1 -0
- package/dist/types/player.types.d.ts +13 -0
- package/dist/types/player.types.d.ts.map +1 -0
- package/dist/types/seekbar.types.d.ts +5 -0
- package/dist/types/seekbar.types.d.ts.map +1 -0
- package/dist/types/streaming.types.d.ts +168 -0
- package/dist/types/streaming.types.d.ts.map +1 -0
- package/dist/types/timeline.types.d.ts +46 -0
- package/dist/types/timeline.types.d.ts.map +1 -0
- package/dist/types/video-events.d.ts +51 -0
- package/dist/types/video-events.d.ts.map +1 -0
- package/dist/ui/Common/BufferingIndicator.d.ts +2 -0
- package/dist/ui/Common/BufferingIndicator.d.ts.map +1 -0
- package/dist/ui/Common/ControlBar.d.ts +3 -0
- package/dist/ui/Common/ControlBar.d.ts.map +1 -0
- package/dist/ui/Common/ControlBar.responsive.d.ts +3 -0
- package/dist/ui/Common/ControlBar.responsive.d.ts.map +1 -0
- package/dist/ui/Common/Dropdown/Dropdown.d.ts +14 -0
- package/dist/ui/Common/Dropdown/Dropdown.d.ts.map +1 -0
- package/dist/ui/Common/Dropdown/DropdownItem.d.ts +11 -0
- package/dist/ui/Common/Dropdown/DropdownItem.d.ts.map +1 -0
- package/dist/ui/Common/Dropdown/DropdownPanel.d.ts +9 -0
- package/dist/ui/Common/Dropdown/DropdownPanel.d.ts.map +1 -0
- package/dist/ui/Common/Dropdown/DropdownTrigger.d.ts +7 -0
- package/dist/ui/Common/Dropdown/DropdownTrigger.d.ts.map +1 -0
- package/dist/ui/Common/LoadingSpinner.d.ts +6 -0
- package/dist/ui/Common/LoadingSpinner.d.ts.map +1 -0
- package/dist/ui/Common/Overlay.d.ts +11 -0
- package/dist/ui/Common/Overlay.d.ts.map +1 -0
- package/dist/ui/Common/SeekBar.d.ts +15 -0
- package/dist/ui/Common/SeekBar.d.ts.map +1 -0
- package/dist/ui/Common/SeekBar.responsive.d.ts +10 -0
- package/dist/ui/Common/SeekBar.responsive.d.ts.map +1 -0
- package/dist/ui/Common/TimeDisplay.d.ts +2 -0
- package/dist/ui/Common/TimeDisplay.d.ts.map +1 -0
- package/dist/ui/Common/TimelineMarker.d.ts +11 -0
- package/dist/ui/Common/TimelineMarker.d.ts.map +1 -0
- package/dist/ui/Common/Tooltip.d.ts +2 -0
- package/dist/ui/Common/Tooltip.d.ts.map +1 -0
- package/dist/ui/Common/VolumePanel.d.ts +2 -0
- package/dist/ui/Common/VolumePanel.d.ts.map +1 -0
- package/dist/ui/Controls/AudioTrackSelector.d.ts +2 -0
- package/dist/ui/Controls/AudioTrackSelector.d.ts.map +1 -0
- package/dist/ui/Controls/CaptionsButton.d.ts +2 -0
- package/dist/ui/Controls/CaptionsButton.d.ts.map +1 -0
- package/dist/ui/Controls/CastButton.d.ts +17 -0
- package/dist/ui/Controls/CastButton.d.ts.map +1 -0
- package/dist/ui/Controls/DownloadButton.d.ts +2 -0
- package/dist/ui/Controls/DownloadButton.d.ts.map +1 -0
- package/dist/ui/Controls/EpisodeSelector.d.ts +2 -0
- package/dist/ui/Controls/EpisodeSelector.d.ts.map +1 -0
- package/dist/ui/Controls/FullscreenButton.d.ts +5 -0
- package/dist/ui/Controls/FullscreenButton.d.ts.map +1 -0
- package/dist/ui/Controls/JumpToLiveButton.d.ts +2 -0
- package/dist/ui/Controls/JumpToLiveButton.d.ts.map +1 -0
- package/dist/ui/Controls/LiveLatencyDisplay.d.ts +2 -0
- package/dist/ui/Controls/LiveLatencyDisplay.d.ts.map +1 -0
- package/dist/ui/Controls/MuteButton.d.ts +5 -0
- package/dist/ui/Controls/MuteButton.d.ts.map +1 -0
- package/dist/ui/Controls/NextEpisodeButton.d.ts +7 -0
- package/dist/ui/Controls/NextEpisodeButton.d.ts.map +1 -0
- package/dist/ui/Controls/PipButton.d.ts +5 -0
- package/dist/ui/Controls/PipButton.d.ts.map +1 -0
- package/dist/ui/Controls/PlayButton.d.ts +5 -0
- package/dist/ui/Controls/PlayButton.d.ts.map +1 -0
- package/dist/ui/Controls/PlaybackSpeedSelector.d.ts +2 -0
- package/dist/ui/Controls/PlaybackSpeedSelector.d.ts.map +1 -0
- package/dist/ui/Controls/PlaylistButton.d.ts +2 -0
- package/dist/ui/Controls/PlaylistButton.d.ts.map +1 -0
- package/dist/ui/Controls/QualitySelector.d.ts +2 -0
- package/dist/ui/Controls/QualitySelector.d.ts.map +1 -0
- package/dist/ui/Controls/SeekBar.d.ts +2 -0
- package/dist/ui/Controls/SeekBar.d.ts.map +1 -0
- package/dist/ui/Controls/SeekBarProgress.d.ts +2 -0
- package/dist/ui/Controls/SeekBarProgress.d.ts.map +1 -0
- package/dist/ui/Controls/SettingsButton.d.ts +2 -0
- package/dist/ui/Controls/SettingsButton.d.ts.map +1 -0
- package/dist/ui/Controls/SettingsPanel.d.ts +17 -0
- package/dist/ui/Controls/SettingsPanel.d.ts.map +1 -0
- package/dist/ui/Controls/SkipBackwardButton.d.ts +6 -0
- package/dist/ui/Controls/SkipBackwardButton.d.ts.map +1 -0
- package/dist/ui/Controls/SkipForwardButton.d.ts +6 -0
- package/dist/ui/Controls/SkipForwardButton.d.ts.map +1 -0
- package/dist/ui/Controls/SkipIntroButton.d.ts +7 -0
- package/dist/ui/Controls/SkipIntroButton.d.ts.map +1 -0
- package/dist/ui/Controls/SubtitleOverlay.d.ts +6 -0
- package/dist/ui/Controls/SubtitleOverlay.d.ts.map +1 -0
- package/dist/ui/Controls/SubtitlesMenu.d.ts +2 -0
- package/dist/ui/Controls/SubtitlesMenu.d.ts.map +1 -0
- package/dist/ui/Controls/TheaterModeButton.d.ts +2 -0
- package/dist/ui/Controls/TheaterModeButton.d.ts.map +1 -0
- package/dist/ui/Controls/TimeDisplay.d.ts +5 -0
- package/dist/ui/Controls/TimeDisplay.d.ts.map +1 -0
- package/dist/ui/Controls/VolumeControl.d.ts +2 -0
- package/dist/ui/Controls/VolumeControl.d.ts.map +1 -0
- package/dist/ui/Controls/VolumeSlider.d.ts +2 -0
- package/dist/ui/Controls/VolumeSlider.d.ts.map +1 -0
- package/dist/ui/Overlay/ContextMenu.d.ts +17 -0
- package/dist/ui/Overlay/ContextMenu.d.ts.map +1 -0
- package/dist/ui/Overlay/EndCard.d.ts +11 -0
- package/dist/ui/Overlay/EndCard.d.ts.map +1 -0
- package/dist/ui/Overlay/ErrorOverlay.d.ts +13 -0
- package/dist/ui/Overlay/ErrorOverlay.d.ts.map +1 -0
- package/dist/ui/Overlay/GestureHintOverlay.d.ts +14 -0
- package/dist/ui/Overlay/GestureHintOverlay.d.ts.map +1 -0
- package/dist/ui/Overlay/KeyboardShortcutsOverlay.d.ts +7 -0
- package/dist/ui/Overlay/KeyboardShortcutsOverlay.d.ts.map +1 -0
- package/dist/ui/Overlay/VideoOverlay.d.ts +9 -0
- package/dist/ui/Overlay/VideoOverlay.d.ts.map +1 -0
- package/dist/ui/Player.d.ts +19 -0
- package/dist/ui/Player.d.ts.map +1 -0
- package/dist/vite.svg +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,GAAG,WAAW,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import { TimelineConfig } from './timeline.types';
|
|
2
|
+
import { LicenseAcquisitionConfig } from './drm.types';
|
|
3
|
+
export interface PlayerConfig {
|
|
4
|
+
/**
|
|
5
|
+
* Player behavior configuration
|
|
6
|
+
*/
|
|
7
|
+
player?: {
|
|
8
|
+
/** Default volume (0-1) */
|
|
9
|
+
defaultVolume?: number;
|
|
10
|
+
/** Default playback rate */
|
|
11
|
+
defaultPlaybackRate?: number;
|
|
12
|
+
/** Skip forward/backward duration in seconds */
|
|
13
|
+
skipSeconds?: number;
|
|
14
|
+
/** Auto-resume from last position */
|
|
15
|
+
autoResume?: boolean;
|
|
16
|
+
/** Loop video */
|
|
17
|
+
loop?: boolean;
|
|
18
|
+
/** Preload strategy */
|
|
19
|
+
preload?: 'none' | 'metadata' | 'auto';
|
|
20
|
+
/** Include credentials (cookies, auth headers) in CORS requests */
|
|
21
|
+
withCredentials?: boolean;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* UI/UX configuration
|
|
25
|
+
*/
|
|
26
|
+
ui?: {
|
|
27
|
+
/** Auto-hide controls delay (ms) */
|
|
28
|
+
autoHideDelay?: number;
|
|
29
|
+
/** Show player title */
|
|
30
|
+
showTitle?: boolean;
|
|
31
|
+
/** Control bar position */
|
|
32
|
+
controlBarPosition?: 'bottom' | 'overlay';
|
|
33
|
+
/** Seek bar height (px) */
|
|
34
|
+
seekBarHeight?: number;
|
|
35
|
+
/** Show time tooltip on hover */
|
|
36
|
+
showTimeTooltip?: boolean;
|
|
37
|
+
/** Show volume slider */
|
|
38
|
+
showVolumeSlider?: boolean;
|
|
39
|
+
/** Custom overlay icons */
|
|
40
|
+
overlayIcons?: {
|
|
41
|
+
/** Custom play icon (SVG string or image URL) */
|
|
42
|
+
playIcon?: string;
|
|
43
|
+
/** Custom pause icon (SVG string or image URL) */
|
|
44
|
+
pauseIcon?: string;
|
|
45
|
+
/** Custom loading/buffering icon (SVG string or image URL) */
|
|
46
|
+
loadingIcon?: string;
|
|
47
|
+
/** Icon size (px) */
|
|
48
|
+
iconSize?: number;
|
|
49
|
+
/** Container size (px) */
|
|
50
|
+
containerSize?: number;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Feature toggles
|
|
55
|
+
*/
|
|
56
|
+
features?: {
|
|
57
|
+
/** Enable Picture-in-Picture */
|
|
58
|
+
pip?: boolean;
|
|
59
|
+
/** Enable fullscreen */
|
|
60
|
+
fullscreen?: boolean;
|
|
61
|
+
/** Enable theater mode */
|
|
62
|
+
theaterMode?: boolean;
|
|
63
|
+
/** Enable chapters */
|
|
64
|
+
chapters?: boolean;
|
|
65
|
+
/** Enable skip intro/outro */
|
|
66
|
+
skipIntro?: boolean;
|
|
67
|
+
/** Enable subtitles */
|
|
68
|
+
subtitles?: boolean;
|
|
69
|
+
/** Enable quality selector */
|
|
70
|
+
qualitySelector?: boolean;
|
|
71
|
+
/** Enable audio track selector */
|
|
72
|
+
audioTrackSelector?: boolean;
|
|
73
|
+
/** Enable playback speed control */
|
|
74
|
+
playbackSpeed?: boolean;
|
|
75
|
+
/** Enable keyboard shortcuts */
|
|
76
|
+
keyboardShortcuts?: boolean;
|
|
77
|
+
/** Enable AirPlay button (Safari only — hidden in other browsers) */
|
|
78
|
+
airPlay?: boolean;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Branding and styling
|
|
82
|
+
*/
|
|
83
|
+
branding?: {
|
|
84
|
+
/** Primary color (hex) */
|
|
85
|
+
primaryColor?: string;
|
|
86
|
+
/** Accent color (hex) */
|
|
87
|
+
accentColor?: string;
|
|
88
|
+
/** Player logo URL */
|
|
89
|
+
logo?: string;
|
|
90
|
+
/** Logo link */
|
|
91
|
+
logoLink?: string;
|
|
92
|
+
/** Custom CSS class */
|
|
93
|
+
customClass?: string;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Content metadata
|
|
97
|
+
*/
|
|
98
|
+
metadata?: {
|
|
99
|
+
/** Video title */
|
|
100
|
+
title?: string;
|
|
101
|
+
/** Video description */
|
|
102
|
+
description?: string;
|
|
103
|
+
/** Thumbnail URL */
|
|
104
|
+
thumbnail?: string;
|
|
105
|
+
/** Content rating */
|
|
106
|
+
rating?: string;
|
|
107
|
+
/** Content warnings */
|
|
108
|
+
warnings?: string[];
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Advanced settings
|
|
112
|
+
*/
|
|
113
|
+
advanced?: {
|
|
114
|
+
/** Buffer ahead time (seconds) */
|
|
115
|
+
bufferAhead?: number;
|
|
116
|
+
/** Buffer behind time (seconds) */
|
|
117
|
+
bufferBehind?: number;
|
|
118
|
+
/** Max buffer length (seconds) */
|
|
119
|
+
maxBufferLength?: number;
|
|
120
|
+
/** Enable debug mode */
|
|
121
|
+
debug?: boolean;
|
|
122
|
+
/** Analytics enabled */
|
|
123
|
+
analytics?: boolean;
|
|
124
|
+
/** Error reporting enabled */
|
|
125
|
+
errorReporting?: boolean;
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* Thumbnail preview (storyboard) configuration.
|
|
129
|
+
* Provide a WebVTT file mapping time ranges to image URLs.
|
|
130
|
+
* Supports sprite sheets via #xywh media fragments.
|
|
131
|
+
*/
|
|
132
|
+
thumbnails?: {
|
|
133
|
+
/** URL of the WebVTT thumbnail track */
|
|
134
|
+
vttUrl?: string;
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Live stream configuration
|
|
138
|
+
*/
|
|
139
|
+
live?: {
|
|
140
|
+
/**
|
|
141
|
+
* Seconds behind live edge before the player is considered "not at live edge".
|
|
142
|
+
* Used to show/hide the "Jump to Live" button. Default: 10
|
|
143
|
+
*/
|
|
144
|
+
atLiveEdgeTolerance?: number;
|
|
145
|
+
/** Show the "Jump to Live" button when behind the live edge (default: true) */
|
|
146
|
+
showJumpToLiveButton?: boolean;
|
|
147
|
+
/** Show current latency badge next to the live indicator (default: false) */
|
|
148
|
+
showLatency?: boolean;
|
|
149
|
+
/** DVR window: allow seeking back in live streams (default: true when seekable range > 0) */
|
|
150
|
+
dvr?: boolean;
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
* Rich player mode (enables advanced features like timeline markers)
|
|
154
|
+
*/
|
|
155
|
+
isRichPlayer?: boolean;
|
|
156
|
+
/**
|
|
157
|
+
* Timeline markers configuration
|
|
158
|
+
*/
|
|
159
|
+
timeline?: TimelineConfig;
|
|
160
|
+
/**
|
|
161
|
+
* DRM (Digital Rights Management) configuration.
|
|
162
|
+
* Supports Widevine, FairPlay, and PlayReady.
|
|
163
|
+
* All three can be configured simultaneously — the player will select the
|
|
164
|
+
* system supported by the current browser automatically.
|
|
165
|
+
*/
|
|
166
|
+
drm?: {
|
|
167
|
+
/** Enable DRM (default: false) */
|
|
168
|
+
enabled?: boolean;
|
|
169
|
+
/** Widevine — Chrome, Firefox, Android, Smart TVs */
|
|
170
|
+
widevine?: {
|
|
171
|
+
licenseUrl: string;
|
|
172
|
+
/** Extra HTTP headers sent with every license request */
|
|
173
|
+
headers?: Record<string, string>;
|
|
174
|
+
/** Include cookies in license requests */
|
|
175
|
+
withCredentials?: boolean;
|
|
176
|
+
licenseAcquisitionConfig?: LicenseAcquisitionConfig;
|
|
177
|
+
};
|
|
178
|
+
/** FairPlay Streaming — Safari, iOS, macOS */
|
|
179
|
+
fairplay?: {
|
|
180
|
+
licenseUrl: string;
|
|
181
|
+
/** URL of the FairPlay server certificate (.der / .cer) */
|
|
182
|
+
certificateUrl: string;
|
|
183
|
+
headers?: Record<string, string>;
|
|
184
|
+
withCredentials?: boolean;
|
|
185
|
+
licenseAcquisitionConfig?: LicenseAcquisitionConfig;
|
|
186
|
+
};
|
|
187
|
+
/** PlayReady — Edge, IE, Windows, Xbox */
|
|
188
|
+
playready?: {
|
|
189
|
+
licenseUrl: string;
|
|
190
|
+
headers?: Record<string, string>;
|
|
191
|
+
withCredentials?: boolean;
|
|
192
|
+
licenseAcquisitionConfig?: LicenseAcquisitionConfig;
|
|
193
|
+
};
|
|
194
|
+
/**
|
|
195
|
+
* Force a specific DRM system instead of auto-detecting.
|
|
196
|
+
* Useful when testing or when a specific system should take precedence.
|
|
197
|
+
*/
|
|
198
|
+
preferredSystem?: 'widevine' | 'fairplay' | 'playready';
|
|
199
|
+
};
|
|
200
|
+
/**
|
|
201
|
+
* Ads configuration (VAST/VMAP)
|
|
202
|
+
*/
|
|
203
|
+
ads?: {
|
|
204
|
+
/** Enable ads */
|
|
205
|
+
enabled?: boolean;
|
|
206
|
+
/** VAST URL (for pre-roll ad, if vmapUrl is not provided) */
|
|
207
|
+
vastUrl?: string;
|
|
208
|
+
/** VMAP URL (alternative to vastUrl - supports pre-roll, mid-roll, post-roll) */
|
|
209
|
+
vmapUrl?: string;
|
|
210
|
+
/** Skip button after X seconds (default: 5, 0 = no skip) */
|
|
211
|
+
skipAfter?: number;
|
|
212
|
+
/** VAST/VMAP request timeout in ms (default: 5000) */
|
|
213
|
+
timeout?: number;
|
|
214
|
+
/** Max VAST wrapper depth (default: 5) */
|
|
215
|
+
maxWrapperDepth?: number;
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Default configuration values
|
|
220
|
+
*/
|
|
221
|
+
export declare const DEFAULT_VIRTUS_CONFIG: Required<PlayerConfig>;
|
|
222
|
+
/**
|
|
223
|
+
* Merge user config with defaults
|
|
224
|
+
*/
|
|
225
|
+
export declare function mergeConfig(userConfig?: PlayerConfig): Required<PlayerConfig>;
|
|
226
|
+
/**
|
|
227
|
+
* Player state interface (existing)
|
|
228
|
+
*/
|
|
229
|
+
export interface PlayerState {
|
|
230
|
+
isPlaying: boolean;
|
|
231
|
+
isMuted: boolean;
|
|
232
|
+
volume: number;
|
|
233
|
+
currentTime: number;
|
|
234
|
+
duration: number;
|
|
235
|
+
playbackRate?: number;
|
|
236
|
+
quality?: string;
|
|
237
|
+
audioTrack?: string;
|
|
238
|
+
isFullscreen?: boolean;
|
|
239
|
+
isPip?: boolean;
|
|
240
|
+
isTheaterMode?: boolean;
|
|
241
|
+
buffered?: number;
|
|
242
|
+
error?: string;
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=config.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.types.d.ts","sourceRoot":"","sources":["../../src/types/config.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controlbar.types.d.ts","sourceRoot":"","sources":["../../src/types/controlbar.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DRM (Digital Rights Management) Types
|
|
3
|
+
* EME (Encrypted Media Extensions)
|
|
4
|
+
* Pure custom – no external libraries
|
|
5
|
+
*/
|
|
6
|
+
export declare const DrmKeySystem: {
|
|
7
|
+
readonly WIDEVINE: "com.widevine.alpha";
|
|
8
|
+
readonly FAIRPLAY: "com.apple.fps";
|
|
9
|
+
readonly PLAYREADY: "com.microsoft.playready";
|
|
10
|
+
readonly CLEARKEY: "org.w3.clearkey";
|
|
11
|
+
};
|
|
12
|
+
export type DrmKeySystem = typeof DrmKeySystem[keyof typeof DrmKeySystem];
|
|
13
|
+
export interface DrmConfig {
|
|
14
|
+
enabled: boolean;
|
|
15
|
+
systems: DrmSystemConfig[];
|
|
16
|
+
preferredSystem?: DrmKeySystem;
|
|
17
|
+
licenseAcquisitionConfig?: LicenseAcquisitionConfig;
|
|
18
|
+
}
|
|
19
|
+
export interface DrmSystemConfig {
|
|
20
|
+
keySystem: DrmKeySystem;
|
|
21
|
+
licenseServerUrl: string;
|
|
22
|
+
certificateUrl?: string;
|
|
23
|
+
headers?: Record<string, string>;
|
|
24
|
+
withCredentials?: boolean;
|
|
25
|
+
customData?: any;
|
|
26
|
+
licenseAcquisitionConfig?: LicenseAcquisitionConfig;
|
|
27
|
+
}
|
|
28
|
+
export interface LicenseAcquisitionConfig {
|
|
29
|
+
timeout?: number;
|
|
30
|
+
maxRetries?: number;
|
|
31
|
+
retryDelay?: number;
|
|
32
|
+
prepareLicenseRequest?: (request: ArrayBuffer) => ArrayBuffer | Promise<ArrayBuffer>;
|
|
33
|
+
parseLicenseResponse?: (response: ArrayBuffer) => ArrayBuffer | Promise<ArrayBuffer>;
|
|
34
|
+
}
|
|
35
|
+
export interface ExtendedMediaKeySystemConfiguration extends MediaKeySystemConfiguration {
|
|
36
|
+
persistentState?: MediaKeysRequirement;
|
|
37
|
+
distinctiveIdentifier?: MediaKeysRequirement;
|
|
38
|
+
sessionTypes?: string[];
|
|
39
|
+
}
|
|
40
|
+
export interface KeySystemCapabilities {
|
|
41
|
+
keySystem: DrmKeySystem;
|
|
42
|
+
supported: boolean;
|
|
43
|
+
configuration?: MediaKeySystemConfiguration;
|
|
44
|
+
hdcpVersion?: string;
|
|
45
|
+
securityLevel?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface MediaKeySessionInfo {
|
|
48
|
+
sessionId: string;
|
|
49
|
+
session: MediaKeySession;
|
|
50
|
+
keySystem: DrmKeySystem;
|
|
51
|
+
initDataType: string;
|
|
52
|
+
initData: BufferSource;
|
|
53
|
+
status: SessionStatus;
|
|
54
|
+
expirationTime?: number;
|
|
55
|
+
}
|
|
56
|
+
export declare const SessionStatus: {
|
|
57
|
+
readonly INITIALIZING: "initializing";
|
|
58
|
+
readonly PENDING: "pending";
|
|
59
|
+
readonly ACTIVE: "active";
|
|
60
|
+
readonly EXPIRED: "expired";
|
|
61
|
+
readonly CLOSED: "closed";
|
|
62
|
+
readonly ERROR: "error";
|
|
63
|
+
};
|
|
64
|
+
export type SessionStatus = typeof SessionStatus[keyof typeof SessionStatus];
|
|
65
|
+
export interface LicenseRequest {
|
|
66
|
+
challenge: ArrayBuffer;
|
|
67
|
+
sessionId: string;
|
|
68
|
+
keySystem: DrmKeySystem;
|
|
69
|
+
messageType: MediaKeyMessageType;
|
|
70
|
+
customData?: any;
|
|
71
|
+
}
|
|
72
|
+
export interface LicenseResponse {
|
|
73
|
+
license: ArrayBuffer;
|
|
74
|
+
sessionId: string;
|
|
75
|
+
expirationTime?: number;
|
|
76
|
+
keyIds?: string[];
|
|
77
|
+
}
|
|
78
|
+
export interface LicenseChallenge {
|
|
79
|
+
challenge: ArrayBuffer;
|
|
80
|
+
contentId?: string;
|
|
81
|
+
keySystem: string;
|
|
82
|
+
customData?: any;
|
|
83
|
+
}
|
|
84
|
+
export interface FairPlayCertificate {
|
|
85
|
+
certificate: ArrayBuffer;
|
|
86
|
+
certificateUrl: string;
|
|
87
|
+
expirationTime?: number;
|
|
88
|
+
}
|
|
89
|
+
export interface FairPlaySPC {
|
|
90
|
+
spc: ArrayBuffer;
|
|
91
|
+
contentId: string;
|
|
92
|
+
certificateHash?: string;
|
|
93
|
+
}
|
|
94
|
+
export interface FairPlayCKC {
|
|
95
|
+
ckc: ArrayBuffer;
|
|
96
|
+
expirationDate?: Date;
|
|
97
|
+
rentalDuration?: number;
|
|
98
|
+
}
|
|
99
|
+
export declare const WidevineSecurityLevel: {
|
|
100
|
+
readonly SW_SECURE_CRYPTO: "SW_SECURE_CRYPTO";
|
|
101
|
+
readonly SW_SECURE_DECODE: "SW_SECURE_DECODE";
|
|
102
|
+
readonly HW_SECURE_CRYPTO: "HW_SECURE_CRYPTO";
|
|
103
|
+
readonly HW_SECURE_DECODE: "HW_SECURE_DECODE";
|
|
104
|
+
readonly HW_SECURE_ALL: "HW_SECURE_ALL";
|
|
105
|
+
};
|
|
106
|
+
export type WidevineSecurityLevel = typeof WidevineSecurityLevel[keyof typeof WidevineSecurityLevel];
|
|
107
|
+
export interface WidevineLicenseRequest {
|
|
108
|
+
challenge: ArrayBuffer;
|
|
109
|
+
contentId?: string;
|
|
110
|
+
requestId?: string;
|
|
111
|
+
}
|
|
112
|
+
export declare const DrmEventType: {
|
|
113
|
+
readonly KEY_SYSTEM_SELECTED: "drm:keysystem-selected";
|
|
114
|
+
readonly KEYS_REQUIRED: "drm:keys-required";
|
|
115
|
+
readonly KEY_SESSION_CREATED: "drm:key-session-created";
|
|
116
|
+
readonly LICENSE_REQUEST: "drm:license-request";
|
|
117
|
+
readonly LICENSE_RECEIVED: "drm:license-received";
|
|
118
|
+
readonly LICENSE_ERROR: "drm:license-error";
|
|
119
|
+
readonly KEY_STATUS_CHANGE: "drm:key-status-change";
|
|
120
|
+
readonly SESSION_CLOSED: "drm:session-closed";
|
|
121
|
+
readonly DRM_ERROR: "drm:error";
|
|
122
|
+
};
|
|
123
|
+
export type DrmEventType = typeof DrmEventType[keyof typeof DrmEventType];
|
|
124
|
+
export interface DrmEventData {
|
|
125
|
+
keySystem?: DrmKeySystem;
|
|
126
|
+
sessionId?: string;
|
|
127
|
+
error?: DrmError;
|
|
128
|
+
keyStatuses?: Map<BufferSource, MediaKeyStatus>;
|
|
129
|
+
}
|
|
130
|
+
export declare const DrmErrorCode: {
|
|
131
|
+
readonly KEY_SYSTEM_NOT_SUPPORTED: "KEY_SYSTEM_NOT_SUPPORTED";
|
|
132
|
+
readonly KEY_SYSTEM_ACCESS_DENIED: "KEY_SYSTEM_ACCESS_DENIED";
|
|
133
|
+
readonly LICENSE_REQUEST_FAILED: "LICENSE_REQUEST_FAILED";
|
|
134
|
+
readonly LICENSE_PARSE_ERROR: "LICENSE_PARSE_ERROR";
|
|
135
|
+
readonly LICENSE_SERVER_ERROR: "LICENSE_SERVER_ERROR";
|
|
136
|
+
readonly LICENSE_TIMEOUT: "LICENSE_TIMEOUT";
|
|
137
|
+
readonly SESSION_CREATE_ERROR: "SESSION_CREATE_ERROR";
|
|
138
|
+
readonly SESSION_UPDATE_ERROR: "SESSION_UPDATE_ERROR";
|
|
139
|
+
readonly SESSION_CLOSED_ERROR: "SESSION_CLOSED_ERROR";
|
|
140
|
+
readonly KEY_EXPIRED: "KEY_EXPIRED";
|
|
141
|
+
readonly KEY_INTERNAL_ERROR: "KEY_INTERNAL_ERROR";
|
|
142
|
+
readonly KEY_OUTPUT_RESTRICTED: "KEY_OUTPUT_RESTRICTED";
|
|
143
|
+
readonly KEY_STATUS_CHANGE_ERROR: "KEY_STATUS_CHANGE_ERROR";
|
|
144
|
+
readonly CERTIFICATE_LOAD_ERROR: "CERTIFICATE_LOAD_ERROR";
|
|
145
|
+
readonly CERTIFICATE_PARSE_ERROR: "CERTIFICATE_PARSE_ERROR";
|
|
146
|
+
readonly UNKNOWN_DRM_ERROR: "UNKNOWN_DRM_ERROR";
|
|
147
|
+
};
|
|
148
|
+
export type DrmErrorCode = typeof DrmErrorCode[keyof typeof DrmErrorCode];
|
|
149
|
+
export interface DrmError {
|
|
150
|
+
code: DrmErrorCode;
|
|
151
|
+
message: string;
|
|
152
|
+
systemCode?: number;
|
|
153
|
+
fatal: boolean;
|
|
154
|
+
details?: any;
|
|
155
|
+
}
|
|
156
|
+
export interface BrowserDrmCapabilities {
|
|
157
|
+
widevine: boolean;
|
|
158
|
+
fairplay: boolean;
|
|
159
|
+
playready: boolean;
|
|
160
|
+
clearkey: boolean;
|
|
161
|
+
preferredSystem: DrmKeySystem | null;
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=drm.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drm.types.d.ts","sourceRoot":"","sources":["../../src/types/drm.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface PlayerEvent {
|
|
2
|
+
type: string;
|
|
3
|
+
data?: any;
|
|
4
|
+
timestamp: number;
|
|
5
|
+
}
|
|
6
|
+
export interface PlayEvent extends PlayerEvent {
|
|
7
|
+
type: 'play';
|
|
8
|
+
data: {
|
|
9
|
+
currentTime: number;
|
|
10
|
+
duration: number;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export interface PauseEvent extends PlayerEvent {
|
|
14
|
+
type: 'pause';
|
|
15
|
+
data: {
|
|
16
|
+
currentTime: number;
|
|
17
|
+
duration: number;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export interface MuteEvent extends PlayerEvent {
|
|
21
|
+
type: 'mute';
|
|
22
|
+
data: {
|
|
23
|
+
muted: boolean;
|
|
24
|
+
volume: number;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export interface VolumeChangeEvent extends PlayerEvent {
|
|
28
|
+
type: 'volumechange';
|
|
29
|
+
data: {
|
|
30
|
+
volume: number;
|
|
31
|
+
muted: boolean;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export type AllPlayerEvents = PlayEvent | PauseEvent | MuteEvent | VolumeChangeEvent;
|
|
35
|
+
export type EventCallback<T = any> = (event: T) => void;
|
|
36
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAU,SAAQ,WAAW;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC7C,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,SAAU,SAAQ,WAAW;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE;QACJ,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,iBAAiB,CAAC;AAErF,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extended types for type-safe operations
|
|
3
|
+
* Eliminates 'any' usage in the codebase
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Extended HTMLVideoElement with custom properties
|
|
7
|
+
*/
|
|
8
|
+
export interface ExtendedHTMLVideoElement extends HTMLVideoElement {
|
|
9
|
+
/** Current quality setting */
|
|
10
|
+
currentQuality?: string;
|
|
11
|
+
/** Current audio track ID */
|
|
12
|
+
currentAudioTrack?: string;
|
|
13
|
+
/** Playron ID */
|
|
14
|
+
playronId?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Extended HTMLElement for container
|
|
18
|
+
*/
|
|
19
|
+
export interface ExtendedHTMLElement extends HTMLElement {
|
|
20
|
+
/** Theater mode state */
|
|
21
|
+
isTheaterMode?: boolean;
|
|
22
|
+
/** Playron container marker */
|
|
23
|
+
playronContainer?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Video quality level
|
|
27
|
+
*/
|
|
28
|
+
export interface QualityLevel {
|
|
29
|
+
id: string;
|
|
30
|
+
label: string;
|
|
31
|
+
height: number;
|
|
32
|
+
width: number;
|
|
33
|
+
bitrate: number;
|
|
34
|
+
codec?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Audio track information
|
|
38
|
+
*/
|
|
39
|
+
export interface AudioTrack {
|
|
40
|
+
id: string;
|
|
41
|
+
label: string;
|
|
42
|
+
language: string;
|
|
43
|
+
codec?: string;
|
|
44
|
+
channels?: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Subtitle track information
|
|
48
|
+
*/
|
|
49
|
+
export interface SubtitleTrack {
|
|
50
|
+
id: string;
|
|
51
|
+
label: string;
|
|
52
|
+
language: string;
|
|
53
|
+
url?: string;
|
|
54
|
+
default?: boolean;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Player capabilities
|
|
58
|
+
*/
|
|
59
|
+
export interface PlayerCapabilities {
|
|
60
|
+
pip: boolean;
|
|
61
|
+
fullscreen: boolean;
|
|
62
|
+
mediaSession: boolean;
|
|
63
|
+
drm: {
|
|
64
|
+
widevine: boolean;
|
|
65
|
+
playready: boolean;
|
|
66
|
+
fairplay: boolean;
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Network information
|
|
71
|
+
*/
|
|
72
|
+
export interface NetworkInfo {
|
|
73
|
+
bandwidth: number;
|
|
74
|
+
latency: number;
|
|
75
|
+
quality: 'poor' | 'medium' | 'good' | 'excellent';
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Buffer information
|
|
79
|
+
*/
|
|
80
|
+
export interface BufferInfo {
|
|
81
|
+
start: number;
|
|
82
|
+
end: number;
|
|
83
|
+
length: number;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=extended.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extended.types.d.ts","sourceRoot":"","sources":["../../src/types/extended.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE,8BAA8B;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,yBAAyB;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+BAA+B;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,OAAO,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,GAAG,EAAE;QACH,QAAQ,EAAE,OAAO,CAAC;QAClB,SAAS,EAAE,OAAO,CAAC;QACnB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB"}
|