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
@@ -1,12 +1,7 @@
1
- import React, { useRef, useEffect, useCallback } from 'react';
2
- import {
3
- Platform,
4
- UIManager,
5
- StyleSheet,
6
- findNodeHandle,
7
- NodeHandle,
8
- } from 'react-native';
9
- import { NativePlayerView } from './native';
1
+ import React, { useRef, useEffect, useState } from 'react';
2
+ import { StyleSheet } from 'react-native';
3
+ import { useKeepAwake } from 'expo-keep-awake';
4
+ import { NativePlayerView, NativePlayerViewConfig } from './native';
10
5
  import { useProxy } from '../../hooks/useProxy';
11
6
  import { FullscreenHandlerBridge } from '../../ui/fullscreenhandlerbridge';
12
7
  import { CustomMessageHandlerBridge } from '../../ui/custommessagehandlerbridge';
@@ -21,21 +16,6 @@ const styles = StyleSheet.create({
21
16
  },
22
17
  });
23
18
 
24
- /**
25
- * Dispatches any given `NativePlayerView` commands on React's `UIManager`.
26
- */
27
- function dispatch(command: string, node: NodeHandle, ...args: any[]) {
28
- const commandId =
29
- Platform.OS === 'android'
30
- ? (UIManager as any).NativePlayerView.Commands[command].toString()
31
- : UIManager.getViewManagerConfig('NativePlayerView').Commands[command];
32
- UIManager.dispatchViewManagerCommand(
33
- node,
34
- commandId,
35
- Platform.select({ ios: args, android: [node, ...args] })
36
- );
37
- }
38
-
39
19
  /**
40
20
  * Component that provides the Bitmovin Player UI and default UI handling to an attached `Player` instance.
41
21
  * This component needs a `Player` instance to work properly so make sure one is passed to it as a prop.
@@ -54,13 +34,8 @@ export function PlayerView({
54
34
  isPictureInPictureRequested = false,
55
35
  ...props
56
36
  }: PlayerViewProps) {
57
- // Workaround React Native UIManager commands not sent until UI refresh
58
- // See: https://github.com/bitmovin/bitmovin-player-react-native/issues/163
59
- // Might be fixed in recent RN version: https://github.com/microsoft/react-native-windows/issues/7543
60
- // Workaround: call a native (noop) function after a (necessary) arbitrary delay
61
- const workaroundViewManagerCommandNotSent = useCallback(() => {
62
- setTimeout(() => player.getDuration(), 100);
63
- }, [player]);
37
+ // Keep the device awake while the PlayerView is mounted
38
+ useKeepAwake();
64
39
 
65
40
  const nativeView = useRef(viewRef?.current || null);
66
41
 
@@ -69,9 +44,8 @@ export function PlayerView({
69
44
  // Style resulting from merging `baseStyle` and `props.style`.
70
45
  const nativeViewStyle = StyleSheet.flatten([styles.baseStyle, style]);
71
46
 
72
- const fullscreenBridge: React.MutableRefObject<
73
- FullscreenHandlerBridge | undefined
74
- > = useRef(undefined);
47
+ const fullscreenBridge: React.RefObject<FullscreenHandlerBridge | undefined> =
48
+ useRef(undefined);
75
49
  if (fullscreenHandler && !fullscreenBridge.current) {
76
50
  fullscreenBridge.current = new FullscreenHandlerBridge();
77
51
  }
@@ -79,7 +53,7 @@ export function PlayerView({
79
53
  fullscreenBridge.current.setFullscreenHandler(fullscreenHandler);
80
54
  }
81
55
 
82
- const customMessageHandlerBridge: React.MutableRefObject<
56
+ const customMessageHandlerBridge: React.RefObject<
83
57
  CustomMessageHandlerBridge | undefined
84
58
  > = useRef(undefined);
85
59
  if (customMessageHandler && !customMessageHandlerBridge.current) {
@@ -91,31 +65,24 @@ export function PlayerView({
91
65
  );
92
66
  }
93
67
 
68
+ const nativePlayerViewConfig: NativePlayerViewConfig = {
69
+ playerId: player.nativeId,
70
+ customMessageHandlerBridgeId: customMessageHandlerBridge.current?.nativeId,
71
+ enableBackgroundPlayback:
72
+ player.config?.playbackConfig?.isBackgroundPlaybackEnabled,
73
+ isPictureInPictureEnabledOnPlayer:
74
+ player.config?.playbackConfig?.isPictureInPictureEnabled,
75
+ userInterfaceTypeName: player.config?.styleConfig?.userInterfaceType,
76
+ playerViewConfig: config,
77
+ };
78
+
79
+ const [isPlayerInitialized, setIsPlayerInitialized] = useState(false);
80
+
94
81
  useEffect(() => {
95
- // Initialize native player instance if needed.
96
- player.initialize();
97
- // Attach native player to native `PlayerView`.
98
- const node = findNodeHandle(nativeView.current);
99
- if (node) {
100
- // For iOS this has to happen before attaching the player to the view
101
- // as we need to set the CustomMessageHandler on the BitmovinUserInterfaceConfig
102
- if (customMessageHandlerBridge.current) {
103
- dispatch(
104
- 'setCustomMessageHandlerBridgeId',
105
- node,
106
- customMessageHandlerBridge.current.nativeId
107
- );
108
- }
109
- dispatch('attachPlayer', node, player.nativeId, player.config);
110
- if (fullscreenBridge.current) {
111
- dispatch(
112
- 'attachFullscreenBridge',
113
- node,
114
- fullscreenBridge.current.nativeId
115
- );
116
- }
117
- workaroundViewManagerCommandNotSent();
118
- }
82
+ player.initialize().then(() => {
83
+ setIsPlayerInitialized(true);
84
+ // call attach player on native view if switched to AsyncFunction for RNPlayerViewExpo
85
+ });
119
86
 
120
87
  return () => {
121
88
  fullscreenBridge.current?.destroy();
@@ -123,28 +90,7 @@ export function PlayerView({
123
90
  customMessageHandlerBridge.current?.destroy();
124
91
  customMessageHandlerBridge.current = undefined;
125
92
  };
126
- }, [player, workaroundViewManagerCommandNotSent]);
127
-
128
- useEffect(() => {
129
- const node = findNodeHandle(nativeView.current);
130
- if (node) {
131
- dispatch('setFullscreen', node, isFullscreenRequested);
132
- }
133
- }, [isFullscreenRequested, nativeView]);
134
-
135
- useEffect(() => {
136
- const node = findNodeHandle(nativeView.current);
137
- if (node && scalingMode) {
138
- dispatch('setScalingMode', node, scalingMode);
139
- }
140
- }, [scalingMode, nativeView]);
141
-
142
- useEffect(() => {
143
- const node = findNodeHandle(nativeView.current);
144
- if (node) {
145
- dispatch('setPictureInPicture', node, isPictureInPictureRequested);
146
- }
147
- }, [isPictureInPictureRequested, nativeView]);
93
+ }, [player, fullscreenBridge, customMessageHandlerBridge]);
148
94
 
149
95
  useEffect(() => {
150
96
  if (viewRef) {
@@ -153,83 +99,87 @@ export function PlayerView({
153
99
  }, [viewRef, nativeView]);
154
100
 
155
101
  return (
156
- <NativePlayerView
157
- ref={nativeView}
158
- style={nativeViewStyle}
159
- fullscreenBridge={fullscreenBridge.current}
160
- customMessageHandlerBridge={customMessageHandlerBridge.current}
161
- config={config}
162
- onBmpAdBreakFinished={proxy(props.onAdBreakFinished)}
163
- onBmpAdBreakStarted={proxy(props.onAdBreakStarted)}
164
- onBmpAdClicked={proxy(props.onAdClicked)}
165
- onBmpAdError={proxy(props.onAdError)}
166
- onBmpAdFinished={proxy(props.onAdFinished)}
167
- onBmpAdManifestLoad={proxy(props.onAdManifestLoad)}
168
- onBmpAdManifestLoaded={proxy(props.onAdManifestLoaded)}
169
- onBmpAdQuartile={proxy(props.onAdQuartile)}
170
- onBmpAdScheduled={proxy(props.onAdScheduled)}
171
- onBmpAdSkipped={proxy(props.onAdSkipped)}
172
- onBmpAdStarted={proxy(props.onAdStarted)}
173
- onBmpCastAvailable={proxy(props.onCastAvailable)}
174
- onBmpCastPaused={proxy(props.onCastPaused)}
175
- onBmpCastPlaybackFinished={proxy(props.onCastPlaybackFinished)}
176
- onBmpCastPlaying={proxy(props.onCastPlaying)}
177
- onBmpCastStarted={proxy(props.onCastStarted)}
178
- onBmpCastStart={proxy(props.onCastStart)}
179
- onBmpCastStopped={proxy(props.onCastStopped)}
180
- onBmpCastTimeUpdated={proxy(props.onCastTimeUpdated)}
181
- onBmpCastWaitingForDevice={proxy(props.onCastWaitingForDevice)}
182
- onBmpCueEnter={proxy(props.onCueEnter)}
183
- onBmpCueExit={proxy(props.onCueExit)}
184
- onBmpDestroy={proxy(props.onDestroy)}
185
- onBmpEvent={proxy(props.onEvent)}
186
- onBmpFullscreenEnabled={proxy(props.onFullscreenEnabled)}
187
- onBmpFullscreenDisabled={proxy(props.onFullscreenDisabled)}
188
- onBmpFullscreenEnter={proxy(props.onFullscreenEnter)}
189
- onBmpFullscreenExit={proxy(props.onFullscreenExit)}
190
- onBmpMuted={proxy(props.onMuted)}
191
- onBmpPaused={proxy(props.onPaused)}
192
- onBmpPictureInPictureAvailabilityChanged={proxy(
193
- props.onPictureInPictureAvailabilityChanged
194
- )}
195
- onBmpPictureInPictureEnter={proxy(props.onPictureInPictureEnter)}
196
- onBmpPictureInPictureEntered={proxy(props.onPictureInPictureEntered)}
197
- onBmpPictureInPictureExit={proxy(props.onPictureInPictureExit)}
198
- onBmpPictureInPictureExited={proxy(props.onPictureInPictureExited)}
199
- onBmpPlay={proxy(props.onPlay)}
200
- onBmpPlaybackFinished={proxy(props.onPlaybackFinished)}
201
- onBmpPlaybackSpeedChanged={proxy(props.onPlaybackSpeedChanged)}
202
- onBmpPlayerActive={proxy(props.onPlayerActive)}
203
- onBmpPlayerError={proxy(props.onPlayerError)}
204
- onBmpPlayerWarning={proxy(props.onPlayerWarning)}
205
- onBmpPlaying={proxy(props.onPlaying)}
206
- onBmpReady={proxy(props.onReady)}
207
- onBmpSeek={proxy(props.onSeek)}
208
- onBmpSeeked={proxy(props.onSeeked)}
209
- onBmpTimeShift={proxy(props.onTimeShift)}
210
- onBmpTimeShifted={proxy(props.onTimeShifted)}
211
- onBmpStallStarted={proxy(props.onStallStarted)}
212
- onBmpStallEnded={proxy(props.onStallEnded)}
213
- onBmpSourceError={proxy(props.onSourceError)}
214
- onBmpSourceLoad={proxy(props.onSourceLoad)}
215
- onBmpSourceLoaded={proxy(props.onSourceLoaded)}
216
- onBmpSourceUnloaded={proxy(props.onSourceUnloaded)}
217
- onBmpSourceWarning={proxy(props.onSourceWarning)}
218
- onBmpAudioAdded={proxy(props.onAudioAdded)}
219
- onBmpAudioChanged={proxy(props.onAudioChanged)}
220
- onBmpAudioRemoved={proxy(props.onAudioRemoved)}
221
- onBmpSubtitleAdded={proxy(props.onSubtitleAdded)}
222
- onBmpSubtitleChanged={proxy(props.onSubtitleChanged)}
223
- onBmpSubtitleRemoved={proxy(props.onSubtitleRemoved)}
224
- onBmpTimeChanged={proxy(props.onTimeChanged)}
225
- onBmpUnmuted={proxy(props.onUnmuted)}
226
- onBmpVideoDownloadQualityChanged={proxy(
227
- props.onVideoDownloadQualityChanged
228
- )}
229
- onBmpVideoPlaybackQualityChanged={proxy(
230
- props.onVideoPlaybackQualityChanged
231
- )}
232
- onBmpDownloadFinished={proxy(props.onDownloadFinished)}
233
- />
102
+ isPlayerInitialized && (
103
+ <NativePlayerView
104
+ ref={nativeView}
105
+ style={nativeViewStyle}
106
+ config={nativePlayerViewConfig}
107
+ isFullscreenRequested={isFullscreenRequested}
108
+ isPictureInPictureRequested={isPictureInPictureRequested}
109
+ scalingMode={scalingMode}
110
+ fullscreenBridgeId={fullscreenBridge.current?.nativeId}
111
+ onBmpAdBreakFinished={proxy(props.onAdBreakFinished)}
112
+ onBmpAdBreakStarted={proxy(props.onAdBreakStarted)}
113
+ onBmpAdClicked={proxy(props.onAdClicked)}
114
+ onBmpAdError={proxy(props.onAdError)}
115
+ onBmpAdFinished={proxy(props.onAdFinished)}
116
+ onBmpAdManifestLoad={proxy(props.onAdManifestLoad)}
117
+ onBmpAdManifestLoaded={proxy(props.onAdManifestLoaded)}
118
+ onBmpAdQuartile={proxy(props.onAdQuartile)}
119
+ onBmpAdScheduled={proxy(props.onAdScheduled)}
120
+ onBmpAdSkipped={proxy(props.onAdSkipped)}
121
+ onBmpAdStarted={proxy(props.onAdStarted)}
122
+ onBmpCastAvailable={proxy(props.onCastAvailable)}
123
+ onBmpCastPaused={proxy(props.onCastPaused)}
124
+ onBmpCastPlaybackFinished={proxy(props.onCastPlaybackFinished)}
125
+ onBmpCastPlaying={proxy(props.onCastPlaying)}
126
+ onBmpCastStarted={proxy(props.onCastStarted)}
127
+ onBmpCastStart={proxy(props.onCastStart)}
128
+ onBmpCastStopped={proxy(props.onCastStopped)}
129
+ onBmpCastTimeUpdated={proxy(props.onCastTimeUpdated)}
130
+ onBmpCastWaitingForDevice={proxy(props.onCastWaitingForDevice)}
131
+ onBmpCueEnter={proxy(props.onCueEnter)}
132
+ onBmpCueExit={proxy(props.onCueExit)}
133
+ onBmpDestroy={proxy(props.onDestroy)}
134
+ onBmpEvent={proxy(props.onEvent)}
135
+ onBmpFullscreenEnabled={proxy(props.onFullscreenEnabled)}
136
+ onBmpFullscreenDisabled={proxy(props.onFullscreenDisabled)}
137
+ onBmpFullscreenEnter={proxy(props.onFullscreenEnter)}
138
+ onBmpFullscreenExit={proxy(props.onFullscreenExit)}
139
+ onBmpMuted={proxy(props.onMuted)}
140
+ onBmpPaused={proxy(props.onPaused)}
141
+ onBmpPictureInPictureAvailabilityChanged={proxy(
142
+ props.onPictureInPictureAvailabilityChanged
143
+ )}
144
+ onBmpPictureInPictureEnter={proxy(props.onPictureInPictureEnter)}
145
+ onBmpPictureInPictureEntered={proxy(props.onPictureInPictureEntered)}
146
+ onBmpPictureInPictureExit={proxy(props.onPictureInPictureExit)}
147
+ onBmpPictureInPictureExited={proxy(props.onPictureInPictureExited)}
148
+ onBmpPlay={proxy(props.onPlay)}
149
+ onBmpPlaybackFinished={proxy(props.onPlaybackFinished)}
150
+ onBmpPlaybackSpeedChanged={proxy(props.onPlaybackSpeedChanged)}
151
+ onBmpPlayerActive={proxy(props.onPlayerActive)}
152
+ onBmpPlayerError={proxy(props.onPlayerError)}
153
+ onBmpPlayerWarning={proxy(props.onPlayerWarning)}
154
+ onBmpPlaying={proxy(props.onPlaying)}
155
+ onBmpReady={proxy(props.onReady)}
156
+ onBmpSeek={proxy(props.onSeek)}
157
+ onBmpSeeked={proxy(props.onSeeked)}
158
+ onBmpTimeShift={proxy(props.onTimeShift)}
159
+ onBmpTimeShifted={proxy(props.onTimeShifted)}
160
+ onBmpStallStarted={proxy(props.onStallStarted)}
161
+ onBmpStallEnded={proxy(props.onStallEnded)}
162
+ onBmpSourceError={proxy(props.onSourceError)}
163
+ onBmpSourceLoad={proxy(props.onSourceLoad)}
164
+ onBmpSourceLoaded={proxy(props.onSourceLoaded)}
165
+ onBmpSourceUnloaded={proxy(props.onSourceUnloaded)}
166
+ onBmpSourceWarning={proxy(props.onSourceWarning)}
167
+ onBmpAudioAdded={proxy(props.onAudioAdded)}
168
+ onBmpAudioChanged={proxy(props.onAudioChanged)}
169
+ onBmpAudioRemoved={proxy(props.onAudioRemoved)}
170
+ onBmpSubtitleAdded={proxy(props.onSubtitleAdded)}
171
+ onBmpSubtitleChanged={proxy(props.onSubtitleChanged)}
172
+ onBmpSubtitleRemoved={proxy(props.onSubtitleRemoved)}
173
+ onBmpTimeChanged={proxy(props.onTimeChanged)}
174
+ onBmpUnmuted={proxy(props.onUnmuted)}
175
+ onBmpVideoDownloadQualityChanged={proxy(
176
+ props.onVideoDownloadQualityChanged
177
+ )}
178
+ onBmpVideoPlaybackQualityChanged={proxy(
179
+ props.onVideoPlaybackQualityChanged
180
+ )}
181
+ onBmpDownloadFinished={proxy(props.onDownloadFinished)}
182
+ />
183
+ )
234
184
  );
235
185
  }
@@ -1,22 +1,35 @@
1
- import { requireNativeComponent } from 'react-native';
1
+ import { requireNativeViewManager } from 'expo-modules-core';
2
2
  import { NativePlayerViewEvents } from './nativeEvents';
3
- import { BasePlayerViewProps } from './properties';
4
- import { FullscreenHandlerBridge } from '../../ui/fullscreenhandlerbridge';
5
- import { CustomMessageHandlerBridge } from '../../ui/custommessagehandlerbridge';
3
+ import { ViewStyle } from 'react-native';
4
+ import { ScalingMode } from '../../styleConfig';
5
+ import { PlayerViewConfig } from './playerViewConfig';
6
+
7
+ export interface NativePlayerViewConfig {
8
+ playerViewConfig?: PlayerViewConfig;
9
+ playerId: string;
10
+ customMessageHandlerBridgeId?: string;
11
+ enableBackgroundPlayback?: boolean;
12
+ isPictureInPictureEnabledOnPlayer?: boolean;
13
+ userInterfaceTypeName?: string;
14
+ }
6
15
 
7
16
  /**
8
17
  * Props type for `NativePlayerView` native component.
9
18
  * Mostly maps the event props defined in native code.
10
19
  */
11
- export interface NativePlayerViewProps
12
- extends BasePlayerViewProps,
13
- NativePlayerViewEvents {
14
- fullscreenBridge?: FullscreenHandlerBridge;
15
- customMessageHandlerBridge?: CustomMessageHandlerBridge;
20
+ export interface NativePlayerViewProps extends NativePlayerViewEvents {
21
+ ref?: React.RefObject<null>;
22
+ isFullscreenRequested?: boolean;
23
+ scalingMode?: ScalingMode;
24
+ isPictureInPictureRequested?: boolean;
25
+ style?: ViewStyle;
26
+ config: NativePlayerViewConfig;
27
+ fullscreenBridgeId?: string;
16
28
  }
17
29
 
18
30
  /**
19
31
  * Native host component bridging Bitmovin's `PlayerView`.
20
32
  */
21
- export const NativePlayerView =
22
- requireNativeComponent<NativePlayerViewProps>('NativePlayerView');
33
+ export const NativePlayerView = requireNativeViewManager<NativePlayerViewProps>(
34
+ 'RNPlayerViewManager'
35
+ );