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
package/README.md
ADDED
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
# Playron
|
|
2
|
+
|
|
3
|
+
Modern, özelleştirilebilir OTT video player. React, Next.js ve vanilla JavaScript projelerde kullanılabilir.
|
|
4
|
+
|
|
5
|
+
## Özellikler
|
|
6
|
+
|
|
7
|
+
- 🎬 **Adaptive Streaming**: HLS ve DASH desteği
|
|
8
|
+
- 🔒 **DRM**: Widevine, PlayReady, FairPlay desteği
|
|
9
|
+
- 📱 **Responsive**: Mobil ve desktop uyumlu
|
|
10
|
+
- 🎨 **Özelleştirilebilir**: Tüm UI bileşenleri özelleştirilebilir
|
|
11
|
+
- 📊 **Analytics**: Entegre analytics desteği
|
|
12
|
+
- 📺 **Ads**: VAST/VMAP reklam desteği
|
|
13
|
+
- ⚡ **Performanslı**: React Compiler ile optimize edilmiş
|
|
14
|
+
- 🎯 **TypeScript**: Full type safety
|
|
15
|
+
|
|
16
|
+
## Kurulum
|
|
17
|
+
|
|
18
|
+
### Development için (npm link)
|
|
19
|
+
|
|
20
|
+
Bu projeyi geliştirme aşamasında başka projelerde kullanmak için:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Playron dizininde
|
|
24
|
+
npm install
|
|
25
|
+
npm run build
|
|
26
|
+
npm link
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Sonra kullanacağın projede:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npm link playron
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### NPM'den (gelecekte)
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npm install playron
|
|
39
|
+
# veya
|
|
40
|
+
yarn add playron
|
|
41
|
+
# veya
|
|
42
|
+
pnpm add playron
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Kullanım
|
|
46
|
+
|
|
47
|
+
### React/Next.js Projelerinde
|
|
48
|
+
|
|
49
|
+
```tsx
|
|
50
|
+
import { Player } from 'playron';
|
|
51
|
+
import 'playron/style.css';
|
|
52
|
+
|
|
53
|
+
function MyApp() {
|
|
54
|
+
return (
|
|
55
|
+
<div>
|
|
56
|
+
<Player
|
|
57
|
+
src="https://example.com/video.m3u8"
|
|
58
|
+
poster="https://example.com/poster.jpg"
|
|
59
|
+
autoPlay={false}
|
|
60
|
+
controls={true}
|
|
61
|
+
/>
|
|
62
|
+
</div>
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Vanilla JavaScript (MVC) Projelerinde
|
|
68
|
+
|
|
69
|
+
```html
|
|
70
|
+
<!DOCTYPE html>
|
|
71
|
+
<html>
|
|
72
|
+
<head>
|
|
73
|
+
<link rel="stylesheet" href="node_modules/playron/dist/playron.css">
|
|
74
|
+
</head>
|
|
75
|
+
<body>
|
|
76
|
+
<div id="player-container"></div>
|
|
77
|
+
|
|
78
|
+
<script type="module">
|
|
79
|
+
import { Playron } from './node_modules/playron/dist/playron.es.js';
|
|
80
|
+
|
|
81
|
+
const player = new Playron({
|
|
82
|
+
containerId: 'player-container',
|
|
83
|
+
src: 'https://example.com/video.m3u8',
|
|
84
|
+
poster: 'https://example.com/poster.jpg',
|
|
85
|
+
autoPlay: false,
|
|
86
|
+
width: '100%',
|
|
87
|
+
height: 'auto'
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
// Event listeners
|
|
91
|
+
player.on('play', () => console.log('Video playing'));
|
|
92
|
+
player.on('pause', () => console.log('Video paused'));
|
|
93
|
+
|
|
94
|
+
// Player kontrolü
|
|
95
|
+
player.play();
|
|
96
|
+
player.pause();
|
|
97
|
+
player.setVolume(0.5);
|
|
98
|
+
player.seekTo(30);
|
|
99
|
+
</script>
|
|
100
|
+
</body>
|
|
101
|
+
</html>
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### UMD (Script tag ile)
|
|
105
|
+
|
|
106
|
+
```html
|
|
107
|
+
<!DOCTYPE html>
|
|
108
|
+
<html>
|
|
109
|
+
<head>
|
|
110
|
+
<link rel="stylesheet" href="node_modules/playron/dist/playron.css">
|
|
111
|
+
<script src="node_modules/playron/dist/playron.umd.js"></script>
|
|
112
|
+
</head>
|
|
113
|
+
<body>
|
|
114
|
+
<div id="player-container"></div>
|
|
115
|
+
|
|
116
|
+
<script>
|
|
117
|
+
const player = new Playron.Playron({
|
|
118
|
+
containerId: 'player-container',
|
|
119
|
+
src: 'https://example.com/video.m3u8'
|
|
120
|
+
});
|
|
121
|
+
</script>
|
|
122
|
+
</body>
|
|
123
|
+
</html>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## API
|
|
127
|
+
|
|
128
|
+
### Player Props (React)
|
|
129
|
+
|
|
130
|
+
```typescript
|
|
131
|
+
interface PlayerProps {
|
|
132
|
+
src: string; // Video source URL
|
|
133
|
+
poster?: string; // Poster image URL
|
|
134
|
+
autoPlay?: boolean; // Auto-play video
|
|
135
|
+
muted?: boolean; // Start muted
|
|
136
|
+
controls?: boolean; // Show controls
|
|
137
|
+
loop?: boolean; // Loop video
|
|
138
|
+
width?: string | number; // Player width
|
|
139
|
+
height?: string | number; // Player height
|
|
140
|
+
className?: string; // Custom CSS class
|
|
141
|
+
style?: React.CSSProperties; // Inline styles
|
|
142
|
+
|
|
143
|
+
// DRM Config
|
|
144
|
+
drm?: {
|
|
145
|
+
widevine?: { licenseUrl: string };
|
|
146
|
+
playready?: { licenseUrl: string };
|
|
147
|
+
fairplay?: { licenseUrl: string; certificateUrl: string };
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
// Events
|
|
151
|
+
onPlay?: () => void;
|
|
152
|
+
onPause?: () => void;
|
|
153
|
+
onEnded?: () => void;
|
|
154
|
+
onError?: (error: Error) => void;
|
|
155
|
+
onTimeUpdate?: (time: number) => void;
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Playron Class (Vanilla JS)
|
|
160
|
+
|
|
161
|
+
```typescript
|
|
162
|
+
class Playron {
|
|
163
|
+
constructor(config: PlayerConfig);
|
|
164
|
+
|
|
165
|
+
// Playback
|
|
166
|
+
play(): Promise<void>;
|
|
167
|
+
pause(): void;
|
|
168
|
+
toggleMute(): void;
|
|
169
|
+
setVolume(volume: number): void;
|
|
170
|
+
seekTo(time: number): void;
|
|
171
|
+
setPlaybackRate(rate: number): void;
|
|
172
|
+
|
|
173
|
+
// Source
|
|
174
|
+
setSource(src: string): Promise<void>;
|
|
175
|
+
setPoster(poster: string): void;
|
|
176
|
+
|
|
177
|
+
// Events
|
|
178
|
+
on<T>(eventType: string, callback: (event: T) => void): void;
|
|
179
|
+
off<T>(eventType: string, callback: (event: T) => void): void;
|
|
180
|
+
|
|
181
|
+
// State
|
|
182
|
+
getState(): PlayerState;
|
|
183
|
+
|
|
184
|
+
// Cleanup
|
|
185
|
+
destroy(): void;
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Events
|
|
190
|
+
|
|
191
|
+
```typescript
|
|
192
|
+
// Available events
|
|
193
|
+
'play' | 'pause' | 'ended' | 'error' |
|
|
194
|
+
'timeupdate' | 'volumechange' | 'mute' | 'unmute' |
|
|
195
|
+
'seeked' | 'seeking' | 'loadstart' | 'loadeddata' |
|
|
196
|
+
'canplay' | 'waiting' | 'stalled'
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## Advanced Usage
|
|
200
|
+
|
|
201
|
+
### Custom Controls (React)
|
|
202
|
+
|
|
203
|
+
```tsx
|
|
204
|
+
import { PlayerCore, EventBus } from 'playron';
|
|
205
|
+
import { ControlBar, PlayButton, MuteButton } from 'playron';
|
|
206
|
+
|
|
207
|
+
function CustomPlayer() {
|
|
208
|
+
return (
|
|
209
|
+
<div className="custom-player">
|
|
210
|
+
<video id="my-video" />
|
|
211
|
+
<ControlBar>
|
|
212
|
+
<PlayButton />
|
|
213
|
+
<MuteButton />
|
|
214
|
+
{/* Kendi custom kontrollerini ekle */}
|
|
215
|
+
</ControlBar>
|
|
216
|
+
</div>
|
|
217
|
+
);
|
|
218
|
+
}
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### DRM Kullanımı
|
|
222
|
+
|
|
223
|
+
```tsx
|
|
224
|
+
<Player
|
|
225
|
+
src="https://example.com/encrypted-video.mpd"
|
|
226
|
+
drm={{
|
|
227
|
+
widevine: {
|
|
228
|
+
licenseUrl: 'https://example.com/widevine-license'
|
|
229
|
+
},
|
|
230
|
+
playready: {
|
|
231
|
+
licenseUrl: 'https://example.com/playready-license'
|
|
232
|
+
}
|
|
233
|
+
}}
|
|
234
|
+
/>
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### VAST/VMAP Ads
|
|
238
|
+
|
|
239
|
+
```tsx
|
|
240
|
+
<Player
|
|
241
|
+
src="https://example.com/video.m3u8"
|
|
242
|
+
ads={{
|
|
243
|
+
vastUrl: 'https://example.com/vast.xml',
|
|
244
|
+
// or
|
|
245
|
+
vmapUrl: 'https://example.com/vmap.xml'
|
|
246
|
+
}}
|
|
247
|
+
/>
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
## Development
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
# Install dependencies
|
|
254
|
+
npm install
|
|
255
|
+
|
|
256
|
+
# Development mode
|
|
257
|
+
npm run dev
|
|
258
|
+
|
|
259
|
+
# Build library
|
|
260
|
+
npm run build
|
|
261
|
+
|
|
262
|
+
# Lint
|
|
263
|
+
npm run lint
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
## Build Output
|
|
267
|
+
|
|
268
|
+
Build sonrası `dist/` klasöründe:
|
|
269
|
+
- `playron.es.js` - ES Module (modern projeler için)
|
|
270
|
+
- `playron.umd.js` - UMD format (browser'da direkt kullanım)
|
|
271
|
+
- `playron.css` - Styles
|
|
272
|
+
- `index.d.ts` - TypeScript definitions
|
|
273
|
+
|
|
274
|
+
## Browser Support
|
|
275
|
+
|
|
276
|
+
- Chrome/Edge 90+
|
|
277
|
+
- Firefox 88+
|
|
278
|
+
- Safari 14+
|
|
279
|
+
- Mobile browsers (iOS Safari 14+, Chrome Android 90+)
|
|
280
|
+
|
|
281
|
+
## License
|
|
282
|
+
|
|
283
|
+
MIT
|
|
284
|
+
|
|
285
|
+
## Author
|
|
286
|
+
|
|
287
|
+
Suat Erkilic
|
package/dist/Docs.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Docs.d.ts","sourceRoot":"","sources":["../src/Docs.tsx"],"names":[],"mappings":"AAwoCA,MAAM,CAAC,OAAO,UAAU,IAAI,4CAmG3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class r{static instance;listeners=new Set;errorHistory=[];constructor(){}static getInstance(){return r.instance||(r.instance=new r),r.instance}registerListener(e){this.listeners.add(e)}unregisterListener(e){this.listeners.delete(e)}dispatchError(e,s,n,i){const t={category:e,code:s,message:n,details:i,timestamp:Date.now()};return console.error(`[ErrorManager] ${e} (${s}): ${n}`,i),this.errorHistory.push(t),this.listeners.forEach(o=>{try{o(t)}catch(c){console.error("[ErrorManager] Exception in error listener:",c)}}),t}getHistory(){return[...this.errorHistory]}clearHistory(){this.errorHistory=[]}}const a=r.getInstance();exports.ErrorManager=r;exports.errorManager=a;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
class t {
|
|
2
|
+
static instance;
|
|
3
|
+
listeners = /* @__PURE__ */ new Set();
|
|
4
|
+
errorHistory = [];
|
|
5
|
+
constructor() {
|
|
6
|
+
}
|
|
7
|
+
static getInstance() {
|
|
8
|
+
return t.instance || (t.instance = new t()), t.instance;
|
|
9
|
+
}
|
|
10
|
+
registerListener(r) {
|
|
11
|
+
this.listeners.add(r);
|
|
12
|
+
}
|
|
13
|
+
unregisterListener(r) {
|
|
14
|
+
this.listeners.delete(r);
|
|
15
|
+
}
|
|
16
|
+
dispatchError(r, s, n, i) {
|
|
17
|
+
const e = {
|
|
18
|
+
category: r,
|
|
19
|
+
code: s,
|
|
20
|
+
message: n,
|
|
21
|
+
details: i,
|
|
22
|
+
timestamp: Date.now()
|
|
23
|
+
};
|
|
24
|
+
return console.error(`[ErrorManager] ${r} (${s}): ${n}`, i), this.errorHistory.push(e), this.listeners.forEach((o) => {
|
|
25
|
+
try {
|
|
26
|
+
o(e);
|
|
27
|
+
} catch (c) {
|
|
28
|
+
console.error("[ErrorManager] Exception in error listener:", c);
|
|
29
|
+
}
|
|
30
|
+
}), e;
|
|
31
|
+
}
|
|
32
|
+
getHistory() {
|
|
33
|
+
return [...this.errorHistory];
|
|
34
|
+
}
|
|
35
|
+
clearHistory() {
|
|
36
|
+
this.errorHistory = [];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const a = t.getInstance();
|
|
40
|
+
export {
|
|
41
|
+
t as ErrorManager,
|
|
42
|
+
a as errorManager
|
|
43
|
+
};
|
package/dist/Why.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Why.d.ts","sourceRoot":"","sources":["../src/Why.tsx"],"names":[],"mappings":"AA2HA,MAAM,CAAC,OAAO,UAAU,GAAG,4CAsR1B"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface DrmPresetConfig {
|
|
2
|
+
enabled?: boolean;
|
|
3
|
+
widevine?: {
|
|
4
|
+
licenseUrl: string;
|
|
5
|
+
headers?: Record<string, string>;
|
|
6
|
+
withCredentials?: boolean;
|
|
7
|
+
};
|
|
8
|
+
playready?: {
|
|
9
|
+
licenseUrl: string;
|
|
10
|
+
headers?: Record<string, string>;
|
|
11
|
+
withCredentials?: boolean;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export interface PlayerConfigData {
|
|
15
|
+
src: string;
|
|
16
|
+
poster?: string;
|
|
17
|
+
thumbnailsVttUrl: string;
|
|
18
|
+
isRichPlayer: boolean;
|
|
19
|
+
eventsJson: string;
|
|
20
|
+
introOutroJson: string;
|
|
21
|
+
adsEnabled: boolean;
|
|
22
|
+
adType: 'none' | 'vast' | 'vmap';
|
|
23
|
+
vastUrl: string;
|
|
24
|
+
vmapUrl: string;
|
|
25
|
+
skipAfter: number;
|
|
26
|
+
drmConfig?: DrmPresetConfig;
|
|
27
|
+
}
|
|
28
|
+
interface PlayerConfigProps {
|
|
29
|
+
onRun: (config: PlayerConfigData) => void;
|
|
30
|
+
initialConfig?: Partial<PlayerConfigData>;
|
|
31
|
+
}
|
|
32
|
+
export default function PlayerConfig({ onRun, initialConfig }: PlayerConfigProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=PlayerConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlayerConfig.d.ts","sourceRoot":"","sources":["../../src/components/PlayerConfig.tsx"],"names":[],"mappings":"AAOA,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE;QACT,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,CAAC;IACF,SAAS,CAAC,EAAE;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC3C;AA8KD,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,iBAAiB,2CA0M/E"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { FunctionComponent } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Default Controls - Full featured control bar
|
|
4
|
+
*/
|
|
5
|
+
export declare const DefaultControls: FunctionComponent;
|
|
6
|
+
/**
|
|
7
|
+
* Minimal Controls - Just play/pause and seek
|
|
8
|
+
*/
|
|
9
|
+
export declare const MinimalControls: FunctionComponent;
|
|
10
|
+
/**
|
|
11
|
+
* Custom Control Group Components
|
|
12
|
+
*/
|
|
13
|
+
export declare const PlaybackControls: FunctionComponent;
|
|
14
|
+
export declare const VolumeControls: FunctionComponent;
|
|
15
|
+
export declare const QualityControls: FunctionComponent;
|
|
16
|
+
export declare const ScreenControls: FunctionComponent;
|
|
17
|
+
declare const _default: {
|
|
18
|
+
Default: FunctionComponent<{}>;
|
|
19
|
+
Minimal: FunctionComponent<{}>;
|
|
20
|
+
Playback: FunctionComponent<{}>;
|
|
21
|
+
Volume: FunctionComponent<{}>;
|
|
22
|
+
Quality: FunctionComponent<{}>;
|
|
23
|
+
Screen: FunctionComponent<{}>;
|
|
24
|
+
};
|
|
25
|
+
export default _default;
|
|
26
|
+
//# sourceMappingURL=PlayronControls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlayronControls.d.ts","sourceRoot":"","sources":["../../src/components/PlayronControls.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAmB/C;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,iBA2B7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,iBAW7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,iBAU9B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,iBAO5B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,iBAQ7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,iBAS5B,CAAC;;;;;;;;;AAGF,wBAOE"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { FC, ReactNode } from 'react';
|
|
2
|
+
import { PlayerCore } from '../core/PlayerCore';
|
|
3
|
+
import { PlayerConfig } from '../types/config.types';
|
|
4
|
+
import { Chapter, IntroOutro } from '../types/chapters.types';
|
|
5
|
+
/**
|
|
6
|
+
* Playron Props
|
|
7
|
+
*/
|
|
8
|
+
export interface PlayronProps {
|
|
9
|
+
src: string;
|
|
10
|
+
config?: PlayerConfig;
|
|
11
|
+
metadata?: {
|
|
12
|
+
chapters?: Chapter[];
|
|
13
|
+
introOutro?: IntroOutro;
|
|
14
|
+
subtitles?: any[];
|
|
15
|
+
};
|
|
16
|
+
poster?: string;
|
|
17
|
+
autoplay?: boolean;
|
|
18
|
+
muted?: boolean;
|
|
19
|
+
loop?: boolean;
|
|
20
|
+
width?: string | number;
|
|
21
|
+
height?: string | number;
|
|
22
|
+
className?: string;
|
|
23
|
+
style?: any;
|
|
24
|
+
children?: ReactNode;
|
|
25
|
+
onReady?: (player: PlayerCore) => void;
|
|
26
|
+
onPlay?: () => void;
|
|
27
|
+
onPause?: () => void;
|
|
28
|
+
onEnded?: () => void;
|
|
29
|
+
onTimeUpdate?: (currentTime: number, duration: number) => void;
|
|
30
|
+
onError?: (error: any) => void;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Playron Component
|
|
34
|
+
*/
|
|
35
|
+
export declare const Playron: FC<PlayronProps>;
|
|
36
|
+
export default Playron;
|
|
37
|
+
//# sourceMappingURL=PlayronPlayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlayronPlayer.d.ts","sourceRoot":"","sources":["../../src/components/PlayronPlayer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGnE;;GAEG;AACH,MAAM,WAAW,YAAY;IAEzB,GAAG,EAAE,MAAM,CAAC;IAGZ,MAAM,CAAC,EAAE,YAAY,CAAC;IAGtB,QAAQ,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;QACrB,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;KACrB,CAAC;IAGF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IAGf,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,GAAG,CAAC;IAGZ,QAAQ,CAAC,EAAE,SAAS,CAAC;IAGrB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,YAAY,CAqHpC,CAAC;AAGF,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiteHeader.d.ts","sourceRoot":"","sources":["../../src/components/SiteHeader.tsx"],"names":[],"mappings":"AAEA,UAAU,eAAe;IACrB,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;CACxC;AAID,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,UAAmB,EAAE,EAAE,eAAe,2CA+S1E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sample-intro-outro.d.ts","sourceRoot":"","sources":["../../src/constants/sample-intro-outro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,eAAO,MAAM,gBAAgB,EAAE,UAG9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/constants/source.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,yGAAyG,CAAA"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export declare const sampleSportsEvents: ({
|
|
2
|
+
minute: number;
|
|
3
|
+
second: number;
|
|
4
|
+
type: string;
|
|
5
|
+
player: {
|
|
6
|
+
name: string;
|
|
7
|
+
};
|
|
8
|
+
cardType: string;
|
|
9
|
+
reason: string;
|
|
10
|
+
playerOff?: undefined;
|
|
11
|
+
playerOn?: undefined;
|
|
12
|
+
goalPlayer?: undefined;
|
|
13
|
+
assistPlayer?: undefined;
|
|
14
|
+
} | {
|
|
15
|
+
minute: number;
|
|
16
|
+
second: number;
|
|
17
|
+
type: string;
|
|
18
|
+
playerOff: {
|
|
19
|
+
name: string;
|
|
20
|
+
};
|
|
21
|
+
playerOn: {
|
|
22
|
+
name: string;
|
|
23
|
+
};
|
|
24
|
+
player?: undefined;
|
|
25
|
+
cardType?: undefined;
|
|
26
|
+
reason?: undefined;
|
|
27
|
+
goalPlayer?: undefined;
|
|
28
|
+
assistPlayer?: undefined;
|
|
29
|
+
} | {
|
|
30
|
+
minute: number;
|
|
31
|
+
second: number;
|
|
32
|
+
type: string;
|
|
33
|
+
goalPlayer: {
|
|
34
|
+
name: string;
|
|
35
|
+
};
|
|
36
|
+
assistPlayer: {
|
|
37
|
+
name: string;
|
|
38
|
+
};
|
|
39
|
+
player?: undefined;
|
|
40
|
+
cardType?: undefined;
|
|
41
|
+
reason?: undefined;
|
|
42
|
+
playerOff?: undefined;
|
|
43
|
+
playerOn?: undefined;
|
|
44
|
+
} | {
|
|
45
|
+
minute: number;
|
|
46
|
+
second: number;
|
|
47
|
+
type: string;
|
|
48
|
+
goalPlayer: {
|
|
49
|
+
name: string;
|
|
50
|
+
};
|
|
51
|
+
player?: undefined;
|
|
52
|
+
cardType?: undefined;
|
|
53
|
+
reason?: undefined;
|
|
54
|
+
playerOff?: undefined;
|
|
55
|
+
playerOn?: undefined;
|
|
56
|
+
assistPlayer?: undefined;
|
|
57
|
+
})[];
|
|
58
|
+
//# sourceMappingURL=sports-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sports-events.d.ts","sourceRoot":"","sources":["../../src/constants/sports-events.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2D9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlayerContext.d.ts","sourceRoot":"","sources":["../../src/context/PlayerContext.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,eAAO,MAAM,aAAa,4CAAyC,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { QualityLevel } from '../types/streaming.types';
|
|
2
|
+
export interface PlayerMethods {
|
|
3
|
+
play: () => Promise<void>;
|
|
4
|
+
pause: () => void;
|
|
5
|
+
togglePlay: () => Promise<void>;
|
|
6
|
+
toggleMute: () => void;
|
|
7
|
+
setVolume: (volume: number) => void;
|
|
8
|
+
seekTo: (time: number) => void;
|
|
9
|
+
setPlaybackRate: (rate: number) => void;
|
|
10
|
+
toggleFullscreen: () => void;
|
|
11
|
+
togglePip: () => Promise<void>;
|
|
12
|
+
skipBackward: (seconds?: number) => void;
|
|
13
|
+
skipForward: (seconds?: number) => void;
|
|
14
|
+
setLoop: (loop: boolean) => void;
|
|
15
|
+
getLoop: () => boolean;
|
|
16
|
+
setQuality: (quality: string) => void;
|
|
17
|
+
getQuality: () => QualityLevel | null;
|
|
18
|
+
getAvailableQualities: () => QualityLevel[];
|
|
19
|
+
setAudioTrack: (trackId: string) => void;
|
|
20
|
+
getAudioTrack: () => string;
|
|
21
|
+
getAvailableAudioTracks: () => Array<{
|
|
22
|
+
id: string;
|
|
23
|
+
label: string;
|
|
24
|
+
language: string;
|
|
25
|
+
}>;
|
|
26
|
+
toggleTheaterMode: () => void;
|
|
27
|
+
isTheaterMode: () => boolean;
|
|
28
|
+
getPlayer: () => any;
|
|
29
|
+
onNextEpisode?: () => void;
|
|
30
|
+
getStreamType: () => 'vod' | 'live' | 'unknown';
|
|
31
|
+
getStreamInfo: () => any;
|
|
32
|
+
isLive: () => boolean;
|
|
33
|
+
getBufferedRanges: () => Array<{
|
|
34
|
+
start: number;
|
|
35
|
+
end: number;
|
|
36
|
+
}>;
|
|
37
|
+
seekToLiveEdge: () => void;
|
|
38
|
+
getCurrentLatency: () => number;
|
|
39
|
+
isAtLiveEdge: (tolerance?: number) => boolean;
|
|
40
|
+
getDVRRange: () => {
|
|
41
|
+
start: number;
|
|
42
|
+
end: number;
|
|
43
|
+
} | null;
|
|
44
|
+
getSubtitleTracks: () => Array<{
|
|
45
|
+
language: string;
|
|
46
|
+
label: string;
|
|
47
|
+
url: string;
|
|
48
|
+
}>;
|
|
49
|
+
setSubtitleTrack: (language: string | null) => Promise<void>;
|
|
50
|
+
getActiveSubtitleLanguage: () => string | null;
|
|
51
|
+
getPlayerStats: () => {
|
|
52
|
+
bandwidth: number;
|
|
53
|
+
bufferHealth: number;
|
|
54
|
+
droppedFrames: number;
|
|
55
|
+
totalFrames: number;
|
|
56
|
+
codec: string;
|
|
57
|
+
resolution: string;
|
|
58
|
+
segmentUrl: string;
|
|
59
|
+
streamType: string;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export declare const PlayerMethodsContext: import('react').Context<PlayerMethods | null>;
|
|
63
|
+
//# sourceMappingURL=PlayerMethodsContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlayerMethodsContext.d.ts","sourceRoot":"","sources":["../../src/context/PlayerMethodsContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { PlayerCore } from '../core/PlayerCore';
|
|
3
|
+
interface PlayerProviderProps {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
playerInstance: PlayerCore | null;
|
|
6
|
+
}
|
|
7
|
+
export declare function PlayerProvider({ children, playerInstance }: PlayerProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=PlayerProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlayerProvider.d.ts","sourceRoot":"","sources":["../../src/context/PlayerProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIhD,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,SAAS,CAAC;IACpB,cAAc,EAAE,UAAU,GAAG,IAAI,CAAC;CACnC;AAED,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,mBAAmB,2CAkN/E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlayerStateContext.d.ts","sourceRoot":"","sources":["../../src/context/PlayerStateContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,eAAO,MAAM,kBAAkB,EAAE,WAShC,CAAC;AAGF,eAAO,MAAM,kBAAkB,sCAAiD,CAAC"}
|