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,32 @@
1
+ import { type ConfigPlugin, createRunOncePlugin } from '@expo/config-plugins';
2
+ import type { ConfigProps } from './@types';
3
+ import { getPackageInfo } from './getPackageInfo';
4
+ import { withAndroidExtensions } from './withAndroidExtensions';
5
+ import { withAndroidPictureInPicture } from './withAndroidPictureInPicture';
6
+ import { withBackgroundAudio } from './withBackgroundAudio';
7
+ import { withAndroidNotificationControls } from './withAndroidNotificationControls';
8
+
9
+ const withRNVideo: ConfigPlugin<ConfigProps> = (config, props = {}) => {
10
+ if (props.enableAndroidPictureInPicture) {
11
+ config = withAndroidPictureInPicture(
12
+ config,
13
+ props.enableAndroidPictureInPicture
14
+ );
15
+ }
16
+
17
+ if (props.androidExtensions != null) {
18
+ config = withAndroidExtensions(config, props.androidExtensions);
19
+ }
20
+
21
+ if (props.enableBackgroundAudio) {
22
+ config = withBackgroundAudio(config, props.enableBackgroundAudio);
23
+ }
24
+
25
+ config = withAndroidNotificationControls(config);
26
+
27
+ return config;
28
+ };
29
+
30
+ const { name, version } = getPackageInfo();
31
+
32
+ export default createRunOncePlugin(withRNVideo, name, version);
@@ -0,0 +1,74 @@
1
+ import { mergeContents } from '@expo/config-plugins/build/utils/generateCode';
2
+ import fs from 'fs';
3
+ import path from 'path';
4
+
5
+ export const writeToPodfile = (
6
+ projectRoot: string,
7
+ key: string,
8
+ value: string,
9
+ testApp: boolean = false
10
+ ) => {
11
+ const podfilePath = path.join(projectRoot, 'ios', 'Podfile');
12
+ const podfileContent = fs.readFileSync(podfilePath, 'utf8');
13
+
14
+ if (podfileContent.includes(`$${key} =`)) {
15
+ console.warn(
16
+ `RNV - Podfile already contains a definition for "$${key}". Skipping...`
17
+ );
18
+ return;
19
+ }
20
+
21
+ if (testApp) {
22
+ mergeTestAppPodfile(podfileContent, podfilePath, key, value);
23
+ } else {
24
+ mergeExpoPodfile(podfileContent, podfilePath, key, value);
25
+ }
26
+ };
27
+
28
+ const mergeTestAppPodfile = (
29
+ podfileContent: string,
30
+ podfilePath: string,
31
+ key: string,
32
+ value: string
33
+ ) => {
34
+ // We will try to inject the variable definition above the `use_test_app!` call in the Podfile.
35
+ const newPodfileContent = mergeContents({
36
+ tag: `rn-video-set-${key.toLowerCase()}`,
37
+ src: podfileContent,
38
+ newSrc: `$${key} = ${value}`,
39
+ anchor: /use_test_app!/,
40
+ offset: -1, // Insert the key-value pair just above the `use_test_app!` call.
41
+ comment: '#',
42
+ });
43
+
44
+ // Write to Podfile only if the merge was successful
45
+ if (newPodfileContent.didMerge) {
46
+ fs.writeFileSync(podfilePath, newPodfileContent.contents);
47
+ } else {
48
+ console.warn(
49
+ `RNV - Failed to write "$${key} = ${value}" to Test App Podfile`
50
+ );
51
+ }
52
+ };
53
+
54
+ const mergeExpoPodfile = (
55
+ podfileContent: string,
56
+ podfilePath: string,
57
+ key: string,
58
+ value: string
59
+ ) => {
60
+ const newPodfileContent = mergeContents({
61
+ tag: `rn-video-set-${key.toLowerCase()}`,
62
+ src: podfileContent,
63
+ newSrc: `$${key} = ${value}`,
64
+ anchor: /platform :ios/,
65
+ offset: 0,
66
+ comment: '#',
67
+ });
68
+
69
+ if (newPodfileContent.didMerge) {
70
+ fs.writeFileSync(podfilePath, newPodfileContent.contents);
71
+ } else {
72
+ console.warn(`RNV - Failed to write "$${key} = ${value}" to Podfile`);
73
+ }
74
+ };
package/src/index.tsx ADDED
@@ -0,0 +1,29 @@
1
+ export { useEvent } from './core/hooks/useEvent';
2
+ export { useVideoPlayer } from './core/hooks/useVideoPlayer';
3
+ export * from './core/types/Events';
4
+ export type { IgnoreSilentSwitchMode } from './core/types/IgnoreSilentSwitchMode';
5
+ export type { MixAudioMode } from './core/types/MixAudioMode';
6
+ export type { ResizeMode } from './core/types/ResizeMode';
7
+ export type { TextTrack } from './core/types/TextTrack';
8
+ export type { VideoConfig, VideoSource } from './core/types/VideoConfig';
9
+ export {
10
+ type LibraryError,
11
+ type PlayerError,
12
+ type SourceError,
13
+ type UnknownError,
14
+ type VideoComponentError,
15
+ type VideoError,
16
+ type VideoErrorCode,
17
+ type VideoRuntimeError,
18
+ type VideoViewError,
19
+ } from './core/types/VideoError';
20
+ export type { VideoPlayerStatus } from './core/types/VideoPlayerStatus';
21
+ export {
22
+ default as VideoView,
23
+ default as UnifiedPlayerView,
24
+ type VideoViewProps,
25
+ type VideoViewProps as UnifiedPlayerViewProps,
26
+ type VideoViewRef,
27
+ type VideoViewRef as UnifiedPlayerViewRef,
28
+ } from './core/video-view/VideoView';
29
+ export { VideoPlayer } from './core/VideoPlayer';
@@ -0,0 +1,17 @@
1
+ import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
2
+ import type { ViewProps } from 'react-native';
3
+ import type { Int32 } from 'react-native/Libraries/Types/CodegenTypes';
4
+ import type { DirectEventHandler } from 'react-native/Libraries/Types/CodegenTypes';
5
+
6
+ type OnNitroIdChangeEvent = Readonly<{
7
+ nitroId: Int32;
8
+ }>;
9
+
10
+ export interface NativeProps extends ViewProps {
11
+ nitroId: Int32;
12
+ onNitroIdChange?: DirectEventHandler<OnNitroIdChangeEvent>;
13
+ }
14
+
15
+ export default codegenNativeComponent<NativeProps>('RNCVideoView', {
16
+ paperComponentName: 'RNCVideoView',
17
+ });
@@ -0,0 +1,62 @@
1
+ import type { HybridObject } from 'react-native-nitro-modules';
2
+ import type { TextTrack } from '../../core/types/TextTrack';
3
+ import type { VideoPlayerBase } from '../../core/types/VideoPlayerBase';
4
+ import type { VideoPlayerEventEmitter } from './VideoPlayerEventEmitter.nitro';
5
+ import type { VideoPlayerSource } from './VideoPlayerSource.nitro';
6
+
7
+ export interface VideoPlayer
8
+ extends HybridObject<{ ios: 'swift'; android: 'kotlin' }>,
9
+ VideoPlayerBase {
10
+ // Override with (hybrid) VideoPlayerSource
11
+ readonly source: VideoPlayerSource;
12
+
13
+ // Holder of the video player events.
14
+ readonly eventEmitter: VideoPlayerEventEmitter;
15
+
16
+ /**
17
+ * Show playback controls in the notifications area
18
+ *
19
+ * @note on Android, this can be overridden by {@linkcode VideoPlayer.playInBackground}, as Android requires
20
+ * a foreground service to show notifications while the app is in the background.
21
+ *
22
+ * @default false
23
+ */
24
+ showNotificationControls: boolean;
25
+
26
+ /**
27
+ * Replace the current source of the player.
28
+ * @param source - The new source of the video.
29
+ * @note If you want to clear the source, you can pass null. It has the same effect as {@link release}.
30
+ * see {@link VideoPlayerSourceBase}
31
+ */
32
+ replaceSourceAsync(source: VideoPlayerSource | null): Promise<void>;
33
+
34
+ /**
35
+ * Get all available text tracks for the current source.
36
+ * @returns Array of available text tracks
37
+ */
38
+ getAvailableTextTracks(): TextTrack[];
39
+
40
+ /**
41
+ * Select a text track to display.
42
+ * @param textTrack - Text track to select, or null to unselect current track
43
+ */
44
+ selectTextTrack(textTrack: TextTrack | null): void;
45
+
46
+ /**
47
+ * Releases the player's native resources and releases native state.
48
+ */
49
+ release(): void;
50
+
51
+ /**
52
+ * Capture the current video frame as a base64 encoded image.
53
+ * @returns A promise that resolves to the base64 encoded image string (PNG format).
54
+ * @note The image will be captured at the current playback position.
55
+ */
56
+ captureFrame(): Promise<string>;
57
+ }
58
+
59
+ export interface VideoPlayerFactory
60
+ extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> {
61
+ createPlayer(source: VideoPlayerSource): VideoPlayer;
62
+ }
@@ -0,0 +1,207 @@
1
+ import type { HybridObject } from 'react-native-nitro-modules';
2
+ import type {
3
+ BandwidthData,
4
+ onLoadData,
5
+ onLoadStartData,
6
+ onPlaybackStateChangeData,
7
+ onProgressData,
8
+ onVolumeChangeData,
9
+ TimedMetadata,
10
+ } from '../../core/types/Events';
11
+ import type { TextTrack } from '../../core/types/TextTrack';
12
+ import type { VideoPlayerStatus } from '../../core/types/VideoPlayerStatus';
13
+
14
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
15
+ import type { VideoPlayerEvents } from '../../core/types/Events';
16
+
17
+ export interface ListenerSubscription {
18
+ remove(): void;
19
+ }
20
+
21
+ export interface VideoPlayerEventEmitter
22
+ extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> {
23
+ /**
24
+ * Adds a listener for the `onAudioBecomingNoisy` event.
25
+ * @see {@link VideoPlayerEvents.onAudioBecomingNoisy}
26
+ * @param listener - The listener to add.
27
+ * @returns A subscription object that can be used to remove the listener.
28
+ */
29
+ addOnAudioBecomingNoisyListener(listener: () => void): ListenerSubscription;
30
+
31
+ /**
32
+ * Adds a listener for the `onAudioFocusChange` event.
33
+ * @see {@link VideoPlayerEvents.onAudioFocusChange}
34
+ * @param listener - The listener to add.
35
+ * @returns A subscription object that can be used to remove the listener.
36
+ */
37
+ addOnAudioFocusChangeListener(
38
+ listener: (hasAudioFocus: boolean) => void
39
+ ): ListenerSubscription;
40
+
41
+ /**
42
+ * Adds a listener for the `onBandwidthUpdate` event.
43
+ * @see {@link VideoPlayerEvents.onBandwidthUpdate}
44
+ * @param listener - The listener to add.
45
+ * @returns A subscription object that can be used to remove the listener.
46
+ */
47
+ addOnBandwidthUpdateListener(
48
+ listener: (data: BandwidthData) => void
49
+ ): ListenerSubscription;
50
+
51
+ /**
52
+ * Adds a listener for the `onBuffer` event.
53
+ * @see {@link VideoPlayerEvents.onBuffer}
54
+ * @param listener - The listener to add.
55
+ * @returns A subscription object that can be used to remove the listener.
56
+ */
57
+ addOnBufferListener(
58
+ listener: (buffering: boolean) => void
59
+ ): ListenerSubscription;
60
+
61
+ /**
62
+ * Adds a listener for the `onControlsVisibleChange` event.
63
+ * @see {@link VideoPlayerEvents.onControlsVisibleChange}
64
+ * @param listener - The listener to add.
65
+ * @returns A subscription object that can be used to remove the listener.
66
+ */
67
+ addOnControlsVisibleChangeListener(
68
+ listener: (visible: boolean) => void
69
+ ): ListenerSubscription;
70
+
71
+ /**
72
+ * Adds a listener for the `onEnd` event.
73
+ * @see {@link VideoPlayerEvents.onEnd}
74
+ * @param listener - The listener to add.
75
+ * @returns A subscription object that can be used to remove the listener.
76
+ */
77
+ addOnEndListener(listener: () => void): ListenerSubscription;
78
+
79
+ /**
80
+ * Adds a listener for the `onExternalPlaybackChange` event.
81
+ * @see {@link VideoPlayerEvents.onExternalPlaybackChange}
82
+ * @param listener - The listener to add.
83
+ * @returns A subscription object that can be used to remove the listener.
84
+ */
85
+ addOnExternalPlaybackChangeListener(
86
+ listener: (externalPlaybackActive: boolean) => void
87
+ ): ListenerSubscription;
88
+
89
+ /**
90
+ * Adds a listener for the `onLoad` event.
91
+ * @see {@link VideoPlayerEvents.onLoad}
92
+ * @param listener - The listener to add.
93
+ * @returns A subscription object that can be used to remove the listener.
94
+ */
95
+ addOnLoadListener(listener: (data: onLoadData) => void): ListenerSubscription;
96
+
97
+ /**
98
+ * Adds a listener for the `onLoadStart` event.
99
+ * @see {@link VideoPlayerEvents.onLoadStart}
100
+ * @param listener - The listener to add.
101
+ * @returns A subscription object that can be used to remove the listener.
102
+ */
103
+ addOnLoadStartListener(
104
+ listener: (data: onLoadStartData) => void
105
+ ): ListenerSubscription;
106
+
107
+ /**
108
+ * Adds a listener for the `onPlaybackStateChange` event.
109
+ * @see {@link VideoPlayerEvents.onPlaybackStateChange}
110
+ * @param listener - The listener to add.
111
+ * @returns A subscription object that can be used to remove the listener.
112
+ */
113
+ addOnPlaybackStateChangeListener(
114
+ listener: (data: onPlaybackStateChangeData) => void
115
+ ): ListenerSubscription;
116
+
117
+ /**
118
+ * Adds a listener for the `onPlaybackRateChange` event.
119
+ * @see {@link VideoPlayerEvents.onPlaybackRateChange}
120
+ * @param listener - The listener to add.
121
+ * @returns A subscription object that can be used to remove the listener.
122
+ */
123
+ addOnPlaybackRateChangeListener(
124
+ listener: (rate: number) => void
125
+ ): ListenerSubscription;
126
+
127
+ /**
128
+ * Adds a listener for the `onProgress` event.
129
+ * @see {@link VideoPlayerEvents.onProgress}
130
+ * @param listener - The listener to add.
131
+ * @returns A subscription object that can be used to remove the listener.
132
+ */
133
+ addOnProgressListener(
134
+ listener: (data: onProgressData) => void
135
+ ): ListenerSubscription;
136
+
137
+ /**
138
+ * Adds a listener for the `onReadyToDisplay` event.
139
+ * @see {@link VideoPlayerEvents.onReadyToDisplay}
140
+ * @param listener - The listener to add.
141
+ * @returns A subscription object that can be used to remove the listener.
142
+ */
143
+ addOnReadyToDisplayListener(listener: () => void): ListenerSubscription;
144
+
145
+ /**
146
+ * Adds a listener for the `onSeek` event.
147
+ * @see {@link VideoPlayerEvents.onSeek}
148
+ * @param listener - The listener to add.
149
+ * @returns A subscription object that can be used to remove the listener.
150
+ */
151
+ addOnSeekListener(listener: (position: number) => void): ListenerSubscription;
152
+
153
+ /**
154
+ * Adds a listener for the `onStatusChange` event.
155
+ * @see {@link VideoPlayerEvents.onStatusChange}
156
+ * @param listener - The listener to add.
157
+ * @returns A subscription object that can be used to remove the listener.
158
+ */
159
+ addOnStatusChangeListener(
160
+ listener: (status: VideoPlayerStatus) => void
161
+ ): ListenerSubscription;
162
+
163
+ /**
164
+ * Adds a listener for the `onTimedMetadata` event.
165
+ * @see {@link VideoPlayerEvents.onTimedMetadata}
166
+ * @param listener - The listener to add.
167
+ * @returns A subscription object that can be used to remove the listener.
168
+ */
169
+ addOnTimedMetadataListener(
170
+ listener: (data: TimedMetadata) => void
171
+ ): ListenerSubscription;
172
+
173
+ /**
174
+ * Adds a listener for the `onTextTrackDataChanged` event.
175
+ * @see {@link VideoPlayerEvents.onTextTrackDataChanged}
176
+ * @param listener - The listener to add.
177
+ * @returns A subscription object that can be used to remove the listener.
178
+ */
179
+ addOnTextTrackDataChangedListener(
180
+ listener: (data: string[]) => void
181
+ ): ListenerSubscription;
182
+
183
+ /**
184
+ * Adds a listener for the `onTrackChange` event.
185
+ * @see {@link VideoPlayerEvents.onTrackChange}
186
+ * @param listener - The listener to add.
187
+ * @returns A subscription object that can be used to remove the listener.
188
+ */
189
+ addOnTrackChangeListener(
190
+ listener: (track: TextTrack | null) => void
191
+ ): ListenerSubscription;
192
+
193
+ /**
194
+ * Adds a listener for the `onVolumeChange` event.
195
+ * @see {@link VideoPlayerEvents.onVolumeChange}
196
+ * @param listener - The listener to add.
197
+ * @returns A subscription object that can be used to remove the listener.
198
+ */
199
+ addOnVolumeChangeListener(
200
+ listener: (data: onVolumeChangeData) => void
201
+ ): ListenerSubscription;
202
+
203
+ /**
204
+ * Clears all listeners from the event emitter.
205
+ */
206
+ clearAllListeners(): void;
207
+ }
@@ -0,0 +1,18 @@
1
+ import type { HybridObject } from 'react-native-nitro-modules';
2
+ import type { NativeVideoConfig } from '../../core/types/VideoConfig';
3
+ import type { VideoPlayerSourceBase } from '../../core/types/VideoPlayerSourceBase';
4
+
5
+ /**
6
+ * A source for a {@link VideoPlayer}.
7
+ * Source cannot be changed after it is created. If you need to update the source, you need to create a new one.
8
+ * It provides functions to get information about the asset.
9
+ */
10
+ export interface VideoPlayerSource
11
+ extends HybridObject<{ ios: 'swift'; android: 'kotlin' }>,
12
+ VideoPlayerSourceBase {}
13
+
14
+ export interface VideoPlayerSourceFactory
15
+ extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> {
16
+ fromUri(uri: string): VideoPlayerSource;
17
+ fromVideoConfig(config: NativeVideoConfig): VideoPlayerSource;
18
+ }
@@ -0,0 +1,92 @@
1
+ import type { HybridObject } from 'react-native-nitro-modules';
2
+ import type { ResizeMode } from '../../core/types/ResizeMode';
3
+ import type { VideoPlayer } from './VideoPlayer.nitro';
4
+ import type { ListenerSubscription } from './VideoPlayerEventEmitter.nitro';
5
+
6
+ export type SurfaceType = 'surface' | 'texture';
7
+
8
+ // @internal
9
+ export interface VideoViewViewManager
10
+ extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> {
11
+ player?: VideoPlayer;
12
+ controls: boolean;
13
+ pictureInPicture: boolean;
14
+ autoEnterPictureInPicture: boolean;
15
+ resizeMode: ResizeMode;
16
+ enterFullscreen(): void;
17
+ exitFullscreen(): void;
18
+ enterPictureInPicture(): void;
19
+ exitPictureInPicture(): void;
20
+ canEnterPictureInPicture(): boolean;
21
+ keepScreenAwake: boolean;
22
+ surfaceType: SurfaceType;
23
+
24
+ // Event listeners
25
+
26
+ /**
27
+ * Adds a listener for the `onPictureInPictureChange` event.
28
+ * @see {@link VideoViewEvents.onPictureInPictureChange}
29
+ * @param listener - The listener to add.
30
+ * @returns A subscription object that can be used to remove the listener.
31
+ */
32
+ addOnPictureInPictureChangeListener(
33
+ listener: (isInPictureInPicture: boolean) => void
34
+ ): ListenerSubscription;
35
+
36
+ /**
37
+ * Adds a listener for the `onFullscreenChange` event.
38
+ * @see {@link VideoViewEvents.onFullscreenChange}
39
+ * @param listener - The listener to add.
40
+ * @returns A subscription object that can be used to remove the listener.
41
+ */
42
+ addOnFullscreenChangeListener(
43
+ listener: (fullscreen: boolean) => void
44
+ ): ListenerSubscription;
45
+
46
+ /**
47
+ * Adds a listener for the `willEnterFullscreen` event.
48
+ * @see {@link VideoViewEvents.willEnterFullscreen}
49
+ * @param listener - The listener to add.
50
+ * @returns A subscription object that can be used to remove the listener.
51
+ */
52
+ addWillEnterFullscreenListener(listener: () => void): ListenerSubscription;
53
+
54
+ /**
55
+ * Adds a listener for the `willExitFullscreen` event.
56
+ * @see {@link VideoViewEvents.willExitFullscreen}
57
+ * @param listener - The listener to add.
58
+ * @returns A subscription object that can be used to remove the listener.
59
+ */
60
+ addWillExitFullscreenListener(listener: () => void): ListenerSubscription;
61
+
62
+ /**
63
+ * Adds a listener for the `willEnterPictureInPicture` event.
64
+ * @see {@link VideoViewEvents.willEnterPictureInPicture}
65
+ * @param listener - The listener to add.
66
+ * @returns A subscription object that can be used to remove the listener.
67
+ */
68
+ addWillEnterPictureInPictureListener(
69
+ listener: () => void
70
+ ): ListenerSubscription;
71
+
72
+ /**
73
+ * Adds a listener for the `willExitPictureInPicture` event.
74
+ * @see {@link VideoViewEvents.willExitPictureInPicture}
75
+ * @param listener - The listener to add.
76
+ * @returns A subscription object that can be used to remove the listener.
77
+ */
78
+ addWillExitPictureInPictureListener(
79
+ listener: () => void
80
+ ): ListenerSubscription;
81
+
82
+ /**
83
+ * Clears all listeners from the event emitter.
84
+ */
85
+ clearAllListeners(): void;
86
+ }
87
+
88
+ // @internal
89
+ export interface VideoViewViewManagerFactory
90
+ extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> {
91
+ createViewManager(nitroId: number): VideoViewViewManager;
92
+ }