@zezosoft/zezo-ott-react-native-video-player 1.0.0 → 1.0.2
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 +337 -68
- package/lib/module/AdsPlayer/AdsPlayer.js +248 -0
- package/lib/module/AdsPlayer/AdsPlayer.js.map +1 -0
- package/lib/module/AdsPlayer/MediaControls/AdBottomControls.js +174 -0
- package/lib/module/AdsPlayer/MediaControls/AdBottomControls.js.map +1 -0
- package/lib/module/AdsPlayer/MediaControls/AdMediaControls.js +91 -0
- package/lib/module/AdsPlayer/MediaControls/AdMediaControls.js.map +1 -0
- package/lib/module/AdsPlayer/MediaControls/AdMediaControlsProvider.js +34 -0
- package/lib/module/AdsPlayer/MediaControls/AdMediaControlsProvider.js.map +1 -0
- package/lib/module/AdsPlayer/MediaControls/AdMiddleControls.js +65 -0
- package/lib/module/AdsPlayer/MediaControls/AdMiddleControls.js.map +1 -0
- package/lib/module/AdsPlayer/MediaControls/AdTopControls.js +189 -0
- package/lib/module/AdsPlayer/MediaControls/AdTopControls.js.map +1 -0
- package/lib/module/AdsPlayer/MediaControls/index.js +8 -0
- package/lib/module/AdsPlayer/MediaControls/index.js.map +1 -0
- package/lib/module/AdsPlayer/components/RotatingLoader.js +55 -0
- package/lib/module/AdsPlayer/components/RotatingLoader.js.map +1 -0
- package/lib/module/AdsPlayer/index.js +6 -0
- package/lib/module/AdsPlayer/index.js.map +1 -0
- package/lib/module/AdsPlayer/store/adsPlayer.type.js +4 -0
- package/lib/module/AdsPlayer/store/adsPlayer.type.js.map +1 -0
- package/lib/module/AdsPlayer/store/adsPlayerStore.js +70 -0
- package/lib/module/AdsPlayer/store/adsPlayerStore.js.map +1 -0
- package/lib/module/AdsPlayer/store/index.js +5 -0
- package/lib/module/AdsPlayer/store/index.js.map +1 -0
- package/lib/module/AdsPlayer/utils/adStateReset.js +31 -0
- package/lib/module/AdsPlayer/utils/adStateReset.js.map +1 -0
- package/lib/module/AdsPlayer/utils/controls.js +63 -0
- package/lib/module/AdsPlayer/utils/controls.js.map +1 -0
- package/lib/module/AdsPlayer/utils/useAdControlsAutoHide.js +35 -0
- package/lib/module/AdsPlayer/utils/useAdControlsAutoHide.js.map +1 -0
- package/lib/module/AdsPlayer/utils/useAdInitialization.js +60 -0
- package/lib/module/AdsPlayer/utils/useAdInitialization.js.map +1 -0
- package/lib/module/AdsPlayer/utils/useAdTracking.js +50 -0
- package/lib/module/AdsPlayer/utils/useAdTracking.js.map +1 -0
- package/lib/module/AdsPlayer/utils/useAdsManager.js +165 -0
- package/lib/module/AdsPlayer/utils/useAdsManager.js.map +1 -0
- package/lib/module/VideoPlayer/MediaControls/BottomControls.js +17 -6
- package/lib/module/VideoPlayer/MediaControls/BottomControls.js.map +1 -1
- package/lib/module/VideoPlayer/MediaControls/MediaControls.js +3 -1
- package/lib/module/VideoPlayer/MediaControls/MediaControls.js.map +1 -1
- package/lib/module/VideoPlayer/MediaControls/MediaControlsProvider.js +28 -31
- package/lib/module/VideoPlayer/MediaControls/MediaControlsProvider.js.map +1 -1
- package/lib/module/VideoPlayer/MediaControls/MiddleControls.js +50 -40
- package/lib/module/VideoPlayer/MediaControls/MiddleControls.js.map +1 -1
- package/lib/module/VideoPlayer/MediaControls/TopControls.js +11 -9
- package/lib/module/VideoPlayer/MediaControls/TopControls.js.map +1 -1
- package/lib/module/VideoPlayer/{model → Settings}/AudioAndSubtitles.js +0 -14
- package/lib/module/VideoPlayer/Settings/AudioAndSubtitles.js.map +1 -0
- package/lib/module/VideoPlayer/{model → Settings}/Episodes.js +1 -1
- package/lib/module/VideoPlayer/Settings/Episodes.js.map +1 -0
- package/lib/module/VideoPlayer/{model → Settings}/SettingModal.js +0 -1
- package/lib/module/VideoPlayer/Settings/SettingModal.js.map +1 -0
- package/lib/module/VideoPlayer/{model → Settings}/SpeedControls.js +1 -9
- package/lib/module/VideoPlayer/Settings/SpeedControls.js.map +1 -0
- package/lib/module/VideoPlayer/{model → Settings}/VideoPlayerSettings.js +1 -1
- package/lib/module/VideoPlayer/Settings/VideoPlayerSettings.js.map +1 -0
- package/lib/module/VideoPlayer/VideoPlayerCore.js +244 -0
- package/lib/module/VideoPlayer/VideoPlayerCore.js.map +1 -0
- package/lib/module/VideoPlayer/components/ProgressBar.js +63 -23
- package/lib/module/VideoPlayer/components/ProgressBar.js.map +1 -1
- package/lib/module/VideoPlayer/components/SkipAndNextControls.js +1 -6
- package/lib/module/VideoPlayer/components/SkipAndNextControls.js.map +1 -1
- package/lib/module/VideoPlayer/components/SubtitleView.js +1 -1
- package/lib/module/VideoPlayer/components/SubtitleView.js.map +1 -1
- package/lib/module/VideoPlayer/components/Toast.js +57 -0
- package/lib/module/VideoPlayer/components/Toast.js.map +1 -0
- package/lib/module/VideoPlayer/index.js +1 -1
- package/lib/module/VideoPlayer/index.js.map +1 -1
- package/lib/module/VideoPlayer/store/videoPlayerStore.js +0 -4
- package/lib/module/VideoPlayer/store/videoPlayerStore.js.map +1 -1
- package/lib/module/VideoPlayer/{Styles → styles}/globalStyles.js +5 -6
- package/lib/module/VideoPlayer/styles/globalStyles.js.map +1 -0
- package/lib/module/VideoPlayer/utils/{Display.js → display/Display.js} +0 -4
- package/lib/module/VideoPlayer/utils/display/Display.js.map +1 -0
- package/lib/module/VideoPlayer/utils/display/index.js +4 -0
- package/lib/module/VideoPlayer/utils/display/index.js.map +1 -0
- package/lib/module/VideoPlayer/utils/format/index.js +4 -0
- package/lib/module/VideoPlayer/utils/format/index.js.map +1 -0
- package/lib/module/VideoPlayer/utils/{timeFormatter.js → format/timeFormatter.js} +0 -6
- package/lib/module/VideoPlayer/utils/format/timeFormatter.js.map +1 -0
- package/lib/module/VideoPlayer/utils/hooks/index.js +3 -0
- package/lib/module/VideoPlayer/utils/hooks/index.js.map +1 -1
- package/lib/module/VideoPlayer/utils/hooks/useAdEventHandler.js +56 -0
- package/lib/module/VideoPlayer/utils/hooks/useAdEventHandler.js.map +1 -0
- package/lib/module/VideoPlayer/utils/hooks/useOrientationLock.js +25 -0
- package/lib/module/VideoPlayer/utils/hooks/useOrientationLock.js.map +1 -0
- package/lib/module/VideoPlayer/utils/hooks/usePauseVideoOnAd.js +43 -0
- package/lib/module/VideoPlayer/utils/hooks/usePauseVideoOnAd.js.map +1 -0
- package/lib/module/VideoPlayer/utils/hooks/useVideoPlayerBack.js +3 -4
- package/lib/module/VideoPlayer/utils/hooks/useVideoPlayerBack.js.map +1 -1
- package/lib/module/VideoPlayer/utils/hooks/useVideoResolutions.js +1 -4
- package/lib/module/VideoPlayer/utils/hooks/useVideoResolutions.js.map +1 -1
- package/lib/module/VideoPlayer/utils/index.js +5 -6
- package/lib/module/VideoPlayer/utils/index.js.map +1 -1
- package/lib/module/VideoPlayer/utils/{PlatformSelector.js → platform/PlatformSelector.js} +0 -5
- package/lib/module/VideoPlayer/utils/platform/PlatformSelector.js.map +1 -0
- package/lib/module/VideoPlayer/utils/platform/index.js +5 -0
- package/lib/module/VideoPlayer/utils/platform/index.js.map +1 -0
- package/lib/module/VideoPlayer/utils/{lockOrientation.js → platform/lockOrientation.js} +13 -5
- package/lib/module/VideoPlayer/utils/platform/lockOrientation.js.map +1 -0
- package/lib/module/VideoPlayer/utils/player/index.js +5 -0
- package/lib/module/VideoPlayer/utils/player/index.js.map +1 -0
- package/lib/module/VideoPlayer/utils/{playerEvents.js → player/playerEvents.js} +3 -3
- package/lib/module/VideoPlayer/utils/player/playerEvents.js.map +1 -0
- package/lib/module/VideoPlayer/utils/{useWatchReporter.js → player/useWatchReporter.js} +3 -2
- package/lib/module/VideoPlayer/utils/player/useWatchReporter.js.map +1 -0
- package/lib/module/VideoPlayer/utils/video/index.js +8 -0
- package/lib/module/VideoPlayer/utils/video/index.js.map +1 -0
- package/lib/module/VideoPlayer/utils/{videoControl.js → video/videoControl.js} +1 -14
- package/lib/module/VideoPlayer/utils/video/videoControl.js.map +1 -0
- package/lib/module/VideoPlayer/utils/video/videoRef.js +20 -0
- package/lib/module/VideoPlayer/utils/video/videoRef.js.map +1 -0
- package/lib/module/VideoPlayer/utils/video/videoResume.js +29 -0
- package/lib/module/VideoPlayer/utils/video/videoResume.js.map +1 -0
- package/lib/module/VideoPlayer/utils/video/videoSource.js.map +1 -0
- package/lib/module/VideoPlayer.js +128 -0
- package/lib/module/VideoPlayer.js.map +1 -0
- package/lib/module/index.js +3 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/AdsPlayer/AdsPlayer.d.ts +22 -0
- package/lib/typescript/src/AdsPlayer/AdsPlayer.d.ts.map +1 -0
- package/lib/typescript/src/AdsPlayer/MediaControls/AdBottomControls.d.ts +4 -0
- package/lib/typescript/src/AdsPlayer/MediaControls/AdBottomControls.d.ts.map +1 -0
- package/lib/typescript/src/AdsPlayer/MediaControls/AdMediaControls.d.ts +8 -0
- package/lib/typescript/src/AdsPlayer/MediaControls/AdMediaControls.d.ts.map +1 -0
- package/lib/typescript/src/AdsPlayer/MediaControls/AdMediaControlsProvider.d.ts +26 -0
- package/lib/typescript/src/AdsPlayer/MediaControls/AdMediaControlsProvider.d.ts.map +1 -0
- package/lib/typescript/src/AdsPlayer/MediaControls/AdMiddleControls.d.ts +4 -0
- package/lib/typescript/src/AdsPlayer/MediaControls/AdMiddleControls.d.ts.map +1 -0
- package/lib/typescript/src/AdsPlayer/MediaControls/AdTopControls.d.ts +7 -0
- package/lib/typescript/src/AdsPlayer/MediaControls/AdTopControls.d.ts.map +1 -0
- package/lib/typescript/src/AdsPlayer/MediaControls/index.d.ts +6 -0
- package/lib/typescript/src/AdsPlayer/MediaControls/index.d.ts.map +1 -0
- package/lib/typescript/src/AdsPlayer/components/RotatingLoader.d.ts +12 -0
- package/lib/typescript/src/AdsPlayer/components/RotatingLoader.d.ts.map +1 -0
- package/lib/typescript/src/AdsPlayer/index.d.ts +5 -0
- package/lib/typescript/src/AdsPlayer/index.d.ts.map +1 -0
- package/lib/typescript/src/AdsPlayer/store/adsPlayer.type.d.ts +28 -0
- package/lib/typescript/src/AdsPlayer/store/adsPlayer.type.d.ts.map +1 -0
- package/lib/typescript/src/AdsPlayer/store/adsPlayerStore.d.ts +22 -0
- package/lib/typescript/src/AdsPlayer/store/adsPlayerStore.d.ts.map +1 -0
- package/lib/typescript/src/AdsPlayer/store/index.d.ts +3 -0
- package/lib/typescript/src/AdsPlayer/store/index.d.ts.map +1 -0
- package/lib/typescript/src/AdsPlayer/utils/adStateReset.d.ts +6 -0
- package/lib/typescript/src/AdsPlayer/utils/adStateReset.d.ts.map +1 -0
- package/lib/typescript/src/AdsPlayer/utils/controls.d.ts +13 -0
- package/lib/typescript/src/AdsPlayer/utils/controls.d.ts.map +1 -0
- package/lib/typescript/src/AdsPlayer/utils/useAdControlsAutoHide.d.ts +3 -0
- package/lib/typescript/src/AdsPlayer/utils/useAdControlsAutoHide.d.ts.map +1 -0
- package/lib/typescript/src/AdsPlayer/utils/useAdInitialization.d.ts +20 -0
- package/lib/typescript/src/AdsPlayer/utils/useAdInitialization.d.ts.map +1 -0
- package/lib/typescript/src/AdsPlayer/utils/useAdTracking.d.ts +23 -0
- package/lib/typescript/src/AdsPlayer/utils/useAdTracking.d.ts.map +1 -0
- package/lib/typescript/src/AdsPlayer/utils/useAdsManager.d.ts +9 -0
- package/lib/typescript/src/AdsPlayer/utils/useAdsManager.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/MediaControls/BottomControls.d.ts.map +1 -1
- package/lib/typescript/src/VideoPlayer/MediaControls/MediaControls.d.ts.map +1 -1
- package/lib/typescript/src/VideoPlayer/MediaControls/MediaControlsProvider.d.ts +3 -1
- package/lib/typescript/src/VideoPlayer/MediaControls/MediaControlsProvider.d.ts.map +1 -1
- package/lib/typescript/src/VideoPlayer/MediaControls/MiddleControls.d.ts +2 -1
- package/lib/typescript/src/VideoPlayer/MediaControls/MiddleControls.d.ts.map +1 -1
- package/lib/typescript/src/VideoPlayer/MediaControls/TopControls.d.ts.map +1 -1
- package/lib/typescript/src/VideoPlayer/Settings/AudioAndSubtitles.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/{model → Settings}/Episodes.d.ts +1 -1
- package/lib/typescript/src/VideoPlayer/Settings/Episodes.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/{model → Settings}/SettingModal.d.ts +1 -1
- package/lib/typescript/src/VideoPlayer/Settings/SettingModal.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/Settings/SpeedControls.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/Settings/VideoPlayerSettings.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/{VideoPlayer.d.ts → VideoPlayerCore.d.ts} +10 -7
- package/lib/typescript/src/VideoPlayer/VideoPlayerCore.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/components/ProgressBar.d.ts +3 -1
- package/lib/typescript/src/VideoPlayer/components/ProgressBar.d.ts.map +1 -1
- package/lib/typescript/src/VideoPlayer/components/SkipAndNextControls.d.ts +1 -1
- package/lib/typescript/src/VideoPlayer/components/SkipAndNextControls.d.ts.map +1 -1
- package/lib/typescript/src/VideoPlayer/components/Toast.d.ts +12 -0
- package/lib/typescript/src/VideoPlayer/components/Toast.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/index.d.ts +1 -1
- package/lib/typescript/src/VideoPlayer/index.d.ts.map +1 -1
- package/lib/typescript/src/VideoPlayer/store/videoPlayer.type.d.ts +25 -5
- package/lib/typescript/src/VideoPlayer/store/videoPlayer.type.d.ts.map +1 -1
- package/lib/typescript/src/VideoPlayer/store/videoPlayerStore.d.ts +5 -3
- package/lib/typescript/src/VideoPlayer/store/videoPlayerStore.d.ts.map +1 -1
- package/lib/typescript/src/VideoPlayer/{Styles → styles}/globalStyles.d.ts +16 -9
- package/lib/typescript/src/VideoPlayer/styles/globalStyles.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/utils/display/Display.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/utils/display/index.d.ts +2 -0
- package/lib/typescript/src/VideoPlayer/utils/display/index.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/utils/format/index.d.ts +2 -0
- package/lib/typescript/src/VideoPlayer/utils/format/index.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/utils/{timeFormatter.d.ts → format/timeFormatter.d.ts} +0 -5
- package/lib/typescript/src/VideoPlayer/utils/format/timeFormatter.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/utils/hooks/index.d.ts +3 -0
- package/lib/typescript/src/VideoPlayer/utils/hooks/index.d.ts.map +1 -1
- package/lib/typescript/src/VideoPlayer/utils/hooks/useAdEventHandler.d.ts +34 -0
- package/lib/typescript/src/VideoPlayer/utils/hooks/useAdEventHandler.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/utils/hooks/useOrientationLock.d.ts +11 -0
- package/lib/typescript/src/VideoPlayer/utils/hooks/useOrientationLock.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/utils/hooks/usePauseVideoOnAd.d.ts +6 -0
- package/lib/typescript/src/VideoPlayer/utils/hooks/usePauseVideoOnAd.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/utils/hooks/useVideoResolutions.d.ts.map +1 -1
- package/lib/typescript/src/VideoPlayer/utils/index.d.ts +5 -6
- package/lib/typescript/src/VideoPlayer/utils/index.d.ts.map +1 -1
- package/lib/typescript/src/VideoPlayer/utils/{PlatformSelector.d.ts → platform/PlatformSelector.d.ts} +0 -4
- package/lib/typescript/src/VideoPlayer/utils/platform/PlatformSelector.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/utils/platform/index.d.ts +3 -0
- package/lib/typescript/src/VideoPlayer/utils/platform/index.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/utils/platform/lockOrientation.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/utils/player/index.d.ts +3 -0
- package/lib/typescript/src/VideoPlayer/utils/player/index.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/utils/{playerEvents.d.ts → player/playerEvents.d.ts} +1 -1
- package/lib/typescript/src/VideoPlayer/utils/player/playerEvents.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/utils/{useWatchReporter.d.ts → player/useWatchReporter.d.ts} +1 -6
- package/lib/typescript/src/VideoPlayer/utils/player/useWatchReporter.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/utils/video/index.d.ts +6 -0
- package/lib/typescript/src/VideoPlayer/utils/video/index.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/utils/{videoControl.d.ts → video/videoControl.d.ts} +1 -1
- package/lib/typescript/src/VideoPlayer/utils/video/videoControl.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/utils/video/videoRef.d.ts +19 -0
- package/lib/typescript/src/VideoPlayer/utils/video/videoRef.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/utils/video/videoResume.d.ts +6 -0
- package/lib/typescript/src/VideoPlayer/utils/video/videoResume.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer/utils/{videoSource.d.ts → video/videoSource.d.ts} +1 -1
- package/lib/typescript/src/VideoPlayer/utils/video/videoSource.d.ts.map +1 -0
- package/lib/typescript/src/VideoPlayer.d.ts +31 -0
- package/lib/typescript/src/VideoPlayer.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +3 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +127 -103
- package/src/AdsPlayer/AdsPlayer.tsx +312 -0
- package/src/AdsPlayer/MediaControls/AdBottomControls.tsx +189 -0
- package/src/AdsPlayer/MediaControls/AdMediaControls.tsx +98 -0
- package/src/AdsPlayer/MediaControls/AdMediaControlsProvider.tsx +62 -0
- package/src/AdsPlayer/MediaControls/AdMiddleControls.tsx +63 -0
- package/src/AdsPlayer/MediaControls/AdTopControls.tsx +196 -0
- package/src/AdsPlayer/MediaControls/index.ts +5 -0
- package/src/AdsPlayer/components/RotatingLoader.tsx +79 -0
- package/src/AdsPlayer/index.ts +4 -0
- package/src/AdsPlayer/store/adsPlayer.type.ts +29 -0
- package/src/AdsPlayer/store/adsPlayerStore.ts +59 -0
- package/src/AdsPlayer/store/index.ts +2 -0
- package/src/AdsPlayer/utils/adStateReset.ts +29 -0
- package/src/AdsPlayer/utils/controls.ts +69 -0
- package/src/AdsPlayer/utils/useAdControlsAutoHide.ts +32 -0
- package/src/AdsPlayer/utils/useAdInitialization.ts +86 -0
- package/src/AdsPlayer/utils/useAdTracking.ts +89 -0
- package/src/AdsPlayer/utils/useAdsManager.ts +215 -0
- package/src/VideoPlayer/MediaControls/BottomControls.tsx +22 -3
- package/src/VideoPlayer/MediaControls/MediaControls.tsx +3 -2
- package/src/VideoPlayer/MediaControls/MediaControlsProvider.tsx +36 -35
- package/src/VideoPlayer/MediaControls/MiddleControls.tsx +87 -60
- package/src/VideoPlayer/MediaControls/TopControls.tsx +21 -7
- package/src/VideoPlayer/{model → Settings}/AudioAndSubtitles.tsx +0 -7
- package/src/VideoPlayer/{model → Settings}/Episodes.tsx +6 -3
- package/src/VideoPlayer/{model → Settings}/SettingModal.tsx +1 -2
- package/src/VideoPlayer/{model → Settings}/SpeedControls.tsx +1 -5
- package/src/VideoPlayer/{model → Settings}/VideoPlayerSettings.tsx +1 -1
- package/src/VideoPlayer/VideoPlayerCore.tsx +356 -0
- package/src/VideoPlayer/components/ProgressBar.tsx +85 -21
- package/src/VideoPlayer/components/SkipAndNextControls.tsx +2 -5
- package/src/VideoPlayer/components/SubtitleView.tsx +1 -1
- package/src/VideoPlayer/components/Toast.tsx +61 -0
- package/src/VideoPlayer/index.ts +1 -1
- package/src/VideoPlayer/store/videoPlayer.type.ts +28 -6
- package/src/VideoPlayer/store/videoPlayerStore.ts +0 -4
- package/src/VideoPlayer/{Styles → styles}/globalStyles.ts +5 -6
- package/src/VideoPlayer/utils/{Display.ts → display/Display.ts} +0 -4
- package/src/VideoPlayer/utils/display/index.ts +1 -0
- package/src/VideoPlayer/utils/format/index.ts +1 -0
- package/src/VideoPlayer/utils/{timeFormatter.ts → format/timeFormatter.ts} +4 -7
- package/src/VideoPlayer/utils/hooks/index.ts +3 -0
- package/src/VideoPlayer/utils/hooks/useAdEventHandler.ts +95 -0
- package/src/VideoPlayer/utils/hooks/useOrientationLock.ts +29 -0
- package/src/VideoPlayer/utils/hooks/usePauseVideoOnAd.ts +46 -0
- package/src/VideoPlayer/utils/hooks/useVideoPlayerBack.ts +3 -3
- package/src/VideoPlayer/utils/hooks/useVideoResolutions.ts +1 -3
- package/src/VideoPlayer/utils/index.ts +5 -6
- package/src/VideoPlayer/utils/{PlatformSelector.ts → platform/PlatformSelector.ts} +0 -5
- package/src/VideoPlayer/utils/platform/index.ts +2 -0
- package/src/VideoPlayer/utils/{lockOrientation.ts → platform/lockOrientation.ts} +11 -5
- package/src/VideoPlayer/utils/player/index.ts +2 -0
- package/src/VideoPlayer/utils/{playerEvents.ts → player/playerEvents.ts} +4 -4
- package/src/VideoPlayer/utils/{useWatchReporter.ts → player/useWatchReporter.ts} +4 -3
- package/src/VideoPlayer/utils/video/index.ts +5 -0
- package/src/VideoPlayer/utils/{videoControl.ts → video/videoControl.ts} +2 -9
- package/src/VideoPlayer/utils/video/videoRef.ts +21 -0
- package/src/VideoPlayer/utils/video/videoResume.ts +23 -0
- package/src/VideoPlayer/utils/{videoSource.ts → video/videoSource.ts} +1 -1
- package/src/VideoPlayer.tsx +166 -0
- package/src/index.tsx +3 -1
- package/lib/module/VideoPlayer/Styles/fonts.js +0 -58
- package/lib/module/VideoPlayer/Styles/fonts.js.map +0 -1
- package/lib/module/VideoPlayer/Styles/globalStyles.js.map +0 -1
- package/lib/module/VideoPlayer/VideoPlayer.js +0 -180
- package/lib/module/VideoPlayer/VideoPlayer.js.map +0 -1
- package/lib/module/VideoPlayer/model/AudioAndSubtitles.js.map +0 -1
- package/lib/module/VideoPlayer/model/Episodes.js.map +0 -1
- package/lib/module/VideoPlayer/model/SettingModal.js.map +0 -1
- package/lib/module/VideoPlayer/model/SpeedControls.js.map +0 -1
- package/lib/module/VideoPlayer/model/VideoPlayerSettings.js.map +0 -1
- package/lib/module/VideoPlayer/utils/Display.js.map +0 -1
- package/lib/module/VideoPlayer/utils/PlatformSelector.js.map +0 -1
- package/lib/module/VideoPlayer/utils/lockOrientation.js.map +0 -1
- package/lib/module/VideoPlayer/utils/playerEvents.js.map +0 -1
- package/lib/module/VideoPlayer/utils/timeFormatter.js.map +0 -1
- package/lib/module/VideoPlayer/utils/useWatchReporter.js.map +0 -1
- package/lib/module/VideoPlayer/utils/videoControl.js.map +0 -1
- package/lib/module/VideoPlayer/utils/videoRef.js +0 -5
- package/lib/module/VideoPlayer/utils/videoRef.js.map +0 -1
- package/lib/module/VideoPlayer/utils/videoSource.js.map +0 -1
- package/lib/typescript/src/VideoPlayer/Styles/fonts.d.ts +0 -54
- package/lib/typescript/src/VideoPlayer/Styles/fonts.d.ts.map +0 -1
- package/lib/typescript/src/VideoPlayer/Styles/globalStyles.d.ts.map +0 -1
- package/lib/typescript/src/VideoPlayer/VideoPlayer.d.ts.map +0 -1
- package/lib/typescript/src/VideoPlayer/model/AudioAndSubtitles.d.ts.map +0 -1
- package/lib/typescript/src/VideoPlayer/model/Episodes.d.ts.map +0 -1
- package/lib/typescript/src/VideoPlayer/model/SettingModal.d.ts.map +0 -1
- package/lib/typescript/src/VideoPlayer/model/SpeedControls.d.ts.map +0 -1
- package/lib/typescript/src/VideoPlayer/model/VideoPlayerSettings.d.ts.map +0 -1
- package/lib/typescript/src/VideoPlayer/utils/Display.d.ts.map +0 -1
- package/lib/typescript/src/VideoPlayer/utils/PlatformSelector.d.ts.map +0 -1
- package/lib/typescript/src/VideoPlayer/utils/lockOrientation.d.ts.map +0 -1
- package/lib/typescript/src/VideoPlayer/utils/playerEvents.d.ts.map +0 -1
- package/lib/typescript/src/VideoPlayer/utils/timeFormatter.d.ts.map +0 -1
- package/lib/typescript/src/VideoPlayer/utils/useWatchReporter.d.ts.map +0 -1
- package/lib/typescript/src/VideoPlayer/utils/videoControl.d.ts.map +0 -1
- package/lib/typescript/src/VideoPlayer/utils/videoRef.d.ts +0 -3
- package/lib/typescript/src/VideoPlayer/utils/videoRef.d.ts.map +0 -1
- package/lib/typescript/src/VideoPlayer/utils/videoSource.d.ts.map +0 -1
- package/src/VideoPlayer/Styles/fonts.ts +0 -106
- package/src/VideoPlayer/VideoPlayer.tsx +0 -217
- package/src/VideoPlayer/utils/videoRef.ts +0 -4
- /package/lib/module/VideoPlayer/utils/{videoSource.js → video/videoSource.js} +0 -0
- /package/lib/typescript/src/VideoPlayer/{model → Settings}/AudioAndSubtitles.d.ts +0 -0
- /package/lib/typescript/src/VideoPlayer/{model → Settings}/SpeedControls.d.ts +0 -0
- /package/lib/typescript/src/VideoPlayer/{model → Settings}/VideoPlayerSettings.d.ts +0 -0
- /package/lib/typescript/src/VideoPlayer/utils/{Display.d.ts → display/Display.d.ts} +0 -0
- /package/lib/typescript/src/VideoPlayer/utils/{lockOrientation.d.ts → platform/lockOrientation.d.ts} +0 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useRef } from 'react';
|
|
4
|
+
import { useVideoPlayerStore } from "../../VideoPlayer/store/videoPlayerStore.js";
|
|
5
|
+
import { useAdsPlayerStore } from "../store/adsPlayerStore.js";
|
|
6
|
+
import { useAdInitialization } from "./useAdInitialization.js";
|
|
7
|
+
export const useAdsManager = (ads = [], onAdTracking) => {
|
|
8
|
+
const {
|
|
9
|
+
currentTime,
|
|
10
|
+
activeTrack
|
|
11
|
+
} = useVideoPlayerStore();
|
|
12
|
+
const {
|
|
13
|
+
currentAd,
|
|
14
|
+
isAdPlaying,
|
|
15
|
+
pendingMidRollAds,
|
|
16
|
+
addPendingMidRollAd,
|
|
17
|
+
clearPendingMidRollAds
|
|
18
|
+
} = useAdsPlayerStore();
|
|
19
|
+
const {
|
|
20
|
+
startAd
|
|
21
|
+
} = useAdInitialization({
|
|
22
|
+
onAdTracking
|
|
23
|
+
});
|
|
24
|
+
const adsInitializedRef = useRef(false);
|
|
25
|
+
const previousAdsRef = useRef('');
|
|
26
|
+
const playedMidRollAdsRef = useRef(new Set());
|
|
27
|
+
const playedPreRollAdsRef = useRef(new Set());
|
|
28
|
+
const playedPostRollAdsRef = useRef(new Set());
|
|
29
|
+
const previousTimeRef = useRef(0);
|
|
30
|
+
const isResettingRef = useRef(false);
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
// Prevent infinite loops
|
|
33
|
+
if (isResettingRef.current) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const adsKey = JSON.stringify(ads?.map(ad => ad.id) || []);
|
|
37
|
+
const hadAds = previousAdsRef.current !== '';
|
|
38
|
+
const hasAds = ads && ads.length > 0;
|
|
39
|
+
if (hasAds && adsKey !== previousAdsRef.current) {
|
|
40
|
+
previousAdsRef.current = adsKey;
|
|
41
|
+
|
|
42
|
+
// Don't initialize ads if it's a trailer
|
|
43
|
+
if (activeTrack?.isTrailer) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const preRollAds = ads.filter(ad => ad.position === 'pre');
|
|
47
|
+
const midRollAds = ads.filter(ad => ad.position === 'mid');
|
|
48
|
+
if (preRollAds.length > 0 && preRollAds[0] && !currentAd) {
|
|
49
|
+
try {
|
|
50
|
+
playedPreRollAdsRef.current.add(preRollAds[0].id);
|
|
51
|
+
startAd(preRollAds[0], {
|
|
52
|
+
trackImpression: false
|
|
53
|
+
}); // Impression tracked in AdsPlayer
|
|
54
|
+
} catch (error) {
|
|
55
|
+
console.error('Error starting pre-roll ad:', error);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (!adsInitializedRef.current) {
|
|
59
|
+
midRollAds.forEach(ad => {
|
|
60
|
+
if (ad.time !== undefined) {
|
|
61
|
+
addPendingMidRollAd(ad);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
adsInitializedRef.current = true;
|
|
65
|
+
}
|
|
66
|
+
} else if (!hasAds && hadAds) {
|
|
67
|
+
// Only reset when ads change from non-empty to empty
|
|
68
|
+
isResettingRef.current = true;
|
|
69
|
+
|
|
70
|
+
// Clear all ad state when ads array becomes empty
|
|
71
|
+
adsInitializedRef.current = false;
|
|
72
|
+
previousAdsRef.current = '';
|
|
73
|
+
clearPendingMidRollAds();
|
|
74
|
+
|
|
75
|
+
// Reset played ads tracking
|
|
76
|
+
playedMidRollAdsRef.current.clear();
|
|
77
|
+
playedPreRollAdsRef.current.clear();
|
|
78
|
+
playedPostRollAdsRef.current.clear();
|
|
79
|
+
|
|
80
|
+
// If an ad is currently playing, stop it
|
|
81
|
+
const {
|
|
82
|
+
isAdPlaying: currentIsAdPlaying,
|
|
83
|
+
currentAd: currentAdState,
|
|
84
|
+
resetAdsStore
|
|
85
|
+
} = useAdsPlayerStore.getState();
|
|
86
|
+
if (currentIsAdPlaying || currentAdState) {
|
|
87
|
+
resetAdsStore();
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Reset the flag after a short delay to allow state to settle
|
|
91
|
+
setTimeout(() => {
|
|
92
|
+
isResettingRef.current = false;
|
|
93
|
+
}, 0);
|
|
94
|
+
} else if (!hasAds) {
|
|
95
|
+
// If ads are empty and were already empty, just update the ref
|
|
96
|
+
previousAdsRef.current = '';
|
|
97
|
+
}
|
|
98
|
+
}, [ads, currentAd, addPendingMidRollAd, clearPendingMidRollAds, startAd, activeTrack?.isTrailer]);
|
|
99
|
+
useEffect(() => {
|
|
100
|
+
// Don't trigger mid-roll ads if it's a trailer
|
|
101
|
+
if (activeTrack?.isTrailer) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (!isAdPlaying && pendingMidRollAds.length > 0 && currentTime > 0 && !currentAd) {
|
|
105
|
+
const previousTime = previousTimeRef.current;
|
|
106
|
+
const timeDifference = Math.abs(currentTime - previousTime);
|
|
107
|
+
const isSeeking = timeDifference > 2; // If time jumps more than 2 seconds, it's a seek
|
|
108
|
+
|
|
109
|
+
// Check for ads that should be triggered
|
|
110
|
+
let nextMidRollAd = pendingMidRollAds.find(ad => ad.time && !playedMidRollAdsRef.current.has(ad.id) && currentTime >= ad.time - 1 && currentTime <= ad.time + 1);
|
|
111
|
+
|
|
112
|
+
// If seeking, check if we skipped past any ads
|
|
113
|
+
if (!nextMidRollAd && isSeeking && previousTime < currentTime) {
|
|
114
|
+
const skippedAd = pendingMidRollAds.find(ad => ad.time && !playedMidRollAdsRef.current.has(ad.id) && ad.time > previousTime && ad.time <= currentTime);
|
|
115
|
+
if (skippedAd) {
|
|
116
|
+
nextMidRollAd = skippedAd;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (nextMidRollAd) {
|
|
120
|
+
try {
|
|
121
|
+
playedMidRollAdsRef.current.add(nextMidRollAd.id);
|
|
122
|
+
const timeBeforeAd = isSeeking ? nextMidRollAd.time || currentTime : currentTime;
|
|
123
|
+
startAd(nextMidRollAd, {
|
|
124
|
+
resumeTime: timeBeforeAd,
|
|
125
|
+
trackImpression: false // Impression tracked in AdsPlayer
|
|
126
|
+
});
|
|
127
|
+
const remainingAds = pendingMidRollAds.filter(ad => ad.id !== nextMidRollAd.id);
|
|
128
|
+
clearPendingMidRollAds();
|
|
129
|
+
remainingAds.forEach(ad => addPendingMidRollAd(ad));
|
|
130
|
+
} catch (error) {
|
|
131
|
+
console.error('Error starting mid-roll ad:', error);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// Update previous time
|
|
136
|
+
previousTimeRef.current = currentTime;
|
|
137
|
+
} else if (currentTime > 0) {
|
|
138
|
+
// Update previous time even if conditions aren't met
|
|
139
|
+
previousTimeRef.current = currentTime;
|
|
140
|
+
}
|
|
141
|
+
}, [currentTime, isAdPlaying, pendingMidRollAds, currentAd, ads, addPendingMidRollAd, clearPendingMidRollAds, startAd, activeTrack?.isTrailer]);
|
|
142
|
+
return {
|
|
143
|
+
checkPostRollAds: () => {
|
|
144
|
+
try {
|
|
145
|
+
// Don't show post-roll ads if it's a trailer
|
|
146
|
+
if (activeTrack?.isTrailer) {
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
const postRollAds = ads.filter(ad => ad.position === 'post');
|
|
150
|
+
if (postRollAds.length > 0 && postRollAds[0]) {
|
|
151
|
+
playedPostRollAdsRef.current.add(postRollAds[0].id);
|
|
152
|
+
startAd(postRollAds[0], {
|
|
153
|
+
trackImpression: false
|
|
154
|
+
}); // Impression tracked in AdsPlayer
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
return false;
|
|
158
|
+
} catch (error) {
|
|
159
|
+
console.error('Error checking post-roll ads:', error);
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
};
|
|
165
|
+
//# sourceMappingURL=useAdsManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useVideoPlayerStore","useAdsPlayerStore","useAdInitialization","useAdsManager","ads","onAdTracking","currentTime","activeTrack","currentAd","isAdPlaying","pendingMidRollAds","addPendingMidRollAd","clearPendingMidRollAds","startAd","adsInitializedRef","previousAdsRef","playedMidRollAdsRef","Set","playedPreRollAdsRef","playedPostRollAdsRef","previousTimeRef","isResettingRef","current","adsKey","JSON","stringify","map","ad","id","hadAds","hasAds","length","isTrailer","preRollAds","filter","position","midRollAds","add","trackImpression","error","console","forEach","time","undefined","clear","currentIsAdPlaying","currentAdState","resetAdsStore","getState","setTimeout","previousTime","timeDifference","Math","abs","isSeeking","nextMidRollAd","find","has","skippedAd","timeBeforeAd","resumeTime","remainingAds","checkPostRollAds","postRollAds"],"sourceRoot":"../../../../src","sources":["AdsPlayer/utils/useAdsManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { useCallback } from 'react';
|
|
3
|
+
import React, { useCallback, useMemo } from 'react';
|
|
4
4
|
import { StyleSheet, Text, TouchableOpacity, View } from 'react-native';
|
|
5
5
|
import { scale, verticalScale, moderateScale } from 'react-native-size-matters';
|
|
6
6
|
import { RFValue } from 'react-native-responsive-fontsize';
|
|
7
7
|
import { Settings as SettingsIcon, SlidersHorizontal as SpeedIcon, Subtitles as SubtitlesIcon, ListChecks as EpisodesIcon } from 'lucide-react-native';
|
|
8
8
|
import { useVideoPlayerStore } from "../store/videoPlayerStore.js";
|
|
9
|
-
import {
|
|
9
|
+
import { useAdsPlayerStore } from "../../AdsPlayer/store/adsPlayerStore.js";
|
|
10
|
+
import { videoRef } from "../utils/index.js";
|
|
10
11
|
import { formatTime } from "../utils/index.js";
|
|
11
12
|
import ProgressBar from "../components/ProgressBar.js";
|
|
12
13
|
import { useVideoPlayerConfig } from "../context/index.js";
|
|
@@ -42,6 +43,9 @@ const BottomControls = () => {
|
|
|
42
43
|
setControlsVisible,
|
|
43
44
|
playBackRateLabel
|
|
44
45
|
} = useVideoPlayerStore();
|
|
46
|
+
const {
|
|
47
|
+
pendingMidRollAds
|
|
48
|
+
} = useAdsPlayerStore();
|
|
45
49
|
const {
|
|
46
50
|
colors
|
|
47
51
|
} = useVideoPlayerConfig();
|
|
@@ -60,6 +64,14 @@ const BottomControls = () => {
|
|
|
60
64
|
setIsPaused(true);
|
|
61
65
|
setControlsVisible(false);
|
|
62
66
|
};
|
|
67
|
+
|
|
68
|
+
// Memoize ad markers to avoid recalculation on every render
|
|
69
|
+
const adMarkers = useMemo(() => pendingMidRollAds.filter(ad => ad.time !== undefined && ad.time > 0).map(ad => ad.time).sort((a, b) => a - b), [pendingMidRollAds]);
|
|
70
|
+
|
|
71
|
+
// Memoize time text style
|
|
72
|
+
const timeTextStyle = useMemo(() => [styles.timeText, {
|
|
73
|
+
color: colors.text
|
|
74
|
+
}], [colors.text]);
|
|
63
75
|
return /*#__PURE__*/_jsxs(View, {
|
|
64
76
|
children: [/*#__PURE__*/_jsxs(View, {
|
|
65
77
|
style: styles.sliderContainer,
|
|
@@ -69,12 +81,11 @@ const BottomControls = () => {
|
|
|
69
81
|
duration: duration,
|
|
70
82
|
currentTime: currentTime,
|
|
71
83
|
bufferedTime: playableDuration,
|
|
72
|
-
onSeek: onSeek
|
|
84
|
+
onSeek: onSeek,
|
|
85
|
+
adMarkers: adMarkers
|
|
73
86
|
})
|
|
74
87
|
}), /*#__PURE__*/_jsx(Text, {
|
|
75
|
-
style:
|
|
76
|
-
color: colors.text
|
|
77
|
-
}],
|
|
88
|
+
style: timeTextStyle,
|
|
78
89
|
children: getRemainingTime(duration, currentTime)
|
|
79
90
|
})]
|
|
80
91
|
}), /*#__PURE__*/_jsxs(View, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","StyleSheet","Text","TouchableOpacity","View","scale","verticalScale","moderateScale","RFValue","Settings","SettingsIcon","SlidersHorizontal","SpeedIcon","Subtitles","SubtitlesIcon","ListChecks","EpisodesIcon","useVideoPlayerStore","videoRef","formatTime","ProgressBar","useVideoPlayerConfig","jsx","_jsx","jsxs","_jsxs","ControlButton","onPress","icon","label","accessibilityLabel","buttonStyle","labelStyle","colors","style","styles","button","activeOpacity","children","buttonText","color","text","BottomControls","duration","currentTime","activeTrack","playableDuration","setSettingsModal","setIsPaused","setControlsVisible","playBackRateLabel","getRemainingTime","totalDuration","currentPos","remainingTime","Math","max","onSeek","value","current","seek","onOpenSettings","type","action","isVisible","
|
|
1
|
+
{"version":3,"names":["React","useCallback","useMemo","StyleSheet","Text","TouchableOpacity","View","scale","verticalScale","moderateScale","RFValue","Settings","SettingsIcon","SlidersHorizontal","SpeedIcon","Subtitles","SubtitlesIcon","ListChecks","EpisodesIcon","useVideoPlayerStore","useAdsPlayerStore","videoRef","formatTime","ProgressBar","useVideoPlayerConfig","jsx","_jsx","jsxs","_jsxs","ControlButton","onPress","icon","label","accessibilityLabel","buttonStyle","labelStyle","colors","style","styles","button","activeOpacity","children","buttonText","color","text","BottomControls","duration","currentTime","activeTrack","playableDuration","setSettingsModal","setIsPaused","setControlsVisible","playBackRateLabel","pendingMidRollAds","getRemainingTime","totalDuration","currentPos","remainingTime","Math","max","onSeek","value","current","seek","onOpenSettings","type","action","isVisible","adMarkers","filter","ad","time","undefined","map","sort","a","b","timeTextStyle","timeText","sliderContainer","sliderWrapper","bufferedTime","buttonsContainer","size","isTrailer","create","flexDirection","alignItems","paddingHorizontal","flex","minWidth","width","textAlign","marginLeft","fontSize","fontWeight","justifyContent","flexWrap","paddingVertical","marginHorizontal","marginVertical","borderRadius"],"sourceRoot":"../../../../src","sources":["VideoPlayer/MediaControls/BottomControls.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { memo } from 'react';
|
|
4
|
-
import { StyleSheet
|
|
4
|
+
import { StyleSheet } from 'react-native';
|
|
5
|
+
import { SafeAreaView } from 'react-native-safe-area-context';
|
|
5
6
|
import TopControls from "./TopControls.js";
|
|
6
7
|
import MiddleControls from "./MiddleControls.js";
|
|
7
8
|
import BottomControls from "./BottomControls.js";
|
|
@@ -11,6 +12,7 @@ const MediaControls = ({
|
|
|
11
12
|
}) => {
|
|
12
13
|
return /*#__PURE__*/_jsxs(SafeAreaView, {
|
|
13
14
|
style: styles.container,
|
|
15
|
+
edges: ['top'],
|
|
14
16
|
children: [/*#__PURE__*/_jsx(TopControls, {
|
|
15
17
|
onClose: onClose
|
|
16
18
|
}), /*#__PURE__*/_jsx(MiddleControls, {}), /*#__PURE__*/_jsx(BottomControls, {})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","StyleSheet","SafeAreaView","TopControls","MiddleControls","BottomControls","jsx","_jsx","jsxs","_jsxs","MediaControls","onClose","style","styles","container","children","create","flex","flexDirection","justifyContent"],"sourceRoot":"../../../../src","sources":["VideoPlayer/MediaControls/MediaControls.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,UAAU,
|
|
1
|
+
{"version":3,"names":["memo","StyleSheet","SafeAreaView","TopControls","MiddleControls","BottomControls","jsx","_jsx","jsxs","_jsxs","MediaControls","onClose","style","styles","container","edges","children","create","flex","flexDirection","justifyContent"],"sourceRoot":"../../../../src","sources":["VideoPlayer/MediaControls/MediaControls.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,YAAY,QAAQ,gCAAgC;AAC7D,OAAOC,WAAW,MAAM,kBAAe;AACvC,OAAOC,cAAc,MAAM,qBAAkB;AAC7C,OAAOC,cAAc,MAAM,qBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAM9C,MAAMC,aAA2C,GAAGA,CAAC;EAAEC;AAAQ,CAAC,KAAK;EACnE,oBACEF,KAAA,CAACP,YAAY;IAACU,KAAK,EAAEC,MAAM,CAACC,SAAU;IAACC,KAAK,EAAE,CAAC,KAAK,CAAE;IAAAC,QAAA,gBACpDT,IAAA,CAACJ,WAAW;MAACQ,OAAO,EAAEA;IAAQ,CAAE,CAAC,eACjCJ,IAAA,CAACH,cAAc,IAAE,CAAC,eAClBG,IAAA,CAACF,cAAc,IAAE,CAAC;EAAA,CACN,CAAC;AAEnB,CAAC;AAED,4BAAeL,IAAI,CAACU,aAAa,CAAC;AAElC,MAAMG,MAAM,GAAGZ,UAAU,CAACgB,MAAM,CAAC;EAC/BH,SAAS,EAAE;IACTI,IAAI,EAAE,CAAC;IACPC,aAAa,EAAE,QAAQ;IACvBC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,35 +1,46 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { useEffect, useRef } from 'react';
|
|
4
|
-
import {
|
|
5
|
-
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
3
|
+
import React, { useEffect, useRef, useMemo } from 'react';
|
|
4
|
+
import { TouchableOpacity, View, Animated } from 'react-native';
|
|
6
5
|
import { moderateScale } from 'react-native-size-matters';
|
|
7
6
|
import MediaControls from "./MediaControls.js";
|
|
8
|
-
import SettingModal from "../
|
|
7
|
+
import SettingModal from "../Settings/SettingModal.js";
|
|
9
8
|
import { useVideoPlayerStore } from "../store/videoPlayerStore.js";
|
|
10
9
|
import SkipAndNextControls from "../components/SkipAndNextControls.js";
|
|
11
|
-
import globalStyles from "../
|
|
10
|
+
import globalStyles from "../styles/globalStyles.js";
|
|
12
11
|
import SubtitleView from "../components/SubtitleView.js";
|
|
13
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
13
|
const MediaControlsProvider = ({
|
|
15
14
|
children,
|
|
16
15
|
onClose,
|
|
17
16
|
onPressEpisode,
|
|
18
|
-
reportProgress
|
|
17
|
+
reportProgress,
|
|
18
|
+
insets
|
|
19
19
|
}) => {
|
|
20
|
-
const {
|
|
21
|
-
controlsVisible,
|
|
22
|
-
setControlsVisible,
|
|
23
|
-
controlsTimer
|
|
24
|
-
} = useVideoPlayerStore();
|
|
25
20
|
const {
|
|
26
21
|
top,
|
|
27
22
|
bottom,
|
|
28
23
|
left,
|
|
29
24
|
right
|
|
30
|
-
} =
|
|
31
|
-
const
|
|
25
|
+
} = insets;
|
|
26
|
+
const controlsVisible = useVideoPlayerStore(state => state.controlsVisible);
|
|
27
|
+
const setControlsVisible = useVideoPlayerStore(state => state.setControlsVisible);
|
|
28
|
+
const controlsTimer = useVideoPlayerStore(state => state.controlsTimer);
|
|
29
|
+
const timeoutId = React.useRef(null);
|
|
32
30
|
const fadeAnim = useRef(new Animated.Value(0)).current;
|
|
31
|
+
|
|
32
|
+
// Memoize container padding to avoid recalculation on every render
|
|
33
|
+
const containerPadding = useMemo(() => ({
|
|
34
|
+
paddingTop: top,
|
|
35
|
+
paddingBottom: bottom + moderateScale(5),
|
|
36
|
+
paddingLeft: left + moderateScale(10),
|
|
37
|
+
paddingRight: right + moderateScale(10)
|
|
38
|
+
}), [top, bottom, left, right]);
|
|
39
|
+
|
|
40
|
+
// Memoize animated style
|
|
41
|
+
const animatedStyle = useMemo(() => [globalStyles.absoluteFill, {
|
|
42
|
+
opacity: fadeAnim
|
|
43
|
+
}], [fadeAnim]);
|
|
33
44
|
useEffect(() => {
|
|
34
45
|
Animated.timing(fadeAnim, {
|
|
35
46
|
toValue: controlsVisible ? 1 : 0,
|
|
@@ -37,30 +48,22 @@ const MediaControlsProvider = ({
|
|
|
37
48
|
useNativeDriver: true
|
|
38
49
|
}).start();
|
|
39
50
|
if (controlsVisible) {
|
|
40
|
-
|
|
51
|
+
timeoutId.current = setTimeout(() => {
|
|
41
52
|
setControlsVisible(false);
|
|
42
53
|
}, controlsTimer * 1000);
|
|
43
54
|
}
|
|
44
55
|
return () => {
|
|
45
|
-
if (
|
|
56
|
+
if (timeoutId.current) clearTimeout(timeoutId.current);
|
|
46
57
|
};
|
|
47
58
|
}, [controlsVisible, controlsTimer, setControlsVisible, fadeAnim]);
|
|
48
|
-
const containerPadding = {
|
|
49
|
-
paddingTop: top,
|
|
50
|
-
paddingBottom: bottom + moderateScale(5),
|
|
51
|
-
paddingLeft: left + moderateScale(10),
|
|
52
|
-
paddingRight: right + moderateScale(10)
|
|
53
|
-
};
|
|
54
59
|
return /*#__PURE__*/_jsxs(View, {
|
|
55
60
|
style: globalStyles.flexOne,
|
|
56
61
|
children: [children, /*#__PURE__*/_jsx(Animated.View, {
|
|
57
62
|
pointerEvents: controlsVisible ? 'auto' : 'none',
|
|
58
|
-
style:
|
|
59
|
-
opacity: fadeAnim
|
|
60
|
-
}],
|
|
63
|
+
style: animatedStyle,
|
|
61
64
|
children: /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
62
65
|
onPress: () => setControlsVisible(false),
|
|
63
|
-
style: [
|
|
66
|
+
style: [globalStyles.controlsContainer, containerPadding],
|
|
64
67
|
activeOpacity: 1,
|
|
65
68
|
children: /*#__PURE__*/_jsx(MediaControls, {
|
|
66
69
|
onClose: onClose
|
|
@@ -76,10 +79,4 @@ const MediaControlsProvider = ({
|
|
|
76
79
|
});
|
|
77
80
|
};
|
|
78
81
|
export default MediaControlsProvider;
|
|
79
|
-
const styles = StyleSheet.create({
|
|
80
|
-
container: {
|
|
81
|
-
flex: 1,
|
|
82
|
-
backgroundColor: 'rgba(0, 0, 0, 0.5)'
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
82
|
//# sourceMappingURL=MediaControlsProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","useMemo","TouchableOpacity","View","Animated","moderateScale","MediaControls","SettingModal","useVideoPlayerStore","SkipAndNextControls","globalStyles","SubtitleView","jsx","_jsx","jsxs","_jsxs","MediaControlsProvider","children","onClose","onPressEpisode","reportProgress","insets","top","bottom","left","right","controlsVisible","state","setControlsVisible","controlsTimer","timeoutId","fadeAnim","Value","current","containerPadding","paddingTop","paddingBottom","paddingLeft","paddingRight","animatedStyle","absoluteFill","opacity","timing","toValue","duration","useNativeDriver","start","setTimeout","clearTimeout","style","flexOne","pointerEvents","onPress","controlsContainer","activeOpacity"],"sourceRoot":"../../../../src","sources":["VideoPlayer/MediaControls/MediaControlsProvider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,MAAM,EAAEC,OAAO,QAAQ,OAAO;AACzD,SAASC,gBAAgB,EAAEC,IAAI,EAAkBC,QAAQ,QAAQ,cAAc;AAE/E,SAASC,aAAa,QAAQ,2BAA2B;AACzD,OAAOC,aAAa,MAAmC,oBAAiB;AACxE,OAAOC,YAAY,MAAM,6BAA0B;AACnD,SAASC,mBAAmB,QAAQ,8BAA2B;AAC/D,OAAOC,mBAAmB,MAAM,sCAAmC;AAEnE,OAAOC,YAAY,MAAM,2BAAwB;AAEjD,OAAOC,YAAY,MAAM,+BAA4B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAStD,MAAMC,qBAA2D,GAAGA,CAAC;EACnEC,QAAQ;EACRC,OAAO;EACPC,cAAc;EACdC,cAAc;EACdC;AACF,CAAC,KAAK;EACJ,MAAM;IAAEC,GAAG;IAAEC,MAAM;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAGJ,MAAM;EAC3C,MAAMK,eAAe,GAAGlB,mBAAmB,CAAEmB,KAAK,IAAKA,KAAK,CAACD,eAAe,CAAC;EAC7E,MAAME,kBAAkB,GAAGpB,mBAAmB,CAC3CmB,KAAK,IAAKA,KAAK,CAACC,kBACnB,CAAC;EACD,MAAMC,aAAa,GAAGrB,mBAAmB,CAAEmB,KAAK,IAAKA,KAAK,CAACE,aAAa,CAAC;EACzE,MAAMC,SAAS,GAAGhC,KAAK,CAACE,MAAM,CAAwB,IAAI,CAAC;EAC3D,MAAM+B,QAAQ,GAAG/B,MAAM,CAAC,IAAII,QAAQ,CAAC4B,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;;EAEtD;EACA,MAAMC,gBAA2B,GAAGjC,OAAO,CACzC,OAAO;IACLkC,UAAU,EAAEb,GAAG;IACfc,aAAa,EAAEb,MAAM,GAAGlB,aAAa,CAAC,CAAC,CAAC;IACxCgC,WAAW,EAAEb,IAAI,GAAGnB,aAAa,CAAC,EAAE,CAAC;IACrCiC,YAAY,EAAEb,KAAK,GAAGpB,aAAa,CAAC,EAAE;EACxC,CAAC,CAAC,EACF,CAACiB,GAAG,EAAEC,MAAM,EAAEC,IAAI,EAAEC,KAAK,CAC3B,CAAC;;EAED;EACA,MAAMc,aAAa,GAAGtC,OAAO,CAC3B,MAAM,CAACS,YAAY,CAAC8B,YAAY,EAAE;IAAEC,OAAO,EAAEV;EAAS,CAAC,CAAC,EACxD,CAACA,QAAQ,CACX,CAAC;EAEDhC,SAAS,CAAC,MAAM;IACdK,QAAQ,CAACsC,MAAM,CAACX,QAAQ,EAAE;MACxBY,OAAO,EAAEjB,eAAe,GAAG,CAAC,GAAG,CAAC;MAChCkB,QAAQ,EAAE,GAAG;MACbC,eAAe,EAAE;IACnB,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;IAEV,IAAIpB,eAAe,EAAE;MACnBI,SAAS,CAACG,OAAO,GAAGc,UAAU,CAAC,MAAM;QACnCnB,kBAAkB,CAAC,KAAK,CAAC;MAC3B,CAAC,EAAEC,aAAa,GAAG,IAAI,CAAC;IAC1B;IAEA,OAAO,MAAM;MACX,IAAIC,SAAS,CAACG,OAAO,EAAEe,YAAY,CAAClB,SAAS,CAACG,OAAO,CAAC;IACxD,CAAC;EACH,CAAC,EAAE,CAACP,eAAe,EAAEG,aAAa,EAAED,kBAAkB,EAAEG,QAAQ,CAAC,CAAC;EAElE,oBACEhB,KAAA,CAACZ,IAAI;IAAC8C,KAAK,EAAEvC,YAAY,CAACwC,OAAQ;IAAAjC,QAAA,GAC/BA,QAAQ,eACTJ,IAAA,CAACT,QAAQ,CAACD,IAAI;MACZgD,aAAa,EAAEzB,eAAe,GAAG,MAAM,GAAG,MAAO;MACjDuB,KAAK,EAAEV,aAAc;MAAAtB,QAAA,eAErBJ,IAAA,CAACX,gBAAgB;QACfkD,OAAO,EAAEA,CAAA,KAAMxB,kBAAkB,CAAC,KAAK,CAAE;QACzCqB,KAAK,EAAE,CAACvC,YAAY,CAAC2C,iBAAiB,EAAEnB,gBAAgB,CAAE;QAC1DoB,aAAa,EAAE,CAAE;QAAArC,QAAA,eAEjBJ,IAAA,CAACP,aAAa;UAACY,OAAO,EAAEA;QAAQ,CAAE;MAAC,CACnB;IAAC,CACN,CAAC,eAChBL,IAAA,CAACN,YAAY;MACXY,cAAc,EAAEA,cAAe;MAC/BC,cAAc,EAAEA;IAAe,CAChC,CAAC,eACFP,IAAA,CAACF,YAAY,IAAE,CAAC,eAChBE,IAAA,CAACJ,mBAAmB;MAClBU,cAAc,EAAEA,cAAe;MAC/BC,cAAc,EAAEA;IAAe,CAChC,CAAC;EAAA,CACE,CAAC;AAEX,CAAC;AAED,eAAeJ,qBAAqB","ignoreList":[]}
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
import
|
|
5
|
-
import { ActivityIndicator, StyleSheet, Text, TouchableOpacity, View, Animated, Easing } from 'react-native';
|
|
3
|
+
import React, { useState, useRef, useMemo } from 'react';
|
|
4
|
+
import { StyleSheet, Text, TouchableOpacity, View, Animated, Easing } from 'react-native';
|
|
6
5
|
import { moderateScale, scale } from 'react-native-size-matters';
|
|
7
6
|
import { RFValue } from 'react-native-responsive-fontsize';
|
|
8
7
|
import { Play, Pause, RotateCcw, RotateCw } from 'lucide-react-native';
|
|
9
8
|
import { useVideoPlayerStore } from "../store/videoPlayerStore.js";
|
|
10
|
-
import { videoRef } from "../utils/
|
|
9
|
+
import { videoRef } from "../utils/index.js";
|
|
11
10
|
import { handlePause } from "../utils/index.js";
|
|
12
11
|
import { useVideoPlayerConfig } from "../context/index.js";
|
|
12
|
+
import RotatingLoader from "../../AdsPlayer/components/RotatingLoader.js";
|
|
13
|
+
import globalStyles from "../styles/globalStyles.js";
|
|
13
14
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
15
|
const BUTTON_SIZE = moderateScale(80);
|
|
15
16
|
const SMALL_BUTTON_SIZE = moderateScale(60);
|
|
16
17
|
const FEEDBACK_DURATION = 500;
|
|
17
18
|
const MOVE_DISTANCE = 60;
|
|
19
|
+
const SKIP_INCREMENT = 10;
|
|
18
20
|
const MiddleControls = () => {
|
|
19
21
|
const {
|
|
20
22
|
isPaused,
|
|
@@ -29,9 +31,36 @@ const MiddleControls = () => {
|
|
|
29
31
|
const {
|
|
30
32
|
colors
|
|
31
33
|
} = useVideoPlayerConfig();
|
|
34
|
+
const isVideoEnded = duration > 0 && currentTime >= duration;
|
|
35
|
+
const handleSkip = delta => {
|
|
36
|
+
let newTime = currentTime + delta;
|
|
37
|
+
if (newTime < 0) newTime = 0;
|
|
38
|
+
if (newTime > duration) newTime = duration;
|
|
39
|
+
videoRef?.current?.seek(newTime);
|
|
40
|
+
setCurrentTime(newTime);
|
|
41
|
+
};
|
|
42
|
+
const handlePlayPause = () => {
|
|
43
|
+
if (isVideoEnded) {
|
|
44
|
+
videoRef.current?.seek(0);
|
|
45
|
+
setCurrentTime(0);
|
|
46
|
+
setIsPaused(false);
|
|
47
|
+
setStartWatchTime(Date.now());
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (!isPaused) {
|
|
51
|
+
handlePause();
|
|
52
|
+
setIsPaused(true);
|
|
53
|
+
} else {
|
|
54
|
+
setIsPaused(false);
|
|
55
|
+
setStartWatchTime(Date.now());
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
// Memoize container style
|
|
60
|
+
const containerStyle = useMemo(() => [globalStyles.absoluteFill, styles.container], []);
|
|
32
61
|
if (error) {
|
|
33
62
|
return /*#__PURE__*/_jsx(View, {
|
|
34
|
-
style:
|
|
63
|
+
style: containerStyle,
|
|
35
64
|
children: /*#__PURE__*/_jsx(Text, {
|
|
36
65
|
style: [styles.errorText, {
|
|
37
66
|
color: colors.text
|
|
@@ -40,16 +69,8 @@ const MiddleControls = () => {
|
|
|
40
69
|
})
|
|
41
70
|
});
|
|
42
71
|
}
|
|
43
|
-
const handleSkip = delta => {
|
|
44
|
-
let newTime = currentTime + delta;
|
|
45
|
-
if (newTime < 0) newTime = 0;
|
|
46
|
-
if (newTime > duration) newTime = duration;
|
|
47
|
-
videoRef?.current?.seek(newTime);
|
|
48
|
-
setCurrentTime(newTime);
|
|
49
|
-
};
|
|
50
|
-
const isVideoEnded = duration > 0 && currentTime >= duration;
|
|
51
72
|
return /*#__PURE__*/_jsxs(View, {
|
|
52
|
-
style:
|
|
73
|
+
style: containerStyle,
|
|
53
74
|
children: [/*#__PURE__*/_jsx(SkipButton, {
|
|
54
75
|
direction: "backward",
|
|
55
76
|
onPress: ({
|
|
@@ -57,30 +78,18 @@ const MiddleControls = () => {
|
|
|
57
78
|
}) => handleSkip(-second),
|
|
58
79
|
colors: colors,
|
|
59
80
|
disabled: currentTime <= 0
|
|
60
|
-
}), /*#__PURE__*/_jsx(
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
if (!isPaused) {
|
|
71
|
-
handlePause();
|
|
72
|
-
setIsPaused(true);
|
|
73
|
-
} else {
|
|
74
|
-
setIsPaused(false);
|
|
75
|
-
setStartWatchTime(Date.now());
|
|
76
|
-
}
|
|
77
|
-
},
|
|
81
|
+
}), isBuffering ? /*#__PURE__*/_jsx(View, {
|
|
82
|
+
style: [styles.button, styles.playButton],
|
|
83
|
+
children: /*#__PURE__*/_jsx(RotatingLoader, {
|
|
84
|
+
color: colors.text,
|
|
85
|
+
autoRotate: isBuffering,
|
|
86
|
+
size: scale(50)
|
|
87
|
+
})
|
|
88
|
+
}) : /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
89
|
+
onPress: handlePlayPause,
|
|
78
90
|
style: [styles.button, styles.playButton],
|
|
79
91
|
activeOpacity: 0.8,
|
|
80
|
-
children:
|
|
81
|
-
size: scale(50),
|
|
82
|
-
color: colors.text
|
|
83
|
-
}) : isPaused ? /*#__PURE__*/_jsx(Play, {
|
|
92
|
+
children: isPaused ? /*#__PURE__*/_jsx(Play, {
|
|
84
93
|
size: scale(50),
|
|
85
94
|
color: colors.text
|
|
86
95
|
}) : /*#__PURE__*/_jsx(Pause, {
|
|
@@ -109,7 +118,7 @@ const SkipButton = ({
|
|
|
109
118
|
const timeoutRef = useRef(null);
|
|
110
119
|
const handlePress = () => {
|
|
111
120
|
if (disabled) return;
|
|
112
|
-
const newStep = step +
|
|
121
|
+
const newStep = step + SKIP_INCREMENT;
|
|
113
122
|
setStep(newStep);
|
|
114
123
|
onPress({
|
|
115
124
|
second: newStep
|
|
@@ -138,9 +147,7 @@ const SkipButton = ({
|
|
|
138
147
|
});
|
|
139
148
|
return /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
140
149
|
onPress: handlePress,
|
|
141
|
-
style: [styles.button, styles.smallButton, disabled &&
|
|
142
|
-
opacity: 0.3
|
|
143
|
-
}],
|
|
150
|
+
style: [styles.button, styles.smallButton, disabled && styles.disabledButton],
|
|
144
151
|
activeOpacity: disabled ? 1 : 0.7,
|
|
145
152
|
disabled: disabled,
|
|
146
153
|
children: [direction === 'forward' ? /*#__PURE__*/_jsx(RotateCw, {
|
|
@@ -189,6 +196,9 @@ const styles = StyleSheet.create({
|
|
|
189
196
|
height: SMALL_BUTTON_SIZE,
|
|
190
197
|
marginHorizontal: moderateScale(10)
|
|
191
198
|
},
|
|
199
|
+
disabledButton: {
|
|
200
|
+
opacity: 0.3
|
|
201
|
+
},
|
|
192
202
|
errorText: {
|
|
193
203
|
fontSize: RFValue(18),
|
|
194
204
|
fontWeight: '600',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useRef","
|
|
1
|
+
{"version":3,"names":["React","useState","useRef","useMemo","StyleSheet","Text","TouchableOpacity","View","Animated","Easing","moderateScale","scale","RFValue","Play","Pause","RotateCcw","RotateCw","useVideoPlayerStore","videoRef","handlePause","useVideoPlayerConfig","RotatingLoader","globalStyles","jsx","_jsx","jsxs","_jsxs","BUTTON_SIZE","SMALL_BUTTON_SIZE","FEEDBACK_DURATION","MOVE_DISTANCE","SKIP_INCREMENT","MiddleControls","isPaused","isBuffering","setStartWatchTime","error","setIsPaused","duration","currentTime","setCurrentTime","colors","isVideoEnded","handleSkip","delta","newTime","current","seek","handlePlayPause","Date","now","containerStyle","absoluteFill","styles","container","style","children","errorText","color","text","SkipButton","direction","onPress","second","disabled","button","playButton","autoRotate","size","activeOpacity","step","setStep","anim","Value","timeoutRef","handlePress","newStep","setValue","timing","toValue","easing","out","quad","useNativeDriver","start","clearTimeout","setTimeout","translateX","interpolate","inputRange","outputRange","opacity","scaleAnim","smallButton","disabledButton","feedbackOverlay","transform","feedbackText","create","flex","flexDirection","justifyContent","alignItems","borderRadius","width","height","marginHorizontal","fontSize","fontWeight","textAlign","paddingHorizontal","position"],"sourceRoot":"../../../../src","sources":["VideoPlayer/MediaControls/MiddleControls.tsx"],"mappings":"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","ignoreList":[]}
|