spactureai-mobile-player 1.0.30
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/LICENSE +20 -0
- package/README.md +474 -0
- package/UnifiedPlayer.podspec +51 -0
- package/android/CMakeLists.txt +29 -0
- package/android/build.gradle +249 -0
- package/android/fix-prefab.gradle +51 -0
- package/android/gradle.properties +15 -0
- package/android/src/main/AndroidManifest.xml +10 -0
- package/android/src/main/AndroidManifestNew.xml +9 -0
- package/android/src/main/cpp/cpp-adapter.cpp +9 -0
- package/android/src/main/java/com/unifiedplayer/core/AudioFocusManager.kt +233 -0
- package/android/src/main/java/com/unifiedplayer/core/VideoError.kt +105 -0
- package/android/src/main/java/com/unifiedplayer/core/VideoManager.kt +292 -0
- package/android/src/main/java/com/unifiedplayer/core/extensions/ResizeMode+AspectRatioFrameLayout.kt +20 -0
- package/android/src/main/java/com/unifiedplayer/core/extensions/SubtitleType+toString.kt +14 -0
- package/android/src/main/java/com/unifiedplayer/core/extensions/VideoPlaybackService+ServiceManagment.kt +59 -0
- package/android/src/main/java/com/unifiedplayer/core/fragments/FullscreenVideoFragment.kt +346 -0
- package/android/src/main/java/com/unifiedplayer/core/fragments/PictureInPictureHelperFragment.kt +85 -0
- package/android/src/main/java/com/unifiedplayer/core/player/DRMManagerSpec.kt +23 -0
- package/android/src/main/java/com/unifiedplayer/core/player/DataSourceFactoryUtils.kt +93 -0
- package/android/src/main/java/com/unifiedplayer/core/player/MediaItemUtils.kt +141 -0
- package/android/src/main/java/com/unifiedplayer/core/player/MediaSourceUtils.kt +134 -0
- package/android/src/main/java/com/unifiedplayer/core/player/OnAudioFocusChangedListener.kt +25 -0
- package/android/src/main/java/com/unifiedplayer/core/plugins/PluginsRegistry.kt +223 -0
- package/android/src/main/java/com/unifiedplayer/core/plugins/ReactNativeVideoPlugin.kt +173 -0
- package/android/src/main/java/com/unifiedplayer/core/recivers/AudioBecomingNoisyReceiver.kt +38 -0
- package/android/src/main/java/com/unifiedplayer/core/services/playback/CustomMediaNotificationProvider.kt +151 -0
- package/android/src/main/java/com/unifiedplayer/core/services/playback/VideoPlaybackCallback.kt +96 -0
- package/android/src/main/java/com/unifiedplayer/core/services/playback/VideoPlaybackService.kt +219 -0
- package/android/src/main/java/com/unifiedplayer/core/services/playback/VideoPlaybackServiceConnection.kt +59 -0
- package/android/src/main/java/com/unifiedplayer/core/utils/PictureInPictureUtils.kt +153 -0
- package/android/src/main/java/com/unifiedplayer/core/utils/SmallVideoPlayerOptimizer.kt +157 -0
- package/android/src/main/java/com/unifiedplayer/core/utils/SourceLoader.kt +48 -0
- package/android/src/main/java/com/unifiedplayer/core/utils/TextTrackUtils.kt +175 -0
- package/android/src/main/java/com/unifiedplayer/core/utils/Threading.kt +75 -0
- package/android/src/main/java/com/unifiedplayer/core/utils/VideoFileHelper.kt +51 -0
- package/android/src/main/java/com/unifiedplayer/core/utils/VideoInformationUtils.kt +67 -0
- package/android/src/main/java/com/unifiedplayer/core/utils/VideoOrientationUtils.kt +30 -0
- package/android/src/main/java/com/unifiedplayer/hybrids/videoplayer/HybridVideoPlayer.kt +732 -0
- package/android/src/main/java/com/unifiedplayer/hybrids/videoplayer/HybridVideoPlayerFactory.kt +16 -0
- package/android/src/main/java/com/unifiedplayer/hybrids/videoplayereventemitter/HybridVideoPlayerEventEmitter.kt +180 -0
- package/android/src/main/java/com/unifiedplayer/hybrids/videoplayersource/HybridVideoPlayerSource.kt +67 -0
- package/android/src/main/java/com/unifiedplayer/hybrids/videoplayersource/HybridVideoPlayerSourceFactory.kt +58 -0
- package/android/src/main/java/com/unifiedplayer/hybrids/videoviewviewmanager/HybridVideoViewViewManager.kt +187 -0
- package/android/src/main/java/com/unifiedplayer/hybrids/videoviewviewmanager/HybridVideoViewViewManagerFactory.kt +13 -0
- package/android/src/main/java/com/unifiedplayer/react/VideoPackage.kt +25 -0
- package/android/src/main/java/com/unifiedplayer/react/VideoViewViewManager.kt +78 -0
- package/android/src/main/java/com/unifiedplayer/view/VideoView.kt +565 -0
- package/android/src/main/res/layout/custom_player_control_view.xml +82 -0
- package/android/src/main/res/layout/player_view_surface.xml +13 -0
- package/android/src/main/res/layout/player_view_texture.xml +13 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNCVideoViewManagerDelegate.java +32 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNCVideoViewManagerInterface.java +16 -0
- package/android/src/stubs/dash/androidx/media3/exoplayer/dash/DashMediaSource.kt +35 -0
- package/android/src/stubs/dash/androidx/media3/exoplayer/dash/DashUtil.kt +11 -0
- package/android/src/stubs/dash/androidx/media3/exoplayer/dash/manifest/AdaptationSet.kt +9 -0
- package/android/src/stubs/dash/androidx/media3/exoplayer/dash/manifest/DashManifest.kt +10 -0
- package/android/src/stubs/dash/androidx/media3/exoplayer/dash/manifest/Period.kt +7 -0
- package/android/src/stubs/dash/androidx/media3/exoplayer/dash/manifest/Representation.kt +8 -0
- package/android/src/stubs/hls/androidx/media3/exoplayer/hls/HlsMediaSource.kt +33 -0
- package/ios/RNCVideoViewManager.mm +39 -0
- package/ios/Video-Bridging-Header.h +2 -0
- package/ios/core/HLSAuthProxy.swift +428 -0
- package/ios/core/VideoError.swift +164 -0
- package/ios/core/VideoManager.swift +219 -0
- package/ios/hybrids/VideoPlayer/HybridVideoPlayer.swift +697 -0
- package/ios/hybrids/VideoPlayer/HybridVideoPlayerFactory.swift +15 -0
- package/ios/hybrids/VideoPlayer/VLCPlaybackDelegates.swift +58 -0
- package/ios/hybrids/VideoPlayerEmitter/HybridVideoPlayerEventEmitter.swift +203 -0
- package/ios/hybrids/VideoPlayerSource/HybridVideoPlayerSource.swift +55 -0
- package/ios/hybrids/VideoPlayerSource/HybridVideoPlayerSourceFactory.swift +29 -0
- package/ios/hybrids/VideoViewViewManager/HybridVideoViewViewManager.swift +266 -0
- package/ios/hybrids/VideoViewViewManager/HybridVideoViewViewManagerFactory.swift +14 -0
- package/ios/view/VideoComponentView.swift +196 -0
- package/ios/view/VideoComponentViewObserver.swift +48 -0
- package/lib/module/core/VideoPlayer.js +287 -0
- package/lib/module/core/VideoPlayer.js.map +1 -0
- package/lib/module/core/VideoPlayerEvents.js +84 -0
- package/lib/module/core/VideoPlayerEvents.js.map +1 -0
- package/lib/module/core/hooks/useEvent.js +19 -0
- package/lib/module/core/hooks/useEvent.js.map +1 -0
- package/lib/module/core/hooks/useManagedInstance.js +75 -0
- package/lib/module/core/hooks/useManagedInstance.js.map +1 -0
- package/lib/module/core/hooks/useVideoPlayer.js +57 -0
- package/lib/module/core/hooks/useVideoPlayer.js.map +1 -0
- package/lib/module/core/types/BufferConfig.js +2 -0
- package/lib/module/core/types/BufferConfig.js.map +1 -0
- package/lib/module/core/types/DrmParams.js +2 -0
- package/lib/module/core/types/DrmParams.js.map +1 -0
- package/lib/module/core/types/Events.js +10 -0
- package/lib/module/core/types/Events.js.map +1 -0
- package/lib/module/core/types/IgnoreSilentSwitchMode.js +2 -0
- package/lib/module/core/types/IgnoreSilentSwitchMode.js.map +1 -0
- package/lib/module/core/types/MixAudioMode.js +2 -0
- package/lib/module/core/types/MixAudioMode.js.map +1 -0
- package/lib/module/core/types/ResizeMode.js +2 -0
- package/lib/module/core/types/ResizeMode.js.map +1 -0
- package/lib/module/core/types/TextTrack.js +2 -0
- package/lib/module/core/types/TextTrack.js.map +1 -0
- package/lib/module/core/types/Utils.js +2 -0
- package/lib/module/core/types/Utils.js.map +1 -0
- package/lib/module/core/types/VideoConfig.js +4 -0
- package/lib/module/core/types/VideoConfig.js.map +1 -0
- package/lib/module/core/types/VideoError.js +100 -0
- package/lib/module/core/types/VideoError.js.map +1 -0
- package/lib/module/core/types/VideoInformation.js +4 -0
- package/lib/module/core/types/VideoInformation.js.map +1 -0
- package/lib/module/core/types/VideoOrientation.js +2 -0
- package/lib/module/core/types/VideoOrientation.js.map +1 -0
- package/lib/module/core/types/VideoPlayerBase.js +4 -0
- package/lib/module/core/types/VideoPlayerBase.js.map +1 -0
- package/lib/module/core/types/VideoPlayerSourceBase.js +4 -0
- package/lib/module/core/types/VideoPlayerSourceBase.js.map +1 -0
- package/lib/module/core/types/VideoPlayerStatus.js +2 -0
- package/lib/module/core/types/VideoPlayerStatus.js.map +1 -0
- package/lib/module/core/utils/playerFactory.js +25 -0
- package/lib/module/core/utils/playerFactory.js.map +1 -0
- package/lib/module/core/utils/sourceFactory.js +138 -0
- package/lib/module/core/utils/sourceFactory.js.map +1 -0
- package/lib/module/core/video-view/NativeVideoView.tsx +18 -0
- package/lib/module/core/video-view/VideoView.js +261 -0
- package/lib/module/core/video-view/VideoView.js.map +1 -0
- package/lib/module/expo-plugins/@types.js +2 -0
- package/lib/module/expo-plugins/@types.js.map +1 -0
- package/lib/module/expo-plugins/getPackageInfo.js +23 -0
- package/lib/module/expo-plugins/getPackageInfo.js.map +1 -0
- package/lib/module/expo-plugins/withAndroidExtensions.js +35 -0
- package/lib/module/expo-plugins/withAndroidExtensions.js.map +1 -0
- package/lib/module/expo-plugins/withAndroidNotificationControls.js +29 -0
- package/lib/module/expo-plugins/withAndroidNotificationControls.js.map +1 -0
- package/lib/module/expo-plugins/withAndroidPictureInPicture.js +18 -0
- package/lib/module/expo-plugins/withAndroidPictureInPicture.js.map +1 -0
- package/lib/module/expo-plugins/withBackgroundAudio.js +22 -0
- package/lib/module/expo-plugins/withBackgroundAudio.js.map +1 -0
- package/lib/module/expo-plugins/withReactNativeVideo.js +27 -0
- package/lib/module/expo-plugins/withReactNativeVideo.js.map +1 -0
- package/lib/module/expo-plugins/writeToPodfile.js +53 -0
- package/lib/module/expo-plugins/writeToPodfile.js.map +1 -0
- package/lib/module/index.js +8 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/spec/fabric/VideoViewNativeComponent.ts +17 -0
- package/lib/module/spec/nitro/VideoPlayer.nitro.js +4 -0
- package/lib/module/spec/nitro/VideoPlayer.nitro.js.map +1 -0
- package/lib/module/spec/nitro/VideoPlayerEventEmitter.nitro.js +4 -0
- package/lib/module/spec/nitro/VideoPlayerEventEmitter.nitro.js.map +1 -0
- package/lib/module/spec/nitro/VideoPlayerSource.nitro.js +4 -0
- package/lib/module/spec/nitro/VideoPlayerSource.nitro.js.map +1 -0
- package/lib/module/spec/nitro/VideoViewViewManager.nitro.js +4 -0
- package/lib/module/spec/nitro/VideoViewViewManager.nitro.js.map +1 -0
- package/lib/typescript/drm-plugin/src/PluginManager.nitro.d.ts +10 -0
- package/lib/typescript/drm-plugin/src/PluginManager.nitro.d.ts.map +1 -0
- package/lib/typescript/drm-plugin/src/index.d.ts +4 -0
- package/lib/typescript/drm-plugin/src/index.d.ts.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/core/VideoPlayer.d.ts +88 -0
- package/lib/typescript/src/core/VideoPlayer.d.ts.map +1 -0
- package/lib/typescript/src/core/VideoPlayerEvents.d.ts +22 -0
- package/lib/typescript/src/core/VideoPlayerEvents.d.ts.map +1 -0
- package/lib/typescript/src/core/hooks/useEvent.d.ts +11 -0
- package/lib/typescript/src/core/hooks/useEvent.d.ts.map +1 -0
- package/lib/typescript/src/core/hooks/useManagedInstance.d.ts +19 -0
- package/lib/typescript/src/core/hooks/useManagedInstance.d.ts.map +1 -0
- package/lib/typescript/src/core/hooks/useVideoPlayer.d.ts +16 -0
- package/lib/typescript/src/core/hooks/useVideoPlayer.d.ts.map +1 -0
- package/lib/typescript/src/core/types/BufferConfig.d.ts +97 -0
- package/lib/typescript/src/core/types/BufferConfig.d.ts.map +1 -0
- package/lib/typescript/src/core/types/DrmParams.d.ts +64 -0
- package/lib/typescript/src/core/types/DrmParams.d.ts.map +1 -0
- package/lib/typescript/src/core/types/Events.d.ts +224 -0
- package/lib/typescript/src/core/types/Events.d.ts.map +1 -0
- package/lib/typescript/src/core/types/IgnoreSilentSwitchMode.d.ts +2 -0
- package/lib/typescript/src/core/types/IgnoreSilentSwitchMode.d.ts.map +1 -0
- package/lib/typescript/src/core/types/MixAudioMode.d.ts +2 -0
- package/lib/typescript/src/core/types/MixAudioMode.d.ts.map +1 -0
- package/lib/typescript/src/core/types/ResizeMode.d.ts +10 -0
- package/lib/typescript/src/core/types/ResizeMode.d.ts.map +1 -0
- package/lib/typescript/src/core/types/TextTrack.d.ts +20 -0
- package/lib/typescript/src/core/types/TextTrack.d.ts.map +1 -0
- package/lib/typescript/src/core/types/Utils.d.ts +2 -0
- package/lib/typescript/src/core/types/Utils.d.ts.map +1 -0
- package/lib/typescript/src/core/types/VideoConfig.d.ts +138 -0
- package/lib/typescript/src/core/types/VideoConfig.d.ts.map +1 -0
- package/lib/typescript/src/core/types/VideoError.d.ts +31 -0
- package/lib/typescript/src/core/types/VideoError.d.ts.map +1 -0
- package/lib/typescript/src/core/types/VideoInformation.d.ts +38 -0
- package/lib/typescript/src/core/types/VideoInformation.d.ts.map +1 -0
- package/lib/typescript/src/core/types/VideoOrientation.d.ts +2 -0
- package/lib/typescript/src/core/types/VideoOrientation.d.ts.map +1 -0
- package/lib/typescript/src/core/types/VideoPlayerBase.d.ts +155 -0
- package/lib/typescript/src/core/types/VideoPlayerBase.d.ts.map +1 -0
- package/lib/typescript/src/core/types/VideoPlayerSourceBase.d.ts +17 -0
- package/lib/typescript/src/core/types/VideoPlayerSourceBase.d.ts.map +1 -0
- package/lib/typescript/src/core/types/VideoPlayerStatus.d.ts +9 -0
- package/lib/typescript/src/core/types/VideoPlayerStatus.d.ts.map +1 -0
- package/lib/typescript/src/core/utils/playerFactory.d.ts +12 -0
- package/lib/typescript/src/core/utils/playerFactory.d.ts.map +1 -0
- package/lib/typescript/src/core/utils/sourceFactory.d.ts +29 -0
- package/lib/typescript/src/core/utils/sourceFactory.d.ts.map +1 -0
- package/lib/typescript/src/core/video-view/NativeVideoView.d.ts +2 -0
- package/lib/typescript/src/core/video-view/NativeVideoView.d.ts.map +1 -0
- package/lib/typescript/src/core/video-view/VideoView.d.ts +104 -0
- package/lib/typescript/src/core/video-view/VideoView.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +13 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/spec/fabric/VideoViewNativeComponent.d.ts +13 -0
- package/lib/typescript/src/spec/fabric/VideoViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/spec/nitro/VideoPlayer.nitro.d.ts +55 -0
- package/lib/typescript/src/spec/nitro/VideoPlayer.nitro.d.ts.map +1 -0
- package/lib/typescript/src/spec/nitro/VideoPlayerEventEmitter.nitro.d.ts +150 -0
- package/lib/typescript/src/spec/nitro/VideoPlayerEventEmitter.nitro.d.ts.map +1 -0
- package/lib/typescript/src/spec/nitro/VideoPlayerSource.nitro.d.ts +21 -0
- package/lib/typescript/src/spec/nitro/VideoPlayerSource.nitro.d.ts.map +1 -0
- package/lib/typescript/src/spec/nitro/VideoViewViewManager.nitro.d.ts +75 -0
- package/lib/typescript/src/spec/nitro/VideoViewViewManager.nitro.d.ts.map +1 -0
- package/nitro.json +47 -0
- package/nitrogen/generated/android/UnifiedPlayer+autolinking.cmake +95 -0
- package/nitrogen/generated/android/UnifiedPlayer+autolinking.gradle +27 -0
- package/nitrogen/generated/android/UnifiedPlayerOnLoad.cpp +122 -0
- package/nitrogen/generated/android/UnifiedPlayerOnLoad.hpp +34 -0
- package/nitrogen/generated/android/c++/JBandwidthData.hpp +65 -0
- package/nitrogen/generated/android/c++/JBufferConfig.hpp +101 -0
- package/nitrogen/generated/android/c++/JCustomVideoMetadata.hpp +74 -0
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__string_____OnGetLicensePayload.hpp +126 -0
- package/nitrogen/generated/android/c++/JFunc_void.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_BandwidthData.hpp +78 -0
- package/nitrogen/generated/android/c++/JFunc_void_TimedMetadata.hpp +81 -0
- package/nitrogen/generated/android/c++/JFunc_void_VideoPlayerStatus.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_double.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_onLoadData.hpp +79 -0
- package/nitrogen/generated/android/c++/JFunc_void_onLoadStartData.hpp +82 -0
- package/nitrogen/generated/android/c++/JFunc_void_onPlaybackStateChangeData.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_onProgressData.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_onVolumeChangeData.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__variant_nitro__NullType__TextTrack__.hpp +83 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_std__string_.hpp +95 -0
- package/nitrogen/generated/android/c++/JHybridVideoPlayerEventEmitterSpec.cpp +224 -0
- package/nitrogen/generated/android/c++/JHybridVideoPlayerEventEmitterSpec.hpp +82 -0
- package/nitrogen/generated/android/c++/JHybridVideoPlayerFactorySpec.cpp +60 -0
- package/nitrogen/generated/android/c++/JHybridVideoPlayerFactorySpec.hpp +63 -0
- package/nitrogen/generated/android/c++/JHybridVideoPlayerSourceFactorySpec.cpp +106 -0
- package/nitrogen/generated/android/c++/JHybridVideoPlayerSourceFactorySpec.hpp +64 -0
- package/nitrogen/generated/android/c++/JHybridVideoPlayerSourceSpec.cpp +124 -0
- package/nitrogen/generated/android/c++/JHybridVideoPlayerSourceSpec.hpp +64 -0
- package/nitrogen/generated/android/c++/JHybridVideoPlayerSpec.cpp +300 -0
- package/nitrogen/generated/android/c++/JHybridVideoPlayerSpec.hpp +98 -0
- package/nitrogen/generated/android/c++/JHybridVideoViewViewManagerFactorySpec.cpp +56 -0
- package/nitrogen/generated/android/c++/JHybridVideoViewViewManagerFactorySpec.hpp +63 -0
- package/nitrogen/generated/android/c++/JHybridVideoViewViewManagerSpec.cpp +185 -0
- package/nitrogen/generated/android/c++/JHybridVideoViewViewManagerSpec.hpp +87 -0
- package/nitrogen/generated/android/c++/JIgnoreSilentSwitchMode.hpp +61 -0
- package/nitrogen/generated/android/c++/JListenerSubscription.hpp +67 -0
- package/nitrogen/generated/android/c++/JLivePlaybackParams.hpp +73 -0
- package/nitrogen/generated/android/c++/JMixAudioMode.hpp +64 -0
- package/nitrogen/generated/android/c++/JNativeDrmParams.hpp +111 -0
- package/nitrogen/generated/android/c++/JNativeExternalSubtitle.hpp +71 -0
- package/nitrogen/generated/android/c++/JNativeVideoConfig.hpp +136 -0
- package/nitrogen/generated/android/c++/JOnGetLicensePayload.hpp +69 -0
- package/nitrogen/generated/android/c++/JResizeMode.hpp +64 -0
- package/nitrogen/generated/android/c++/JResolution.hpp +61 -0
- package/nitrogen/generated/android/c++/JSourceType.hpp +58 -0
- package/nitrogen/generated/android/c++/JSubtitleType.hpp +67 -0
- package/nitrogen/generated/android/c++/JSurfaceType.hpp +58 -0
- package/nitrogen/generated/android/c++/JTextTrack.hpp +70 -0
- package/nitrogen/generated/android/c++/JTimedMetadata.hpp +78 -0
- package/nitrogen/generated/android/c++/JTimedMetadataObject.hpp +61 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_HybridVideoPlayerSourceSpec.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_HybridVideoPlayerSourceSpec.hpp +72 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_TextTrack.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_TextTrack.hpp +73 -0
- package/nitrogen/generated/android/c++/JVideoInformation.hpp +86 -0
- package/nitrogen/generated/android/c++/JVideoOrientation.hpp +73 -0
- package/nitrogen/generated/android/c++/JVideoPlayerStatus.hpp +64 -0
- package/nitrogen/generated/android/c++/JonLoadData.hpp +74 -0
- package/nitrogen/generated/android/c++/JonLoadStartData.hpp +65 -0
- package/nitrogen/generated/android/c++/JonPlaybackStateChangeData.hpp +61 -0
- package/nitrogen/generated/android/c++/JonProgressData.hpp +65 -0
- package/nitrogen/generated/android/c++/JonVolumeChangeData.hpp +61 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/BandwidthData.kt +61 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/BufferConfig.kt +101 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/CustomVideoMetadata.kt +71 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__string_____OnGetLicensePayload.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_BandwidthData.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_TimedMetadata.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_VideoPlayerStatus.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_bool.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_double.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_onLoadData.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_onLoadStartData.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_onPlaybackStateChangeData.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_onProgressData.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_onVolumeChangeData.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_std__optional_std__variant_nitro__NullType__TextTrack__.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_std__vector_std__string_.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/HybridVideoPlayerEventEmitterSpec.kt +226 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/HybridVideoPlayerFactorySpec.kt +54 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/HybridVideoPlayerSourceFactorySpec.kt +58 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/HybridVideoPlayerSourceSpec.kt +61 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/HybridVideoPlayerSpec.kt +178 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/HybridVideoViewViewManagerFactorySpec.kt +54 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/HybridVideoViewViewManagerSpec.kt +168 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/IgnoreSilentSwitchMode.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/ListenerSubscription.kt +55 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/LivePlaybackParams.kt +71 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/MixAudioMode.kt +25 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/NativeDrmParams.kt +85 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/NativeExternalSubtitle.kt +66 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/NativeVideoConfig.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/OnGetLicensePayload.kt +66 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/ResizeMode.kt +25 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Resolution.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/SourceType.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/SubtitleType.kt +26 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/SurfaceType.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/TextTrack.kt +66 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/TimedMetadata.kt +51 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/TimedMetadataObject.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/UnifiedPlayerOnLoad.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Variant_NullType_HybridVideoPlayerSourceSpec.kt +62 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Variant_NullType_TextTrack.kt +62 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/VideoInformation.kt +86 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/VideoOrientation.kt +28 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/VideoPlayerStatus.kt +25 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/onLoadData.kt +71 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/onLoadStartData.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/onPlaybackStateChangeData.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/onProgressData.kt +61 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/onVolumeChangeData.kt +56 -0
- package/nitrogen/generated/ios/UnifiedPlayer+autolinking.rb +62 -0
- package/nitrogen/generated/ios/UnifiedPlayer-Swift-Cxx-Bridge.cpp +280 -0
- package/nitrogen/generated/ios/UnifiedPlayer-Swift-Cxx-Bridge.hpp +1106 -0
- package/nitrogen/generated/ios/UnifiedPlayer-Swift-Cxx-Umbrella.hpp +162 -0
- package/nitrogen/generated/ios/UnifiedPlayerAutolinking.mm +49 -0
- package/nitrogen/generated/ios/UnifiedPlayerAutolinking.swift +50 -0
- package/nitrogen/generated/ios/c++/HybridVideoPlayerEventEmitterSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridVideoPlayerEventEmitterSpecSwift.hpp +279 -0
- package/nitrogen/generated/ios/c++/HybridVideoPlayerFactorySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridVideoPlayerFactorySpecSwift.hpp +87 -0
- package/nitrogen/generated/ios/c++/HybridVideoPlayerSourceFactorySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridVideoPlayerSourceFactorySpecSwift.hpp +125 -0
- package/nitrogen/generated/ios/c++/HybridVideoPlayerSourceSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridVideoPlayerSourceSpecSwift.hpp +125 -0
- package/nitrogen/generated/ios/c++/HybridVideoPlayerSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridVideoPlayerSpecSwift.hpp +256 -0
- package/nitrogen/generated/ios/c++/HybridVideoViewViewManagerFactorySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridVideoViewViewManagerFactorySpecSwift.hpp +84 -0
- package/nitrogen/generated/ios/c++/HybridVideoViewViewManagerSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridVideoViewViewManagerSpecSwift.hpp +217 -0
- package/nitrogen/generated/ios/swift/BandwidthData.swift +65 -0
- package/nitrogen/generated/ios/swift/BufferConfig.swift +201 -0
- package/nitrogen/generated/ios/swift/CustomVideoMetadata.swift +114 -0
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__string_____OnGetLicensePayload.swift +61 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_BandwidthData.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_TimedMetadata.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_VideoInformation.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_VideoPlayerStatus.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_double.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_onLoadData.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_onLoadStartData.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_onPlaybackStateChangeData.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_onProgressData.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_onVolumeChangeData.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__optional_std__variant_nitro__NullType__TextTrack__.swift +65 -0
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_std__string__.swift +66 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift +46 -0
- package/nitrogen/generated/ios/swift/HybridVideoPlayerEventEmitterSpec.swift +74 -0
- package/nitrogen/generated/ios/swift/HybridVideoPlayerEventEmitterSpec_cxx.swift +479 -0
- package/nitrogen/generated/ios/swift/HybridVideoPlayerFactorySpec.swift +55 -0
- package/nitrogen/generated/ios/swift/HybridVideoPlayerFactorySpec_cxx.swift +145 -0
- package/nitrogen/generated/ios/swift/HybridVideoPlayerSourceFactorySpec.swift +56 -0
- package/nitrogen/generated/ios/swift/HybridVideoPlayerSourceFactorySpec_cxx.swift +156 -0
- package/nitrogen/generated/ios/swift/HybridVideoPlayerSourceSpec.swift +56 -0
- package/nitrogen/generated/ios/swift/HybridVideoPlayerSourceSpec_cxx.swift +157 -0
- package/nitrogen/generated/ios/swift/HybridVideoPlayerSpec.swift +80 -0
- package/nitrogen/generated/ios/swift/HybridVideoPlayerSpec_cxx.swift +490 -0
- package/nitrogen/generated/ios/swift/HybridVideoViewViewManagerFactorySpec.swift +55 -0
- package/nitrogen/generated/ios/swift/HybridVideoViewViewManagerFactorySpec_cxx.swift +141 -0
- package/nitrogen/generated/ios/swift/HybridVideoViewViewManagerSpec.swift +72 -0
- package/nitrogen/generated/ios/swift/HybridVideoViewViewManagerSpec_cxx.swift +390 -0
- package/nitrogen/generated/ios/swift/IgnoreSilentSwitchMode.swift +44 -0
- package/nitrogen/generated/ios/swift/ListenerSubscription.swift +37 -0
- package/nitrogen/generated/ios/swift/LivePlaybackParams.swift +114 -0
- package/nitrogen/generated/ios/swift/MixAudioMode.swift +48 -0
- package/nitrogen/generated/ios/swift/NativeDrmParams.swift +193 -0
- package/nitrogen/generated/ios/swift/NativeExternalSubtitle.swift +44 -0
- package/nitrogen/generated/ios/swift/NativeVideoConfig.swift +136 -0
- package/nitrogen/generated/ios/swift/OnGetLicensePayload.swift +44 -0
- package/nitrogen/generated/ios/swift/ResizeMode.swift +48 -0
- package/nitrogen/generated/ios/swift/Resolution.swift +34 -0
- package/nitrogen/generated/ios/swift/SourceType.swift +40 -0
- package/nitrogen/generated/ios/swift/SubtitleType.swift +52 -0
- package/nitrogen/generated/ios/swift/SurfaceType.swift +40 -0
- package/nitrogen/generated/ios/swift/TextTrack.swift +57 -0
- package/nitrogen/generated/ios/swift/TimedMetadata.swift +35 -0
- package/nitrogen/generated/ios/swift/TimedMetadataObject.swift +34 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_TextTrack.swift +30 -0
- package/nitrogen/generated/ios/swift/Variant_NullType__any_HybridVideoPlayerSourceSpec_.swift +30 -0
- package/nitrogen/generated/ios/swift/VideoInformation.swift +64 -0
- package/nitrogen/generated/ios/swift/VideoOrientation.swift +60 -0
- package/nitrogen/generated/ios/swift/VideoPlayerStatus.swift +48 -0
- package/nitrogen/generated/ios/swift/onLoadData.swift +49 -0
- package/nitrogen/generated/ios/swift/onLoadStartData.swift +41 -0
- package/nitrogen/generated/ios/swift/onPlaybackStateChangeData.swift +34 -0
- package/nitrogen/generated/ios/swift/onProgressData.swift +39 -0
- package/nitrogen/generated/ios/swift/onVolumeChangeData.swift +34 -0
- package/nitrogen/generated/shared/c++/BandwidthData.hpp +91 -0
- package/nitrogen/generated/shared/c++/BufferConfig.hpp +128 -0
- package/nitrogen/generated/shared/c++/CustomVideoMetadata.hpp +100 -0
- package/nitrogen/generated/shared/c++/HybridVideoPlayerEventEmitterSpec.cpp +40 -0
- package/nitrogen/generated/shared/c++/HybridVideoPlayerEventEmitterSpec.hpp +115 -0
- package/nitrogen/generated/shared/c++/HybridVideoPlayerFactorySpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridVideoPlayerFactorySpec.hpp +67 -0
- package/nitrogen/generated/shared/c++/HybridVideoPlayerSourceFactorySpec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridVideoPlayerSourceFactorySpec.hpp +69 -0
- package/nitrogen/generated/shared/c++/HybridVideoPlayerSourceSpec.cpp +23 -0
- package/nitrogen/generated/shared/c++/HybridVideoPlayerSourceSpec.hpp +69 -0
- package/nitrogen/generated/shared/c++/HybridVideoPlayerSpec.cpp +57 -0
- package/nitrogen/generated/shared/c++/HybridVideoPlayerSpec.hpp +120 -0
- package/nitrogen/generated/shared/c++/HybridVideoViewViewManagerFactorySpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridVideoViewViewManagerFactorySpec.hpp +64 -0
- package/nitrogen/generated/shared/c++/HybridVideoViewViewManagerSpec.cpp +46 -0
- package/nitrogen/generated/shared/c++/HybridVideoViewViewManagerSpec.hpp +99 -0
- package/nitrogen/generated/shared/c++/IgnoreSilentSwitchMode.hpp +80 -0
- package/nitrogen/generated/shared/c++/ListenerSubscription.hpp +83 -0
- package/nitrogen/generated/shared/c++/LivePlaybackParams.hpp +99 -0
- package/nitrogen/generated/shared/c++/MixAudioMode.hpp +84 -0
- package/nitrogen/generated/shared/c++/NativeDrmParams.hpp +113 -0
- package/nitrogen/generated/shared/c++/NativeExternalSubtitle.hpp +97 -0
- package/nitrogen/generated/shared/c++/NativeVideoConfig.hpp +121 -0
- package/nitrogen/generated/shared/c++/OnGetLicensePayload.hpp +95 -0
- package/nitrogen/generated/shared/c++/ResizeMode.hpp +84 -0
- package/nitrogen/generated/shared/c++/Resolution.hpp +87 -0
- package/nitrogen/generated/shared/c++/SourceType.hpp +76 -0
- package/nitrogen/generated/shared/c++/SubtitleType.hpp +88 -0
- package/nitrogen/generated/shared/c++/SurfaceType.hpp +76 -0
- package/nitrogen/generated/shared/c++/TextTrack.hpp +96 -0
- package/nitrogen/generated/shared/c++/TimedMetadata.hpp +85 -0
- package/nitrogen/generated/shared/c++/TimedMetadataObject.hpp +87 -0
- package/nitrogen/generated/shared/c++/VideoInformation.hpp +112 -0
- package/nitrogen/generated/shared/c++/VideoOrientation.hpp +96 -0
- package/nitrogen/generated/shared/c++/VideoPlayerStatus.hpp +84 -0
- package/nitrogen/generated/shared/c++/onLoadData.hpp +100 -0
- package/nitrogen/generated/shared/c++/onLoadStartData.hpp +92 -0
- package/nitrogen/generated/shared/c++/onPlaybackStateChangeData.hpp +87 -0
- package/nitrogen/generated/shared/c++/onProgressData.hpp +91 -0
- package/nitrogen/generated/shared/c++/onVolumeChangeData.hpp +87 -0
- package/package.json +180 -0
- package/react-native.config.js +10 -0
- package/src/core/VideoPlayer.ts +357 -0
- package/src/core/VideoPlayerEvents.ts +146 -0
- package/src/core/hooks/useEvent.ts +24 -0
- package/src/core/hooks/useManagedInstance.ts +96 -0
- package/src/core/hooks/useVideoPlayer.ts +73 -0
- package/src/core/types/BufferConfig.ts +103 -0
- package/src/core/types/DrmParams.ts +65 -0
- package/src/core/types/Events.ts +283 -0
- package/src/core/types/IgnoreSilentSwitchMode.ts +1 -0
- package/src/core/types/MixAudioMode.ts +1 -0
- package/src/core/types/ResizeMode.ts +9 -0
- package/src/core/types/TextTrack.ts +22 -0
- package/src/core/types/Utils.ts +1 -0
- package/src/core/types/VideoConfig.ts +150 -0
- package/src/core/types/VideoError.ts +174 -0
- package/src/core/types/VideoInformation.ts +45 -0
- package/src/core/types/VideoOrientation.ts +8 -0
- package/src/core/types/VideoPlayerBase.ts +181 -0
- package/src/core/types/VideoPlayerSourceBase.ts +19 -0
- package/src/core/types/VideoPlayerStatus.ts +8 -0
- package/src/core/utils/playerFactory.ts +33 -0
- package/src/core/utils/sourceFactory.ts +171 -0
- package/src/core/video-view/NativeVideoView.tsx +18 -0
- package/src/core/video-view/VideoView.tsx +492 -0
- package/src/expo-plugins/@types.ts +37 -0
- package/src/expo-plugins/getPackageInfo.ts +23 -0
- package/src/expo-plugins/withAndroidExtensions.ts +46 -0
- package/src/expo-plugins/withAndroidNotificationControls.ts +43 -0
- package/src/expo-plugins/withAndroidPictureInPicture.ts +31 -0
- package/src/expo-plugins/withBackgroundAudio.ts +26 -0
- package/src/expo-plugins/withReactNativeVideo.ts +32 -0
- package/src/expo-plugins/writeToPodfile.ts +74 -0
- package/src/index.tsx +29 -0
- package/src/spec/fabric/VideoViewNativeComponent.ts +17 -0
- package/src/spec/nitro/VideoPlayer.nitro.ts +62 -0
- package/src/spec/nitro/VideoPlayerEventEmitter.nitro.ts +207 -0
- package/src/spec/nitro/VideoPlayerSource.nitro.ts +18 -0
- package/src/spec/nitro/VideoViewViewManager.nitro.ts +92 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
* A hook that helps to manage the lifecycle of a native instance in a React component.
|
|
8
|
+
* It allows instance to be recreated when dependencies change, but not when the component is hot reloaded.
|
|
9
|
+
*
|
|
10
|
+
* @param config.factory - The factory function that creates the instance.
|
|
11
|
+
* @param config.cleanup - The cleanup function that destroys the instance.
|
|
12
|
+
* @param config.dependenciesEqualFn - The function that compares the dependencies.
|
|
13
|
+
*
|
|
14
|
+
* @param dependencies - The dependencies array.
|
|
15
|
+
* @returns The managed instance.
|
|
16
|
+
*/
|
|
17
|
+
export const useManagedInstance = (config, dependencies) => {
|
|
18
|
+
const {
|
|
19
|
+
factory,
|
|
20
|
+
cleanup,
|
|
21
|
+
dependenciesEqualFn
|
|
22
|
+
} = config;
|
|
23
|
+
const objectRef = useRef(null);
|
|
24
|
+
const isFastRefresh = useRef(false);
|
|
25
|
+
const previousDependencies = useRef(dependencies);
|
|
26
|
+
|
|
27
|
+
// Wee need to force a "re-render" to recalculate the object
|
|
28
|
+
const [released, setReleased] = useState(false);
|
|
29
|
+
if (objectRef.current == null) {
|
|
30
|
+
objectRef.current = factory();
|
|
31
|
+
}
|
|
32
|
+
const object = useMemo(() => {
|
|
33
|
+
let newObject = objectRef.current;
|
|
34
|
+
const dependenciesChanged = previousDependencies.current?.length === dependencies.length && dependencies.every((value, index) => dependenciesEqualFn?.(value, previousDependencies.current[index]) ?? value === previousDependencies.current[index]);
|
|
35
|
+
if (!newObject || !dependenciesChanged || released) {
|
|
36
|
+
// Destroy the old object
|
|
37
|
+
if (objectRef.current) {
|
|
38
|
+
cleanup(objectRef.current);
|
|
39
|
+
objectRef.current = null;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Create a new object
|
|
43
|
+
newObject = factory();
|
|
44
|
+
objectRef.current = newObject;
|
|
45
|
+
setReleased(false);
|
|
46
|
+
|
|
47
|
+
// Update the previous dependencies
|
|
48
|
+
previousDependencies.current = dependencies;
|
|
49
|
+
} else {
|
|
50
|
+
// If useMemo is re-evaluated, but dependencies are the same
|
|
51
|
+
// and object is still the same, we can assume that that
|
|
52
|
+
// the component is being hot reloaded
|
|
53
|
+
isFastRefresh.current = true;
|
|
54
|
+
}
|
|
55
|
+
return newObject;
|
|
56
|
+
|
|
57
|
+
// factory and cleanup are stable, so we don't need to re-evaluate
|
|
58
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
59
|
+
}, [...dependencies, released]);
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
isFastRefresh.current = false;
|
|
62
|
+
return () => {
|
|
63
|
+
if (!isFastRefresh.current && objectRef.current) {
|
|
64
|
+
cleanup(objectRef.current);
|
|
65
|
+
objectRef.current = null;
|
|
66
|
+
setReleased(true);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
// factory and cleanup are stable, so we don't need to re-evaluate
|
|
71
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
72
|
+
}, []);
|
|
73
|
+
return object;
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=useManagedInstance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useMemo","useRef","useState","useManagedInstance","config","dependencies","factory","cleanup","dependenciesEqualFn","objectRef","isFastRefresh","previousDependencies","released","setReleased","current","object","newObject","dependenciesChanged","length","every","value","index"],"sourceRoot":"../../../../src","sources":["core/hooks/useManagedInstance.ts"],"mappings":";;AAAA,SACEA,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QAEH,OAAO;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,kBAAkB,GAAGA,CAChCC,MAIC,EACDC,YAAiB,KACX;EACN,MAAM;IAAEC,OAAO;IAAEC,OAAO;IAAEC;EAAoB,CAAC,GAAGJ,MAAM;EAExD,MAAMK,SAAS,GAAGR,MAAM,CAAW,IAAI,CAAC;EACxC,MAAMS,aAAa,GAAGT,MAAM,CAAC,KAAK,CAAC;EACnC,MAAMU,oBAAoB,GAAGV,MAAM,CAACI,YAAY,CAAC;;EAEjD;EACA,MAAM,CAACO,QAAQ,EAAEC,WAAW,CAAC,GAAGX,QAAQ,CAAC,KAAK,CAAC;EAE/C,IAAIO,SAAS,CAACK,OAAO,IAAI,IAAI,EAAE;IAC7BL,SAAS,CAACK,OAAO,GAAGR,OAAO,CAAC,CAAC;EAC/B;EAEA,MAAMS,MAAM,GAAGf,OAAO,CAAC,MAAM;IAC3B,IAAIgB,SAAS,GAAGP,SAAS,CAACK,OAAO;IAEjC,MAAMG,mBAAmB,GACvBN,oBAAoB,CAACG,OAAO,EAAEI,MAAM,KAAKb,YAAY,CAACa,MAAM,IAC5Db,YAAY,CAACc,KAAK,CAChB,CAACC,KAAK,EAAEC,KAAK,KACXb,mBAAmB,GAAGY,KAAK,EAAET,oBAAoB,CAACG,OAAO,CAACO,KAAK,CAAC,CAAC,IACjED,KAAK,KAAKT,oBAAoB,CAACG,OAAO,CAACO,KAAK,CAChD,CAAC;IAEH,IAAI,CAACL,SAAS,IAAI,CAACC,mBAAmB,IAAIL,QAAQ,EAAE;MAClD;MACA,IAAIH,SAAS,CAACK,OAAO,EAAE;QACrBP,OAAO,CAACE,SAAS,CAACK,OAAO,CAAC;QAC1BL,SAAS,CAACK,OAAO,GAAG,IAAI;MAC1B;;MAEA;MACAE,SAAS,GAAGV,OAAO,CAAC,CAAC;MACrBG,SAAS,CAACK,OAAO,GAAGE,SAAS;MAC7BH,WAAW,CAAC,KAAK,CAAC;;MAElB;MACAF,oBAAoB,CAACG,OAAO,GAAGT,YAAY;IAC7C,CAAC,MAAM;MACL;MACA;MACA;MACAK,aAAa,CAACI,OAAO,GAAG,IAAI;IAC9B;IAEA,OAAOE,SAAS;;IAEhB;IACA;EACF,CAAC,EAAE,CAAC,GAAGX,YAAY,EAAEO,QAAQ,CAAC,CAAC;EAE/Bb,SAAS,CAAC,MAAM;IACdW,aAAa,CAACI,OAAO,GAAG,KAAK;IAE7B,OAAO,MAAM;MACX,IAAI,CAACJ,aAAa,CAACI,OAAO,IAAIL,SAAS,CAACK,OAAO,EAAE;QAC/CP,OAAO,CAACE,SAAS,CAACK,OAAO,CAAC;QAC1BL,SAAS,CAACK,OAAO,GAAG,IAAI;QACxBD,WAAW,CAAC,IAAI,CAAC;MACnB;IACF,CAAC;;IAED;IACA;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOE,MAAM;AACf,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useRef } from 'react';
|
|
4
|
+
import { isVideoPlayerSource } from "../utils/sourceFactory.js";
|
|
5
|
+
import { VideoPlayer } from "../VideoPlayer.js";
|
|
6
|
+
import { useManagedInstance } from "./useManagedInstance.js";
|
|
7
|
+
const sourceEqual = (a, b) => {
|
|
8
|
+
if (isVideoPlayerSource(a) && isVideoPlayerSource(b)) {
|
|
9
|
+
return a.equals(b);
|
|
10
|
+
}
|
|
11
|
+
return JSON.stringify(a) === JSON.stringify(b);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Creates a `VideoPlayer` instance and manages its lifecycle.
|
|
16
|
+
*
|
|
17
|
+
* if `initializeOnCreation` is true (default), the `setup` function will be called when the player is started loading source.
|
|
18
|
+
* if `initializeOnCreation` is false, the `setup` function will be called when the player is created. changes made to player made before initializing will be overwritten when initializing.
|
|
19
|
+
*
|
|
20
|
+
* @param source - The source of the video to play
|
|
21
|
+
* @param setup - A function to setup the player
|
|
22
|
+
* @returns The `VideoPlayer` instance
|
|
23
|
+
*/
|
|
24
|
+
export const useVideoPlayer = (source, setup) => {
|
|
25
|
+
const setupCalled = useRef(false);
|
|
26
|
+
return useManagedInstance({
|
|
27
|
+
factory: () => {
|
|
28
|
+
const player = new VideoPlayer(source);
|
|
29
|
+
if (setup === undefined) {
|
|
30
|
+
return player;
|
|
31
|
+
}
|
|
32
|
+
if (player.source.config.initializeOnCreation !== false) {
|
|
33
|
+
// if source is small video, it can happen that onLoadStart is called before we set event from JS
|
|
34
|
+
// Thats why we adding event listener and calling setup once if player is loading or ready to play
|
|
35
|
+
// That way we ensure that setup is always called
|
|
36
|
+
|
|
37
|
+
const callSetupOnce = () => {
|
|
38
|
+
if (!setupCalled.current) {
|
|
39
|
+
setupCalled.current = true;
|
|
40
|
+
setup?.(player);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
player.addEventListener('onLoadStart', callSetupOnce);
|
|
44
|
+
player.addEventListener('onStatusChange', callSetupOnce);
|
|
45
|
+
} else {
|
|
46
|
+
setup?.(player);
|
|
47
|
+
}
|
|
48
|
+
return player;
|
|
49
|
+
},
|
|
50
|
+
cleanup: player => {
|
|
51
|
+
player.__destroy();
|
|
52
|
+
setupCalled.current = false;
|
|
53
|
+
},
|
|
54
|
+
dependenciesEqualFn: sourceEqual
|
|
55
|
+
}, [JSON.stringify(source)]);
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=useVideoPlayer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useRef","isVideoPlayerSource","VideoPlayer","useManagedInstance","sourceEqual","a","b","equals","JSON","stringify","useVideoPlayer","source","setup","setupCalled","factory","player","undefined","config","initializeOnCreation","callSetupOnce","current","addEventListener","cleanup","__destroy","dependenciesEqualFn"],"sourceRoot":"../../../../src","sources":["core/hooks/useVideoPlayer.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,OAAO;AAI9B,SAASC,mBAAmB,QAAQ,2BAAwB;AAC5D,SAASC,WAAW,QAAQ,mBAAgB;AAC5C,SAASC,kBAAkB,QAAQ,yBAAsB;AAEzD,MAAMC,WAAW,GAAGA,CAClBC,CAAI,EACJC,CAAK,KACF;EACH,IAAIL,mBAAmB,CAACI,CAAC,CAAC,IAAIJ,mBAAmB,CAACK,CAAC,CAAC,EAAE;IACpD,OAAOD,CAAC,CAACE,MAAM,CAACD,CAAC,CAAC;EACpB;EAEA,OAAOE,IAAI,CAACC,SAAS,CAACJ,CAAC,CAAC,KAAKG,IAAI,CAACC,SAAS,CAACH,CAAC,CAAC;AAChD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMI,cAAc,GAAGA,CAC5BC,MAAqE,EACrEC,KAAqC,KAClC;EACH,MAAMC,WAAW,GAAGb,MAAM,CAAC,KAAK,CAAC;EAEjC,OAAOG,kBAAkB,CACvB;IACEW,OAAO,EAAEA,CAAA,KAAM;MACb,MAAMC,MAAM,GAAG,IAAIb,WAAW,CAACS,MAAM,CAAC;MAEtC,IAAIC,KAAK,KAAKI,SAAS,EAAE;QACvB,OAAOD,MAAM;MACf;MAEA,IAAIA,MAAM,CAACJ,MAAM,CAACM,MAAM,CAACC,oBAAoB,KAAK,KAAK,EAAE;QACvD;QACA;QACA;;QAEA,MAAMC,aAAa,GAAGA,CAAA,KAAM;UAC1B,IAAI,CAACN,WAAW,CAACO,OAAO,EAAE;YACxBP,WAAW,CAACO,OAAO,GAAG,IAAI;YAC1BR,KAAK,GAAGG,MAAM,CAAC;UACjB;QACF,CAAC;QAEDA,MAAM,CAACM,gBAAgB,CAAC,aAAa,EAAEF,aAAa,CAAC;QACrDJ,MAAM,CAACM,gBAAgB,CAAC,gBAAgB,EAAEF,aAAa,CAAC;MAC1D,CAAC,MAAM;QACLP,KAAK,GAAGG,MAAM,CAAC;MACjB;MAEA,OAAOA,MAAM;IACf,CAAC;IACDO,OAAO,EAAGP,MAAM,IAAK;MACnBA,MAAM,CAACQ,SAAS,CAAC,CAAC;MAClBV,WAAW,CAACO,OAAO,GAAG,KAAK;IAC7B,CAAC;IACDI,mBAAmB,EAAEpB;EACvB,CAAC,EACD,CAACI,IAAI,CAACC,SAAS,CAACE,MAAM,CAAC,CACzB,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/BufferConfig.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/DrmParams.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function allKeysOf() {
|
|
4
|
+
return (...arr) => {
|
|
5
|
+
return arr;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export const ALL_PLAYER_EVENTS = allKeysOf()('onAudioBecomingNoisy', 'onAudioFocusChange', 'onBandwidthUpdate', 'onBuffer', 'onControlsVisibleChange', 'onEnd', 'onError', 'onExternalPlaybackChange', 'onLoad', 'onLoadStart', 'onPlaybackStateChange', 'onPlaybackRateChange', 'onProgress', 'onReadyToDisplay', 'onSeek', 'onTimedMetadata', 'onTextTrackDataChanged', 'onTrackChange', 'onVolumeChange', 'onStatusChange');
|
|
9
|
+
export const ALL_VIEW_EVENTS = allKeysOf()('onPictureInPictureChange', 'onFullscreenChange', 'willEnterFullscreen', 'willExitFullscreen', 'willEnterPictureInPicture', 'willExitPictureInPicture');
|
|
10
|
+
//# sourceMappingURL=Events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["allKeysOf","arr","ALL_PLAYER_EVENTS","ALL_VIEW_EVENTS"],"sourceRoot":"../../../../src","sources":["core/types/Events.ts"],"mappings":";;AAoPA,SAASA,SAASA,CAAA,EAAM;EACtB,OAAO,CAAiC,GAAGC,GAAM,KAA4B;IAC3E,OAAOA,GAAG;EACZ,CAAC;AACH;AAEA,OAAO,MAAMC,iBAA4C,GACvDF,SAAS,CAAkB,CAAC,CAC1B,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACV,yBAAyB,EACzB,OAAO,EACP,SAAS,EACT,0BAA0B,EAC1B,QAAQ,EACR,aAAa,EACb,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,gBAAgB,EAChB,gBACF,CAAC;AAEH,OAAO,MAAMG,eAA0C,GACrDH,SAAS,CAAkB,CAAC,CAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,2BAA2B,EAC3B,0BACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/IgnoreSilentSwitchMode.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/MixAudioMode.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/ResizeMode.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/TextTrack.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/Utils.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/VideoConfig.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export class VideoError extends Error {
|
|
4
|
+
get code() {
|
|
5
|
+
return this._code;
|
|
6
|
+
}
|
|
7
|
+
get message() {
|
|
8
|
+
return this._message;
|
|
9
|
+
}
|
|
10
|
+
get stack() {
|
|
11
|
+
return this._stack;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
constructor(code, message, stack) {
|
|
18
|
+
super(`[${code}]: ${message}`);
|
|
19
|
+
super.name = `[Unified Player] ${code}`;
|
|
20
|
+
super.message = message;
|
|
21
|
+
super.stack = stack;
|
|
22
|
+
this._code = code;
|
|
23
|
+
this._message = message;
|
|
24
|
+
this._stack = stack;
|
|
25
|
+
}
|
|
26
|
+
toString() {
|
|
27
|
+
let string = `[${this.code}]: ${this.message}`;
|
|
28
|
+
return string;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export class VideoComponentError extends VideoError {}
|
|
32
|
+
export class VideoRuntimeError extends VideoError {}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Check if the message contains code and message
|
|
36
|
+
*/
|
|
37
|
+
const getCodeAndMessage = message => {
|
|
38
|
+
// (...){%@(match[1])::(match[2]);@%}(...)
|
|
39
|
+
const regex = /\{%@([^:]+)::([^@]+)@%\}/;
|
|
40
|
+
const match = message.match(regex);
|
|
41
|
+
if (match && match.length === 3 && typeof match[1] === 'string' && typeof match[2] === 'string') {
|
|
42
|
+
return {
|
|
43
|
+
code: match[1],
|
|
44
|
+
message: match[2]
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Check if the error has a stack property
|
|
52
|
+
* If it does, it will try to parse the error message in the stack trace
|
|
53
|
+
* and replace it with the proper code and message
|
|
54
|
+
*/
|
|
55
|
+
const maybeFixErrorStack = error => {
|
|
56
|
+
if ('stack' in error && typeof error.stack === 'string') {
|
|
57
|
+
const stack = error.stack;
|
|
58
|
+
|
|
59
|
+
// (...){%@(match[1])::(match[2]);@%}(...)
|
|
60
|
+
const regex = /\{%@([^:]+)::([^@]+)@%\}/;
|
|
61
|
+
const match = stack.match(regex);
|
|
62
|
+
if (match && match.length === 3 && typeof match[1] === 'string' && typeof match[2] === 'string') {
|
|
63
|
+
error.stack = error.stack.replace(regex, `[${match[1]}]: ${match[2]}`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
const isVideoError = error => typeof error === 'object' && error != null &&
|
|
68
|
+
// @ts-expect-error error is still unknown
|
|
69
|
+
typeof error.message === 'string' &&
|
|
70
|
+
// @ts-expect-error error is still unknown
|
|
71
|
+
getCodeAndMessage(error.message) != null;
|
|
72
|
+
const hasStack = error => typeof error === 'object' && error != null && 'stack' in error && typeof error.stack === 'string';
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Tries to parse an error coming from native to a typed JS video error.
|
|
76
|
+
* @param {VideoError} nativeError The native error instance. This is a JSON in the legacy native module architecture.
|
|
77
|
+
* @returns A {@linkcode VideoRuntimeError} or {@linkcode VideoComponentError}, or the `nativeError` itself if it's not parsable
|
|
78
|
+
* @method
|
|
79
|
+
*/
|
|
80
|
+
export const tryParseNativeVideoError = nativeError => {
|
|
81
|
+
if (isVideoError(nativeError)) {
|
|
82
|
+
const result = getCodeAndMessage(nativeError.message);
|
|
83
|
+
if (result == null) {
|
|
84
|
+
return nativeError;
|
|
85
|
+
}
|
|
86
|
+
const {
|
|
87
|
+
code,
|
|
88
|
+
message
|
|
89
|
+
} = result;
|
|
90
|
+
maybeFixErrorStack(nativeError);
|
|
91
|
+
if (code.startsWith('view')) {
|
|
92
|
+
return new VideoComponentError(code, message, hasStack(nativeError) ? nativeError.stack : undefined);
|
|
93
|
+
}
|
|
94
|
+
return new VideoRuntimeError(
|
|
95
|
+
// @ts-expect-error the code is string, we narrow it down to TS union.
|
|
96
|
+
code, message, hasStack(nativeError) ? nativeError.stack : undefined);
|
|
97
|
+
}
|
|
98
|
+
return nativeError;
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=VideoError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["VideoError","Error","code","_code","message","_message","stack","_stack","constructor","name","toString","string","VideoComponentError","VideoRuntimeError","getCodeAndMessage","regex","match","length","maybeFixErrorStack","error","replace","isVideoError","hasStack","tryParseNativeVideoError","nativeError","result","startsWith","undefined"],"sourceRoot":"../../../../src","sources":["core/types/VideoError.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/VideoInformation.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/VideoOrientation.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/VideoPlayerBase.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/VideoPlayerSourceBase.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/VideoPlayerStatus.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { NitroModules } from 'react-native-nitro-modules';
|
|
4
|
+
import { createSource, isVideoPlayerSource } from "./sourceFactory.js";
|
|
5
|
+
import { tryParseNativeVideoError } from "../types/VideoError.js";
|
|
6
|
+
const VideoPlayerFactory = NitroModules.createHybridObject('VideoPlayerFactory');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
* Creates a Native VideoPlayer instance.
|
|
11
|
+
*
|
|
12
|
+
* @param source - The source of the video to play
|
|
13
|
+
* @returns The Native VideoPlayer instance
|
|
14
|
+
*/
|
|
15
|
+
export const createPlayer = source => {
|
|
16
|
+
try {
|
|
17
|
+
if (isVideoPlayerSource(source)) {
|
|
18
|
+
return VideoPlayerFactory.createPlayer(source);
|
|
19
|
+
}
|
|
20
|
+
return VideoPlayerFactory.createPlayer(createSource(source));
|
|
21
|
+
} catch (error) {
|
|
22
|
+
throw tryParseNativeVideoError(error);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=playerFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NitroModules","createSource","isVideoPlayerSource","tryParseNativeVideoError","VideoPlayerFactory","createHybridObject","createPlayer","source","error"],"sourceRoot":"../../../../src","sources":["core/utils/playerFactory.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAOzD,SAASC,YAAY,EAAEC,mBAAmB,QAAQ,oBAAiB;AACnE,SAASC,wBAAwB,QAAQ,wBAAqB;AAE9D,MAAMC,kBAAkB,GACtBJ,YAAY,CAACK,kBAAkB,CAAqB,oBAAoB,CAAC;;AAE3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GACvBC,MAAqD,IACrC;EAChB,IAAI;IACF,IAAIL,mBAAmB,CAACK,MAAM,CAAC,EAAE;MAC/B,OAAOH,kBAAkB,CAACE,YAAY,CAACC,MAAM,CAAC;IAChD;IAEA,OAAOH,kBAAkB,CAACE,YAAY,CAACL,YAAY,CAACM,MAAM,CAAC,CAAC;EAC9D,CAAC,CAAC,OAAOC,KAAK,EAAE;IACd,MAAML,wBAAwB,CAACK,KAAK,CAAC;EACvC;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Image, Platform } from 'react-native';
|
|
4
|
+
import { NitroModules } from 'react-native-nitro-modules';
|
|
5
|
+
import { tryParseNativeVideoError, VideoRuntimeError } from "../types/VideoError.js";
|
|
6
|
+
const VideoPlayerSourceFactory = NitroModules.createHybridObject('VideoPlayerSourceFactory');
|
|
7
|
+
export const isVideoPlayerSource = obj => {
|
|
8
|
+
return obj &&
|
|
9
|
+
// obj is not null
|
|
10
|
+
typeof obj === 'object' &&
|
|
11
|
+
// obj is an object
|
|
12
|
+
'name' in obj &&
|
|
13
|
+
// obj has a name property
|
|
14
|
+
obj.name === 'VideoPlayerSource' // obj.name is 'VideoPlayerSource'
|
|
15
|
+
;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Creates a `VideoPlayerSource` instance from a URI (string).
|
|
20
|
+
*
|
|
21
|
+
* @param uri - The URI of the video to play
|
|
22
|
+
* @returns The `VideoPlayerSource` instance
|
|
23
|
+
*/
|
|
24
|
+
export const createSourceFromUri = uri => {
|
|
25
|
+
if (!uri || typeof uri !== 'string') {
|
|
26
|
+
throw new Error('RNV: Invalid source. The URI must be a non-empty string.');
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
return VideoPlayerSourceFactory.fromUri(uri);
|
|
30
|
+
} catch (error) {
|
|
31
|
+
throw tryParseNativeVideoError(error);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Creates a `VideoPlayerSource` instance from a `VideoConfig`.
|
|
37
|
+
*
|
|
38
|
+
* @note The `uri` property is required to be a string.
|
|
39
|
+
*
|
|
40
|
+
* @param config - The `VideoConfig` to create the `VideoPlayerSource` from
|
|
41
|
+
* @returns The `VideoPlayerSource` instance
|
|
42
|
+
*/
|
|
43
|
+
export const createSourceFromVideoConfig = config => {
|
|
44
|
+
if (!config.uri || typeof config.uri !== 'string') {
|
|
45
|
+
throw new VideoRuntimeError('source/invalid-uri', 'Invalid source URI');
|
|
46
|
+
}
|
|
47
|
+
if (config.externalSubtitles) {
|
|
48
|
+
config.externalSubtitles = parseExternalSubtitles(config.externalSubtitles);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Ensure platform-based default for DRM type if DRM is provided without a type
|
|
52
|
+
if (config.drm && config.drm.type === undefined) {
|
|
53
|
+
const defaultDrmType = Platform.select({
|
|
54
|
+
android: 'widevine',
|
|
55
|
+
ios: 'fairplay',
|
|
56
|
+
default: undefined
|
|
57
|
+
});
|
|
58
|
+
if (defaultDrmType) {
|
|
59
|
+
config.drm = {
|
|
60
|
+
...config.drm,
|
|
61
|
+
type: defaultDrmType
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Set default value for initializeOnCreation (true)
|
|
67
|
+
if (config.initializeOnCreation === undefined) {
|
|
68
|
+
config.initializeOnCreation = true;
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
return VideoPlayerSourceFactory.fromVideoConfig(config);
|
|
72
|
+
} catch (error) {
|
|
73
|
+
throw tryParseNativeVideoError(error);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Parses the external subtitles from the `ExternalSubtitle` to the `NativeExternalSubtitle` format.
|
|
79
|
+
*
|
|
80
|
+
* @param externalSubtitles - The external subtitles to parse
|
|
81
|
+
* @returns The parsed external subtitles
|
|
82
|
+
*/
|
|
83
|
+
const parseExternalSubtitles = externalSubtitles => {
|
|
84
|
+
return externalSubtitles.map(subtitle => ({
|
|
85
|
+
uri: subtitle.uri,
|
|
86
|
+
label: subtitle.label,
|
|
87
|
+
type: subtitle.type ?? 'auto',
|
|
88
|
+
language: subtitle.language ?? 'und'
|
|
89
|
+
}));
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Creates a `VideoPlayerSource`
|
|
94
|
+
*
|
|
95
|
+
* @param source - The `VideoSource` to create the `VideoPlayerSource` from
|
|
96
|
+
* @returns The `VideoPlayerSource` instance
|
|
97
|
+
*/
|
|
98
|
+
export const createSource = source => {
|
|
99
|
+
// If source is a VideoPlayerSource, we can directly return it
|
|
100
|
+
if (isVideoPlayerSource(source)) {
|
|
101
|
+
return source;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// If source is a string, we can directly create the player
|
|
105
|
+
if (typeof source === 'string') {
|
|
106
|
+
return createSourceFromUri(source);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// If source is a number (asset), we need to resolve the asset source and create the player
|
|
110
|
+
if (typeof source === 'number') {
|
|
111
|
+
const resolvedSource = Image.resolveAssetSource(source);
|
|
112
|
+
if (!resolvedSource?.uri || typeof resolvedSource.uri !== 'string') {
|
|
113
|
+
throw new VideoRuntimeError('source/invalid-uri', 'Invalid source URI');
|
|
114
|
+
}
|
|
115
|
+
return createSourceFromUri(resolvedSource.uri);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// If source is an object (VideoConfig)
|
|
119
|
+
if (typeof source === 'object' && source !== null && 'uri' in source) {
|
|
120
|
+
if (typeof source.uri === 'string') {
|
|
121
|
+
return createSourceFromVideoConfig(source);
|
|
122
|
+
}
|
|
123
|
+
if (typeof source.uri === 'number') {
|
|
124
|
+
const resolvedSource = Image.resolveAssetSource(source.uri);
|
|
125
|
+
if (!resolvedSource?.uri || typeof resolvedSource.uri !== 'string') {
|
|
126
|
+
throw new VideoRuntimeError('source/invalid-uri', 'Invalid source URI');
|
|
127
|
+
}
|
|
128
|
+
const config = {
|
|
129
|
+
...source,
|
|
130
|
+
uri: resolvedSource.uri
|
|
131
|
+
};
|
|
132
|
+
return createSourceFromVideoConfig(config);
|
|
133
|
+
}
|
|
134
|
+
throw new VideoRuntimeError('source/invalid-uri', 'Invalid source URI');
|
|
135
|
+
}
|
|
136
|
+
throw new VideoRuntimeError('player/invalid-source', 'Invalid source');
|
|
137
|
+
};
|
|
138
|
+
//# sourceMappingURL=sourceFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Image","Platform","NitroModules","tryParseNativeVideoError","VideoRuntimeError","VideoPlayerSourceFactory","createHybridObject","isVideoPlayerSource","obj","name","createSourceFromUri","uri","Error","fromUri","error","createSourceFromVideoConfig","config","externalSubtitles","parseExternalSubtitles","drm","type","undefined","defaultDrmType","select","android","ios","default","initializeOnCreation","fromVideoConfig","map","subtitle","label","language","createSource","source","resolvedSource","resolveAssetSource"],"sourceRoot":"../../../../src","sources":["core/utils/sourceFactory.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Platform, UIManager } from 'react-native';
|
|
2
|
+
|
|
3
|
+
import VideoViewNativeComponent from '../../spec/fabric/VideoViewNativeComponent';
|
|
4
|
+
|
|
5
|
+
const LINKING_ERROR =
|
|
6
|
+
`The package 'react-native-unified-player' doesn't seem to be linked. Make sure: \n\n` +
|
|
7
|
+
Platform.select({ ios: "- You have run 'pod install'\n", default: '' }) +
|
|
8
|
+
'- You rebuilt the app after installing the package\n' +
|
|
9
|
+
'- You are not using Expo Go\n';
|
|
10
|
+
|
|
11
|
+
const ComponentName = 'RNCVideoView';
|
|
12
|
+
|
|
13
|
+
export const NativeVideoView =
|
|
14
|
+
UIManager.getViewManagerConfig(ComponentName) != null
|
|
15
|
+
? VideoViewNativeComponent
|
|
16
|
+
: () => {
|
|
17
|
+
throw new Error(LINKING_ERROR);
|
|
18
|
+
};
|