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,168 @@
|
|
|
1
|
+
import { QualityLevel } from '../../types/streaming.types';
|
|
2
|
+
import { PlayerConfig } from '../../types/config.types';
|
|
3
|
+
export interface HlsEngineConfig {
|
|
4
|
+
/** Kaynak yüklendiğinde otomatik başlat. Varsayılan: true */
|
|
5
|
+
autoStart?: boolean;
|
|
6
|
+
/** Buffer'da tutulacak maksimum saniye (önde). Varsayılan: 30 */
|
|
7
|
+
maxBufferAhead?: number;
|
|
8
|
+
/** Buffer'da tutulacak maksimum saniye (arkada). Varsayılan: 10 */
|
|
9
|
+
maxBufferBehind?: number;
|
|
10
|
+
/** Düşük gecikme modu. Varsayılan: false */
|
|
11
|
+
lowLatency?: boolean;
|
|
12
|
+
/** Debug log'larını aç. Varsayılan: false */
|
|
13
|
+
debug?: boolean;
|
|
14
|
+
/** DRM konfigürasyonu — Widevine lisans sunucusu bilgileri */
|
|
15
|
+
drmConfig?: PlayerConfig['drm'];
|
|
16
|
+
}
|
|
17
|
+
/** HlsEngine'in emit ettiği olayların tip eşlemesi */
|
|
18
|
+
interface HlsEngineEventMap {
|
|
19
|
+
'quality-changed': {
|
|
20
|
+
quality: QualityLevel;
|
|
21
|
+
};
|
|
22
|
+
'audio-track-changed': {
|
|
23
|
+
trackId: string;
|
|
24
|
+
};
|
|
25
|
+
'subtitle-track-changed': {
|
|
26
|
+
language: string | null;
|
|
27
|
+
};
|
|
28
|
+
'error': {
|
|
29
|
+
error: {
|
|
30
|
+
code: string;
|
|
31
|
+
message: string;
|
|
32
|
+
fatal: boolean;
|
|
33
|
+
details?: unknown;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
'state-change': {
|
|
37
|
+
state: 'buffering' | 'playing' | 'paused' | 'idle';
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
type HlsEngineListener<K extends keyof HlsEngineEventMap> = (data: HlsEngineEventMap[K]) => void;
|
|
41
|
+
export declare class HlsEngine {
|
|
42
|
+
private hls;
|
|
43
|
+
private readonly videoElement;
|
|
44
|
+
private readonly config;
|
|
45
|
+
private readonly listeners;
|
|
46
|
+
private destroyed;
|
|
47
|
+
private activeSubtitleLanguage;
|
|
48
|
+
private readonly onPlaying;
|
|
49
|
+
private readonly onPause;
|
|
50
|
+
private readonly onWaiting;
|
|
51
|
+
constructor(videoElement: HTMLVideoElement, config?: HlsEngineConfig);
|
|
52
|
+
/**
|
|
53
|
+
* HLS manifestini yükle ve oynatmayı hazırla.
|
|
54
|
+
* Safari'de native HLS varsa doğrudan video.src üzerinden çalışır.
|
|
55
|
+
*/
|
|
56
|
+
load(url: string): Promise<void>;
|
|
57
|
+
private setupHlsListeners;
|
|
58
|
+
/** Video element native olaylarına abone ol */
|
|
59
|
+
private attachVideoListeners;
|
|
60
|
+
/** Video element native olaylarından ayrıl */
|
|
61
|
+
private detachVideoListeners;
|
|
62
|
+
/**
|
|
63
|
+
* Tüm kalite seviyelerini döndür. İlk eleman her zaman "Auto" seviyesidir.
|
|
64
|
+
*/
|
|
65
|
+
getQualities(): QualityLevel[];
|
|
66
|
+
/**
|
|
67
|
+
* Aktif kalite seviyesini döndür.
|
|
68
|
+
* ABR aktifse "Auto" döner.
|
|
69
|
+
*/
|
|
70
|
+
getCurrentQuality(): QualityLevel | null;
|
|
71
|
+
/**
|
|
72
|
+
* Manuel kalite seçimi.
|
|
73
|
+
* qualityId: level index'i string olarak ("0", "1", "2" gibi).
|
|
74
|
+
* "auto" geçilirse ABR aktifleşir.
|
|
75
|
+
*/
|
|
76
|
+
setQuality(qualityId: string): void;
|
|
77
|
+
/**
|
|
78
|
+
* ABR (Adaptive Bitrate) modunu etkinleştir.
|
|
79
|
+
*/
|
|
80
|
+
enableAutoQuality(): void;
|
|
81
|
+
/**
|
|
82
|
+
* Manifest'teki tüm ses izlerini döndür.
|
|
83
|
+
*/
|
|
84
|
+
getAudioTracks(): Array<{
|
|
85
|
+
id: string;
|
|
86
|
+
label: string;
|
|
87
|
+
language: string;
|
|
88
|
+
}>;
|
|
89
|
+
/**
|
|
90
|
+
* Aktif ses izi ID'sini döndür.
|
|
91
|
+
*/
|
|
92
|
+
getActiveAudioTrackId(): string;
|
|
93
|
+
/**
|
|
94
|
+
* Ses izini değiştir (dublaj seçimi).
|
|
95
|
+
* trackId: ses izi index'i string olarak.
|
|
96
|
+
*/
|
|
97
|
+
setAudioTrack(trackId: string): void;
|
|
98
|
+
/**
|
|
99
|
+
* Manifest'teki tüm altyazı izlerini döndür.
|
|
100
|
+
*/
|
|
101
|
+
getSubtitleTracks(): Array<{
|
|
102
|
+
language: string;
|
|
103
|
+
label: string;
|
|
104
|
+
url: string;
|
|
105
|
+
}>;
|
|
106
|
+
/**
|
|
107
|
+
* Altyazı izini değiştir. null → altyazıyı kapat.
|
|
108
|
+
*/
|
|
109
|
+
setSubtitleTrack(language: string | null): Promise<void>;
|
|
110
|
+
/**
|
|
111
|
+
* Aktif altyazı dilini döndür (veya null).
|
|
112
|
+
*/
|
|
113
|
+
getActiveSubtitleLanguage(): string | null;
|
|
114
|
+
/**
|
|
115
|
+
* CEA-608/708 kapalı altyazı overlay bağla.
|
|
116
|
+
* hls.js bu altyazıları video.textTracks üzerinden yönetir.
|
|
117
|
+
* enableCEA708Captions constructor config'de aktif — ekstra işlem gerekmez.
|
|
118
|
+
*/
|
|
119
|
+
attachCaptions(_container: HTMLElement): void;
|
|
120
|
+
/**
|
|
121
|
+
* WebVTT altyazı overlay bağla.
|
|
122
|
+
* hls.js manifest subtitle'larını video.textTracks olarak expose eder.
|
|
123
|
+
*/
|
|
124
|
+
attachSubtitles(_container: HTMLElement): void;
|
|
125
|
+
/**
|
|
126
|
+
* Stream canlı (LIVE) mı?
|
|
127
|
+
*/
|
|
128
|
+
isLiveStream(): boolean;
|
|
129
|
+
/**
|
|
130
|
+
* Live edge zamanını saniye cinsinden döndür (seekable range sonu).
|
|
131
|
+
*/
|
|
132
|
+
getLiveEdgeTime(): number;
|
|
133
|
+
/**
|
|
134
|
+
* Canlı yayın kenarına atla (en düşük gecikme).
|
|
135
|
+
*/
|
|
136
|
+
seekToLiveEdge(): void;
|
|
137
|
+
/**
|
|
138
|
+
* DVR aralığını döndür. VOD veya DVR yoksa null.
|
|
139
|
+
*/
|
|
140
|
+
getDVRRange(): {
|
|
141
|
+
start: number;
|
|
142
|
+
end: number;
|
|
143
|
+
} | null;
|
|
144
|
+
on<K extends keyof HlsEngineEventMap>(event: K, callback: HlsEngineListener<K>): void;
|
|
145
|
+
off<K extends keyof HlsEngineEventMap>(event: K, callback: HlsEngineListener<K>): void;
|
|
146
|
+
private emit;
|
|
147
|
+
/** hls.js Level → QualityLevel dönüşümü */
|
|
148
|
+
private mapLevelToQuality;
|
|
149
|
+
private qualityFromLevelIndex;
|
|
150
|
+
/**
|
|
151
|
+
* Real-time player stats for "Stats for Nerds" panel.
|
|
152
|
+
*/
|
|
153
|
+
getStats(): {
|
|
154
|
+
bandwidth: number;
|
|
155
|
+
bufferHealth: number;
|
|
156
|
+
droppedFrames: number;
|
|
157
|
+
totalFrames: number;
|
|
158
|
+
codec: string;
|
|
159
|
+
resolution: string;
|
|
160
|
+
segmentUrl: string;
|
|
161
|
+
};
|
|
162
|
+
/**
|
|
163
|
+
* HLS engine'i tamamen temizle. Tüm olayları ve referansları kaldır.
|
|
164
|
+
*/
|
|
165
|
+
destroy(): Promise<void>;
|
|
166
|
+
}
|
|
167
|
+
export {};
|
|
168
|
+
//# sourceMappingURL=HlsEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HlsEngine.d.ts","sourceRoot":"","sources":["../../../src/core/streaming/HlsEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SubtitleManager
|
|
3
|
+
*
|
|
4
|
+
* Handles WebVTT subtitle track loading, scheduling, and DOM rendering.
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - Fetches .vtt files via fetch() with optional auth headers
|
|
8
|
+
* - Parses cues using WebVttParser
|
|
9
|
+
* - Creates an overlay <div> positioned over the video element
|
|
10
|
+
* - Shows/hides cues based on video currentTime using requestAnimationFrame
|
|
11
|
+
* - Supports multiple tracks + track switching
|
|
12
|
+
* - Strip HTML-like tags or allow safe passthrough
|
|
13
|
+
*
|
|
14
|
+
* Usage:
|
|
15
|
+
* const subtitles = new SubtitleManager(videoElement, container);
|
|
16
|
+
* await subtitles.loadTrack({ url: 'subs/en.vtt', label: 'English', language: 'en' });
|
|
17
|
+
* subtitles.selectTrack('en');
|
|
18
|
+
* subtitles.enable();
|
|
19
|
+
*
|
|
20
|
+
* // On destroy:
|
|
21
|
+
* subtitles.destroy();
|
|
22
|
+
*/
|
|
23
|
+
export interface SubtitleTrackInfo {
|
|
24
|
+
/** BCP-47 language code (e.g. 'en', 'tr') — used as track ID */
|
|
25
|
+
language: string;
|
|
26
|
+
/** Human-readable label (e.g. 'English', 'Türkçe') */
|
|
27
|
+
label: string;
|
|
28
|
+
/** Absolute URL to the .vtt file */
|
|
29
|
+
url: string;
|
|
30
|
+
/** Optional HTTP headers (e.g. Authorization) */
|
|
31
|
+
headers?: Record<string, string>;
|
|
32
|
+
}
|
|
33
|
+
export declare class SubtitleManager {
|
|
34
|
+
private videoElement;
|
|
35
|
+
private container;
|
|
36
|
+
private parser;
|
|
37
|
+
private tracks;
|
|
38
|
+
private activeLanguage;
|
|
39
|
+
private enabled;
|
|
40
|
+
/** The overlay <div> rendered on top of the video */
|
|
41
|
+
private overlay;
|
|
42
|
+
/** Currently displayed cue element */
|
|
43
|
+
private cueElement;
|
|
44
|
+
/** requestAnimationFrame handle */
|
|
45
|
+
private rafHandle;
|
|
46
|
+
/** Index into active cues for fast lookup */
|
|
47
|
+
private lastCueIndex;
|
|
48
|
+
/**
|
|
49
|
+
* @param videoElement The <video> element to synchronise with
|
|
50
|
+
* @param container A positioned container element that wraps the video
|
|
51
|
+
* (must have position: relative/absolute so overlay is positioned correctly)
|
|
52
|
+
*/
|
|
53
|
+
constructor(videoElement: HTMLVideoElement, container: HTMLElement);
|
|
54
|
+
/**
|
|
55
|
+
* Fetch and parse a WebVTT track.
|
|
56
|
+
* Can be called multiple times for different languages.
|
|
57
|
+
*/
|
|
58
|
+
loadTrack(info: SubtitleTrackInfo): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Load a track from pre-fetched and concatenated WebVTT text (no network fetch).
|
|
61
|
+
* Used for HLS subtitle playlists where segments are fetched externally.
|
|
62
|
+
*/
|
|
63
|
+
loadTrackFromText(info: SubtitleTrackInfo, vttText: string): void;
|
|
64
|
+
/**
|
|
65
|
+
* Select the active subtitle track by language code.
|
|
66
|
+
* Pass null to deactivate subtitles (same as disable()).
|
|
67
|
+
*/
|
|
68
|
+
selectTrack(language: string | null): void;
|
|
69
|
+
/** Start rendering subtitles (idempotent). */
|
|
70
|
+
enable(): void;
|
|
71
|
+
/** Stop rendering subtitles (idempotent). Hides the overlay. */
|
|
72
|
+
disable(): void;
|
|
73
|
+
/** Get all loaded track metadata (for a track selector UI). */
|
|
74
|
+
getTracks(): SubtitleTrackInfo[];
|
|
75
|
+
/** Get the currently selected language code. */
|
|
76
|
+
getActiveLanguage(): string | null;
|
|
77
|
+
/** Clean up DOM elements and cancel animation loop. */
|
|
78
|
+
destroy(): void;
|
|
79
|
+
private ensureOverlay;
|
|
80
|
+
private startRaf;
|
|
81
|
+
private stopRaf;
|
|
82
|
+
private updateCue;
|
|
83
|
+
private findActiveCue;
|
|
84
|
+
private showCue;
|
|
85
|
+
private clearCue;
|
|
86
|
+
private fetchVtt;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=SubtitleManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubtitleManager.d.ts","sourceRoot":"","sources":["../../../src/core/streaming/SubtitleManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAOH,MAAM,WAAW,iBAAiB;IAChC,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AASD,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,SAAS,CAAc;IAE/B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,OAAO,CAAS;IAExB,qDAAqD;IACrD,OAAO,CAAC,OAAO,CAA+B;IAC9C,sCAAsC;IACtC,OAAO,CAAC,UAAU,CAA+B;IACjD,mCAAmC;IACnC,OAAO,CAAC,SAAS,CAAuB;IACxC,6CAA6C;IAC7C,OAAO,CAAC,YAAY,CAAK;IAEzB;;;;OAIG;gBACS,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW;IAOlE;;;OAGG;IACG,SAAS,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvD;;;OAGG;IACH,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAOjE;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAY1C,8CAA8C;IAC9C,MAAM,IAAI,IAAI;IAQd,gEAAgE;IAChE,OAAO,IAAI,IAAI;IAWf,+DAA+D;IAC/D,SAAS,IAAI,iBAAiB,EAAE;IAIhC,gDAAgD;IAChD,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAIlC,uDAAuD;IACvD,OAAO,IAAI,IAAI;IAef,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,SAAS;IA4BjB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,OAAO;IAqCf,OAAO,CAAC,QAAQ;YAUF,QAAQ;CA4BvB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ThumbnailManager — WebVTT storyboard thumbnail loader.
|
|
3
|
+
*
|
|
4
|
+
* Accepts a thumbnail VTT URL where each cue maps a time range to
|
|
5
|
+
* an image URL (optionally with a #xywh media fragment for sprite sheets).
|
|
6
|
+
*
|
|
7
|
+
* VTT format example:
|
|
8
|
+
* WEBVTT
|
|
9
|
+
*
|
|
10
|
+
* 00:00:00.000 --> 00:00:05.000
|
|
11
|
+
* https://cdn.example.com/thumbs.jpg#xywh=0,0,160,90
|
|
12
|
+
*
|
|
13
|
+
* 00:00:05.000 --> 00:00:10.000
|
|
14
|
+
* https://cdn.example.com/thumbs.jpg#xywh=160,0,160,90
|
|
15
|
+
*/
|
|
16
|
+
export interface ThumbnailCue {
|
|
17
|
+
startTime: number;
|
|
18
|
+
endTime: number;
|
|
19
|
+
/** Full image URL (without fragment) */
|
|
20
|
+
url: string;
|
|
21
|
+
/** Sprite x offset (0 when whole image) */
|
|
22
|
+
x: number;
|
|
23
|
+
/** Sprite y offset (0 when whole image) */
|
|
24
|
+
y: number;
|
|
25
|
+
/** Sprite/image width (0 = full image width) */
|
|
26
|
+
w: number;
|
|
27
|
+
/** Sprite/image height (0 = full image height) */
|
|
28
|
+
h: number;
|
|
29
|
+
}
|
|
30
|
+
export declare class ThumbnailManager {
|
|
31
|
+
private cues;
|
|
32
|
+
private loaded;
|
|
33
|
+
/** Fetch and parse a WebVTT thumbnail track. */
|
|
34
|
+
load(vttUrl: string): Promise<void>;
|
|
35
|
+
/** Return the thumbnail cue covering the given time, or null. */
|
|
36
|
+
getThumbnailAt(time: number): ThumbnailCue | null;
|
|
37
|
+
isLoaded(): boolean;
|
|
38
|
+
destroy(): void;
|
|
39
|
+
private parseVtt;
|
|
40
|
+
private parseCueLine;
|
|
41
|
+
private resolveUrl;
|
|
42
|
+
private parseTime;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=ThumbnailManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThumbnailManager.d.ts","sourceRoot":"","sources":["../../../src/core/streaming/ThumbnailManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,CAAC,EAAE,MAAM,CAAC;IACV,2CAA2C;IAC3C,CAAC,EAAE,MAAM,CAAC;IACV,gDAAgD;IAChD,CAAC,EAAE,MAAM,CAAC;IACV,kDAAkD;IAClD,CAAC,EAAE,MAAM,CAAC;CACX;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,MAAM,CAAS;IAEvB,gDAAgD;IAC1C,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzC,iEAAiE;IACjE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAkBjD,QAAQ,IAAI,OAAO;IAInB,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,QAAQ;IAiChB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,SAAS;CAMlB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Streaming Module Exports
|
|
3
|
+
*
|
|
4
|
+
* HLS: hls.js tabanlı HlsEngine
|
|
5
|
+
* DASH: dashjs tabanlı DashEngine
|
|
6
|
+
*/
|
|
7
|
+
export { HlsEngine } from './HlsEngine';
|
|
8
|
+
export type { HlsEngineConfig } from './HlsEngine';
|
|
9
|
+
export { DashEngine } from './DashEngine';
|
|
10
|
+
export type { DashEngineConfig } from './DashEngine';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/streaming/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebVTT Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses WebVTT (.vtt) files and extracts cue timing + text.
|
|
5
|
+
*
|
|
6
|
+
* WebVTT spec: https://www.w3.org/TR/webvtt1/
|
|
7
|
+
*
|
|
8
|
+
* Supported:
|
|
9
|
+
* - WEBVTT header (with optional BOM)
|
|
10
|
+
* - Cue identifiers (optional)
|
|
11
|
+
* - Cue timings: HH:MM:SS.mmm --> HH:MM:SS.mmm [cue-settings]
|
|
12
|
+
* - Multi-line cue text
|
|
13
|
+
* - NOTE blocks (skipped)
|
|
14
|
+
* - REGION blocks (skipped)
|
|
15
|
+
* - STYLE blocks (skipped)
|
|
16
|
+
*
|
|
17
|
+
* Not supported (out of scope):
|
|
18
|
+
* - <ruby>, <rt> tags
|
|
19
|
+
* - Chapter metadata
|
|
20
|
+
*/
|
|
21
|
+
export interface VttCue {
|
|
22
|
+
/** Optional identifier (e.g. "1", "intro") */
|
|
23
|
+
id: string;
|
|
24
|
+
/** Cue start time in seconds */
|
|
25
|
+
startTime: number;
|
|
26
|
+
/** Cue end time in seconds */
|
|
27
|
+
endTime: number;
|
|
28
|
+
/** Raw cue text (may contain HTML-like tags such as <b>, <i>, <c>) */
|
|
29
|
+
text: string;
|
|
30
|
+
/** Cue settings string (e.g. "line:10% position:50%"), if present */
|
|
31
|
+
settings: string;
|
|
32
|
+
}
|
|
33
|
+
export interface VttTrack {
|
|
34
|
+
cues: VttCue[];
|
|
35
|
+
}
|
|
36
|
+
export declare class WebVttParser {
|
|
37
|
+
/**
|
|
38
|
+
* Parse a WebVTT string and return all cues sorted by startTime.
|
|
39
|
+
*
|
|
40
|
+
* @param vttText Full content of a .vtt file (UTF-8 string)
|
|
41
|
+
* @throws Error if the file does not start with the WEBVTT header
|
|
42
|
+
*/
|
|
43
|
+
parse(vttText: string): VttTrack;
|
|
44
|
+
/**
|
|
45
|
+
* Strip basic WebVTT markup tags (e.g. <b>, <i>, <u>, <c>, timestamp tags).
|
|
46
|
+
* Returns plain text suitable for display.
|
|
47
|
+
*/
|
|
48
|
+
stripTags(text: string): string;
|
|
49
|
+
private parseTiming;
|
|
50
|
+
/**
|
|
51
|
+
* Parse a WebVTT timestamp into seconds.
|
|
52
|
+
* Accepts: HH:MM:SS.mmm or MM:SS.mmm
|
|
53
|
+
*/
|
|
54
|
+
private parseTimestamp;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=WebVttParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebVttParser.d.ts","sourceRoot":"","sources":["../../../../src/core/streaming/parsers/WebVttParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,MAAM,WAAW,MAAM;IACrB,8CAA8C;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAID,qBAAa,YAAY;IACvB;;;;;OAKG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;IA+EhC;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAM/B,OAAO,CAAC,WAAW;IAqBnB;;;OAGG;IACH,OAAO,CAAC,cAAc;CAYvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useClickOutside.d.ts","sourceRoot":"","sources":["../../src/hooks/useClickOutside.ts"],"names":[],"mappings":"AACA,wBAAgB,eAAe,CAC7B,GAAG,EAAE;IAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,EACpC,OAAO,EAAE,MAAM,IAAI,EACnB,OAAO,GAAE,OAAc,QAyBxB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { PlayerCore } from '../core/PlayerCore';
|
|
2
|
+
interface UseKeyboardControlsOptions {
|
|
3
|
+
player: PlayerCore | PlayerCore | null;
|
|
4
|
+
seekStep?: number;
|
|
5
|
+
enabled?: boolean;
|
|
6
|
+
onShowShortcuts?: () => void;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Klavye kontrollerini yöneten hook
|
|
10
|
+
* Space: Oynat/Duraklat
|
|
11
|
+
* ArrowLeft: Geri sar
|
|
12
|
+
* ArrowRight: İleri sar
|
|
13
|
+
* ArrowUp: Ses arttır
|
|
14
|
+
* ArrowDown: Ses azalt
|
|
15
|
+
* M: Sessiz aç/kapat
|
|
16
|
+
* F: Tam ekran
|
|
17
|
+
*/
|
|
18
|
+
export declare function useKeyboardControls({ player, seekStep, enabled, onShowShortcuts, }: UseKeyboardControlsOptions): void;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=useKeyboardControls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useKeyboardControls.d.ts","sourceRoot":"","sources":["../../src/hooks/useKeyboardControls.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,UAAU,0BAA0B;IAClC,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,QAAa,EACb,OAAc,EACd,eAAe,GAChB,EAAE,0BAA0B,QA8F5B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { PlayerCore } from '../core/PlayerCore';
|
|
2
|
+
interface GestureHint {
|
|
3
|
+
type: 'seek-forward' | 'seek-backward' | 'volume';
|
|
4
|
+
value: string;
|
|
5
|
+
}
|
|
6
|
+
interface UseMobileGesturesOptions {
|
|
7
|
+
player: PlayerCore | null;
|
|
8
|
+
skipSec?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function useMobileGestures({ player, skipSec }: UseMobileGesturesOptions): {
|
|
11
|
+
onTouchStart: (e: React.TouchEvent<HTMLDivElement>) => void;
|
|
12
|
+
onTouchMove: (e: React.TouchEvent<HTMLDivElement>) => void;
|
|
13
|
+
onTouchEnd: () => void;
|
|
14
|
+
gestureHint: GestureHint | null;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=useMobileGestures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMobileGestures.d.ts","sourceRoot":"","sources":["../../src/hooks/useMobileGestures.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,UAAU,WAAW;IACnB,IAAI,EAAE,cAAc,GAAG,eAAe,GAAG,QAAQ,CAAC;IAClD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,wBAAwB;IAChC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAY,EAAE,EAAE,wBAAwB;sBAmB7C,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;qBAkCjC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;;;EAerE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface UseMouseActivityOptions {
|
|
2
|
+
timeout?: number;
|
|
3
|
+
initialVisible?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare function useMouseActivity({ timeout, initialVisible }?: UseMouseActivityOptions): {
|
|
6
|
+
isActive: boolean;
|
|
7
|
+
setIsActive: import('react').Dispatch<import('react').SetStateAction<boolean>>;
|
|
8
|
+
};
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=useMouseActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMouseActivity.d.ts","sourceRoot":"","sources":["../../src/hooks/useMouseActivity.ts"],"names":[],"mappings":"AAEA,UAAU,uBAAuB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAcD,wBAAgB,gBAAgB,CAAC,EAC/B,OAAc,EACd,cAAqB,EACtB,GAAE,uBAA4B;;;EAkD9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePlayer.d.ts","sourceRoot":"","sources":["../../src/hooks/usePlayer.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,SAAS,4BAQxB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get player methods (stable reference, won't cause re-renders)
|
|
3
|
+
* Use this when you only need to call player methods
|
|
4
|
+
*/
|
|
5
|
+
export declare function usePlayerMethods(): import('../context/PlayerMethodsContext').PlayerMethods;
|
|
6
|
+
//# sourceMappingURL=usePlayerMethods.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePlayerMethods.d.ts","sourceRoot":"","sources":["../../src/hooks/usePlayerMethods.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,gBAAgB,4DAQ/B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PlayerState } from '../types/config';
|
|
2
|
+
/**
|
|
3
|
+
* Get player state (reactive)
|
|
4
|
+
* Component will re-render when state changes
|
|
5
|
+
*
|
|
6
|
+
* @param selector - Optional selector to get only specific state values
|
|
7
|
+
* @returns Player state or selected value
|
|
8
|
+
*/
|
|
9
|
+
export declare function usePlayerState(): PlayerState;
|
|
10
|
+
export declare function usePlayerState<T>(selector: (state: PlayerState) => T): T;
|
|
11
|
+
//# sourceMappingURL=usePlayerState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePlayerState.d.ts","sourceRoot":"","sources":["../../src/hooks/usePlayerState.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAAC;AAC9C,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,CAAC,GAAG,CAAC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { AllPlayerEvents, EventCallback } from './types/events';
|
|
2
|
+
import { VanillaPlayerConfig, PlayerState } from './types/config';
|
|
3
|
+
export { default as Player } from './ui/Player';
|
|
4
|
+
export { default } from './ui/Player';
|
|
5
|
+
export { PlayerCore } from './core/PlayerCore';
|
|
6
|
+
export { PlayronEventEmitter } from './core/PlayronEventEmitter';
|
|
7
|
+
export { EventBus, eventBus } from './core/EventBus';
|
|
8
|
+
export { StreamDetector, streamDetector } from './core/adaptive/StreamDetector';
|
|
9
|
+
export type { StreamType, StreamInfo } from './core/adaptive/StreamDetector';
|
|
10
|
+
export { default as ControlBar } from './ui/Common/ControlBar';
|
|
11
|
+
export { default as PlayButton } from './ui/Controls/PlayButton';
|
|
12
|
+
export { default as MuteButton } from './ui/Controls/MuteButton';
|
|
13
|
+
export { default as FullscreenButton } from './ui/Controls/FullscreenButton';
|
|
14
|
+
export { default as PipButton } from './ui/Controls/PipButton';
|
|
15
|
+
export { default as TheaterModeButton } from './ui/Controls/TheaterModeButton';
|
|
16
|
+
export { default as SettingsButton } from './ui/Controls/SettingsButton';
|
|
17
|
+
export { default as TimeDisplay } from './ui/Controls/TimeDisplay';
|
|
18
|
+
export { default as JumpToLiveButton } from './ui/Controls/JumpToLiveButton';
|
|
19
|
+
export { default as LiveLatencyDisplay } from './ui/Controls/LiveLatencyDisplay';
|
|
20
|
+
export { default as SkipIntroButton } from './ui/Controls/SkipIntroButton';
|
|
21
|
+
export { default as SeekBar } from './ui/Common/SeekBar';
|
|
22
|
+
export { default as SkipBackwardButton } from './ui/Controls/SkipBackwardButton';
|
|
23
|
+
export { default as SkipForwardButton } from './ui/Controls/SkipForwardButton';
|
|
24
|
+
export { default as VolumeControl } from './ui/Controls/VolumeControl';
|
|
25
|
+
export { default as PlaybackSpeedSelector } from './ui/Controls/PlaybackSpeedSelector';
|
|
26
|
+
export { default as SettingsPanel } from './ui/Controls/SettingsPanel';
|
|
27
|
+
export { ControlsVisibilityContext } from './ui/Player';
|
|
28
|
+
export { default as EndCard } from './ui/Overlay/EndCard';
|
|
29
|
+
export { default as KeyboardShortcutsOverlay } from './ui/Overlay/KeyboardShortcutsOverlay';
|
|
30
|
+
export { default as ContextMenu } from './ui/Overlay/ContextMenu';
|
|
31
|
+
export type { ContextMenuAction } from './ui/Overlay/ContextMenu';
|
|
32
|
+
export { default as GestureHintOverlay } from './ui/Overlay/GestureHintOverlay';
|
|
33
|
+
export { ThumbnailManager } from './core/streaming/ThumbnailManager';
|
|
34
|
+
export type { ThumbnailCue } from './core/streaming/ThumbnailManager';
|
|
35
|
+
export { StallDetector } from './core/StallDetector';
|
|
36
|
+
export type { StallDetectorOptions } from './core/StallDetector';
|
|
37
|
+
export type { PlayerConfig } from './types/config.types';
|
|
38
|
+
export type { VanillaPlayerConfig, PlayerState } from './types/config';
|
|
39
|
+
export type { PlayerProps } from './types/player.types';
|
|
40
|
+
export type { ControlBarProps } from './types/controlbar.types';
|
|
41
|
+
export type { PlayerEvent, PlayEvent, PauseEvent, MuteEvent, VolumeChangeEvent, AllPlayerEvents, EventCallback } from './types/events';
|
|
42
|
+
export type { VirtusEventMap, VirtusEventType } from './core/PlayronEventEmitter';
|
|
43
|
+
export { VideoEventType, MediaErrorCode, isVideoEventType } from './types/video-events';
|
|
44
|
+
export type { VideoEventType as VideoEventTypeType, MediaErrorCode as MediaErrorCodeType } from './types/video-events';
|
|
45
|
+
export type { TimelineEvent } from './types/timeline.types';
|
|
46
|
+
export type { Chapter, IntroOutro } from './types/chapters.types';
|
|
47
|
+
export type { AdConfig, Ad, AdPosition } from './plugins/ads/types';
|
|
48
|
+
export { usePlayer } from './hooks/usePlayer';
|
|
49
|
+
export { usePlayerState } from './hooks/usePlayerState';
|
|
50
|
+
export { usePlayerMethods } from './hooks/usePlayerMethods';
|
|
51
|
+
export { useMobileGestures } from './hooks/useMobileGestures';
|
|
52
|
+
export { PlayerProvider } from './context/PlayerProvider';
|
|
53
|
+
declare class Playron {
|
|
54
|
+
private playerCore;
|
|
55
|
+
private videoElement;
|
|
56
|
+
private container;
|
|
57
|
+
constructor(videoElementOrConfig: HTMLVideoElement | VanillaPlayerConfig);
|
|
58
|
+
/**
|
|
59
|
+
* Mevcut video element ile başlat
|
|
60
|
+
*/
|
|
61
|
+
private initWithElement;
|
|
62
|
+
/**
|
|
63
|
+
* Konfigürasyon ile kendi player'ı oluştur
|
|
64
|
+
*/
|
|
65
|
+
private initWithConfig;
|
|
66
|
+
on<T extends AllPlayerEvents>(eventType: T['type'], callback: EventCallback<T>): void;
|
|
67
|
+
off<T extends AllPlayerEvents>(eventType: T['type'], callback: EventCallback<T>): void;
|
|
68
|
+
play(): Promise<void>;
|
|
69
|
+
pause(): void;
|
|
70
|
+
toggleMute(): void;
|
|
71
|
+
setVolume(volume: number): void;
|
|
72
|
+
getState(): PlayerState | null;
|
|
73
|
+
/**
|
|
74
|
+
* Video source'u değiştir (auto-detects stream type)
|
|
75
|
+
*/
|
|
76
|
+
setSource(src: string): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Belirli bir zamana git
|
|
79
|
+
*/
|
|
80
|
+
seekTo(time: number): void;
|
|
81
|
+
/**
|
|
82
|
+
* Oynatma hızını ayarla
|
|
83
|
+
*/
|
|
84
|
+
setPlaybackRate(rate: number): void;
|
|
85
|
+
/**
|
|
86
|
+
* Video poster'ını ayarla
|
|
87
|
+
*/
|
|
88
|
+
setPoster(poster: string): void;
|
|
89
|
+
/**
|
|
90
|
+
* Video boyutlarını ayarla
|
|
91
|
+
*/
|
|
92
|
+
setDimensions(width: number | string, height: number | string): void;
|
|
93
|
+
/**
|
|
94
|
+
* Player'ı temizle
|
|
95
|
+
*/
|
|
96
|
+
destroy(): void;
|
|
97
|
+
}
|
|
98
|
+
export { Playron };
|
|
99
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FunctionComponent } from 'react';
|
|
2
|
+
import { PlayerMode } from '../types/player.types';
|
|
3
|
+
interface ControlsContainerProps {
|
|
4
|
+
/** Optional override — if omitted, live/VOD is auto-detected from stream state */
|
|
5
|
+
mode?: PlayerMode;
|
|
6
|
+
}
|
|
7
|
+
declare const ControlsContainer: FunctionComponent<ControlsContainerProps>;
|
|
8
|
+
export default ControlsContainer;
|
|
9
|
+
//# sourceMappingURL=ControlsContainer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ControlsContainer.d.ts","sourceRoot":"","sources":["../../src/layout/ControlsContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAU/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,UAAU,sBAAsB;IAC9B,kFAAkF;IAClF,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,QAAA,MAAM,iBAAiB,EAAE,iBAAiB,CAAC,sBAAsB,CAuBhE,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FunctionComponent } from 'react';
|
|
2
|
+
import { PlayerMode } from '../types/player.types';
|
|
3
|
+
interface ControlsContainerProps {
|
|
4
|
+
mode?: PlayerMode;
|
|
5
|
+
}
|
|
6
|
+
declare const ControlsContainerResponsive: FunctionComponent<ControlsContainerProps>;
|
|
7
|
+
export default ControlsContainerResponsive;
|
|
8
|
+
//# sourceMappingURL=ControlsContainer.responsive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ControlsContainer.responsive.d.ts","sourceRoot":"","sources":["../../src/layout/ControlsContainer.responsive.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAe/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,UAAU,sBAAsB;IAC9B,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,QAAA,MAAM,2BAA2B,EAAE,iBAAiB,CAAC,sBAAsB,CAgJ1E,CAAC;AAEF,eAAe,2BAA2B,CAAC"}
|