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,100 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { PlayerCore } from '../core/PlayerCore';
|
|
3
|
+
import { PlayerState } from '../types/config';
|
|
4
|
+
import { PlayerConfig } from '../types/config.types';
|
|
5
|
+
import { AudioTrack } from '../types/extended.types';
|
|
6
|
+
import { QualityLevel } from '../types/streaming.types';
|
|
7
|
+
/**
|
|
8
|
+
* Virtus Context Value
|
|
9
|
+
* Single source of truth for all player state, methods, and config
|
|
10
|
+
*/
|
|
11
|
+
export interface PlayronContextValue {
|
|
12
|
+
player: PlayerCore;
|
|
13
|
+
state: PlayerState;
|
|
14
|
+
methods: {
|
|
15
|
+
play: () => Promise<void>;
|
|
16
|
+
pause: () => void;
|
|
17
|
+
togglePlay: () => Promise<void>;
|
|
18
|
+
seekTo: (time: number) => void;
|
|
19
|
+
setPlaybackRate: (rate: number) => void;
|
|
20
|
+
toggleMute: () => void;
|
|
21
|
+
setVolume: (volume: number) => void;
|
|
22
|
+
setQuality: (quality: string) => void;
|
|
23
|
+
getQuality: () => QualityLevel | null;
|
|
24
|
+
getAvailableQualities: () => QualityLevel[];
|
|
25
|
+
setAudioTrack: (trackId: string) => void;
|
|
26
|
+
getAudioTrack: () => string;
|
|
27
|
+
getAvailableAudioTracks: () => AudioTrack[];
|
|
28
|
+
toggleFullscreen: () => void;
|
|
29
|
+
togglePip: () => Promise<void>;
|
|
30
|
+
toggleTheaterMode: () => void;
|
|
31
|
+
skipBackward: (seconds?: number) => void;
|
|
32
|
+
skipForward: (seconds?: number) => void;
|
|
33
|
+
setLoop: (loop: boolean) => void;
|
|
34
|
+
getLoop: () => boolean;
|
|
35
|
+
};
|
|
36
|
+
ui: {
|
|
37
|
+
showControls: boolean;
|
|
38
|
+
isFullscreen: boolean;
|
|
39
|
+
isPip: boolean;
|
|
40
|
+
isTheaterMode: boolean;
|
|
41
|
+
};
|
|
42
|
+
config: Required<PlayerConfig>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Virtus Context
|
|
46
|
+
*/
|
|
47
|
+
export declare const PlayronContext: import('react').Context<PlayronContextValue | null>;
|
|
48
|
+
/**
|
|
49
|
+
* Virtus Provider Props
|
|
50
|
+
*/
|
|
51
|
+
interface VirtusProviderProps {
|
|
52
|
+
children: ReactNode;
|
|
53
|
+
playerInstance: PlayerCore;
|
|
54
|
+
showControls?: boolean;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Virtus Provider
|
|
58
|
+
* Provides unified context to all child components
|
|
59
|
+
*/
|
|
60
|
+
export declare function VirtusProvider({ children, playerInstance, showControls, }: VirtusProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
61
|
+
/**
|
|
62
|
+
* Use Virtus Hook
|
|
63
|
+
* Single hook to access all player functionality
|
|
64
|
+
*/
|
|
65
|
+
export declare function useVirtus(): PlayronContextValue;
|
|
66
|
+
/**
|
|
67
|
+
* Use Virtus State Hook (with selector for optimization)
|
|
68
|
+
*/
|
|
69
|
+
export declare function useVirtusState<T = PlayerState>(selector?: (state: PlayerState) => T): T;
|
|
70
|
+
/**
|
|
71
|
+
* Use Virtus Methods Hook
|
|
72
|
+
*/
|
|
73
|
+
export declare function useVirtusMethods(): {
|
|
74
|
+
play: () => Promise<void>;
|
|
75
|
+
pause: () => void;
|
|
76
|
+
togglePlay: () => Promise<void>;
|
|
77
|
+
seekTo: (time: number) => void;
|
|
78
|
+
setPlaybackRate: (rate: number) => void;
|
|
79
|
+
toggleMute: () => void;
|
|
80
|
+
setVolume: (volume: number) => void;
|
|
81
|
+
setQuality: (quality: string) => void;
|
|
82
|
+
getQuality: () => QualityLevel | null;
|
|
83
|
+
getAvailableQualities: () => QualityLevel[];
|
|
84
|
+
setAudioTrack: (trackId: string) => void;
|
|
85
|
+
getAudioTrack: () => string;
|
|
86
|
+
getAvailableAudioTracks: () => AudioTrack[];
|
|
87
|
+
toggleFullscreen: () => void;
|
|
88
|
+
togglePip: () => Promise<void>;
|
|
89
|
+
toggleTheaterMode: () => void;
|
|
90
|
+
skipBackward: (seconds?: number) => void;
|
|
91
|
+
skipForward: (seconds?: number) => void;
|
|
92
|
+
setLoop: (loop: boolean) => void;
|
|
93
|
+
getLoop: () => boolean;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Use Virtus Config Hook
|
|
97
|
+
*/
|
|
98
|
+
export declare function useVirtusConfig(): Required<PlayerConfig>;
|
|
99
|
+
export {};
|
|
100
|
+
//# sourceMappingURL=PlayronContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlayronContext.d.ts","sourceRoot":"","sources":["../../src/context/PlayronContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface SubtitleStyle {
|
|
3
|
+
/** Alt kenara olan mesafe (px). Varsayılan: 40 */
|
|
4
|
+
bottomOffset: number;
|
|
5
|
+
/** Font boyutu (px). Varsayılan: 18 */
|
|
6
|
+
fontSize: number;
|
|
7
|
+
/** Metin rengi. Varsayılan: #ffffff */
|
|
8
|
+
color: string;
|
|
9
|
+
/** Arka plan. Varsayılan: rgba(0,0,0,0.75) — "" ise kapalı */
|
|
10
|
+
background: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const DEFAULT_SUBTITLE_STYLE: SubtitleStyle;
|
|
13
|
+
interface SubtitleStyleContextValue {
|
|
14
|
+
style: SubtitleStyle;
|
|
15
|
+
setStyle: (patch: Partial<SubtitleStyle>) => void;
|
|
16
|
+
}
|
|
17
|
+
export declare function SubtitleStyleProvider({ children }: {
|
|
18
|
+
children: ReactNode;
|
|
19
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export declare function useSubtitleStyle(): SubtitleStyleContextValue;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=SubtitleStyleContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubtitleStyleContext.d.ts","sourceRoot":"","sources":["../../src/context/SubtitleStyleContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,aAAa;IAC5B,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,sBAAsB,EAAE,aAKpC,CAAC;AAEF,UAAU,yBAAyB;IACjC,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;CACnD;AAOD,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAW1E;AAED,wBAAgB,gBAAgB,8BAE/B"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { VanillaPlayerConfig } from '../types/config';
|
|
2
|
+
export declare class ConfigManager {
|
|
3
|
+
private config;
|
|
4
|
+
private defaultConfig;
|
|
5
|
+
constructor(config: VanillaPlayerConfig);
|
|
6
|
+
/**
|
|
7
|
+
* Varsayılan konfigürasyonu döndür
|
|
8
|
+
*/
|
|
9
|
+
private getDefaultConfig;
|
|
10
|
+
/**
|
|
11
|
+
* Konfigürasyonları birleştir
|
|
12
|
+
*/
|
|
13
|
+
private mergeConfig;
|
|
14
|
+
/**
|
|
15
|
+
* Konfigürasyonu doğrula
|
|
16
|
+
*/
|
|
17
|
+
private validateConfig;
|
|
18
|
+
/**
|
|
19
|
+
* Konfigürasyonu güncelle
|
|
20
|
+
*/
|
|
21
|
+
updateConfig(updates: Partial<VanillaPlayerConfig>): void;
|
|
22
|
+
/**
|
|
23
|
+
* Mevcut konfigürasyonu döndür
|
|
24
|
+
*/
|
|
25
|
+
getConfig(): VanillaPlayerConfig;
|
|
26
|
+
/**
|
|
27
|
+
* Belirli bir konfigürasyon değerini al
|
|
28
|
+
*/
|
|
29
|
+
get<K extends keyof VanillaPlayerConfig>(key: K): VanillaPlayerConfig[K];
|
|
30
|
+
/**
|
|
31
|
+
* Belirli bir konfigürasyon değerini ayarla
|
|
32
|
+
*/
|
|
33
|
+
set<K extends keyof VanillaPlayerConfig>(key: K, value: VanillaPlayerConfig[K]): void;
|
|
34
|
+
/**
|
|
35
|
+
* Container element'ini döndür
|
|
36
|
+
*/
|
|
37
|
+
getContainer(): HTMLElement | null;
|
|
38
|
+
/**
|
|
39
|
+
* Video boyutlarını döndür
|
|
40
|
+
*/
|
|
41
|
+
getDimensions(): {
|
|
42
|
+
width: number;
|
|
43
|
+
height: number;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Konfigürasyonu sıfırla
|
|
47
|
+
*/
|
|
48
|
+
reset(): void;
|
|
49
|
+
/**
|
|
50
|
+
* Konfigürasyonu export et
|
|
51
|
+
*/
|
|
52
|
+
export(): string;
|
|
53
|
+
/**
|
|
54
|
+
* Konfigürasyonu import et
|
|
55
|
+
*/
|
|
56
|
+
import(configString: string): void;
|
|
57
|
+
/**
|
|
58
|
+
* Konfigürasyon değişikliklerini dinle
|
|
59
|
+
*/
|
|
60
|
+
private listeners;
|
|
61
|
+
/**
|
|
62
|
+
* Konfigürasyon değişiklik dinleyicisi ekle
|
|
63
|
+
*/
|
|
64
|
+
onChange(callback: (config: VanillaPlayerConfig) => void): void;
|
|
65
|
+
/**
|
|
66
|
+
* Konfigürasyon değişiklik dinleyicisini kaldır
|
|
67
|
+
*/
|
|
68
|
+
offChange(callback: (config: VanillaPlayerConfig) => void): void;
|
|
69
|
+
/**
|
|
70
|
+
* Konfigürasyon değişikliklerini bildir
|
|
71
|
+
*/
|
|
72
|
+
private notifyChange;
|
|
73
|
+
/**
|
|
74
|
+
* Konfigürasyonu güncelle ve değişiklikleri bildir
|
|
75
|
+
*/
|
|
76
|
+
updateConfigAndNotify(updates: Partial<VanillaPlayerConfig>): void;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=ConfigManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigManager.d.ts","sourceRoot":"","sources":["../../src/core/ConfigManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,aAAa,CAAsB;gBAE/B,MAAM,EAAE,mBAAmB;IAMvC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;IACH,OAAO,CAAC,cAAc;IAwBtB;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAMzD;;OAEG;IACH,SAAS,IAAI,mBAAmB;IAIhC;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,mBAAmB,EAAE,GAAG,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC;IAIxE;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,mBAAmB,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI;IAKrF;;OAEG;IACH,YAAY,IAAI,WAAW,GAAG,IAAI;IAOlC;;OAEG;IACH,aAAa,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAOlD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB;;OAEG;IACH,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAUlC;;OAEG;IACH,OAAO,CAAC,SAAS,CAAoD;IAErE;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,GAAG,IAAI;IAI/D;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,GAAG,IAAI;IAOhE;;OAEG;IACH,OAAO,CAAC,YAAY;IAUpB;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;CAInE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type ErrorCategory = 'Network Error' | 'Manifest Parse Error' | 'Frag Load Error' | 'Key System Error' | 'Playback Error' | 'Unknown Error';
|
|
2
|
+
export interface PlayerError {
|
|
3
|
+
category: ErrorCategory;
|
|
4
|
+
code: string;
|
|
5
|
+
message: string;
|
|
6
|
+
details?: any;
|
|
7
|
+
timestamp: number;
|
|
8
|
+
}
|
|
9
|
+
export declare class ErrorManager {
|
|
10
|
+
private static instance;
|
|
11
|
+
private listeners;
|
|
12
|
+
private errorHistory;
|
|
13
|
+
private constructor();
|
|
14
|
+
static getInstance(): ErrorManager;
|
|
15
|
+
registerListener(listener: (error: PlayerError) => void): void;
|
|
16
|
+
unregisterListener(listener: (error: PlayerError) => void): void;
|
|
17
|
+
dispatchError(category: ErrorCategory, code: string, message: string, details?: any): PlayerError;
|
|
18
|
+
getHistory(): PlayerError[];
|
|
19
|
+
clearHistory(): void;
|
|
20
|
+
}
|
|
21
|
+
export declare const errorManager: ErrorManager;
|
|
22
|
+
//# sourceMappingURL=ErrorManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorManager.d.ts","sourceRoot":"","sources":["../../src/core/ErrorManager.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,sBAAsB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAEnJ,MAAM,WAAW,WAAW;IACxB,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,YAAY;IACrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,SAAS,CAAgD;IACjE,OAAO,CAAC,YAAY,CAAqB;IAEzC,OAAO;WAEO,WAAW,IAAI,YAAY;IAOlC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IAI9D,kBAAkB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IAIhE,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,WAAW;IAuBjG,UAAU,IAAI,WAAW,EAAE;IAI3B,YAAY,IAAI,IAAI;CAG9B;AAED,eAAO,MAAM,YAAY,cAA6B,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { AllPlayerEvents, EventCallback } from '../types/events';
|
|
2
|
+
export declare class EventBus {
|
|
3
|
+
private listeners;
|
|
4
|
+
/**
|
|
5
|
+
* Event dinleyicisi ekle
|
|
6
|
+
* @param eventType Event tipi
|
|
7
|
+
* @param callback Event gerçekleştiğinde çağrılacak fonksiyon
|
|
8
|
+
*/
|
|
9
|
+
on<T extends AllPlayerEvents>(eventType: T['type'], callback: EventCallback<T>): void;
|
|
10
|
+
/**
|
|
11
|
+
* Event dinleyicisini kaldır
|
|
12
|
+
* @param eventType Event tipi
|
|
13
|
+
* @param callback Kaldırılacak fonksiyon
|
|
14
|
+
*/
|
|
15
|
+
off<T extends AllPlayerEvents>(eventType: T['type'], callback: EventCallback<T>): void;
|
|
16
|
+
/**
|
|
17
|
+
* Event gönder
|
|
18
|
+
* @param event Gönderilecek event
|
|
19
|
+
*/
|
|
20
|
+
emit<T extends AllPlayerEvents>(event: T): void;
|
|
21
|
+
/**
|
|
22
|
+
* Tüm dinleyicileri temizle
|
|
23
|
+
*/
|
|
24
|
+
clear(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Belirli bir event tipinin dinleyici sayısını döndür
|
|
27
|
+
* @param eventType Event tipi
|
|
28
|
+
*/
|
|
29
|
+
listenerCount(eventType: string): number;
|
|
30
|
+
}
|
|
31
|
+
export declare const eventBus: EventBus;
|
|
32
|
+
//# sourceMappingURL=EventBus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventBus.d.ts","sourceRoot":"","sources":["../../src/core/EventBus.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,qBAAa,QAAQ;IACnB,OAAO,CAAC,SAAS,CAA8C;IAE/D;;;;OAIG;IACH,EAAE,CAAC,CAAC,SAAS,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI;IAOrF;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI;IAUtF;;;OAGG;IACH,IAAI,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAa/C;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAGzC;AAGD,eAAO,MAAM,QAAQ,UAAiB,CAAC"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { VideoEngine } from './VideoEngine';
|
|
2
|
+
import { ConfigManager } from './ConfigManager';
|
|
3
|
+
import { StateManager } from './StateManager';
|
|
4
|
+
import { VanillaPlayerConfig, PlayerState } from '../types/config';
|
|
5
|
+
import { PlayronEventEmitter } from './PlayronEventEmitter';
|
|
6
|
+
import { StreamType, StreamInfo } from './adaptive/StreamDetector';
|
|
7
|
+
import { QualityLevel } from '../types/streaming.types';
|
|
8
|
+
import { PlayerConfig } from '../types/config.types';
|
|
9
|
+
export declare class PlayerCore {
|
|
10
|
+
private videoEngine;
|
|
11
|
+
private configManager;
|
|
12
|
+
private stateManager;
|
|
13
|
+
private videoElement;
|
|
14
|
+
private container;
|
|
15
|
+
events: PlayronEventEmitter;
|
|
16
|
+
private streamType;
|
|
17
|
+
private streamInfo;
|
|
18
|
+
private hlsEngine;
|
|
19
|
+
private dashEngine;
|
|
20
|
+
private airPlayAvailable;
|
|
21
|
+
private airPlayActive;
|
|
22
|
+
private onAirPlayAvailabilityChanged;
|
|
23
|
+
private onAirPlayTargetChanged;
|
|
24
|
+
private stallDetector;
|
|
25
|
+
private liveLatencyTimer;
|
|
26
|
+
/** Seconds within which the playhead is considered "at live edge" */
|
|
27
|
+
private atLiveEdgeTolerance;
|
|
28
|
+
private drmConfig;
|
|
29
|
+
constructor(videoElement: HTMLVideoElement);
|
|
30
|
+
/**
|
|
31
|
+
* PlayerCore'u başlat
|
|
32
|
+
*/
|
|
33
|
+
private initialize;
|
|
34
|
+
/**
|
|
35
|
+
* State değişikliklerini dinle
|
|
36
|
+
*/
|
|
37
|
+
private setupStateListeners;
|
|
38
|
+
/**
|
|
39
|
+
* Konfigürasyon ile PlayerCore'u başlat
|
|
40
|
+
*/
|
|
41
|
+
static createWithConfig(config: VanillaPlayerConfig): PlayerCore;
|
|
42
|
+
/**
|
|
43
|
+
* DRM konfigürasyonunu ayarla. setSource() çağrısından ÖNCE çağrılmalı.
|
|
44
|
+
* Widevine (Chrome/Firefox) ve PlayReady (Edge) desteklenir.
|
|
45
|
+
*/
|
|
46
|
+
setupDrm(config: PlayerConfig['drm']): void;
|
|
47
|
+
/**
|
|
48
|
+
* Video'yu oynat
|
|
49
|
+
*/
|
|
50
|
+
play(): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Video'yu duraklat
|
|
53
|
+
*/
|
|
54
|
+
pause(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Video'yu sessize al/aç
|
|
57
|
+
*/
|
|
58
|
+
toggleMute(): void;
|
|
59
|
+
/**
|
|
60
|
+
* Ses seviyesini ayarla
|
|
61
|
+
*/
|
|
62
|
+
setVolume(volume: number): void;
|
|
63
|
+
/**
|
|
64
|
+
* Buffered time ranges from the video element.
|
|
65
|
+
*/
|
|
66
|
+
getBufferedRanges(): Array<{
|
|
67
|
+
start: number;
|
|
68
|
+
end: number;
|
|
69
|
+
}>;
|
|
70
|
+
/**
|
|
71
|
+
* Real-time playback statistics (Stats for Nerds).
|
|
72
|
+
*/
|
|
73
|
+
getPlayerStats(): {
|
|
74
|
+
bandwidth: number;
|
|
75
|
+
bufferHealth: number;
|
|
76
|
+
droppedFrames: number;
|
|
77
|
+
totalFrames: number;
|
|
78
|
+
codec: string;
|
|
79
|
+
resolution: string;
|
|
80
|
+
segmentUrl: string;
|
|
81
|
+
streamType: string;
|
|
82
|
+
};
|
|
83
|
+
private persistVolume;
|
|
84
|
+
private loadPersistedVolume;
|
|
85
|
+
/**
|
|
86
|
+
* Belirli bir zamana git
|
|
87
|
+
*/
|
|
88
|
+
seekTo(time: number): void;
|
|
89
|
+
/**
|
|
90
|
+
* Oynatma hızını ayarla
|
|
91
|
+
*/
|
|
92
|
+
setPlaybackRate(rate: number): void;
|
|
93
|
+
/**
|
|
94
|
+
* Video source'unu değiştir.
|
|
95
|
+
* HLS (.m3u8) → HlsEngine (hls.js)
|
|
96
|
+
* DASH (.mpd) → Faz 2'de dash.js
|
|
97
|
+
* Diğerleri → native <video>
|
|
98
|
+
*/
|
|
99
|
+
setSource(src: string): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Aktif streaming engine'i temizle
|
|
102
|
+
*/
|
|
103
|
+
private destroyStreamingEngines;
|
|
104
|
+
/**
|
|
105
|
+
* Native video element fallback
|
|
106
|
+
*/
|
|
107
|
+
private fallbackToNative;
|
|
108
|
+
getStreamType(): StreamType;
|
|
109
|
+
getStreamInfo(): StreamInfo | null;
|
|
110
|
+
isLive(): boolean;
|
|
111
|
+
getLiveEdgeTime(): number;
|
|
112
|
+
getCurrentLatency(): number;
|
|
113
|
+
isAtLiveEdge(tolerance?: number): boolean;
|
|
114
|
+
seekToLiveEdge(): void;
|
|
115
|
+
getDVRRange(): {
|
|
116
|
+
start: number;
|
|
117
|
+
end: number;
|
|
118
|
+
} | null;
|
|
119
|
+
private startLiveLatencyTracking;
|
|
120
|
+
private stopLiveLatencyTracking;
|
|
121
|
+
private startStallDetector;
|
|
122
|
+
setPoster(poster: string): void;
|
|
123
|
+
setDimensions(width: number | string, height: number | string): void;
|
|
124
|
+
getState(): PlayerState | null;
|
|
125
|
+
getVideoEngine(): VideoEngine | null;
|
|
126
|
+
getConfigManager(): ConfigManager | null;
|
|
127
|
+
getStateManager(): StateManager | null;
|
|
128
|
+
getVideoElement(): HTMLVideoElement | null;
|
|
129
|
+
toggleFullscreen(): void;
|
|
130
|
+
togglePip(): Promise<void>;
|
|
131
|
+
skipBackward(seconds?: number): void;
|
|
132
|
+
skipForward(seconds?: number): void;
|
|
133
|
+
setLoop(loop: boolean): void;
|
|
134
|
+
getLoop(): boolean;
|
|
135
|
+
/**
|
|
136
|
+
* Kalite değiştir. 'auto' → ABR, diğerleri → level index.
|
|
137
|
+
*/
|
|
138
|
+
setQuality(qualityId: string): void;
|
|
139
|
+
getQuality(): QualityLevel | null;
|
|
140
|
+
getAvailableQualities(): QualityLevel[];
|
|
141
|
+
/**
|
|
142
|
+
* Ses izini değiştir (dublaj seçimi).
|
|
143
|
+
*/
|
|
144
|
+
setAudioTrack(trackId: string): void;
|
|
145
|
+
getAudioTrack(): string;
|
|
146
|
+
getAvailableAudioTracks(): Array<{
|
|
147
|
+
id: string;
|
|
148
|
+
label: string;
|
|
149
|
+
language: string;
|
|
150
|
+
}>;
|
|
151
|
+
getSubtitleTracks(): Array<{
|
|
152
|
+
language: string;
|
|
153
|
+
label: string;
|
|
154
|
+
url: string;
|
|
155
|
+
}>;
|
|
156
|
+
setSubtitleTrack(language: string | null): Promise<void>;
|
|
157
|
+
getActiveSubtitleLanguage(): string | null;
|
|
158
|
+
private setupAirPlay;
|
|
159
|
+
showAirPlayPicker(): void;
|
|
160
|
+
isAirPlayAvailable(): boolean;
|
|
161
|
+
isAirPlayActive(): boolean;
|
|
162
|
+
private destroyAirPlay;
|
|
163
|
+
toggleTheaterMode(): void;
|
|
164
|
+
isTheaterMode(): boolean;
|
|
165
|
+
/**
|
|
166
|
+
* PlayerCore'u tamamen temizle.
|
|
167
|
+
*/
|
|
168
|
+
destroy(): void;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=PlayerCore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlayerCore.d.ts","sourceRoot":"","sources":["../../src/core/PlayerCore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PlayronEventEmitter - Unified event system for player
|
|
3
|
+
* Provides type-safe, consistent event handling across the player
|
|
4
|
+
*/
|
|
5
|
+
export type VirtusEventMap = {
|
|
6
|
+
'play': {
|
|
7
|
+
timestamp: number;
|
|
8
|
+
};
|
|
9
|
+
'pause': {
|
|
10
|
+
timestamp: number;
|
|
11
|
+
};
|
|
12
|
+
'ended': {
|
|
13
|
+
timestamp: number;
|
|
14
|
+
};
|
|
15
|
+
'timeupdate': {
|
|
16
|
+
currentTime: number;
|
|
17
|
+
duration: number;
|
|
18
|
+
};
|
|
19
|
+
'seeking': {
|
|
20
|
+
targetTime: number;
|
|
21
|
+
};
|
|
22
|
+
'seeked': {
|
|
23
|
+
currentTime: number;
|
|
24
|
+
};
|
|
25
|
+
'volumechange': {
|
|
26
|
+
volume: number;
|
|
27
|
+
isMuted: boolean;
|
|
28
|
+
};
|
|
29
|
+
'ratechange': {
|
|
30
|
+
playbackRate: number;
|
|
31
|
+
};
|
|
32
|
+
'loadedmetadata': {
|
|
33
|
+
duration: number;
|
|
34
|
+
videoWidth: number;
|
|
35
|
+
videoHeight: number;
|
|
36
|
+
};
|
|
37
|
+
'buffering': {
|
|
38
|
+
isBuffering: boolean;
|
|
39
|
+
};
|
|
40
|
+
'qualitychange': {
|
|
41
|
+
from: string;
|
|
42
|
+
to: string;
|
|
43
|
+
};
|
|
44
|
+
'audiotrackchange': {
|
|
45
|
+
from: string;
|
|
46
|
+
to: string;
|
|
47
|
+
};
|
|
48
|
+
'fullscreenchange': {
|
|
49
|
+
isFullscreen: boolean;
|
|
50
|
+
};
|
|
51
|
+
'pipchange': {
|
|
52
|
+
isPip: boolean;
|
|
53
|
+
};
|
|
54
|
+
'theatermodechange': {
|
|
55
|
+
isTheaterMode: boolean;
|
|
56
|
+
};
|
|
57
|
+
'chapterchange': {
|
|
58
|
+
chapterId: string;
|
|
59
|
+
title: string;
|
|
60
|
+
};
|
|
61
|
+
'skipintro': {
|
|
62
|
+
skipped: boolean;
|
|
63
|
+
time: number;
|
|
64
|
+
};
|
|
65
|
+
'skipoutro': {
|
|
66
|
+
skipped: boolean;
|
|
67
|
+
time: number;
|
|
68
|
+
};
|
|
69
|
+
'streamTypeDetected': {
|
|
70
|
+
type: 'vod' | 'live' | 'unknown';
|
|
71
|
+
info: any;
|
|
72
|
+
};
|
|
73
|
+
/** Fired immediately after manifest is parsed and tracks/qualities are populated. */
|
|
74
|
+
'tracksready': {
|
|
75
|
+
hasQualities: boolean;
|
|
76
|
+
hasAudioTracks: boolean;
|
|
77
|
+
hasSubtitleTracks: boolean;
|
|
78
|
+
};
|
|
79
|
+
/** Fires when AirPlay device availability or connection state changes */
|
|
80
|
+
'airplaychange': {
|
|
81
|
+
isAvailable: boolean;
|
|
82
|
+
isActive: boolean;
|
|
83
|
+
};
|
|
84
|
+
/** Periodic latency update — only emitted during live playback (~1s interval) */
|
|
85
|
+
'livelatencyupdate': {
|
|
86
|
+
latency: number;
|
|
87
|
+
isAtLiveEdge: boolean;
|
|
88
|
+
liveEdgeTime: number;
|
|
89
|
+
};
|
|
90
|
+
'drm:keysystem': {
|
|
91
|
+
keySystem: string;
|
|
92
|
+
};
|
|
93
|
+
'drm:ready': {
|
|
94
|
+
keySystem?: string;
|
|
95
|
+
};
|
|
96
|
+
/** Emitted when playback freezes (currentTime stops advancing) */
|
|
97
|
+
'stall': {
|
|
98
|
+
duration: number;
|
|
99
|
+
attempt: number;
|
|
100
|
+
};
|
|
101
|
+
/** Emitted when a stall is resolved by the recovery mechanism */
|
|
102
|
+
'stallrecovered': {
|
|
103
|
+
duration: number;
|
|
104
|
+
method: 'seek' | 'quality';
|
|
105
|
+
};
|
|
106
|
+
'error': {
|
|
107
|
+
code: string;
|
|
108
|
+
message: string;
|
|
109
|
+
details?: any;
|
|
110
|
+
};
|
|
111
|
+
'warning': {
|
|
112
|
+
code: string;
|
|
113
|
+
message: string;
|
|
114
|
+
};
|
|
115
|
+
'statechange': {
|
|
116
|
+
state: any;
|
|
117
|
+
};
|
|
118
|
+
'ready': {
|
|
119
|
+
player: any;
|
|
120
|
+
};
|
|
121
|
+
'destroy': {
|
|
122
|
+
timestamp: number;
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
export type VirtusEventType = keyof VirtusEventMap;
|
|
126
|
+
export type VirtusEventCallback<T extends VirtusEventType> = (data: VirtusEventMap[T]) => void;
|
|
127
|
+
/**
|
|
128
|
+
* Unified event emitter for Playron
|
|
129
|
+
*/
|
|
130
|
+
export declare class PlayronEventEmitter {
|
|
131
|
+
private listeners;
|
|
132
|
+
private onceListeners;
|
|
133
|
+
/**
|
|
134
|
+
* Subscribe to an event
|
|
135
|
+
*/
|
|
136
|
+
on<T extends VirtusEventType>(event: T, callback: VirtusEventCallback<T>): void;
|
|
137
|
+
/**
|
|
138
|
+
* Subscribe to an event (fires only once)
|
|
139
|
+
*/
|
|
140
|
+
once<T extends VirtusEventType>(event: T, callback: VirtusEventCallback<T>): void;
|
|
141
|
+
/**
|
|
142
|
+
* Unsubscribe from an event
|
|
143
|
+
*/
|
|
144
|
+
off<T extends VirtusEventType>(event: T, callback: VirtusEventCallback<T>): void;
|
|
145
|
+
/**
|
|
146
|
+
* Emit an event
|
|
147
|
+
*/
|
|
148
|
+
emit<T extends VirtusEventType>(event: T, data: VirtusEventMap[T]): void;
|
|
149
|
+
/**
|
|
150
|
+
* Remove all listeners for a specific event or all events
|
|
151
|
+
*/
|
|
152
|
+
removeAllListeners(event?: VirtusEventType): void;
|
|
153
|
+
/**
|
|
154
|
+
* Get listener count for an event
|
|
155
|
+
*/
|
|
156
|
+
listenerCount(event: VirtusEventType): number;
|
|
157
|
+
/**
|
|
158
|
+
* Get all registered event types
|
|
159
|
+
*/
|
|
160
|
+
eventNames(): VirtusEventType[];
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=PlayronEventEmitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlayronEventEmitter.d.ts","sourceRoot":"","sources":["../../src/core/PlayronEventEmitter.ts"],"names":[],"mappings":"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"}
|