bitmovin-player-react-native 0.44.1-alpha.0 → 1.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. package/.eslintignore +11 -0
  2. package/.eslintrc.js +7 -0
  3. package/.gitattributes +3 -0
  4. package/.prettierignore +11 -0
  5. package/.ruby-version +1 -0
  6. package/.swiftlint.yml +171 -0
  7. package/Brewfile +2 -0
  8. package/CHANGELOG.md +627 -0
  9. package/CONTRIBUTING.md +255 -0
  10. package/TODO.md +0 -0
  11. package/android/.editorconfig +8 -0
  12. package/android/build.gradle +78 -75
  13. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  14. package/android/gradle/wrapper/gradle-wrapper.properties +7 -0
  15. package/android/gradle.properties +1 -0
  16. package/android/gradlew +248 -0
  17. package/android/gradlew.bat +92 -0
  18. package/android/ktlint.gradle +31 -0
  19. package/android/src/main/java/com/bitmovin/player/reactnative/ActivityLifecycleListener.kt +51 -0
  20. package/android/src/main/java/com/bitmovin/player/reactnative/BitmovinCastManagerModule.kt +32 -55
  21. package/android/src/main/java/com/bitmovin/player/reactnative/BufferModule.kt +33 -45
  22. package/android/src/main/java/com/bitmovin/player/reactnative/CustomMessageHandlerModule.kt +84 -0
  23. package/android/src/main/java/com/bitmovin/player/reactnative/DebugModule.kt +6 -14
  24. package/android/src/main/java/com/bitmovin/player/reactnative/DecoderConfigModule.kt +89 -44
  25. package/android/src/main/java/com/bitmovin/player/reactnative/DrmModule.kt +80 -99
  26. package/android/src/main/java/com/bitmovin/player/reactnative/EventSubscription.kt +22 -0
  27. package/android/src/main/java/com/bitmovin/player/reactnative/FullscreenHandlerModule.kt +100 -0
  28. package/android/src/main/java/com/bitmovin/player/reactnative/MediaSessionPlaybackManager.kt +5 -5
  29. package/android/src/main/java/com/bitmovin/player/reactnative/NetworkModule.kt +98 -56
  30. package/android/src/main/java/com/bitmovin/player/reactnative/OfflineModule.kt +132 -186
  31. package/android/src/main/java/com/bitmovin/player/reactnative/PlayerAnalyticsModule.kt +37 -36
  32. package/android/src/main/java/com/bitmovin/player/reactnative/PlayerModule.kt +252 -528
  33. package/android/src/main/java/com/bitmovin/player/reactnative/RNPlayerPackage.kt +11 -0
  34. package/android/src/main/java/com/bitmovin/player/reactnative/RNPlayerView.kt +558 -213
  35. package/android/src/main/java/com/bitmovin/player/reactnative/RNPlayerViewManager.kt +99 -286
  36. package/android/src/main/java/com/bitmovin/player/reactnative/ResultWaiter.kt +58 -0
  37. package/android/src/main/java/com/bitmovin/player/reactnative/SourceModule.kt +77 -151
  38. package/android/src/main/java/com/bitmovin/player/reactnative/Types.kt +44 -0
  39. package/android/src/main/java/com/bitmovin/player/reactnative/UuidModule.kt +12 -15
  40. package/android/src/main/java/com/bitmovin/player/reactnative/converter/JsonConverter.kt +296 -456
  41. package/android/src/main/java/com/bitmovin/player/reactnative/extensions/ListExtension.kt +89 -0
  42. package/android/src/main/java/com/bitmovin/player/reactnative/extensions/MapExtension.kt +95 -0
  43. package/android/src/main/java/com/bitmovin/player/reactnative/offline/OfflineContentManagerBridge.kt +20 -52
  44. package/android/src/main/java/com/bitmovin/player/reactnative/ui/CustomMessageHandlerBridge.kt +10 -20
  45. package/android/src/main/java/com/bitmovin/player/reactnative/ui/FullscreenHandlerBridge.kt +4 -9
  46. package/app.plugin.js +21 -0
  47. package/build/BitmovinPlayerReactNative.types.d.ts +18 -0
  48. package/build/BitmovinPlayerReactNative.types.d.ts.map +1 -0
  49. package/build/BitmovinPlayerReactNative.types.js +2 -0
  50. package/build/BitmovinPlayerReactNative.types.js.map +1 -0
  51. package/build/adaptationConfig.d.ts +18 -0
  52. package/build/adaptationConfig.d.ts.map +1 -0
  53. package/build/adaptationConfig.js +2 -0
  54. package/build/adaptationConfig.js.map +1 -0
  55. package/build/advertising.d.ts +175 -0
  56. package/build/advertising.d.ts.map +1 -0
  57. package/build/advertising.js +37 -0
  58. package/build/advertising.js.map +1 -0
  59. package/build/analytics/config.d.ts +194 -0
  60. package/build/analytics/config.d.ts.map +1 -0
  61. package/build/analytics/config.js +2 -0
  62. package/build/analytics/config.js.map +1 -0
  63. package/build/analytics/index.d.ts +3 -0
  64. package/build/analytics/index.d.ts.map +1 -0
  65. package/build/analytics/index.js +3 -0
  66. package/build/analytics/index.js.map +1 -0
  67. package/build/analytics/player.d.ts +24 -0
  68. package/build/analytics/player.d.ts.map +1 -0
  69. package/build/analytics/player.js +30 -0
  70. package/build/analytics/player.js.map +1 -0
  71. package/build/analytics/playerAnalyticsModule.d.ts +13 -0
  72. package/build/analytics/playerAnalyticsModule.d.ts.map +1 -0
  73. package/build/analytics/playerAnalyticsModule.js +3 -0
  74. package/build/analytics/playerAnalyticsModule.js.map +1 -0
  75. package/build/audioSession.d.ts +33 -0
  76. package/build/audioSession.d.ts.map +1 -0
  77. package/build/audioSession.js +21 -0
  78. package/build/audioSession.js.map +1 -0
  79. package/build/audioTrack.d.ts +39 -0
  80. package/build/audioTrack.d.ts.map +1 -0
  81. package/build/audioTrack.js +2 -0
  82. package/build/audioTrack.js.map +1 -0
  83. package/build/bitmovinCastManager.d.ts +58 -0
  84. package/build/bitmovinCastManager.d.ts.map +1 -0
  85. package/build/bitmovinCastManager.js +64 -0
  86. package/build/bitmovinCastManager.js.map +1 -0
  87. package/build/bufferApi.d.ts +85 -0
  88. package/build/bufferApi.d.ts.map +1 -0
  89. package/build/bufferApi.js +60 -0
  90. package/build/bufferApi.js.map +1 -0
  91. package/build/bufferConfig.d.ts +42 -0
  92. package/build/bufferConfig.d.ts.map +1 -0
  93. package/build/bufferConfig.js +2 -0
  94. package/build/bufferConfig.js.map +1 -0
  95. package/build/components/PlayerView/events.d.ts +310 -0
  96. package/build/components/PlayerView/events.d.ts.map +1 -0
  97. package/build/components/PlayerView/events.js +2 -0
  98. package/build/components/PlayerView/events.js.map +1 -0
  99. package/build/components/PlayerView/index.d.ts +10 -0
  100. package/build/components/PlayerView/index.d.ts.map +1 -0
  101. package/build/components/PlayerView/index.js +72 -0
  102. package/build/components/PlayerView/index.js.map +1 -0
  103. package/build/components/PlayerView/native.d.ts +30 -0
  104. package/build/components/PlayerView/native.d.ts.map +1 -0
  105. package/build/components/PlayerView/native.js +6 -0
  106. package/build/components/PlayerView/native.js.map +1 -0
  107. package/build/components/PlayerView/nativeEvents.d.ts +437 -0
  108. package/build/components/PlayerView/nativeEvents.d.ts.map +1 -0
  109. package/build/components/PlayerView/nativeEvents.js +2 -0
  110. package/build/components/PlayerView/nativeEvents.js.map +1 -0
  111. package/build/components/PlayerView/pictureInPictureConfig.d.ts +22 -0
  112. package/build/components/PlayerView/pictureInPictureConfig.d.ts.map +1 -0
  113. package/build/components/PlayerView/pictureInPictureConfig.js +2 -0
  114. package/build/components/PlayerView/pictureInPictureConfig.js.map +1 -0
  115. package/build/components/PlayerView/playerViewConfig.d.ts +111 -0
  116. package/build/components/PlayerView/playerViewConfig.d.ts.map +1 -0
  117. package/build/components/PlayerView/playerViewConfig.js +51 -0
  118. package/build/components/PlayerView/playerViewConfig.js.map +1 -0
  119. package/build/components/PlayerView/properties.d.ts +61 -0
  120. package/build/components/PlayerView/properties.d.ts.map +1 -0
  121. package/build/components/PlayerView/properties.js +2 -0
  122. package/build/components/PlayerView/properties.js.map +1 -0
  123. package/build/components/index.d.ts +5 -0
  124. package/build/components/index.d.ts.map +1 -0
  125. package/build/components/index.js +5 -0
  126. package/build/components/index.js.map +1 -0
  127. package/build/debug.d.ts +46 -0
  128. package/build/debug.d.ts.map +1 -0
  129. package/build/debug.js +52 -0
  130. package/build/debug.js.map +1 -0
  131. package/build/decoder/decoderConfig.d.ts +96 -0
  132. package/build/decoder/decoderConfig.d.ts.map +1 -0
  133. package/build/decoder/decoderConfig.js +6 -0
  134. package/build/decoder/decoderConfig.js.map +1 -0
  135. package/build/decoder/decoderConfigModule.d.ts +14 -0
  136. package/build/decoder/decoderConfigModule.d.ts.map +1 -0
  137. package/build/decoder/decoderConfigModule.js +31 -0
  138. package/build/decoder/decoderConfigModule.js.map +1 -0
  139. package/build/decoder/index.d.ts +26 -0
  140. package/build/decoder/index.d.ts.map +1 -0
  141. package/build/decoder/index.js +50 -0
  142. package/build/decoder/index.js.map +1 -0
  143. package/build/drm/drmModule.d.ts +55 -0
  144. package/build/drm/drmModule.d.ts.map +1 -0
  145. package/build/drm/drmModule.js +3 -0
  146. package/build/drm/drmModule.js.map +1 -0
  147. package/build/drm/fairplayConfig.d.ts +91 -0
  148. package/build/drm/fairplayConfig.d.ts.map +1 -0
  149. package/build/drm/fairplayConfig.js +2 -0
  150. package/build/drm/fairplayConfig.js.map +1 -0
  151. package/build/drm/index.d.ts +112 -0
  152. package/build/drm/index.d.ts.map +1 -0
  153. package/build/drm/index.js +191 -0
  154. package/build/drm/index.js.map +1 -0
  155. package/build/drm/widevineConfig.d.ts +58 -0
  156. package/build/drm/widevineConfig.d.ts.map +1 -0
  157. package/build/drm/widevineConfig.js +2 -0
  158. package/build/drm/widevineConfig.js.map +1 -0
  159. package/build/events.d.ts +692 -0
  160. package/build/events.d.ts.map +1 -0
  161. package/build/events.js +2 -0
  162. package/build/events.js.map +1 -0
  163. package/build/hooks/index.d.ts +2 -0
  164. package/build/hooks/index.d.ts.map +1 -0
  165. package/build/hooks/index.js +2 -0
  166. package/build/hooks/index.js.map +1 -0
  167. package/build/hooks/usePlayer.d.ts +8 -0
  168. package/build/hooks/usePlayer.d.ts.map +1 -0
  169. package/build/hooks/usePlayer.js +10 -0
  170. package/build/hooks/usePlayer.js.map +1 -0
  171. package/build/hooks/useProxy.d.ts +18 -0
  172. package/build/hooks/useProxy.d.ts.map +1 -0
  173. package/build/hooks/useProxy.js +16 -0
  174. package/build/hooks/useProxy.js.map +1 -0
  175. package/build/index.d.ts +32 -0
  176. package/build/index.d.ts.map +1 -0
  177. package/build/index.js +32 -0
  178. package/build/index.js.map +1 -0
  179. package/build/liveConfig.d.ts +13 -0
  180. package/build/liveConfig.d.ts.map +1 -0
  181. package/build/liveConfig.js +2 -0
  182. package/build/liveConfig.js.map +1 -0
  183. package/build/media.d.ts +85 -0
  184. package/build/media.d.ts.map +1 -0
  185. package/build/media.js +2 -0
  186. package/build/media.js.map +1 -0
  187. package/build/mediaControlConfig.d.ts +62 -0
  188. package/build/mediaControlConfig.d.ts.map +1 -0
  189. package/build/mediaControlConfig.js +2 -0
  190. package/build/mediaControlConfig.js.map +1 -0
  191. package/build/mediaTrackRole.d.ts +28 -0
  192. package/build/mediaTrackRole.d.ts.map +1 -0
  193. package/build/mediaTrackRole.js +2 -0
  194. package/build/mediaTrackRole.js.map +1 -0
  195. package/build/modules/AudioSessionModule.d.ts +8 -0
  196. package/build/modules/AudioSessionModule.d.ts.map +1 -0
  197. package/build/modules/AudioSessionModule.js +7 -0
  198. package/build/modules/AudioSessionModule.js.map +1 -0
  199. package/build/modules/BitmovinCastManagerModule.d.ts +11 -0
  200. package/build/modules/BitmovinCastManagerModule.d.ts.map +1 -0
  201. package/build/modules/BitmovinCastManagerModule.js +3 -0
  202. package/build/modules/BitmovinCastManagerModule.js.map +1 -0
  203. package/build/modules/BufferModule.d.ts +16 -0
  204. package/build/modules/BufferModule.d.ts.map +1 -0
  205. package/build/modules/BufferModule.js +3 -0
  206. package/build/modules/BufferModule.js.map +1 -0
  207. package/build/modules/DebugModule.d.ts +8 -0
  208. package/build/modules/DebugModule.d.ts.map +1 -0
  209. package/build/modules/DebugModule.js +3 -0
  210. package/build/modules/DebugModule.js.map +1 -0
  211. package/build/modules/PlayerModule.d.ts +188 -0
  212. package/build/modules/PlayerModule.d.ts.map +1 -0
  213. package/build/modules/PlayerModule.js +3 -0
  214. package/build/modules/PlayerModule.js.map +1 -0
  215. package/build/modules/SourceModule.d.ts +51 -0
  216. package/build/modules/SourceModule.d.ts.map +1 -0
  217. package/build/modules/SourceModule.js +3 -0
  218. package/build/modules/SourceModule.js.map +1 -0
  219. package/build/modules/UuidModule.d.ts +8 -0
  220. package/build/modules/UuidModule.d.ts.map +1 -0
  221. package/build/modules/UuidModule.js +3 -0
  222. package/build/modules/UuidModule.js.map +1 -0
  223. package/build/nativeInstance.d.ts +49 -0
  224. package/build/nativeInstance.d.ts.map +1 -0
  225. package/build/nativeInstance.js +20 -0
  226. package/build/nativeInstance.js.map +1 -0
  227. package/build/network/index.d.ts +50 -0
  228. package/build/network/index.d.ts.map +1 -0
  229. package/build/network/index.js +102 -0
  230. package/build/network/index.js.map +1 -0
  231. package/build/network/networkConfig.d.ts +151 -0
  232. package/build/network/networkConfig.d.ts.map +1 -0
  233. package/build/network/networkConfig.js +21 -0
  234. package/build/network/networkConfig.js.map +1 -0
  235. package/build/network/networkModule.d.ts +29 -0
  236. package/build/network/networkModule.d.ts.map +1 -0
  237. package/build/network/networkModule.js +3 -0
  238. package/build/network/networkModule.js.map +1 -0
  239. package/build/offline/index.d.ts +8 -0
  240. package/build/offline/index.d.ts.map +1 -0
  241. package/build/offline/index.js +8 -0
  242. package/build/offline/index.js.map +1 -0
  243. package/build/offline/offlineContentConfig.d.ts +18 -0
  244. package/build/offline/offlineContentConfig.d.ts.map +1 -0
  245. package/build/offline/offlineContentConfig.js +2 -0
  246. package/build/offline/offlineContentConfig.js.map +1 -0
  247. package/build/offline/offlineContentManager.d.ts +90 -0
  248. package/build/offline/offlineContentManager.d.ts.map +1 -0
  249. package/build/offline/offlineContentManager.js +177 -0
  250. package/build/offline/offlineContentManager.js.map +1 -0
  251. package/build/offline/offlineContentManagerListener.d.ts +174 -0
  252. package/build/offline/offlineContentManagerListener.d.ts.map +1 -0
  253. package/build/offline/offlineContentManagerListener.js +17 -0
  254. package/build/offline/offlineContentManagerListener.js.map +1 -0
  255. package/build/offline/offlineContentOptions.d.ts +29 -0
  256. package/build/offline/offlineContentOptions.d.ts.map +1 -0
  257. package/build/offline/offlineContentOptions.js +2 -0
  258. package/build/offline/offlineContentOptions.js.map +1 -0
  259. package/build/offline/offlineDownloadRequest.d.ts +19 -0
  260. package/build/offline/offlineDownloadRequest.d.ts.map +1 -0
  261. package/build/offline/offlineDownloadRequest.js +2 -0
  262. package/build/offline/offlineDownloadRequest.js.map +1 -0
  263. package/build/offline/offlineModule.d.ts +32 -0
  264. package/build/offline/offlineModule.d.ts.map +1 -0
  265. package/build/offline/offlineModule.js +3 -0
  266. package/build/offline/offlineModule.js.map +1 -0
  267. package/build/offline/offlineSourceOptions.d.ts +12 -0
  268. package/build/offline/offlineSourceOptions.d.ts.map +1 -0
  269. package/build/offline/offlineSourceOptions.js +2 -0
  270. package/build/offline/offlineSourceOptions.js.map +1 -0
  271. package/build/offline/offlineState.d.ts +23 -0
  272. package/build/offline/offlineState.d.ts.map +1 -0
  273. package/build/offline/offlineState.js +24 -0
  274. package/build/offline/offlineState.js.map +1 -0
  275. package/build/playbackConfig.d.ts +88 -0
  276. package/build/playbackConfig.d.ts.map +1 -0
  277. package/build/playbackConfig.js +2 -0
  278. package/build/playbackConfig.js.map +1 -0
  279. package/build/player.d.ts +308 -0
  280. package/build/player.d.ts.map +1 -0
  281. package/build/player.js +445 -0
  282. package/build/player.js.map +1 -0
  283. package/build/playerConfig.d.ts +83 -0
  284. package/build/playerConfig.d.ts.map +1 -0
  285. package/build/playerConfig.js +2 -0
  286. package/build/playerConfig.js.map +1 -0
  287. package/build/remoteControlConfig.d.ts +38 -0
  288. package/build/remoteControlConfig.d.ts.map +1 -0
  289. package/build/remoteControlConfig.js +2 -0
  290. package/build/remoteControlConfig.js.map +1 -0
  291. package/build/source.d.ts +216 -0
  292. package/build/source.d.ts.map +1 -0
  293. package/build/source.js +167 -0
  294. package/build/source.js.map +1 -0
  295. package/build/styleConfig.d.ts +120 -0
  296. package/build/styleConfig.d.ts.map +1 -0
  297. package/build/styleConfig.js +38 -0
  298. package/build/styleConfig.js.map +1 -0
  299. package/build/subtitleFormat.d.ts +27 -0
  300. package/build/subtitleFormat.d.ts.map +1 -0
  301. package/build/subtitleFormat.js +28 -0
  302. package/build/subtitleFormat.js.map +1 -0
  303. package/build/subtitleTrack.d.ts +55 -0
  304. package/build/subtitleTrack.d.ts.map +1 -0
  305. package/build/subtitleTrack.js +2 -0
  306. package/build/subtitleTrack.js.map +1 -0
  307. package/build/thumbnail.d.ts +38 -0
  308. package/build/thumbnail.d.ts.map +1 -0
  309. package/build/thumbnail.js +2 -0
  310. package/build/thumbnail.js.map +1 -0
  311. package/build/tweaksConfig.d.ts +197 -0
  312. package/build/tweaksConfig.d.ts.map +1 -0
  313. package/build/tweaksConfig.js +25 -0
  314. package/build/tweaksConfig.js.map +1 -0
  315. package/build/ui/customMessageHandlerModule.d.ts +27 -0
  316. package/build/ui/customMessageHandlerModule.d.ts.map +1 -0
  317. package/build/ui/customMessageHandlerModule.js +3 -0
  318. package/build/ui/customMessageHandlerModule.js.map +1 -0
  319. package/build/ui/custommessagehandler.d.ts +56 -0
  320. package/build/ui/custommessagehandler.d.ts.map +1 -0
  321. package/build/ui/custommessagehandler.js +54 -0
  322. package/build/ui/custommessagehandler.js.map +1 -0
  323. package/build/ui/custommessagehandlerbridge.d.ts +33 -0
  324. package/build/ui/custommessagehandlerbridge.d.ts.map +1 -0
  325. package/build/ui/custommessagehandlerbridge.js +72 -0
  326. package/build/ui/custommessagehandlerbridge.js.map +1 -0
  327. package/build/ui/custommessagesender.d.ts +5 -0
  328. package/build/ui/custommessagesender.d.ts.map +1 -0
  329. package/build/ui/custommessagesender.js +2 -0
  330. package/build/ui/custommessagesender.js.map +1 -0
  331. package/build/ui/fullscreenHandlerModule.d.ts +20 -0
  332. package/build/ui/fullscreenHandlerModule.d.ts.map +1 -0
  333. package/build/ui/fullscreenHandlerModule.js +3 -0
  334. package/build/ui/fullscreenHandlerModule.js.map +1 -0
  335. package/build/ui/fullscreenhandler.d.ts +18 -0
  336. package/build/ui/fullscreenhandler.d.ts.map +1 -0
  337. package/build/ui/fullscreenhandler.js +2 -0
  338. package/build/ui/fullscreenhandler.js.map +1 -0
  339. package/build/ui/fullscreenhandlerbridge.d.ts +26 -0
  340. package/build/ui/fullscreenhandlerbridge.d.ts.map +1 -0
  341. package/build/ui/fullscreenhandlerbridge.js +67 -0
  342. package/build/ui/fullscreenhandlerbridge.js.map +1 -0
  343. package/build/ui/index.d.ts +3 -0
  344. package/build/ui/index.d.ts.map +1 -0
  345. package/build/ui/index.js +3 -0
  346. package/build/ui/index.js.map +1 -0
  347. package/expo-module.config.json +40 -0
  348. package/ios/AppLifecycleDelegate.swift +25 -0
  349. package/ios/AudioSessionModule.swift +14 -40
  350. package/ios/BitmovinCastManagerModule.swift +30 -69
  351. package/ios/BufferModule.swift +26 -62
  352. package/ios/CustomMessageHandlerBridge.swift +11 -18
  353. package/ios/CustomMessageHandlerModule.swift +61 -63
  354. package/ios/DebugModule.swift +6 -27
  355. package/ios/DrmModule.swift +105 -379
  356. package/ios/Event+JSON.swift +1 -0
  357. package/ios/FullscreenHandlerBridge.swift +12 -5
  358. package/ios/FullscreenHandlerModule.swift +73 -57
  359. package/ios/LockedBox.swift +21 -0
  360. package/ios/ModuleRegistry+Generics.swift +11 -0
  361. package/ios/NetworkModule.swift +78 -82
  362. package/ios/OfflineContentManagerBridge.swift +11 -38
  363. package/ios/OfflineModule.swift +136 -454
  364. package/ios/PlayerAnalyticsModule.swift +24 -52
  365. package/ios/PlayerModule.swift +192 -770
  366. package/ios/RCTConvert+BitmovinPlayer.swift +38 -312
  367. package/ios/RNBitmovinPlayer.h +1 -8
  368. package/ios/RNBitmovinPlayer.podspec +47 -0
  369. package/ios/RNPlayerView.swift +600 -77
  370. package/ios/RNPlayerViewManager.swift +96 -210
  371. package/ios/Registry.swift +2 -2
  372. package/ios/ResultWaiter.swift +66 -0
  373. package/ios/SourceModule.swift +104 -223
  374. package/ios/UuidModule.swift +9 -18
  375. package/package.json +67 -71
  376. package/plugin/build/FeatureFlags.d.ts +24 -0
  377. package/plugin/build/FeatureFlags.js +2 -0
  378. package/plugin/build/index.d.ts +7 -0
  379. package/plugin/build/index.js +10 -0
  380. package/plugin/build/withAppGradleDependencies.d.ts +7 -0
  381. package/plugin/build/withAppGradleDependencies.js +49 -0
  382. package/plugin/build/withBitmovinAndroidConfig.d.ts +7 -0
  383. package/plugin/build/withBitmovinAndroidConfig.js +159 -0
  384. package/plugin/build/withBitmovinConfig.d.ts +7 -0
  385. package/plugin/build/withBitmovinConfig.js +21 -0
  386. package/plugin/build/withBitmovinIosConfig.d.ts +7 -0
  387. package/plugin/build/withBitmovinIosConfig.js +53 -0
  388. package/plugin/src/FeatureFlags.ts +21 -0
  389. package/plugin/src/index.ts +9 -0
  390. package/plugin/src/withAppGradleDependencies.ts +80 -0
  391. package/plugin/src/withBitmovinAndroidConfig.ts +224 -0
  392. package/plugin/src/withBitmovinConfig.ts +24 -0
  393. package/plugin/src/withBitmovinIosConfig.ts +71 -0
  394. package/plugin/tsconfig.json +9 -0
  395. package/plugin/tsconfig.tsbuildinfo +1 -0
  396. package/prettier.config.js +7 -0
  397. package/scripts/format-android.sh +2 -0
  398. package/scripts/format-swift.sh +3 -0
  399. package/scripts/lint-android.sh +2 -0
  400. package/scripts/lint-swift.sh +3 -0
  401. package/scripts/pre-commit.sh +14 -0
  402. package/scripts/setup-hooks.sh +58 -0
  403. package/src/BitmovinPlayerReactNative.types.ts +19 -0
  404. package/src/adaptationConfig.ts +1 -1
  405. package/src/advertising.ts +1 -1
  406. package/src/analytics/config.ts +4 -4
  407. package/src/analytics/player.ts +4 -6
  408. package/src/analytics/playerAnalyticsModule.ts +19 -0
  409. package/src/audioSession.ts +4 -6
  410. package/src/audioTrack.ts +1 -1
  411. package/src/bitmovinCastManager.ts +14 -10
  412. package/src/bufferApi.ts +1 -3
  413. package/src/bufferConfig.ts +2 -2
  414. package/src/components/PlayerView/events.ts +92 -94
  415. package/src/components/PlayerView/index.tsx +109 -159
  416. package/src/components/PlayerView/native.ts +24 -11
  417. package/src/components/PlayerView/nativeEvents.ts +113 -94
  418. package/src/components/PlayerView/pictureInPictureConfig.ts +1 -1
  419. package/src/components/PlayerView/playerViewConfig.ts +4 -8
  420. package/src/components/PlayerView/properties.ts +23 -22
  421. package/src/debug.ts +1 -3
  422. package/src/decoder/decoderConfig.ts +3 -3
  423. package/src/decoder/decoderConfigModule.ts +62 -0
  424. package/src/decoder/index.ts +32 -16
  425. package/src/drm/drmModule.ts +84 -0
  426. package/src/drm/fairplayConfig.ts +1 -1
  427. package/src/drm/index.ts +130 -40
  428. package/src/drm/widevineConfig.ts +5 -5
  429. package/src/events.ts +47 -41
  430. package/src/hooks/useProxy.ts +13 -20
  431. package/src/mediaControlConfig.ts +1 -1
  432. package/src/modules/AudioSessionModule.ts +13 -0
  433. package/src/modules/BitmovinCastManagerModule.ts +14 -0
  434. package/src/modules/BufferModule.ts +18 -0
  435. package/src/modules/DebugModule.ts +9 -0
  436. package/src/modules/PlayerModule.ts +251 -0
  437. package/src/modules/SourceModule.ts +74 -0
  438. package/src/modules/UuidModule.ts +9 -0
  439. package/src/nativeInstance.ts +3 -3
  440. package/src/network/index.ts +42 -15
  441. package/src/network/networkConfig.ts +3 -3
  442. package/src/network/networkModule.ts +51 -0
  443. package/src/offline/offlineContentConfig.ts +1 -1
  444. package/src/offline/offlineContentManager.ts +15 -50
  445. package/src/offline/offlineContentManagerListener.ts +20 -23
  446. package/src/offline/offlineContentOptions.ts +2 -2
  447. package/src/offline/offlineDownloadRequest.ts +1 -1
  448. package/src/offline/offlineModule.ts +46 -0
  449. package/src/offline/offlineSourceOptions.ts +2 -2
  450. package/src/offline/offlineState.ts +1 -1
  451. package/src/playbackConfig.ts +5 -6
  452. package/src/player.ts +53 -48
  453. package/src/source.ts +15 -14
  454. package/src/styleConfig.ts +5 -5
  455. package/src/subtitleFormat.ts +5 -5
  456. package/src/subtitleTrack.ts +1 -1
  457. package/src/tweaksConfig.ts +16 -16
  458. package/src/ui/customMessageHandlerModule.ts +46 -0
  459. package/src/ui/custommessagehandlerbridge.ts +45 -18
  460. package/src/ui/fullscreenHandlerModule.ts +35 -0
  461. package/src/ui/fullscreenhandlerbridge.ts +35 -15
  462. package/tsconfig.json +9 -0
  463. package/typedoc.json +23 -0
  464. package/RNBitmovinPlayer.podspec +0 -26
  465. package/android/src/main/java/com/bitmovin/player/reactnative/BitmovinBaseModule.kt +0 -114
  466. package/android/src/main/java/com/bitmovin/player/reactnative/EventRelay.kt +0 -47
  467. package/android/src/main/java/com/bitmovin/player/reactnative/RNPlayerViewPackage.kt +0 -48
  468. package/android/src/main/java/com/bitmovin/player/reactnative/extensions/ReactContextExtension.kt +0 -24
  469. package/android/src/main/java/com/bitmovin/player/reactnative/extensions/ReadableArray.kt +0 -20
  470. package/android/src/main/java/com/bitmovin/player/reactnative/extensions/ReadableMap.kt +0 -15
  471. package/android/src/main/java/com/bitmovin/player/reactnative/extensions/ReadableMapExtension.kt +0 -57
  472. package/android/src/main/java/com/bitmovin/player/reactnative/extensions/WritableMap.kt +0 -27
  473. package/android/src/main/java/com/bitmovin/player/reactnative/ui/CustomMessageHandlerModule.kt +0 -86
  474. package/android/src/main/java/com/bitmovin/player/reactnative/ui/FullscreenHandlerModule.kt +0 -78
  475. package/ios/AudioSessionModule.m +0 -10
  476. package/ios/BitmovinCastManagerModule.m +0 -14
  477. package/ios/BufferModule.m +0 -8
  478. package/ios/CustomMessageHandlerModule.m +0 -10
  479. package/ios/DebugModule.m +0 -7
  480. package/ios/DrmModule.m +0 -16
  481. package/ios/FullscreenHandlerModule.m +0 -10
  482. package/ios/NetworkModule.m +0 -10
  483. package/ios/OfflineModule.m +0 -19
  484. package/ios/PlayerAnalyticsModule.m +0 -8
  485. package/ios/PlayerModule.m +0 -130
  486. package/ios/PreprocessHttpRequestDelegateBridge.swift +0 -30
  487. package/ios/RCTBridge+Generics.swift +0 -6
  488. package/ios/RNBitmovinPlayer.xcodeproj/project.pbxproj +0 -303
  489. package/ios/RNPlayerView+PlayerListener.swift +0 -229
  490. package/ios/RNPlayerView+UserInterfaceListener.swift +0 -35
  491. package/ios/RNPlayerViewManager.m +0 -79
  492. package/ios/SourceModule.m +0 -42
  493. package/ios/UuidModule.m +0 -9
  494. package/lib/index.d.mts +0 -4303
  495. package/lib/index.d.ts +0 -4303
  496. package/lib/index.js +0 -1895
  497. package/lib/index.mjs +0 -1836
package/src/events.ts CHANGED
@@ -48,38 +48,44 @@ export interface ErrorEvent extends Event {
48
48
  * Emitted when a source is loaded into the player.
49
49
  * Seeking and time shifting are allowed as soon as this event is seen.
50
50
  */
51
- export interface PlayerActiveEvent extends Event {}
51
+ export type PlayerActiveEvent = Event;
52
+
53
+ /**
54
+ * Emitted when a source is unloaded from the player.
55
+ * Seeking and time shifting are not allowed anymore after this event.
56
+ */
57
+ export type PlayerInactiveEvent = Event;
52
58
 
53
59
  /**
54
60
  * Emitted when a player error occurred.
55
61
  */
56
- export interface PlayerErrorEvent extends ErrorEvent {}
62
+ export type PlayerErrorEvent = ErrorEvent;
57
63
 
58
64
  /**
59
65
  * Emitted when a player warning occurred.
60
66
  */
61
- export interface PlayerWarningEvent extends ErrorEvent {}
67
+ export type PlayerWarningEvent = ErrorEvent;
62
68
 
63
69
  /**
64
70
  * Emitted when the player is destroyed.
65
71
  */
66
- export interface DestroyEvent extends Event {}
72
+ export type DestroyEvent = Event;
67
73
 
68
74
  /**
69
75
  * Emitted when the player is muted.
70
76
  */
71
- export interface MutedEvent extends Event {}
77
+ export type MutedEvent = Event;
72
78
 
73
79
  /**
74
80
  * Emitted when the player is unmuted.
75
81
  */
76
- export interface UnmutedEvent extends Event {}
82
+ export type UnmutedEvent = Event;
77
83
 
78
84
  /**
79
85
  * Emitted when the player is ready for immediate playback, because initial audio/video
80
86
  * has been downloaded.
81
87
  */
82
- export interface ReadyEvent extends Event {}
88
+ export type ReadyEvent = Event;
83
89
 
84
90
  /**
85
91
  * Emitted when the player is paused.
@@ -114,7 +120,7 @@ export interface PlayingEvent extends Event {
114
120
  /**
115
121
  * Emitted when the playback of the current media has finished.
116
122
  */
117
- export interface PlaybackFinishedEvent extends Event {}
123
+ export type PlaybackFinishedEvent = Event;
118
124
 
119
125
  /**
120
126
  * Source object representation the way it appears on event's payloads such as `SeekEvent`, for example.
@@ -182,7 +188,7 @@ export interface SeekEvent extends Event {
182
188
  * This event only applies to VoD streams.
183
189
  * When looking for an equivalent for live streams, the {@link TimeShiftedEvent} is relevant.
184
190
  */
185
- export interface SeekedEvent extends Event {}
191
+ export type SeekedEvent = Event;
186
192
 
187
193
  /**
188
194
  * Emitted when the player starts time shifting.
@@ -205,17 +211,17 @@ export interface TimeShiftEvent extends Event {
205
211
  * This event only applies to live streams.
206
212
  * When looking for an equivalent for VoD streams, the {@link SeekedEvent} is relevant.
207
213
  */
208
- export interface TimeShiftedEvent extends Event {}
214
+ export type TimeShiftedEvent = Event;
209
215
 
210
216
  /**
211
217
  * Emitted when the player begins to stall and to buffer due to an empty buffer.
212
218
  */
213
- export interface StallStartedEvent extends Event {}
219
+ export type StallStartedEvent = Event;
214
220
 
215
221
  /**
216
222
  * Emitted when the player ends stalling, due to enough data in the buffer.
217
223
  */
218
- export interface StallEndedEvent extends Event {}
224
+ export type StallEndedEvent = Event;
219
225
 
220
226
  /**
221
227
  * Emitted when the current playback time has changed.
@@ -262,12 +268,12 @@ export interface SourceUnloadedEvent extends Event {
262
268
  /**
263
269
  * Emitted when a source error occurred.
264
270
  */
265
- export interface SourceErrorEvent extends ErrorEvent {}
271
+ export type SourceErrorEvent = ErrorEvent;
266
272
 
267
273
  /**
268
274
  * Emitted when a source warning occurred.
269
275
  */
270
- export interface SourceWarningEvent extends ErrorEvent {}
276
+ export type SourceWarningEvent = ErrorEvent;
271
277
 
272
278
  /**
273
279
  * Emitted when a new audio track is added to the player.
@@ -340,63 +346,63 @@ export interface SubtitleChangedEvent extends Event {
340
346
  /**
341
347
  * Emitted when the player enters Picture in Picture mode.
342
348
  *
343
- * @platform iOS, Android
349
+ * @remarks Platform: iOS, Android
344
350
  */
345
- export interface PictureInPictureEnterEvent extends Event {}
351
+ export type PictureInPictureEnterEvent = Event;
346
352
 
347
353
  /**
348
354
  * Emitted when the player exits Picture in Picture mode.
349
355
  *
350
- * @platform iOS, Android
356
+ * @remarks Platform: iOS, Android
351
357
  */
352
- export interface PictureInPictureExitEvent extends Event {}
358
+ export type PictureInPictureExitEvent = Event;
353
359
 
354
360
  /**
355
361
  * Emitted when the player has finished entering Picture in Picture mode on iOS.
356
362
  *
357
- * @platform iOS
363
+ * @remarks Platform: iOS
358
364
  */
359
- export interface PictureInPictureEnteredEvent extends Event {}
365
+ export type PictureInPictureEnteredEvent = Event;
360
366
 
361
367
  /**
362
368
  * Emitted when the player has finished exiting Picture in Picture mode on iOS.
363
369
  *
364
- * @platform iOS
370
+ * @remarks Platform: iOS
365
371
  */
366
- export interface PictureInPictureExitedEvent extends Event {}
372
+ export type PictureInPictureExitedEvent = Event;
367
373
 
368
374
  /**
369
375
  * Emitted when the fullscreen functionality has been enabled.
370
376
  *
371
- * @platform iOS, Android
377
+ * @remarks Platform: iOS, Android
372
378
  */
373
- export interface FullscreenEnabledEvent extends Event {}
379
+ export type FullscreenEnabledEvent = Event;
374
380
 
375
381
  /**
376
382
  * Emitted when the fullscreen functionality has been disabled.
377
383
  *
378
- * @platform iOS, Android
384
+ * @remarks Platform: iOS, Android
379
385
  */
380
- export interface FullscreenDisabledEvent extends Event {}
386
+ export type FullscreenDisabledEvent = Event;
381
387
 
382
388
  /**
383
389
  * Emitted when the player enters fullscreen mode.
384
390
  *
385
- * @platform iOS, Android
391
+ * @remarks Platform: iOS, Android
386
392
  */
387
- export interface FullscreenEnterEvent extends Event {}
393
+ export type FullscreenEnterEvent = Event;
388
394
 
389
395
  /**
390
396
  * Emitted when the player exits fullscreen mode.
391
397
  *
392
- * @platform iOS, Android
398
+ * @remarks Platform: iOS, Android
393
399
  */
394
- export interface FullscreenExitEvent extends Event {}
400
+ export type FullscreenExitEvent = Event;
395
401
 
396
402
  /**
397
403
  * Emitted when the availability of the Picture in Picture mode changed on Android.
398
404
  *
399
- * @platform Android
405
+ * @remarks Platform: Android
400
406
  */
401
407
  export interface PictureInPictureAvailabilityChangedEvent extends Event {
402
408
  /**
@@ -590,28 +596,28 @@ export interface VideoPlaybackQualityChangedEvent extends Event {
590
596
  /**
591
597
  * Emitted when casting to a cast-compatible device is available.
592
598
  */
593
- export interface CastAvailableEvent extends Event {}
599
+ export type CastAvailableEvent = Event;
594
600
 
595
601
  /**
596
602
  * Emitted when the playback on a cast-compatible device was paused.
597
603
  *
598
604
  * On Android {@link PausedEvent} is also emitted while casting.
599
605
  */
600
- export interface CastPausedEvent extends Event {}
606
+ export type CastPausedEvent = Event;
601
607
 
602
608
  /**
603
609
  * Emitted when the playback on a cast-compatible device has finished.
604
610
  *
605
611
  * On Android {@link PlaybackFinishedEvent} is also emitted while casting.
606
612
  */
607
- export interface CastPlaybackFinishedEvent extends Event {}
613
+ export type CastPlaybackFinishedEvent = Event;
608
614
 
609
615
  /**
610
616
  * Emitted when playback on a cast-compatible device has started.
611
617
  *
612
618
  * On Android {@link PlayingEvent} is also emitted while casting.
613
619
  */
614
- export interface CastPlayingEvent extends Event {}
620
+ export type CastPlayingEvent = Event;
615
621
 
616
622
  /**
617
623
  * Emitted when the cast app is launched successfully.
@@ -626,17 +632,17 @@ export interface CastStartedEvent extends Event {
626
632
  /**
627
633
  * Emitted when casting is initiated, but the user still needs to choose which device should be used.
628
634
  */
629
- export interface CastStartEvent extends Event {}
635
+ export type CastStartEvent = Event;
630
636
 
631
637
  /**
632
638
  * Emitted when casting to a cast-compatible device is stopped.
633
639
  */
634
- export interface CastStoppedEvent extends Event {}
640
+ export type CastStoppedEvent = Event;
635
641
 
636
642
  /**
637
643
  * Emitted when the time update from the currently used cast-compatible device is received.
638
644
  */
639
- export interface CastTimeUpdatedEvent extends Event {}
645
+ export type CastTimeUpdatedEvent = Event;
640
646
 
641
647
  /**
642
648
  * Contains information for the {@link CastWaitingForDeviceEvent}.
@@ -691,7 +697,7 @@ export interface DownloadFinishedEvent extends Event {
691
697
  /**
692
698
  * The last redirect location, or `null` if no redirect happened.
693
699
  */
694
- lastRedirectLocation?: String;
700
+ lastRedirectLocation?: string;
695
701
  /**
696
702
  * The size of the downloaded data, in bytes.
697
703
  */
@@ -699,12 +705,12 @@ export interface DownloadFinishedEvent extends Event {
699
705
  /**
700
706
  * The URL of the request.
701
707
  */
702
- url: String;
708
+ url: string;
703
709
  }
704
710
 
705
711
  /**
706
712
  * Emitted when the player transitions from one playback speed to another.
707
- * @platform iOS, tvOS
713
+ * @remarks Platform: iOS, tvOS
708
714
  */
709
715
  export interface PlaybackSpeedChangedEvent extends Event {
710
716
  /**
@@ -1,7 +1,6 @@
1
- import omit from 'lodash.omit';
2
- import { useCallback, RefObject } from 'react';
3
- import { NativeSyntheticEvent, findNodeHandle } from 'react-native';
1
+ import { RefObject, useCallback } from 'react';
4
2
  import { Event } from '../events';
3
+ import { findNodeHandle } from 'react-native';
5
4
 
6
5
  /**
7
6
  * A function that takes a generic event as argument.
@@ -11,30 +10,24 @@ type Callback<E> = (event: E) => void;
11
10
  /**
12
11
  * A function that takes the synthetic version of a generic event as argument.
13
12
  */
14
- type NativeCallback<E> = (nativeEvent: NativeSyntheticEvent<E>) => void;
13
+ type NativeCallback<E> = (event: { nativeEvent: E }) => void;
15
14
 
16
15
  /**
17
- * Returns the actual event payload without RN's bubbling data.
18
- */
19
- function unwrapNativeEvent<E extends Event>(event: NativeSyntheticEvent<E>): E {
20
- return omit(event.nativeEvent, ['target']) as E;
21
- }
22
-
23
- /**
24
- * Produce a callback function that takes some native synthetic event and calls
25
- * the passed callback with the unwrapped event value. And always check first
26
- * if the received synthetic event target matches viewRef's node value.
16
+ * Create a proxy function that unwraps native events.
27
17
  */
28
18
  export function useProxy(
29
19
  viewRef: RefObject<any>
30
20
  ): <E extends Event>(callback?: Callback<E>) => NativeCallback<E> {
31
21
  return useCallback(
32
- (callback) => (event) => {
33
- const node: number = (event.target as any)._nativeTag;
34
- if (node === findNodeHandle(viewRef.current)) {
35
- callback?.(unwrapNativeEvent(event));
36
- }
37
- },
22
+ <E extends Event>(callback?: Callback<E>) =>
23
+ (event: { nativeEvent: E }) => {
24
+ const eventTargetNodeHandle: number = (event.nativeEvent as any).target;
25
+ if (eventTargetNodeHandle !== findNodeHandle(viewRef.current)) {
26
+ return;
27
+ }
28
+ const { target, ...eventWithoutTarget } = event.nativeEvent as any;
29
+ callback?.(eventWithoutTarget as E);
30
+ },
38
31
  [viewRef]
39
32
  );
40
33
  }
@@ -13,7 +13,7 @@ export interface MediaControlConfig {
13
13
  * For a detailed list of the supported features in the **default behavior**,
14
14
  * check the **Default Supported Features** section.
15
15
  *
16
- * @note Enabling this flag will automatically treat {@link TweaksConfig.updatesNowPlayingInfoCenter} as `false`.
16
+ * @remarks Enabling this flag will automatically treat {@link TweaksConfig.updatesNowPlayingInfoCenter} as `false`.
17
17
  *
18
18
  * ## Limitations
19
19
  * ---
@@ -0,0 +1,13 @@
1
+ import { NativeModule, requireNativeModule } from 'expo-modules-core';
2
+ import { Platform } from 'react-native';
3
+
4
+ export type AudioSessionModuleEvents = Record<string, any>;
5
+
6
+ declare class AudioSessionModule extends NativeModule<AudioSessionModuleEvents> {
7
+ setCategory(category: string): Promise<void>;
8
+ }
9
+
10
+ // iOS-only module
11
+ export default Platform.OS === 'ios'
12
+ ? requireNativeModule<AudioSessionModule>('AudioSessionModule')
13
+ : null;
@@ -0,0 +1,14 @@
1
+ import { NativeModule, requireNativeModule } from 'expo-modules-core';
2
+
3
+ export type BitmovinCastManagerModuleEvents = Record<string, any>;
4
+
5
+ declare class BitmovinCastManagerModule extends NativeModule<BitmovinCastManagerModuleEvents> {
6
+ isInitialized(): Promise<boolean>;
7
+ initializeCastManager(options?: Record<string, any>): Promise<void>;
8
+ sendMessage(message: string, messageNamespace?: string): Promise<void>;
9
+ updateContext?(): Promise<void>; // Android only
10
+ }
11
+
12
+ export default requireNativeModule<BitmovinCastManagerModule>(
13
+ 'BitmovinCastManagerModule'
14
+ );
@@ -0,0 +1,18 @@
1
+ import { NativeModule, requireNativeModule } from 'expo-modules-core';
2
+ import { BufferLevels } from '../bufferApi';
3
+
4
+ export type BufferModuleEvents = Record<string, any>;
5
+
6
+ declare class BufferModule extends NativeModule<BufferModuleEvents> {
7
+ /**
8
+ * Get buffer level for the specified player and buffer type.
9
+ */
10
+ getLevel(playerId: string, type: string): Promise<BufferLevels>;
11
+
12
+ /**
13
+ * Set target level for the specified player and buffer type.
14
+ */
15
+ setTargetLevel(playerId: string, type: string, value: number): Promise<void>;
16
+ }
17
+
18
+ export default requireNativeModule<BufferModule>('BufferModule');
@@ -0,0 +1,9 @@
1
+ import { NativeModule, requireNativeModule } from 'expo-modules-core';
2
+
3
+ export type DebugModuleEvents = Record<string, any>;
4
+
5
+ declare class DebugModule extends NativeModule<DebugModuleEvents> {
6
+ setDebugLoggingEnabled(enabled: boolean): Promise<void>;
7
+ }
8
+
9
+ export default requireNativeModule<DebugModule>('DebugModule');
@@ -0,0 +1,251 @@
1
+ import { NativeModule, requireNativeModule } from 'expo-modules-core';
2
+
3
+ export type PlayerModuleEvents = Record<string, any>;
4
+
5
+ declare class PlayerModule extends NativeModule<PlayerModuleEvents> {
6
+ /**
7
+ * Call .play() on nativeId's player.
8
+ */
9
+ play(nativeId: string): Promise<void>;
10
+
11
+ /**
12
+ * Call .pause() on nativeId's player.
13
+ */
14
+ pause(nativeId: string): Promise<void>;
15
+
16
+ /**
17
+ * Call .mute() on nativeId's player.
18
+ */
19
+ mute(nativeId: string): Promise<void>;
20
+
21
+ /**
22
+ * Call .unmute() on nativeId's player.
23
+ */
24
+ unmute(nativeId: string): Promise<void>;
25
+
26
+ /**
27
+ * Call .seek(time) on nativeId's player.
28
+ */
29
+ seek(nativeId: string, time: number): Promise<void>;
30
+
31
+ /**
32
+ * Sets timeShift on nativeId's player.
33
+ */
34
+ timeShift(nativeId: string, offset: number): Promise<void>;
35
+
36
+ /**
37
+ * Call .destroy() on nativeId's player and remove from registry.
38
+ */
39
+ destroy(nativeId: string): Promise<void>;
40
+
41
+ /**
42
+ * Call .setVolume(volume) on nativeId's player.
43
+ */
44
+ setVolume(nativeId: string, volume: number): Promise<void>;
45
+
46
+ /**
47
+ * Resolve nativeId's current volume.
48
+ */
49
+ getVolume(nativeId: string): Promise<number | null>;
50
+
51
+ /**
52
+ * Resolve nativeId's current time.
53
+ */
54
+ currentTime(nativeId: string, mode?: string): Promise<number | null>;
55
+
56
+ /**
57
+ * Resolve nativeId's current playing state.
58
+ */
59
+ isPlaying(nativeId: string): Promise<boolean | null>;
60
+
61
+ /**
62
+ * Resolve nativeId's current paused state.
63
+ */
64
+ isPaused(nativeId: string): Promise<boolean | null>;
65
+
66
+ /**
67
+ * Resolve nativeId's active source duration.
68
+ */
69
+ duration(nativeId: string): Promise<number | null>;
70
+
71
+ /**
72
+ * Resolve nativeId's current muted state.
73
+ */
74
+ isMuted(nativeId: string): Promise<boolean | null>;
75
+
76
+ /**
77
+ * Call .unload() on nativeId's player.
78
+ */
79
+ unload(nativeId: string): Promise<void>;
80
+
81
+ /**
82
+ * Resolve nativeId's current time shift value.
83
+ */
84
+ getTimeShift(nativeId: string): Promise<number | null>;
85
+
86
+ /**
87
+ * Resolve nativeId's live stream state.
88
+ */
89
+ isLive(nativeId: string): Promise<boolean | null>;
90
+
91
+ /**
92
+ * Resolve nativeId's maximum time shift value.
93
+ */
94
+ getMaxTimeShift(nativeId: string): Promise<number | null>;
95
+
96
+ /**
97
+ * Resolve nativeId's current playback speed.
98
+ */
99
+ getPlaybackSpeed(nativeId: string): Promise<number | null>;
100
+
101
+ /**
102
+ * Set playback speed for nativeId's player.
103
+ */
104
+ setPlaybackSpeed(nativeId: string, playbackSpeed: number): Promise<void>;
105
+
106
+ /**
107
+ * Resolve nativeId's current ad state.
108
+ */
109
+ isAd(nativeId: string): Promise<boolean | null>;
110
+
111
+ /**
112
+ * Set maximum selectable bitrate for nativeId's player.
113
+ */
114
+ setMaxSelectableBitrate(nativeId: string, maxBitrate: number): Promise<void>;
115
+
116
+ /**
117
+ * Resolve nativeId's AirPlay activation state (iOS only).
118
+ */
119
+ isAirPlayActive(nativeId: string): Promise<boolean | null>;
120
+
121
+ /**
122
+ * Resolve nativeId's AirPlay availability state (iOS only).
123
+ */
124
+ isAirPlayAvailable(nativeId: string): Promise<boolean | null>;
125
+
126
+ /**
127
+ * Resolve nativeId's cast availability state.
128
+ */
129
+ isCastAvailable(nativeId: string): Promise<boolean | null>;
130
+
131
+ /**
132
+ * Resolve nativeId's current casting state.
133
+ */
134
+ isCasting(nativeId: string): Promise<boolean | null>;
135
+
136
+ /**
137
+ * Initiate casting for nativeId's player.
138
+ */
139
+ castVideo(nativeId: string): Promise<void>;
140
+
141
+ /**
142
+ * Stop casting for nativeId's player.
143
+ */
144
+ castStop(nativeId: string): Promise<void>;
145
+
146
+ /**
147
+ * Skip current ad for nativeId's player.
148
+ */
149
+ skipAd(nativeId: string): Promise<void>;
150
+
151
+ /**
152
+ * Check if player can play at specified playback speed (iOS only).
153
+ */
154
+ canPlayAtPlaybackSpeed(
155
+ nativeId: string,
156
+ playbackSpeed: number
157
+ ): Promise<boolean | null>;
158
+
159
+ /**
160
+ * Creates a new Player instance using the provided config.
161
+ */
162
+ initializeWithConfig(
163
+ nativeId: string,
164
+ config?: Record<string, any>,
165
+ networkNativeId?: string,
166
+ decoderNativeId?: string
167
+ ): Promise<void>;
168
+
169
+ /**
170
+ * Creates a new analytics-enabled Player instance.
171
+ */
172
+ initializeWithAnalyticsConfig(
173
+ nativeId: string,
174
+ analyticsConfig: Record<string, any>,
175
+ config?: Record<string, any>,
176
+ networkNativeId?: string,
177
+ decoderNativeId?: string
178
+ ): Promise<void>;
179
+
180
+ /**
181
+ * Load source into the player.
182
+ * Requires SourceModule dependency.
183
+ */
184
+ loadSource(nativeId: string, sourceNativeId: string): Promise<void>;
185
+
186
+ /**
187
+ * Load offline content into the player.
188
+ */
189
+ loadOfflineContent(
190
+ nativeId: string,
191
+ offlineContentId: string,
192
+ options?: Record<string, any>
193
+ ): Promise<void>;
194
+
195
+ /**
196
+ * Get current audio track.
197
+ */
198
+ getAudioTrack(nativeId: string): Promise<any | null>;
199
+
200
+ /**
201
+ * Get available audio tracks.
202
+ */
203
+ getAvailableAudioTracks(nativeId: string): Promise<any[]>;
204
+
205
+ /**
206
+ * Set audio track.
207
+ */
208
+ setAudioTrack(nativeId: string, trackId: string): Promise<void>;
209
+
210
+ /**
211
+ * Get current subtitle track.
212
+ */
213
+ getSubtitleTrack(nativeId: string): Promise<any | null>;
214
+
215
+ /**
216
+ * Get available subtitle tracks.
217
+ */
218
+ getAvailableSubtitles(nativeId: string): Promise<any[]>;
219
+
220
+ /**
221
+ * Set subtitle track.
222
+ */
223
+ setSubtitleTrack(nativeId: string, trackId: string): Promise<void>;
224
+
225
+ /**
226
+ * Schedule an ad.
227
+ */
228
+ scheduleAd(nativeId: string, adConfig: Record<string, any>): Promise<void>;
229
+
230
+ /**
231
+ * Get thumbnail for time position.
232
+ */
233
+ getThumbnail(nativeId: string, time: number): Promise<any | null>;
234
+
235
+ /**
236
+ * Get current video quality.
237
+ */
238
+ getVideoQuality(nativeId: string): Promise<any | null>;
239
+
240
+ /**
241
+ * Get available video qualities.
242
+ */
243
+ getAvailableVideoQualities(nativeId: string): Promise<any[]>;
244
+
245
+ /**
246
+ * Set video quality.
247
+ */
248
+ setVideoQuality(nativeId: string, qualityId: string): Promise<void>;
249
+ }
250
+
251
+ export default requireNativeModule<PlayerModule>('PlayerModule');