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.
Files changed (492) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +474 -0
  3. package/UnifiedPlayer.podspec +51 -0
  4. package/android/CMakeLists.txt +29 -0
  5. package/android/build.gradle +249 -0
  6. package/android/fix-prefab.gradle +51 -0
  7. package/android/gradle.properties +15 -0
  8. package/android/src/main/AndroidManifest.xml +10 -0
  9. package/android/src/main/AndroidManifestNew.xml +9 -0
  10. package/android/src/main/cpp/cpp-adapter.cpp +9 -0
  11. package/android/src/main/java/com/unifiedplayer/core/AudioFocusManager.kt +233 -0
  12. package/android/src/main/java/com/unifiedplayer/core/VideoError.kt +105 -0
  13. package/android/src/main/java/com/unifiedplayer/core/VideoManager.kt +292 -0
  14. package/android/src/main/java/com/unifiedplayer/core/extensions/ResizeMode+AspectRatioFrameLayout.kt +20 -0
  15. package/android/src/main/java/com/unifiedplayer/core/extensions/SubtitleType+toString.kt +14 -0
  16. package/android/src/main/java/com/unifiedplayer/core/extensions/VideoPlaybackService+ServiceManagment.kt +59 -0
  17. package/android/src/main/java/com/unifiedplayer/core/fragments/FullscreenVideoFragment.kt +346 -0
  18. package/android/src/main/java/com/unifiedplayer/core/fragments/PictureInPictureHelperFragment.kt +85 -0
  19. package/android/src/main/java/com/unifiedplayer/core/player/DRMManagerSpec.kt +23 -0
  20. package/android/src/main/java/com/unifiedplayer/core/player/DataSourceFactoryUtils.kt +93 -0
  21. package/android/src/main/java/com/unifiedplayer/core/player/MediaItemUtils.kt +141 -0
  22. package/android/src/main/java/com/unifiedplayer/core/player/MediaSourceUtils.kt +134 -0
  23. package/android/src/main/java/com/unifiedplayer/core/player/OnAudioFocusChangedListener.kt +25 -0
  24. package/android/src/main/java/com/unifiedplayer/core/plugins/PluginsRegistry.kt +223 -0
  25. package/android/src/main/java/com/unifiedplayer/core/plugins/ReactNativeVideoPlugin.kt +173 -0
  26. package/android/src/main/java/com/unifiedplayer/core/recivers/AudioBecomingNoisyReceiver.kt +38 -0
  27. package/android/src/main/java/com/unifiedplayer/core/services/playback/CustomMediaNotificationProvider.kt +151 -0
  28. package/android/src/main/java/com/unifiedplayer/core/services/playback/VideoPlaybackCallback.kt +96 -0
  29. package/android/src/main/java/com/unifiedplayer/core/services/playback/VideoPlaybackService.kt +219 -0
  30. package/android/src/main/java/com/unifiedplayer/core/services/playback/VideoPlaybackServiceConnection.kt +59 -0
  31. package/android/src/main/java/com/unifiedplayer/core/utils/PictureInPictureUtils.kt +153 -0
  32. package/android/src/main/java/com/unifiedplayer/core/utils/SmallVideoPlayerOptimizer.kt +157 -0
  33. package/android/src/main/java/com/unifiedplayer/core/utils/SourceLoader.kt +48 -0
  34. package/android/src/main/java/com/unifiedplayer/core/utils/TextTrackUtils.kt +175 -0
  35. package/android/src/main/java/com/unifiedplayer/core/utils/Threading.kt +75 -0
  36. package/android/src/main/java/com/unifiedplayer/core/utils/VideoFileHelper.kt +51 -0
  37. package/android/src/main/java/com/unifiedplayer/core/utils/VideoInformationUtils.kt +67 -0
  38. package/android/src/main/java/com/unifiedplayer/core/utils/VideoOrientationUtils.kt +30 -0
  39. package/android/src/main/java/com/unifiedplayer/hybrids/videoplayer/HybridVideoPlayer.kt +732 -0
  40. package/android/src/main/java/com/unifiedplayer/hybrids/videoplayer/HybridVideoPlayerFactory.kt +16 -0
  41. package/android/src/main/java/com/unifiedplayer/hybrids/videoplayereventemitter/HybridVideoPlayerEventEmitter.kt +180 -0
  42. package/android/src/main/java/com/unifiedplayer/hybrids/videoplayersource/HybridVideoPlayerSource.kt +67 -0
  43. package/android/src/main/java/com/unifiedplayer/hybrids/videoplayersource/HybridVideoPlayerSourceFactory.kt +58 -0
  44. package/android/src/main/java/com/unifiedplayer/hybrids/videoviewviewmanager/HybridVideoViewViewManager.kt +187 -0
  45. package/android/src/main/java/com/unifiedplayer/hybrids/videoviewviewmanager/HybridVideoViewViewManagerFactory.kt +13 -0
  46. package/android/src/main/java/com/unifiedplayer/react/VideoPackage.kt +25 -0
  47. package/android/src/main/java/com/unifiedplayer/react/VideoViewViewManager.kt +78 -0
  48. package/android/src/main/java/com/unifiedplayer/view/VideoView.kt +565 -0
  49. package/android/src/main/res/layout/custom_player_control_view.xml +82 -0
  50. package/android/src/main/res/layout/player_view_surface.xml +13 -0
  51. package/android/src/main/res/layout/player_view_texture.xml +13 -0
  52. package/android/src/paper/java/com/facebook/react/viewmanagers/RNCVideoViewManagerDelegate.java +32 -0
  53. package/android/src/paper/java/com/facebook/react/viewmanagers/RNCVideoViewManagerInterface.java +16 -0
  54. package/android/src/stubs/dash/androidx/media3/exoplayer/dash/DashMediaSource.kt +35 -0
  55. package/android/src/stubs/dash/androidx/media3/exoplayer/dash/DashUtil.kt +11 -0
  56. package/android/src/stubs/dash/androidx/media3/exoplayer/dash/manifest/AdaptationSet.kt +9 -0
  57. package/android/src/stubs/dash/androidx/media3/exoplayer/dash/manifest/DashManifest.kt +10 -0
  58. package/android/src/stubs/dash/androidx/media3/exoplayer/dash/manifest/Period.kt +7 -0
  59. package/android/src/stubs/dash/androidx/media3/exoplayer/dash/manifest/Representation.kt +8 -0
  60. package/android/src/stubs/hls/androidx/media3/exoplayer/hls/HlsMediaSource.kt +33 -0
  61. package/ios/RNCVideoViewManager.mm +39 -0
  62. package/ios/Video-Bridging-Header.h +2 -0
  63. package/ios/core/HLSAuthProxy.swift +428 -0
  64. package/ios/core/VideoError.swift +164 -0
  65. package/ios/core/VideoManager.swift +219 -0
  66. package/ios/hybrids/VideoPlayer/HybridVideoPlayer.swift +697 -0
  67. package/ios/hybrids/VideoPlayer/HybridVideoPlayerFactory.swift +15 -0
  68. package/ios/hybrids/VideoPlayer/VLCPlaybackDelegates.swift +58 -0
  69. package/ios/hybrids/VideoPlayerEmitter/HybridVideoPlayerEventEmitter.swift +203 -0
  70. package/ios/hybrids/VideoPlayerSource/HybridVideoPlayerSource.swift +55 -0
  71. package/ios/hybrids/VideoPlayerSource/HybridVideoPlayerSourceFactory.swift +29 -0
  72. package/ios/hybrids/VideoViewViewManager/HybridVideoViewViewManager.swift +266 -0
  73. package/ios/hybrids/VideoViewViewManager/HybridVideoViewViewManagerFactory.swift +14 -0
  74. package/ios/view/VideoComponentView.swift +196 -0
  75. package/ios/view/VideoComponentViewObserver.swift +48 -0
  76. package/lib/module/core/VideoPlayer.js +287 -0
  77. package/lib/module/core/VideoPlayer.js.map +1 -0
  78. package/lib/module/core/VideoPlayerEvents.js +84 -0
  79. package/lib/module/core/VideoPlayerEvents.js.map +1 -0
  80. package/lib/module/core/hooks/useEvent.js +19 -0
  81. package/lib/module/core/hooks/useEvent.js.map +1 -0
  82. package/lib/module/core/hooks/useManagedInstance.js +75 -0
  83. package/lib/module/core/hooks/useManagedInstance.js.map +1 -0
  84. package/lib/module/core/hooks/useVideoPlayer.js +57 -0
  85. package/lib/module/core/hooks/useVideoPlayer.js.map +1 -0
  86. package/lib/module/core/types/BufferConfig.js +2 -0
  87. package/lib/module/core/types/BufferConfig.js.map +1 -0
  88. package/lib/module/core/types/DrmParams.js +2 -0
  89. package/lib/module/core/types/DrmParams.js.map +1 -0
  90. package/lib/module/core/types/Events.js +10 -0
  91. package/lib/module/core/types/Events.js.map +1 -0
  92. package/lib/module/core/types/IgnoreSilentSwitchMode.js +2 -0
  93. package/lib/module/core/types/IgnoreSilentSwitchMode.js.map +1 -0
  94. package/lib/module/core/types/MixAudioMode.js +2 -0
  95. package/lib/module/core/types/MixAudioMode.js.map +1 -0
  96. package/lib/module/core/types/ResizeMode.js +2 -0
  97. package/lib/module/core/types/ResizeMode.js.map +1 -0
  98. package/lib/module/core/types/TextTrack.js +2 -0
  99. package/lib/module/core/types/TextTrack.js.map +1 -0
  100. package/lib/module/core/types/Utils.js +2 -0
  101. package/lib/module/core/types/Utils.js.map +1 -0
  102. package/lib/module/core/types/VideoConfig.js +4 -0
  103. package/lib/module/core/types/VideoConfig.js.map +1 -0
  104. package/lib/module/core/types/VideoError.js +100 -0
  105. package/lib/module/core/types/VideoError.js.map +1 -0
  106. package/lib/module/core/types/VideoInformation.js +4 -0
  107. package/lib/module/core/types/VideoInformation.js.map +1 -0
  108. package/lib/module/core/types/VideoOrientation.js +2 -0
  109. package/lib/module/core/types/VideoOrientation.js.map +1 -0
  110. package/lib/module/core/types/VideoPlayerBase.js +4 -0
  111. package/lib/module/core/types/VideoPlayerBase.js.map +1 -0
  112. package/lib/module/core/types/VideoPlayerSourceBase.js +4 -0
  113. package/lib/module/core/types/VideoPlayerSourceBase.js.map +1 -0
  114. package/lib/module/core/types/VideoPlayerStatus.js +2 -0
  115. package/lib/module/core/types/VideoPlayerStatus.js.map +1 -0
  116. package/lib/module/core/utils/playerFactory.js +25 -0
  117. package/lib/module/core/utils/playerFactory.js.map +1 -0
  118. package/lib/module/core/utils/sourceFactory.js +138 -0
  119. package/lib/module/core/utils/sourceFactory.js.map +1 -0
  120. package/lib/module/core/video-view/NativeVideoView.tsx +18 -0
  121. package/lib/module/core/video-view/VideoView.js +261 -0
  122. package/lib/module/core/video-view/VideoView.js.map +1 -0
  123. package/lib/module/expo-plugins/@types.js +2 -0
  124. package/lib/module/expo-plugins/@types.js.map +1 -0
  125. package/lib/module/expo-plugins/getPackageInfo.js +23 -0
  126. package/lib/module/expo-plugins/getPackageInfo.js.map +1 -0
  127. package/lib/module/expo-plugins/withAndroidExtensions.js +35 -0
  128. package/lib/module/expo-plugins/withAndroidExtensions.js.map +1 -0
  129. package/lib/module/expo-plugins/withAndroidNotificationControls.js +29 -0
  130. package/lib/module/expo-plugins/withAndroidNotificationControls.js.map +1 -0
  131. package/lib/module/expo-plugins/withAndroidPictureInPicture.js +18 -0
  132. package/lib/module/expo-plugins/withAndroidPictureInPicture.js.map +1 -0
  133. package/lib/module/expo-plugins/withBackgroundAudio.js +22 -0
  134. package/lib/module/expo-plugins/withBackgroundAudio.js.map +1 -0
  135. package/lib/module/expo-plugins/withReactNativeVideo.js +27 -0
  136. package/lib/module/expo-plugins/withReactNativeVideo.js.map +1 -0
  137. package/lib/module/expo-plugins/writeToPodfile.js +53 -0
  138. package/lib/module/expo-plugins/writeToPodfile.js.map +1 -0
  139. package/lib/module/index.js +8 -0
  140. package/lib/module/index.js.map +1 -0
  141. package/lib/module/package.json +1 -0
  142. package/lib/module/spec/fabric/VideoViewNativeComponent.ts +17 -0
  143. package/lib/module/spec/nitro/VideoPlayer.nitro.js +4 -0
  144. package/lib/module/spec/nitro/VideoPlayer.nitro.js.map +1 -0
  145. package/lib/module/spec/nitro/VideoPlayerEventEmitter.nitro.js +4 -0
  146. package/lib/module/spec/nitro/VideoPlayerEventEmitter.nitro.js.map +1 -0
  147. package/lib/module/spec/nitro/VideoPlayerSource.nitro.js +4 -0
  148. package/lib/module/spec/nitro/VideoPlayerSource.nitro.js.map +1 -0
  149. package/lib/module/spec/nitro/VideoViewViewManager.nitro.js +4 -0
  150. package/lib/module/spec/nitro/VideoViewViewManager.nitro.js.map +1 -0
  151. package/lib/typescript/drm-plugin/src/PluginManager.nitro.d.ts +10 -0
  152. package/lib/typescript/drm-plugin/src/PluginManager.nitro.d.ts.map +1 -0
  153. package/lib/typescript/drm-plugin/src/index.d.ts +4 -0
  154. package/lib/typescript/drm-plugin/src/index.d.ts.map +1 -0
  155. package/lib/typescript/package.json +1 -0
  156. package/lib/typescript/src/core/VideoPlayer.d.ts +88 -0
  157. package/lib/typescript/src/core/VideoPlayer.d.ts.map +1 -0
  158. package/lib/typescript/src/core/VideoPlayerEvents.d.ts +22 -0
  159. package/lib/typescript/src/core/VideoPlayerEvents.d.ts.map +1 -0
  160. package/lib/typescript/src/core/hooks/useEvent.d.ts +11 -0
  161. package/lib/typescript/src/core/hooks/useEvent.d.ts.map +1 -0
  162. package/lib/typescript/src/core/hooks/useManagedInstance.d.ts +19 -0
  163. package/lib/typescript/src/core/hooks/useManagedInstance.d.ts.map +1 -0
  164. package/lib/typescript/src/core/hooks/useVideoPlayer.d.ts +16 -0
  165. package/lib/typescript/src/core/hooks/useVideoPlayer.d.ts.map +1 -0
  166. package/lib/typescript/src/core/types/BufferConfig.d.ts +97 -0
  167. package/lib/typescript/src/core/types/BufferConfig.d.ts.map +1 -0
  168. package/lib/typescript/src/core/types/DrmParams.d.ts +64 -0
  169. package/lib/typescript/src/core/types/DrmParams.d.ts.map +1 -0
  170. package/lib/typescript/src/core/types/Events.d.ts +224 -0
  171. package/lib/typescript/src/core/types/Events.d.ts.map +1 -0
  172. package/lib/typescript/src/core/types/IgnoreSilentSwitchMode.d.ts +2 -0
  173. package/lib/typescript/src/core/types/IgnoreSilentSwitchMode.d.ts.map +1 -0
  174. package/lib/typescript/src/core/types/MixAudioMode.d.ts +2 -0
  175. package/lib/typescript/src/core/types/MixAudioMode.d.ts.map +1 -0
  176. package/lib/typescript/src/core/types/ResizeMode.d.ts +10 -0
  177. package/lib/typescript/src/core/types/ResizeMode.d.ts.map +1 -0
  178. package/lib/typescript/src/core/types/TextTrack.d.ts +20 -0
  179. package/lib/typescript/src/core/types/TextTrack.d.ts.map +1 -0
  180. package/lib/typescript/src/core/types/Utils.d.ts +2 -0
  181. package/lib/typescript/src/core/types/Utils.d.ts.map +1 -0
  182. package/lib/typescript/src/core/types/VideoConfig.d.ts +138 -0
  183. package/lib/typescript/src/core/types/VideoConfig.d.ts.map +1 -0
  184. package/lib/typescript/src/core/types/VideoError.d.ts +31 -0
  185. package/lib/typescript/src/core/types/VideoError.d.ts.map +1 -0
  186. package/lib/typescript/src/core/types/VideoInformation.d.ts +38 -0
  187. package/lib/typescript/src/core/types/VideoInformation.d.ts.map +1 -0
  188. package/lib/typescript/src/core/types/VideoOrientation.d.ts +2 -0
  189. package/lib/typescript/src/core/types/VideoOrientation.d.ts.map +1 -0
  190. package/lib/typescript/src/core/types/VideoPlayerBase.d.ts +155 -0
  191. package/lib/typescript/src/core/types/VideoPlayerBase.d.ts.map +1 -0
  192. package/lib/typescript/src/core/types/VideoPlayerSourceBase.d.ts +17 -0
  193. package/lib/typescript/src/core/types/VideoPlayerSourceBase.d.ts.map +1 -0
  194. package/lib/typescript/src/core/types/VideoPlayerStatus.d.ts +9 -0
  195. package/lib/typescript/src/core/types/VideoPlayerStatus.d.ts.map +1 -0
  196. package/lib/typescript/src/core/utils/playerFactory.d.ts +12 -0
  197. package/lib/typescript/src/core/utils/playerFactory.d.ts.map +1 -0
  198. package/lib/typescript/src/core/utils/sourceFactory.d.ts +29 -0
  199. package/lib/typescript/src/core/utils/sourceFactory.d.ts.map +1 -0
  200. package/lib/typescript/src/core/video-view/NativeVideoView.d.ts +2 -0
  201. package/lib/typescript/src/core/video-view/NativeVideoView.d.ts.map +1 -0
  202. package/lib/typescript/src/core/video-view/VideoView.d.ts +104 -0
  203. package/lib/typescript/src/core/video-view/VideoView.d.ts.map +1 -0
  204. package/lib/typescript/src/index.d.ts +13 -0
  205. package/lib/typescript/src/index.d.ts.map +1 -0
  206. package/lib/typescript/src/spec/fabric/VideoViewNativeComponent.d.ts +13 -0
  207. package/lib/typescript/src/spec/fabric/VideoViewNativeComponent.d.ts.map +1 -0
  208. package/lib/typescript/src/spec/nitro/VideoPlayer.nitro.d.ts +55 -0
  209. package/lib/typescript/src/spec/nitro/VideoPlayer.nitro.d.ts.map +1 -0
  210. package/lib/typescript/src/spec/nitro/VideoPlayerEventEmitter.nitro.d.ts +150 -0
  211. package/lib/typescript/src/spec/nitro/VideoPlayerEventEmitter.nitro.d.ts.map +1 -0
  212. package/lib/typescript/src/spec/nitro/VideoPlayerSource.nitro.d.ts +21 -0
  213. package/lib/typescript/src/spec/nitro/VideoPlayerSource.nitro.d.ts.map +1 -0
  214. package/lib/typescript/src/spec/nitro/VideoViewViewManager.nitro.d.ts +75 -0
  215. package/lib/typescript/src/spec/nitro/VideoViewViewManager.nitro.d.ts.map +1 -0
  216. package/nitro.json +47 -0
  217. package/nitrogen/generated/android/UnifiedPlayer+autolinking.cmake +95 -0
  218. package/nitrogen/generated/android/UnifiedPlayer+autolinking.gradle +27 -0
  219. package/nitrogen/generated/android/UnifiedPlayerOnLoad.cpp +122 -0
  220. package/nitrogen/generated/android/UnifiedPlayerOnLoad.hpp +34 -0
  221. package/nitrogen/generated/android/c++/JBandwidthData.hpp +65 -0
  222. package/nitrogen/generated/android/c++/JBufferConfig.hpp +101 -0
  223. package/nitrogen/generated/android/c++/JCustomVideoMetadata.hpp +74 -0
  224. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__string_____OnGetLicensePayload.hpp +126 -0
  225. package/nitrogen/generated/android/c++/JFunc_void.hpp +75 -0
  226. package/nitrogen/generated/android/c++/JFunc_void_BandwidthData.hpp +78 -0
  227. package/nitrogen/generated/android/c++/JFunc_void_TimedMetadata.hpp +81 -0
  228. package/nitrogen/generated/android/c++/JFunc_void_VideoPlayerStatus.hpp +77 -0
  229. package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +75 -0
  230. package/nitrogen/generated/android/c++/JFunc_void_double.hpp +75 -0
  231. package/nitrogen/generated/android/c++/JFunc_void_onLoadData.hpp +79 -0
  232. package/nitrogen/generated/android/c++/JFunc_void_onLoadStartData.hpp +82 -0
  233. package/nitrogen/generated/android/c++/JFunc_void_onPlaybackStateChangeData.hpp +77 -0
  234. package/nitrogen/generated/android/c++/JFunc_void_onProgressData.hpp +77 -0
  235. package/nitrogen/generated/android/c++/JFunc_void_onVolumeChangeData.hpp +77 -0
  236. package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__variant_nitro__NullType__TextTrack__.hpp +83 -0
  237. package/nitrogen/generated/android/c++/JFunc_void_std__vector_std__string_.hpp +95 -0
  238. package/nitrogen/generated/android/c++/JHybridVideoPlayerEventEmitterSpec.cpp +224 -0
  239. package/nitrogen/generated/android/c++/JHybridVideoPlayerEventEmitterSpec.hpp +82 -0
  240. package/nitrogen/generated/android/c++/JHybridVideoPlayerFactorySpec.cpp +60 -0
  241. package/nitrogen/generated/android/c++/JHybridVideoPlayerFactorySpec.hpp +63 -0
  242. package/nitrogen/generated/android/c++/JHybridVideoPlayerSourceFactorySpec.cpp +106 -0
  243. package/nitrogen/generated/android/c++/JHybridVideoPlayerSourceFactorySpec.hpp +64 -0
  244. package/nitrogen/generated/android/c++/JHybridVideoPlayerSourceSpec.cpp +124 -0
  245. package/nitrogen/generated/android/c++/JHybridVideoPlayerSourceSpec.hpp +64 -0
  246. package/nitrogen/generated/android/c++/JHybridVideoPlayerSpec.cpp +300 -0
  247. package/nitrogen/generated/android/c++/JHybridVideoPlayerSpec.hpp +98 -0
  248. package/nitrogen/generated/android/c++/JHybridVideoViewViewManagerFactorySpec.cpp +56 -0
  249. package/nitrogen/generated/android/c++/JHybridVideoViewViewManagerFactorySpec.hpp +63 -0
  250. package/nitrogen/generated/android/c++/JHybridVideoViewViewManagerSpec.cpp +185 -0
  251. package/nitrogen/generated/android/c++/JHybridVideoViewViewManagerSpec.hpp +87 -0
  252. package/nitrogen/generated/android/c++/JIgnoreSilentSwitchMode.hpp +61 -0
  253. package/nitrogen/generated/android/c++/JListenerSubscription.hpp +67 -0
  254. package/nitrogen/generated/android/c++/JLivePlaybackParams.hpp +73 -0
  255. package/nitrogen/generated/android/c++/JMixAudioMode.hpp +64 -0
  256. package/nitrogen/generated/android/c++/JNativeDrmParams.hpp +111 -0
  257. package/nitrogen/generated/android/c++/JNativeExternalSubtitle.hpp +71 -0
  258. package/nitrogen/generated/android/c++/JNativeVideoConfig.hpp +136 -0
  259. package/nitrogen/generated/android/c++/JOnGetLicensePayload.hpp +69 -0
  260. package/nitrogen/generated/android/c++/JResizeMode.hpp +64 -0
  261. package/nitrogen/generated/android/c++/JResolution.hpp +61 -0
  262. package/nitrogen/generated/android/c++/JSourceType.hpp +58 -0
  263. package/nitrogen/generated/android/c++/JSubtitleType.hpp +67 -0
  264. package/nitrogen/generated/android/c++/JSurfaceType.hpp +58 -0
  265. package/nitrogen/generated/android/c++/JTextTrack.hpp +70 -0
  266. package/nitrogen/generated/android/c++/JTimedMetadata.hpp +78 -0
  267. package/nitrogen/generated/android/c++/JTimedMetadataObject.hpp +61 -0
  268. package/nitrogen/generated/android/c++/JVariant_NullType_HybridVideoPlayerSourceSpec.cpp +26 -0
  269. package/nitrogen/generated/android/c++/JVariant_NullType_HybridVideoPlayerSourceSpec.hpp +72 -0
  270. package/nitrogen/generated/android/c++/JVariant_NullType_TextTrack.cpp +26 -0
  271. package/nitrogen/generated/android/c++/JVariant_NullType_TextTrack.hpp +73 -0
  272. package/nitrogen/generated/android/c++/JVideoInformation.hpp +86 -0
  273. package/nitrogen/generated/android/c++/JVideoOrientation.hpp +73 -0
  274. package/nitrogen/generated/android/c++/JVideoPlayerStatus.hpp +64 -0
  275. package/nitrogen/generated/android/c++/JonLoadData.hpp +74 -0
  276. package/nitrogen/generated/android/c++/JonLoadStartData.hpp +65 -0
  277. package/nitrogen/generated/android/c++/JonPlaybackStateChangeData.hpp +61 -0
  278. package/nitrogen/generated/android/c++/JonProgressData.hpp +65 -0
  279. package/nitrogen/generated/android/c++/JonVolumeChangeData.hpp +61 -0
  280. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/BandwidthData.kt +61 -0
  281. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/BufferConfig.kt +101 -0
  282. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/CustomVideoMetadata.kt +71 -0
  283. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__string_____OnGetLicensePayload.kt +80 -0
  284. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void.kt +80 -0
  285. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_BandwidthData.kt +80 -0
  286. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_TimedMetadata.kt +80 -0
  287. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_VideoPlayerStatus.kt +80 -0
  288. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_bool.kt +80 -0
  289. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_double.kt +80 -0
  290. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_onLoadData.kt +80 -0
  291. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_onLoadStartData.kt +80 -0
  292. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_onPlaybackStateChangeData.kt +80 -0
  293. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_onProgressData.kt +80 -0
  294. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_onVolumeChangeData.kt +80 -0
  295. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_std__optional_std__variant_nitro__NullType__TextTrack__.kt +80 -0
  296. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Func_void_std__vector_std__string_.kt +80 -0
  297. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/HybridVideoPlayerEventEmitterSpec.kt +226 -0
  298. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/HybridVideoPlayerFactorySpec.kt +54 -0
  299. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/HybridVideoPlayerSourceFactorySpec.kt +58 -0
  300. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/HybridVideoPlayerSourceSpec.kt +61 -0
  301. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/HybridVideoPlayerSpec.kt +178 -0
  302. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/HybridVideoViewViewManagerFactorySpec.kt +54 -0
  303. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/HybridVideoViewViewManagerSpec.kt +168 -0
  304. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/IgnoreSilentSwitchMode.kt +24 -0
  305. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/ListenerSubscription.kt +55 -0
  306. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/LivePlaybackParams.kt +71 -0
  307. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/MixAudioMode.kt +25 -0
  308. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/NativeDrmParams.kt +85 -0
  309. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/NativeExternalSubtitle.kt +66 -0
  310. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/NativeVideoConfig.kt +81 -0
  311. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/OnGetLicensePayload.kt +66 -0
  312. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/ResizeMode.kt +25 -0
  313. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Resolution.kt +56 -0
  314. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/SourceType.kt +23 -0
  315. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/SubtitleType.kt +26 -0
  316. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/SurfaceType.kt +23 -0
  317. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/TextTrack.kt +66 -0
  318. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/TimedMetadata.kt +51 -0
  319. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/TimedMetadataObject.kt +56 -0
  320. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/UnifiedPlayerOnLoad.kt +35 -0
  321. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Variant_NullType_HybridVideoPlayerSourceSpec.kt +62 -0
  322. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/Variant_NullType_TextTrack.kt +62 -0
  323. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/VideoInformation.kt +86 -0
  324. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/VideoOrientation.kt +28 -0
  325. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/VideoPlayerStatus.kt +25 -0
  326. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/onLoadData.kt +71 -0
  327. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/onLoadStartData.kt +56 -0
  328. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/onPlaybackStateChangeData.kt +56 -0
  329. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/onProgressData.kt +61 -0
  330. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unifiedplayer/onVolumeChangeData.kt +56 -0
  331. package/nitrogen/generated/ios/UnifiedPlayer+autolinking.rb +62 -0
  332. package/nitrogen/generated/ios/UnifiedPlayer-Swift-Cxx-Bridge.cpp +280 -0
  333. package/nitrogen/generated/ios/UnifiedPlayer-Swift-Cxx-Bridge.hpp +1106 -0
  334. package/nitrogen/generated/ios/UnifiedPlayer-Swift-Cxx-Umbrella.hpp +162 -0
  335. package/nitrogen/generated/ios/UnifiedPlayerAutolinking.mm +49 -0
  336. package/nitrogen/generated/ios/UnifiedPlayerAutolinking.swift +50 -0
  337. package/nitrogen/generated/ios/c++/HybridVideoPlayerEventEmitterSpecSwift.cpp +11 -0
  338. package/nitrogen/generated/ios/c++/HybridVideoPlayerEventEmitterSpecSwift.hpp +279 -0
  339. package/nitrogen/generated/ios/c++/HybridVideoPlayerFactorySpecSwift.cpp +11 -0
  340. package/nitrogen/generated/ios/c++/HybridVideoPlayerFactorySpecSwift.hpp +87 -0
  341. package/nitrogen/generated/ios/c++/HybridVideoPlayerSourceFactorySpecSwift.cpp +11 -0
  342. package/nitrogen/generated/ios/c++/HybridVideoPlayerSourceFactorySpecSwift.hpp +125 -0
  343. package/nitrogen/generated/ios/c++/HybridVideoPlayerSourceSpecSwift.cpp +11 -0
  344. package/nitrogen/generated/ios/c++/HybridVideoPlayerSourceSpecSwift.hpp +125 -0
  345. package/nitrogen/generated/ios/c++/HybridVideoPlayerSpecSwift.cpp +11 -0
  346. package/nitrogen/generated/ios/c++/HybridVideoPlayerSpecSwift.hpp +256 -0
  347. package/nitrogen/generated/ios/c++/HybridVideoViewViewManagerFactorySpecSwift.cpp +11 -0
  348. package/nitrogen/generated/ios/c++/HybridVideoViewViewManagerFactorySpecSwift.hpp +84 -0
  349. package/nitrogen/generated/ios/c++/HybridVideoViewViewManagerSpecSwift.cpp +11 -0
  350. package/nitrogen/generated/ios/c++/HybridVideoViewViewManagerSpecSwift.hpp +217 -0
  351. package/nitrogen/generated/ios/swift/BandwidthData.swift +65 -0
  352. package/nitrogen/generated/ios/swift/BufferConfig.swift +201 -0
  353. package/nitrogen/generated/ios/swift/CustomVideoMetadata.swift +114 -0
  354. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__string_____OnGetLicensePayload.swift +61 -0
  355. package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
  356. package/nitrogen/generated/ios/swift/Func_void_BandwidthData.swift +46 -0
  357. package/nitrogen/generated/ios/swift/Func_void_TimedMetadata.swift +46 -0
  358. package/nitrogen/generated/ios/swift/Func_void_VideoInformation.swift +46 -0
  359. package/nitrogen/generated/ios/swift/Func_void_VideoPlayerStatus.swift +46 -0
  360. package/nitrogen/generated/ios/swift/Func_void_bool.swift +46 -0
  361. package/nitrogen/generated/ios/swift/Func_void_double.swift +46 -0
  362. package/nitrogen/generated/ios/swift/Func_void_onLoadData.swift +46 -0
  363. package/nitrogen/generated/ios/swift/Func_void_onLoadStartData.swift +46 -0
  364. package/nitrogen/generated/ios/swift/Func_void_onPlaybackStateChangeData.swift +46 -0
  365. package/nitrogen/generated/ios/swift/Func_void_onProgressData.swift +46 -0
  366. package/nitrogen/generated/ios/swift/Func_void_onVolumeChangeData.swift +46 -0
  367. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
  368. package/nitrogen/generated/ios/swift/Func_void_std__optional_std__variant_nitro__NullType__TextTrack__.swift +65 -0
  369. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_std__string__.swift +66 -0
  370. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +46 -0
  371. package/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift +46 -0
  372. package/nitrogen/generated/ios/swift/HybridVideoPlayerEventEmitterSpec.swift +74 -0
  373. package/nitrogen/generated/ios/swift/HybridVideoPlayerEventEmitterSpec_cxx.swift +479 -0
  374. package/nitrogen/generated/ios/swift/HybridVideoPlayerFactorySpec.swift +55 -0
  375. package/nitrogen/generated/ios/swift/HybridVideoPlayerFactorySpec_cxx.swift +145 -0
  376. package/nitrogen/generated/ios/swift/HybridVideoPlayerSourceFactorySpec.swift +56 -0
  377. package/nitrogen/generated/ios/swift/HybridVideoPlayerSourceFactorySpec_cxx.swift +156 -0
  378. package/nitrogen/generated/ios/swift/HybridVideoPlayerSourceSpec.swift +56 -0
  379. package/nitrogen/generated/ios/swift/HybridVideoPlayerSourceSpec_cxx.swift +157 -0
  380. package/nitrogen/generated/ios/swift/HybridVideoPlayerSpec.swift +80 -0
  381. package/nitrogen/generated/ios/swift/HybridVideoPlayerSpec_cxx.swift +490 -0
  382. package/nitrogen/generated/ios/swift/HybridVideoViewViewManagerFactorySpec.swift +55 -0
  383. package/nitrogen/generated/ios/swift/HybridVideoViewViewManagerFactorySpec_cxx.swift +141 -0
  384. package/nitrogen/generated/ios/swift/HybridVideoViewViewManagerSpec.swift +72 -0
  385. package/nitrogen/generated/ios/swift/HybridVideoViewViewManagerSpec_cxx.swift +390 -0
  386. package/nitrogen/generated/ios/swift/IgnoreSilentSwitchMode.swift +44 -0
  387. package/nitrogen/generated/ios/swift/ListenerSubscription.swift +37 -0
  388. package/nitrogen/generated/ios/swift/LivePlaybackParams.swift +114 -0
  389. package/nitrogen/generated/ios/swift/MixAudioMode.swift +48 -0
  390. package/nitrogen/generated/ios/swift/NativeDrmParams.swift +193 -0
  391. package/nitrogen/generated/ios/swift/NativeExternalSubtitle.swift +44 -0
  392. package/nitrogen/generated/ios/swift/NativeVideoConfig.swift +136 -0
  393. package/nitrogen/generated/ios/swift/OnGetLicensePayload.swift +44 -0
  394. package/nitrogen/generated/ios/swift/ResizeMode.swift +48 -0
  395. package/nitrogen/generated/ios/swift/Resolution.swift +34 -0
  396. package/nitrogen/generated/ios/swift/SourceType.swift +40 -0
  397. package/nitrogen/generated/ios/swift/SubtitleType.swift +52 -0
  398. package/nitrogen/generated/ios/swift/SurfaceType.swift +40 -0
  399. package/nitrogen/generated/ios/swift/TextTrack.swift +57 -0
  400. package/nitrogen/generated/ios/swift/TimedMetadata.swift +35 -0
  401. package/nitrogen/generated/ios/swift/TimedMetadataObject.swift +34 -0
  402. package/nitrogen/generated/ios/swift/Variant_NullType_TextTrack.swift +30 -0
  403. package/nitrogen/generated/ios/swift/Variant_NullType__any_HybridVideoPlayerSourceSpec_.swift +30 -0
  404. package/nitrogen/generated/ios/swift/VideoInformation.swift +64 -0
  405. package/nitrogen/generated/ios/swift/VideoOrientation.swift +60 -0
  406. package/nitrogen/generated/ios/swift/VideoPlayerStatus.swift +48 -0
  407. package/nitrogen/generated/ios/swift/onLoadData.swift +49 -0
  408. package/nitrogen/generated/ios/swift/onLoadStartData.swift +41 -0
  409. package/nitrogen/generated/ios/swift/onPlaybackStateChangeData.swift +34 -0
  410. package/nitrogen/generated/ios/swift/onProgressData.swift +39 -0
  411. package/nitrogen/generated/ios/swift/onVolumeChangeData.swift +34 -0
  412. package/nitrogen/generated/shared/c++/BandwidthData.hpp +91 -0
  413. package/nitrogen/generated/shared/c++/BufferConfig.hpp +128 -0
  414. package/nitrogen/generated/shared/c++/CustomVideoMetadata.hpp +100 -0
  415. package/nitrogen/generated/shared/c++/HybridVideoPlayerEventEmitterSpec.cpp +40 -0
  416. package/nitrogen/generated/shared/c++/HybridVideoPlayerEventEmitterSpec.hpp +115 -0
  417. package/nitrogen/generated/shared/c++/HybridVideoPlayerFactorySpec.cpp +21 -0
  418. package/nitrogen/generated/shared/c++/HybridVideoPlayerFactorySpec.hpp +67 -0
  419. package/nitrogen/generated/shared/c++/HybridVideoPlayerSourceFactorySpec.cpp +22 -0
  420. package/nitrogen/generated/shared/c++/HybridVideoPlayerSourceFactorySpec.hpp +69 -0
  421. package/nitrogen/generated/shared/c++/HybridVideoPlayerSourceSpec.cpp +23 -0
  422. package/nitrogen/generated/shared/c++/HybridVideoPlayerSourceSpec.hpp +69 -0
  423. package/nitrogen/generated/shared/c++/HybridVideoPlayerSpec.cpp +57 -0
  424. package/nitrogen/generated/shared/c++/HybridVideoPlayerSpec.hpp +120 -0
  425. package/nitrogen/generated/shared/c++/HybridVideoViewViewManagerFactorySpec.cpp +21 -0
  426. package/nitrogen/generated/shared/c++/HybridVideoViewViewManagerFactorySpec.hpp +64 -0
  427. package/nitrogen/generated/shared/c++/HybridVideoViewViewManagerSpec.cpp +46 -0
  428. package/nitrogen/generated/shared/c++/HybridVideoViewViewManagerSpec.hpp +99 -0
  429. package/nitrogen/generated/shared/c++/IgnoreSilentSwitchMode.hpp +80 -0
  430. package/nitrogen/generated/shared/c++/ListenerSubscription.hpp +83 -0
  431. package/nitrogen/generated/shared/c++/LivePlaybackParams.hpp +99 -0
  432. package/nitrogen/generated/shared/c++/MixAudioMode.hpp +84 -0
  433. package/nitrogen/generated/shared/c++/NativeDrmParams.hpp +113 -0
  434. package/nitrogen/generated/shared/c++/NativeExternalSubtitle.hpp +97 -0
  435. package/nitrogen/generated/shared/c++/NativeVideoConfig.hpp +121 -0
  436. package/nitrogen/generated/shared/c++/OnGetLicensePayload.hpp +95 -0
  437. package/nitrogen/generated/shared/c++/ResizeMode.hpp +84 -0
  438. package/nitrogen/generated/shared/c++/Resolution.hpp +87 -0
  439. package/nitrogen/generated/shared/c++/SourceType.hpp +76 -0
  440. package/nitrogen/generated/shared/c++/SubtitleType.hpp +88 -0
  441. package/nitrogen/generated/shared/c++/SurfaceType.hpp +76 -0
  442. package/nitrogen/generated/shared/c++/TextTrack.hpp +96 -0
  443. package/nitrogen/generated/shared/c++/TimedMetadata.hpp +85 -0
  444. package/nitrogen/generated/shared/c++/TimedMetadataObject.hpp +87 -0
  445. package/nitrogen/generated/shared/c++/VideoInformation.hpp +112 -0
  446. package/nitrogen/generated/shared/c++/VideoOrientation.hpp +96 -0
  447. package/nitrogen/generated/shared/c++/VideoPlayerStatus.hpp +84 -0
  448. package/nitrogen/generated/shared/c++/onLoadData.hpp +100 -0
  449. package/nitrogen/generated/shared/c++/onLoadStartData.hpp +92 -0
  450. package/nitrogen/generated/shared/c++/onPlaybackStateChangeData.hpp +87 -0
  451. package/nitrogen/generated/shared/c++/onProgressData.hpp +91 -0
  452. package/nitrogen/generated/shared/c++/onVolumeChangeData.hpp +87 -0
  453. package/package.json +180 -0
  454. package/react-native.config.js +10 -0
  455. package/src/core/VideoPlayer.ts +357 -0
  456. package/src/core/VideoPlayerEvents.ts +146 -0
  457. package/src/core/hooks/useEvent.ts +24 -0
  458. package/src/core/hooks/useManagedInstance.ts +96 -0
  459. package/src/core/hooks/useVideoPlayer.ts +73 -0
  460. package/src/core/types/BufferConfig.ts +103 -0
  461. package/src/core/types/DrmParams.ts +65 -0
  462. package/src/core/types/Events.ts +283 -0
  463. package/src/core/types/IgnoreSilentSwitchMode.ts +1 -0
  464. package/src/core/types/MixAudioMode.ts +1 -0
  465. package/src/core/types/ResizeMode.ts +9 -0
  466. package/src/core/types/TextTrack.ts +22 -0
  467. package/src/core/types/Utils.ts +1 -0
  468. package/src/core/types/VideoConfig.ts +150 -0
  469. package/src/core/types/VideoError.ts +174 -0
  470. package/src/core/types/VideoInformation.ts +45 -0
  471. package/src/core/types/VideoOrientation.ts +8 -0
  472. package/src/core/types/VideoPlayerBase.ts +181 -0
  473. package/src/core/types/VideoPlayerSourceBase.ts +19 -0
  474. package/src/core/types/VideoPlayerStatus.ts +8 -0
  475. package/src/core/utils/playerFactory.ts +33 -0
  476. package/src/core/utils/sourceFactory.ts +171 -0
  477. package/src/core/video-view/NativeVideoView.tsx +18 -0
  478. package/src/core/video-view/VideoView.tsx +492 -0
  479. package/src/expo-plugins/@types.ts +37 -0
  480. package/src/expo-plugins/getPackageInfo.ts +23 -0
  481. package/src/expo-plugins/withAndroidExtensions.ts +46 -0
  482. package/src/expo-plugins/withAndroidNotificationControls.ts +43 -0
  483. package/src/expo-plugins/withAndroidPictureInPicture.ts +31 -0
  484. package/src/expo-plugins/withBackgroundAudio.ts +26 -0
  485. package/src/expo-plugins/withReactNativeVideo.ts +32 -0
  486. package/src/expo-plugins/writeToPodfile.ts +74 -0
  487. package/src/index.tsx +29 -0
  488. package/src/spec/fabric/VideoViewNativeComponent.ts +17 -0
  489. package/src/spec/nitro/VideoPlayer.nitro.ts +62 -0
  490. package/src/spec/nitro/VideoPlayerEventEmitter.nitro.ts +207 -0
  491. package/src/spec/nitro/VideoPlayerSource.nitro.ts +18 -0
  492. 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,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=BufferConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/BufferConfig.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=DrmParams.js.map
@@ -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,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=IgnoreSilentSwitchMode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/IgnoreSilentSwitchMode.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=MixAudioMode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/MixAudioMode.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=ResizeMode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/ResizeMode.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=TextTrack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/TextTrack.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=Utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/Utils.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=VideoConfig.js.map
@@ -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,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=VideoInformation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/VideoInformation.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=VideoOrientation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/VideoOrientation.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=VideoPlayerBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/VideoPlayerBase.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=VideoPlayerSourceBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/types/VideoPlayerSourceBase.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=VideoPlayerStatus.js.map
@@ -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
+ };