react-native-theoplayer 1.6.1 → 1.7.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 (465) hide show
  1. package/README.md +4 -0
  2. package/android/build.gradle +70 -25
  3. package/android/local/com/theoplayer/theoplayer-sdk-android/ads-wrapper/4.3.0/ads-wrapper-4.3.0.aar +0 -0
  4. package/android/local/com/theoplayer/theoplayer-sdk-android/ads-wrapper/4.3.0/ads-wrapper-4.3.0.pom +9 -0
  5. package/android/local/com/theoplayer/theoplayer-sdk-android/ads-wrapper/maven-metadata-local.xml +13 -0
  6. package/android/src/main/java/com/theoplayer/PlayerConfigHelper.java +40 -0
  7. package/android/src/main/java/com/theoplayer/ReactTHEOplayerPackage.java +8 -3
  8. package/android/src/main/java/com/theoplayer/ReactTHEOplayerView.java +131 -28
  9. package/android/src/main/java/com/theoplayer/ReactTHEOplayerViewManager.java +14 -1
  10. package/android/src/main/java/com/theoplayer/SourceHelper.java +137 -86
  11. package/android/src/main/java/com/theoplayer/VideoEventEmitter.java +44 -12
  12. package/android/src/main/java/com/theoplayer/abr/ABRConfigurationAdapter.kt +72 -0
  13. package/android/src/main/java/com/theoplayer/ads/AdEventAdapter.java +92 -0
  14. package/android/src/main/java/com/theoplayer/ads/AdInfo.java +168 -0
  15. package/android/src/main/java/com/theoplayer/ads/AdsModule.java +152 -0
  16. package/android/src/main/java/com/theoplayer/drm/ContentProtectionAdapter.kt +143 -0
  17. package/android/src/main/java/com/theoplayer/drm/ContentProtectionModule.kt +269 -0
  18. package/android/src/main/java/com/theoplayer/drm/KeySystemAdapter.kt +22 -0
  19. package/android/src/main/java/com/theoplayer/drm/ProxyContentProtectionIntegration.kt +33 -0
  20. package/android/src/main/java/com/theoplayer/drm/ProxyContentProtectionIntegrationFactory.kt +19 -0
  21. package/android/src/main/java/com/theoplayer/drm/RequestMethodAdapter.kt +28 -0
  22. package/android/src/main/java/com/theoplayer/track/QualityListAdapter.java +54 -0
  23. package/android/src/main/java/com/theoplayer/track/QualityListFilter.java +40 -0
  24. package/android/src/main/java/com/theoplayer/track/TrackListInfo.java +10 -2
  25. package/android/src/main/java/com/theoplayer/util/TypeUtils.kt +17 -0
  26. package/android/src/main/java/com/theoplayer/util/ViewResolver.java +42 -0
  27. package/ios/THEOplayerRCTAdAggregator.swift +158 -0
  28. package/ios/THEOplayerRCTAdsAPI.swift +296 -0
  29. package/ios/THEOplayerRCTBridge.m +65 -0
  30. package/ios/THEOplayerRCTContentProtectionAPI.swift +359 -0
  31. package/ios/THEOplayerRCTContentProtectionAggregator.swift +119 -0
  32. package/ios/THEOplayerRCTDebug.swift +11 -5
  33. package/ios/THEOplayerRCTMetadataAggregator.swift +1 -1
  34. package/ios/THEOplayerRCTNetworkUtils.swift +54 -0
  35. package/ios/THEOplayerRCTProxyContentProtectionIntegration.swift +155 -0
  36. package/ios/THEOplayerRCTProxyContentProtectionIntegrationFactory.swift +32 -0
  37. package/ios/THEOplayerRCTSourceDescriptionBuilder.swift +223 -30
  38. package/ios/THEOplayerRCTTypeUtils.swift +18 -0
  39. package/ios/THEOplayerRCTView.swift +109 -49
  40. package/ios/THEOplayerRCTViewAdEventHandler.swift +238 -0
  41. package/ios/{THEOplayerRCTViewEventHandler.swift → THEOplayerRCTViewMainEventHandler.swift} +7 -119
  42. package/ios/THEOplayerRCTViewTextTrackEventHandler.swift +134 -0
  43. package/ios/Theoplayer-Bridging-Header.h +3 -1
  44. package/ios/custom/Frameworks/ios/put_custom_ios_xcframework_here.txt +2 -0
  45. package/ios/custom/react-native-theoplayer_custom_ios.podspec +36 -0
  46. package/ios/custom/theofeatures.sh +14 -0
  47. package/lib/commonjs/api/THEOplayerView.js.map +1 -1
  48. package/lib/commonjs/api/abr/ABRConfiguration.js +2 -0
  49. package/lib/commonjs/api/abr/ABRConfiguration.js.map +1 -0
  50. package/lib/commonjs/api/abr/barrel.js +19 -0
  51. package/lib/commonjs/api/abr/barrel.js.map +1 -0
  52. package/lib/commonjs/api/ads/Ad.js +6 -0
  53. package/lib/commonjs/api/ads/Ad.js.map +1 -0
  54. package/lib/commonjs/api/ads/AdBreak.js +6 -0
  55. package/lib/commonjs/api/ads/AdBreak.js.map +1 -0
  56. package/lib/commonjs/api/ads/AdsAPI.js +6 -0
  57. package/lib/commonjs/api/ads/AdsAPI.js.map +1 -0
  58. package/lib/commonjs/api/ads/AdsConfiguration.js +6 -0
  59. package/lib/commonjs/api/ads/AdsConfiguration.js.map +1 -0
  60. package/lib/commonjs/api/ads/CompanionAd.js +2 -0
  61. package/lib/commonjs/api/ads/CompanionAd.js.map +1 -0
  62. package/lib/commonjs/api/ads/GoogleDai.js +2 -0
  63. package/lib/commonjs/api/ads/GoogleDai.js.map +1 -0
  64. package/lib/commonjs/api/ads/GoogleImaAd.js +6 -0
  65. package/lib/commonjs/api/ads/GoogleImaAd.js.map +1 -0
  66. package/lib/commonjs/api/ads/GoogleImaConfiguration.js +2 -0
  67. package/lib/commonjs/api/ads/GoogleImaConfiguration.js.map +1 -0
  68. package/lib/commonjs/api/ads/barrel.js +110 -0
  69. package/lib/commonjs/api/ads/barrel.js.map +1 -0
  70. package/lib/commonjs/api/barrel.js +58 -6
  71. package/lib/commonjs/api/barrel.js.map +1 -1
  72. package/lib/commonjs/api/config/PlayerConfiguration.js +4 -0
  73. package/lib/commonjs/api/config/PlayerConfiguration.js.map +1 -1
  74. package/lib/commonjs/api/drm/ContentProtectionAPI.js +6 -0
  75. package/lib/commonjs/api/drm/ContentProtectionAPI.js.map +1 -0
  76. package/lib/commonjs/api/drm/ContentProtectionIntegration.js +6 -0
  77. package/lib/commonjs/api/drm/ContentProtectionIntegration.js.map +1 -0
  78. package/lib/commonjs/api/drm/ContentProtectionIntegrationFactory.js +6 -0
  79. package/lib/commonjs/api/drm/ContentProtectionIntegrationFactory.js.map +1 -0
  80. package/lib/commonjs/api/drm/ContentProtectionRequest.js +2 -0
  81. package/lib/commonjs/api/drm/ContentProtectionRequest.js.map +1 -0
  82. package/lib/commonjs/api/drm/ContentProtectionResponse.js +6 -0
  83. package/lib/commonjs/api/drm/ContentProtectionResponse.js.map +1 -0
  84. package/lib/commonjs/api/drm/barrel.js +71 -0
  85. package/lib/commonjs/api/drm/barrel.js.map +1 -0
  86. package/lib/commonjs/api/event/AdEvent.js +89 -0
  87. package/lib/commonjs/api/event/AdEvent.js.map +1 -0
  88. package/lib/commonjs/api/event/barrel.js +13 -0
  89. package/lib/commonjs/api/event/barrel.js.map +1 -1
  90. package/lib/commonjs/api/source/SourceDescription.js.map +1 -1
  91. package/lib/commonjs/api/source/ads/FreeWheelAdDescription.js +6 -0
  92. package/lib/commonjs/api/source/ads/FreeWheelAdDescription.js.map +1 -0
  93. package/lib/commonjs/api/source/ads/IMAAdDescription.js +6 -0
  94. package/lib/commonjs/api/source/ads/IMAAdDescription.js.map +1 -0
  95. package/lib/commonjs/api/source/ads/SpotXAdDescription.js +6 -0
  96. package/lib/commonjs/api/source/ads/SpotXAdDescription.js.map +1 -0
  97. package/lib/commonjs/api/source/ads/THEOplayerAdDescription.js +6 -0
  98. package/lib/commonjs/api/source/ads/THEOplayerAdDescription.js.map +1 -0
  99. package/lib/commonjs/api/source/ads/barrel.js +84 -0
  100. package/lib/commonjs/api/source/ads/barrel.js.map +1 -0
  101. package/lib/commonjs/api/source/ads/ssai/GoogleDAIConfiguration.js +6 -0
  102. package/lib/commonjs/api/source/ads/ssai/GoogleDAIConfiguration.js.map +1 -0
  103. package/lib/commonjs/api/source/ads/ssai/ImagineServerSideAdInsertionConfiguration.js +6 -0
  104. package/lib/commonjs/api/source/ads/ssai/ImagineServerSideAdInsertionConfiguration.js.map +1 -0
  105. package/lib/commonjs/api/source/ads/ssai/ServerSideAdInsertionConfiguration.js +6 -0
  106. package/lib/commonjs/api/source/ads/ssai/ServerSideAdInsertionConfiguration.js.map +1 -0
  107. package/lib/commonjs/api/source/ads/ssai/YospaceServerSideAdInsertionConfiguration.js +6 -0
  108. package/lib/commonjs/api/source/ads/ssai/YospaceServerSideAdInsertionConfiguration.js.map +1 -0
  109. package/lib/commonjs/api/source/ads/ssai/barrel.js +58 -0
  110. package/lib/commonjs/api/source/ads/ssai/barrel.js.map +1 -0
  111. package/lib/commonjs/api/source/barrel.js +16 -3
  112. package/lib/commonjs/api/source/barrel.js.map +1 -1
  113. package/lib/commonjs/api/source/drm/DRMConfiguration.js.map +1 -1
  114. package/lib/commonjs/api/track/MediaTrack.js +29 -0
  115. package/lib/commonjs/api/track/MediaTrack.js.map +1 -1
  116. package/lib/commonjs/api/utils/TypeUtils.js +62 -0
  117. package/lib/commonjs/api/utils/TypeUtils.js.map +1 -0
  118. package/lib/commonjs/api/utils/barrel.js +19 -0
  119. package/lib/commonjs/api/utils/barrel.js.map +1 -0
  120. package/lib/commonjs/index.js +10 -1
  121. package/lib/commonjs/index.js.map +1 -1
  122. package/lib/commonjs/internal/THEOplayerView.js +42 -3
  123. package/lib/commonjs/internal/THEOplayerView.js.map +1 -1
  124. package/lib/commonjs/internal/THEOplayerView.web.js +41 -2
  125. package/lib/commonjs/internal/THEOplayerView.web.js.map +1 -1
  126. package/lib/commonjs/internal/ads/THEOplayerNativeAdsAPI.js +54 -0
  127. package/lib/commonjs/internal/ads/THEOplayerNativeAdsAPI.js.map +1 -0
  128. package/lib/commonjs/internal/ads/THEOplayerNativeGoogleDAI.js +34 -0
  129. package/lib/commonjs/internal/ads/THEOplayerNativeGoogleDAI.js.map +1 -0
  130. package/lib/commonjs/internal/ads/THEOplayerWebAdsAPI.js +78 -0
  131. package/lib/commonjs/internal/ads/THEOplayerWebAdsAPI.js.map +1 -0
  132. package/lib/commonjs/internal/ads/THEOplayerWebGoogleDAI.js +32 -0
  133. package/lib/commonjs/internal/ads/THEOplayerWebGoogleDAI.js.map +1 -0
  134. package/lib/commonjs/internal/drm/ContentProtectionRegistry.js +214 -0
  135. package/lib/commonjs/internal/drm/ContentProtectionRegistry.js.map +1 -0
  136. package/lib/commonjs/internal/drm/ContentProtectionRegistry.web.js +20 -0
  137. package/lib/commonjs/internal/drm/ContentProtectionRegistry.web.js.map +1 -0
  138. package/lib/commonjs/internal/drm/NativeCertificateRequest.js +41 -0
  139. package/lib/commonjs/internal/drm/NativeCertificateRequest.js.map +1 -0
  140. package/lib/commonjs/internal/drm/NativeCertificateResponse.js +41 -0
  141. package/lib/commonjs/internal/drm/NativeCertificateResponse.js.map +1 -0
  142. package/lib/commonjs/internal/drm/NativeContentProtectionEvent.js +2 -0
  143. package/lib/commonjs/internal/drm/NativeContentProtectionEvent.js.map +1 -0
  144. package/lib/commonjs/internal/drm/NativeLicenseRequest.js +44 -0
  145. package/lib/commonjs/internal/drm/NativeLicenseRequest.js.map +1 -0
  146. package/lib/commonjs/internal/drm/NativeLicenseResponse.js +41 -0
  147. package/lib/commonjs/internal/drm/NativeLicenseResponse.js.map +1 -0
  148. package/lib/commonjs/internal/utils/TypeUtils.js +41 -0
  149. package/lib/commonjs/internal/utils/TypeUtils.js.map +1 -0
  150. package/lib/commonjs/internal/web/TrackUtils.js +19 -0
  151. package/lib/commonjs/internal/web/TrackUtils.js.map +1 -1
  152. package/lib/module/api/THEOplayerView.js.map +1 -1
  153. package/lib/module/api/abr/ABRConfiguration.js +2 -0
  154. package/lib/module/api/abr/ABRConfiguration.js.map +1 -0
  155. package/lib/module/api/abr/barrel.js +2 -0
  156. package/lib/module/api/abr/barrel.js.map +1 -0
  157. package/lib/module/api/ads/Ad.js +2 -0
  158. package/lib/module/api/ads/Ad.js.map +1 -0
  159. package/lib/module/api/ads/AdBreak.js +2 -0
  160. package/lib/module/api/ads/AdBreak.js.map +1 -0
  161. package/lib/module/api/ads/AdsAPI.js +2 -0
  162. package/lib/module/api/ads/AdsAPI.js.map +1 -0
  163. package/lib/module/api/ads/AdsConfiguration.js +2 -0
  164. package/lib/module/api/ads/AdsConfiguration.js.map +1 -0
  165. package/lib/module/api/ads/CompanionAd.js +2 -0
  166. package/lib/module/api/ads/CompanionAd.js.map +1 -0
  167. package/lib/module/api/ads/GoogleDai.js +2 -0
  168. package/lib/module/api/ads/GoogleDai.js.map +1 -0
  169. package/lib/module/api/ads/GoogleImaAd.js +2 -0
  170. package/lib/module/api/ads/GoogleImaAd.js.map +1 -0
  171. package/lib/module/api/ads/GoogleImaConfiguration.js +2 -0
  172. package/lib/module/api/ads/GoogleImaConfiguration.js.map +1 -0
  173. package/lib/module/api/ads/barrel.js +9 -0
  174. package/lib/module/api/ads/barrel.js.map +1 -0
  175. package/lib/module/api/barrel.js +5 -1
  176. package/lib/module/api/barrel.js.map +1 -1
  177. package/lib/module/api/config/PlayerConfiguration.js +1 -1
  178. package/lib/module/api/config/PlayerConfiguration.js.map +1 -1
  179. package/lib/module/api/drm/ContentProtectionAPI.js +2 -0
  180. package/lib/module/api/drm/ContentProtectionAPI.js.map +1 -0
  181. package/lib/module/api/drm/ContentProtectionIntegration.js +2 -0
  182. package/lib/module/api/drm/ContentProtectionIntegration.js.map +1 -0
  183. package/lib/module/api/drm/ContentProtectionIntegrationFactory.js +2 -0
  184. package/lib/module/api/drm/ContentProtectionIntegrationFactory.js.map +1 -0
  185. package/lib/module/api/drm/ContentProtectionRequest.js +2 -0
  186. package/lib/module/api/drm/ContentProtectionRequest.js.map +1 -0
  187. package/lib/module/api/drm/ContentProtectionResponse.js +2 -0
  188. package/lib/module/api/drm/ContentProtectionResponse.js.map +1 -0
  189. package/lib/module/api/drm/barrel.js +6 -0
  190. package/lib/module/api/drm/barrel.js.map +1 -0
  191. package/lib/module/api/event/AdEvent.js +82 -0
  192. package/lib/module/api/event/AdEvent.js.map +1 -0
  193. package/lib/module/api/event/barrel.js +1 -0
  194. package/lib/module/api/event/barrel.js.map +1 -1
  195. package/lib/module/api/source/SourceDescription.js.map +1 -1
  196. package/lib/module/api/source/ads/FreeWheelAdDescription.js +2 -0
  197. package/lib/module/api/source/ads/FreeWheelAdDescription.js.map +1 -0
  198. package/lib/module/api/source/ads/IMAAdDescription.js +2 -0
  199. package/lib/module/api/source/ads/IMAAdDescription.js.map +1 -0
  200. package/lib/module/api/source/ads/SpotXAdDescription.js +2 -0
  201. package/lib/module/api/source/ads/SpotXAdDescription.js.map +1 -0
  202. package/lib/module/api/source/ads/THEOplayerAdDescription.js +2 -0
  203. package/lib/module/api/source/ads/THEOplayerAdDescription.js.map +1 -0
  204. package/lib/module/api/source/ads/barrel.js +7 -0
  205. package/lib/module/api/source/ads/barrel.js.map +1 -0
  206. package/lib/module/api/source/ads/ssai/GoogleDAIConfiguration.js +2 -0
  207. package/lib/module/api/source/ads/ssai/GoogleDAIConfiguration.js.map +1 -0
  208. package/lib/module/api/source/ads/ssai/ImagineServerSideAdInsertionConfiguration.js +2 -0
  209. package/lib/module/api/source/ads/ssai/ImagineServerSideAdInsertionConfiguration.js.map +1 -0
  210. package/lib/module/api/source/ads/ssai/ServerSideAdInsertionConfiguration.js +2 -0
  211. package/lib/module/api/source/ads/ssai/ServerSideAdInsertionConfiguration.js.map +1 -0
  212. package/lib/module/api/source/ads/ssai/YospaceServerSideAdInsertionConfiguration.js +2 -0
  213. package/lib/module/api/source/ads/ssai/YospaceServerSideAdInsertionConfiguration.js.map +1 -0
  214. package/lib/module/api/source/ads/ssai/barrel.js +5 -0
  215. package/lib/module/api/source/ads/ssai/barrel.js.map +1 -0
  216. package/lib/module/api/source/barrel.js +1 -0
  217. package/lib/module/api/source/barrel.js.map +1 -1
  218. package/lib/module/api/source/drm/DRMConfiguration.js.map +1 -1
  219. package/lib/module/api/track/MediaTrack.js +23 -1
  220. package/lib/module/api/track/MediaTrack.js.map +1 -1
  221. package/lib/module/api/utils/TypeUtils.js +36 -0
  222. package/lib/module/api/utils/TypeUtils.js.map +1 -0
  223. package/lib/module/api/utils/barrel.js +2 -0
  224. package/lib/module/api/utils/barrel.js.map +1 -0
  225. package/lib/module/index.js +1 -0
  226. package/lib/module/index.js.map +1 -1
  227. package/lib/module/internal/THEOplayerView.js +40 -3
  228. package/lib/module/internal/THEOplayerView.js.map +1 -1
  229. package/lib/module/internal/THEOplayerView.web.js +42 -4
  230. package/lib/module/internal/THEOplayerView.web.js.map +1 -1
  231. package/lib/module/internal/ads/THEOplayerNativeAdsAPI.js +43 -0
  232. package/lib/module/internal/ads/THEOplayerNativeAdsAPI.js.map +1 -0
  233. package/lib/module/internal/ads/THEOplayerNativeGoogleDAI.js +24 -0
  234. package/lib/module/internal/ads/THEOplayerNativeGoogleDAI.js.map +1 -0
  235. package/lib/module/internal/ads/THEOplayerWebAdsAPI.js +68 -0
  236. package/lib/module/internal/ads/THEOplayerWebAdsAPI.js.map +1 -0
  237. package/lib/module/internal/ads/THEOplayerWebGoogleDAI.js +23 -0
  238. package/lib/module/internal/ads/THEOplayerWebGoogleDAI.js.map +1 -0
  239. package/lib/module/internal/drm/ContentProtectionRegistry.js +188 -0
  240. package/lib/module/internal/drm/ContentProtectionRegistry.js.map +1 -0
  241. package/lib/module/internal/drm/ContentProtectionRegistry.web.js +9 -0
  242. package/lib/module/internal/drm/ContentProtectionRegistry.web.js.map +1 -0
  243. package/lib/module/internal/drm/NativeCertificateRequest.js +31 -0
  244. package/lib/module/internal/drm/NativeCertificateRequest.js.map +1 -0
  245. package/lib/module/internal/drm/NativeCertificateResponse.js +30 -0
  246. package/lib/module/internal/drm/NativeCertificateResponse.js.map +1 -0
  247. package/lib/module/internal/drm/NativeContentProtectionEvent.js +2 -0
  248. package/lib/module/internal/drm/NativeContentProtectionEvent.js.map +1 -0
  249. package/lib/module/internal/drm/NativeLicenseRequest.js +34 -0
  250. package/lib/module/internal/drm/NativeLicenseRequest.js.map +1 -0
  251. package/lib/module/internal/drm/NativeLicenseResponse.js +30 -0
  252. package/lib/module/internal/drm/NativeLicenseResponse.js.map +1 -0
  253. package/lib/module/internal/utils/TypeUtils.js +24 -0
  254. package/lib/module/internal/utils/TypeUtils.js.map +1 -0
  255. package/lib/module/internal/web/TrackUtils.js +15 -0
  256. package/lib/module/internal/web/TrackUtils.js.map +1 -1
  257. package/lib/typescript/lib/commonjs/api/abr/ABRConfiguration.d.ts +0 -0
  258. package/lib/typescript/lib/commonjs/api/abr/barrel.d.ts +1 -0
  259. package/lib/typescript/lib/commonjs/api/ads/Ad.d.ts +1 -0
  260. package/lib/typescript/lib/commonjs/api/ads/AdBreak.d.ts +1 -0
  261. package/lib/typescript/lib/commonjs/api/ads/AdsAPI.d.ts +1 -0
  262. package/lib/typescript/lib/commonjs/api/ads/AdsConfiguration.d.ts +1 -0
  263. package/lib/typescript/lib/commonjs/api/ads/CompanionAd.d.ts +0 -0
  264. package/lib/typescript/lib/commonjs/api/ads/GoogleDai.d.ts +0 -0
  265. package/lib/typescript/lib/commonjs/api/ads/GoogleImaAd.d.ts +1 -0
  266. package/lib/typescript/lib/commonjs/api/ads/GoogleImaConfiguration.d.ts +0 -0
  267. package/lib/typescript/lib/commonjs/api/ads/barrel.d.ts +1 -0
  268. package/lib/typescript/lib/commonjs/api/config/PlayerConfiguration.d.ts +1 -0
  269. package/lib/typescript/lib/commonjs/api/drm/ContentProtectionAPI.d.ts +1 -0
  270. package/lib/typescript/lib/commonjs/api/drm/ContentProtectionIntegration.d.ts +1 -0
  271. package/lib/typescript/lib/commonjs/api/drm/ContentProtectionIntegrationFactory.d.ts +1 -0
  272. package/lib/typescript/lib/commonjs/api/drm/ContentProtectionRequest.d.ts +0 -0
  273. package/lib/typescript/lib/commonjs/api/drm/ContentProtectionResponse.d.ts +1 -0
  274. package/lib/typescript/lib/commonjs/api/drm/barrel.d.ts +1 -0
  275. package/lib/typescript/lib/commonjs/api/event/AdEvent.d.ts +2 -0
  276. package/lib/typescript/lib/commonjs/api/source/ads/FreeWheelAdDescription.d.ts +1 -0
  277. package/lib/typescript/lib/commonjs/api/source/ads/IMAAdDescription.d.ts +1 -0
  278. package/lib/typescript/lib/commonjs/api/source/ads/SpotXAdDescription.d.ts +1 -0
  279. package/lib/typescript/lib/commonjs/api/source/ads/THEOplayerAdDescription.d.ts +1 -0
  280. package/lib/typescript/lib/commonjs/api/source/ads/barrel.d.ts +1 -0
  281. package/lib/typescript/lib/commonjs/api/source/ads/ssai/GoogleDAIConfiguration.d.ts +1 -0
  282. package/lib/typescript/lib/commonjs/api/source/ads/ssai/ImagineServerSideAdInsertionConfiguration.d.ts +1 -0
  283. package/lib/typescript/lib/commonjs/api/source/ads/ssai/ServerSideAdInsertionConfiguration.d.ts +1 -0
  284. package/lib/typescript/lib/commonjs/api/source/ads/ssai/YospaceServerSideAdInsertionConfiguration.d.ts +1 -0
  285. package/lib/typescript/lib/commonjs/api/source/ads/ssai/barrel.d.ts +1 -0
  286. package/lib/typescript/lib/commonjs/api/track/MediaTrack.d.ts +8 -0
  287. package/lib/typescript/lib/commonjs/api/utils/TypeUtils.d.ts +13 -0
  288. package/lib/typescript/lib/commonjs/api/utils/barrel.d.ts +1 -0
  289. package/lib/typescript/lib/commonjs/index.d.ts +2 -0
  290. package/lib/typescript/lib/commonjs/internal/THEOplayerView.d.ts +5 -0
  291. package/lib/typescript/lib/commonjs/internal/THEOplayerView.web.d.ts +4 -0
  292. package/lib/typescript/lib/commonjs/internal/ads/THEOplayerNativeAdsAPI.d.ts +14 -0
  293. package/lib/typescript/lib/commonjs/internal/ads/THEOplayerNativeGoogleDAI.d.ts +9 -0
  294. package/lib/typescript/lib/commonjs/internal/ads/THEOplayerWebAdsAPI.d.ts +14 -0
  295. package/lib/typescript/lib/commonjs/internal/ads/THEOplayerWebGoogleDAI.d.ts +9 -0
  296. package/lib/typescript/lib/commonjs/internal/drm/ContentProtectionRegistry.d.ts +14 -0
  297. package/lib/typescript/lib/commonjs/internal/drm/ContentProtectionRegistry.web.d.ts +5 -0
  298. package/lib/typescript/lib/commonjs/internal/drm/NativeCertificateRequest.d.ts +18 -0
  299. package/lib/typescript/lib/commonjs/internal/drm/NativeCertificateResponse.d.ts +21 -0
  300. package/lib/typescript/lib/commonjs/internal/drm/NativeContentProtectionEvent.d.ts +0 -0
  301. package/lib/typescript/lib/commonjs/internal/drm/NativeLicenseRequest.d.ts +20 -0
  302. package/lib/typescript/lib/commonjs/internal/drm/NativeLicenseResponse.d.ts +22 -0
  303. package/lib/typescript/lib/commonjs/internal/utils/TypeUtils.d.ts +6 -0
  304. package/lib/typescript/lib/commonjs/internal/web/TrackUtils.d.ts +2 -0
  305. package/lib/typescript/lib/module/api/abr/ABRConfiguration.d.ts +0 -0
  306. package/lib/typescript/lib/module/api/abr/barrel.d.ts +1 -0
  307. package/lib/typescript/lib/module/api/ads/Ad.d.ts +1 -0
  308. package/lib/typescript/lib/module/api/ads/AdBreak.d.ts +1 -0
  309. package/lib/typescript/lib/module/api/ads/AdsAPI.d.ts +1 -0
  310. package/lib/typescript/lib/module/api/ads/AdsConfiguration.d.ts +1 -0
  311. package/lib/typescript/lib/module/api/ads/CompanionAd.d.ts +0 -0
  312. package/lib/typescript/lib/module/api/ads/GoogleDai.d.ts +0 -0
  313. package/lib/typescript/lib/module/api/ads/GoogleImaAd.d.ts +1 -0
  314. package/lib/typescript/lib/module/api/ads/GoogleImaConfiguration.d.ts +0 -0
  315. package/lib/typescript/lib/module/api/ads/barrel.d.ts +5 -0
  316. package/lib/typescript/lib/module/api/barrel.d.ts +5 -1
  317. package/lib/typescript/lib/module/api/config/PlayerConfiguration.d.ts +1 -0
  318. package/lib/typescript/lib/module/api/config/barrel.d.ts +1 -1
  319. package/lib/typescript/lib/module/api/drm/ContentProtectionAPI.d.ts +1 -0
  320. package/lib/typescript/lib/module/api/drm/ContentProtectionIntegration.d.ts +1 -0
  321. package/lib/typescript/lib/module/api/drm/ContentProtectionIntegrationFactory.d.ts +1 -0
  322. package/lib/typescript/lib/module/api/drm/ContentProtectionRequest.d.ts +0 -0
  323. package/lib/typescript/lib/module/api/drm/ContentProtectionResponse.d.ts +1 -0
  324. package/lib/typescript/lib/module/api/drm/barrel.d.ts +4 -0
  325. package/lib/typescript/lib/module/api/event/AdEvent.d.ts +1 -0
  326. package/lib/typescript/lib/module/api/event/barrel.d.ts +1 -0
  327. package/lib/typescript/lib/module/api/source/ads/FreeWheelAdDescription.d.ts +1 -0
  328. package/lib/typescript/lib/module/api/source/ads/IMAAdDescription.d.ts +1 -0
  329. package/lib/typescript/lib/module/api/source/ads/SpotXAdDescription.d.ts +1 -0
  330. package/lib/typescript/lib/module/api/source/ads/THEOplayerAdDescription.d.ts +1 -0
  331. package/lib/typescript/lib/module/api/source/ads/barrel.d.ts +5 -0
  332. package/lib/typescript/lib/module/api/source/ads/ssai/GoogleDAIConfiguration.d.ts +1 -0
  333. package/lib/typescript/lib/module/api/source/ads/ssai/ImagineServerSideAdInsertionConfiguration.d.ts +1 -0
  334. package/lib/typescript/lib/module/api/source/ads/ssai/ServerSideAdInsertionConfiguration.d.ts +1 -0
  335. package/lib/typescript/lib/module/api/source/ads/ssai/YospaceServerSideAdInsertionConfiguration.d.ts +1 -0
  336. package/lib/typescript/lib/module/api/source/ads/ssai/barrel.d.ts +4 -0
  337. package/lib/typescript/lib/module/api/source/barrel.d.ts +1 -0
  338. package/lib/typescript/lib/module/api/track/MediaTrack.d.ts +8 -1
  339. package/lib/typescript/lib/module/api/utils/TypeUtils.d.ts +12 -0
  340. package/lib/typescript/lib/module/api/utils/barrel.d.ts +1 -0
  341. package/lib/typescript/lib/module/index.d.ts +1 -0
  342. package/lib/typescript/lib/module/internal/THEOplayerView.d.ts +8 -0
  343. package/lib/typescript/lib/module/internal/THEOplayerView.web.d.ts +4 -0
  344. package/lib/typescript/lib/module/internal/ads/THEOplayerNativeAdsAPI.d.ts +13 -0
  345. package/lib/typescript/lib/module/internal/ads/THEOplayerNativeGoogleDAI.d.ts +8 -0
  346. package/lib/typescript/lib/module/internal/ads/THEOplayerWebAdsAPI.d.ts +13 -0
  347. package/lib/typescript/lib/module/internal/ads/THEOplayerWebGoogleDAI.d.ts +8 -0
  348. package/lib/typescript/lib/module/internal/drm/ContentProtectionRegistry.d.ts +13 -0
  349. package/lib/typescript/lib/module/internal/drm/ContentProtectionRegistry.web.d.ts +4 -0
  350. package/lib/typescript/lib/module/internal/drm/NativeCertificateRequest.d.ts +17 -0
  351. package/lib/typescript/lib/module/internal/drm/NativeCertificateResponse.d.ts +20 -0
  352. package/lib/typescript/lib/module/internal/drm/NativeContentProtectionEvent.d.ts +0 -0
  353. package/lib/typescript/lib/module/internal/drm/NativeLicenseRequest.d.ts +19 -0
  354. package/lib/typescript/lib/module/internal/drm/NativeLicenseResponse.d.ts +21 -0
  355. package/lib/typescript/lib/module/internal/utils/TypeUtils.d.ts +5 -0
  356. package/lib/typescript/lib/module/internal/web/TrackUtils.d.ts +2 -0
  357. package/lib/typescript/src/api/THEOplayerView.d.ts +25 -4
  358. package/lib/typescript/src/api/abr/ABRConfiguration.d.ts +95 -0
  359. package/lib/typescript/src/api/abr/barrel.d.ts +1 -0
  360. package/lib/typescript/src/api/ads/Ad.d.ts +238 -0
  361. package/lib/typescript/src/api/ads/AdBreak.d.ts +39 -0
  362. package/lib/typescript/src/api/ads/AdsAPI.d.ts +46 -0
  363. package/lib/typescript/src/api/ads/AdsConfiguration.d.ts +69 -0
  364. package/lib/typescript/src/api/ads/CompanionAd.d.ts +59 -0
  365. package/lib/typescript/src/api/ads/GoogleDai.d.ts +29 -0
  366. package/lib/typescript/src/api/ads/GoogleImaAd.d.ts +78 -0
  367. package/lib/typescript/src/api/ads/GoogleImaConfiguration.d.ts +13 -0
  368. package/lib/typescript/src/api/ads/barrel.d.ts +8 -0
  369. package/lib/typescript/src/api/barrel.d.ts +5 -1
  370. package/lib/typescript/src/api/config/PlayerConfiguration.d.ts +5 -0
  371. package/lib/typescript/src/api/drm/ContentProtectionAPI.d.ts +5 -0
  372. package/lib/typescript/src/api/drm/ContentProtectionIntegration.d.ts +86 -0
  373. package/lib/typescript/src/api/drm/ContentProtectionIntegrationFactory.d.ts +15 -0
  374. package/lib/typescript/src/api/drm/ContentProtectionRequest.d.ts +56 -0
  375. package/lib/typescript/src/api/drm/ContentProtectionResponse.d.ts +56 -0
  376. package/lib/typescript/src/api/drm/barrel.d.ts +5 -0
  377. package/lib/typescript/src/api/event/AdEvent.d.ts +13 -0
  378. package/lib/typescript/src/api/event/barrel.d.ts +1 -0
  379. package/lib/typescript/src/api/source/SourceDescription.d.ts +8 -0
  380. package/lib/typescript/src/api/source/ads/FreeWheelAdDescription.d.ts +85 -0
  381. package/lib/typescript/src/api/source/ads/IMAAdDescription.d.ts +25 -0
  382. package/lib/typescript/src/api/source/ads/SpotXAdDescription.d.ts +115 -0
  383. package/lib/typescript/src/api/source/ads/THEOplayerAdDescription.d.ts +32 -0
  384. package/lib/typescript/src/api/source/ads/barrel.d.ts +6 -0
  385. package/lib/typescript/src/api/source/ads/ssai/GoogleDAIConfiguration.d.ts +130 -0
  386. package/lib/typescript/src/api/source/ads/ssai/ImagineServerSideAdInsertionConfiguration.d.ts +27 -0
  387. package/lib/typescript/src/api/source/ads/ssai/ServerSideAdInsertionConfiguration.d.ts +26 -0
  388. package/lib/typescript/src/api/source/ads/ssai/YospaceServerSideAdInsertionConfiguration.d.ts +46 -0
  389. package/lib/typescript/src/api/source/ads/ssai/barrel.d.ts +4 -0
  390. package/lib/typescript/src/api/source/barrel.d.ts +1 -0
  391. package/lib/typescript/src/api/source/drm/DRMConfiguration.d.ts +0 -30
  392. package/lib/typescript/src/api/track/MediaTrack.d.ts +5 -2
  393. package/lib/typescript/src/api/utils/TypeUtils.d.ts +20 -0
  394. package/lib/typescript/src/api/utils/barrel.d.ts +1 -0
  395. package/lib/typescript/src/index.d.ts +1 -0
  396. package/lib/typescript/src/internal/THEOplayerView.d.ts +10 -4
  397. package/lib/typescript/src/internal/THEOplayerView.web.d.ts +7 -2
  398. package/lib/typescript/src/internal/ads/THEOplayerNativeAdsAPI.d.ts +17 -0
  399. package/lib/typescript/src/internal/ads/THEOplayerNativeGoogleDAI.d.ts +10 -0
  400. package/lib/typescript/src/internal/ads/THEOplayerWebAdsAPI.d.ts +15 -0
  401. package/lib/typescript/src/internal/ads/THEOplayerWebGoogleDAI.d.ts +10 -0
  402. package/lib/typescript/src/internal/drm/ContentProtectionRegistry.d.ts +19 -0
  403. package/lib/typescript/src/internal/drm/ContentProtectionRegistry.web.d.ts +5 -0
  404. package/lib/typescript/src/internal/drm/NativeCertificateRequest.d.ts +13 -0
  405. package/lib/typescript/src/internal/drm/NativeCertificateResponse.d.ts +18 -0
  406. package/lib/typescript/src/internal/drm/NativeContentProtectionEvent.d.ts +5 -0
  407. package/lib/typescript/src/internal/drm/NativeLicenseRequest.d.ts +14 -0
  408. package/lib/typescript/src/internal/drm/NativeLicenseResponse.d.ts +18 -0
  409. package/lib/typescript/src/internal/utils/TypeUtils.d.ts +5 -0
  410. package/lib/typescript/src/internal/web/TrackUtils.d.ts +3 -1
  411. package/package.json +4 -3
  412. package/src/api/THEOplayerView.ts +29 -4
  413. package/src/api/abr/ABRConfiguration.ts +103 -0
  414. package/src/api/abr/barrel.ts +1 -0
  415. package/src/api/ads/Ad.ts +267 -0
  416. package/src/api/ads/AdBreak.ts +44 -0
  417. package/src/api/ads/AdsAPI.ts +53 -0
  418. package/src/api/ads/AdsConfiguration.ts +76 -0
  419. package/src/api/ads/CompanionAd.ts +65 -0
  420. package/src/api/ads/GoogleDai.ts +32 -0
  421. package/src/api/ads/GoogleImaAd.ts +86 -0
  422. package/src/api/ads/GoogleImaConfiguration.ts +13 -0
  423. package/src/api/ads/barrel.ts +8 -0
  424. package/src/api/barrel.ts +5 -1
  425. package/src/api/config/PlayerConfiguration.ts +7 -0
  426. package/src/api/drm/ContentProtectionAPI.ts +6 -0
  427. package/src/api/drm/ContentProtectionIntegration.ts +93 -0
  428. package/src/api/drm/ContentProtectionIntegrationFactory.ts +16 -0
  429. package/src/api/drm/ContentProtectionRequest.ts +60 -0
  430. package/src/api/drm/ContentProtectionResponse.ts +62 -0
  431. package/src/api/drm/barrel.ts +5 -0
  432. package/src/api/event/AdEvent.ts +117 -0
  433. package/src/api/event/barrel.ts +1 -0
  434. package/src/api/source/SourceDescription.ts +9 -0
  435. package/src/api/source/ads/FreeWheelAdDescription.ts +97 -0
  436. package/src/api/source/ads/IMAAdDescription.ts +26 -0
  437. package/src/api/source/ads/SpotXAdDescription.ts +126 -0
  438. package/src/api/source/ads/THEOplayerAdDescription.ts +34 -0
  439. package/src/api/source/ads/barrel.ts +6 -0
  440. package/src/api/source/ads/ssai/GoogleDAIConfiguration.ts +145 -0
  441. package/src/api/source/ads/ssai/ImagineServerSideAdInsertionConfiguration.ts +30 -0
  442. package/src/api/source/ads/ssai/ServerSideAdInsertionConfiguration.ts +28 -0
  443. package/src/api/source/ads/ssai/YospaceServerSideAdInsertionConfiguration.ts +51 -0
  444. package/src/api/source/ads/ssai/barrel.ts +4 -0
  445. package/src/api/source/barrel.ts +1 -0
  446. package/src/api/source/drm/DRMConfiguration.ts +0 -35
  447. package/src/api/track/MediaTrack.ts +22 -2
  448. package/src/api/utils/TypeUtils.ts +39 -0
  449. package/src/api/utils/barrel.ts +1 -0
  450. package/src/index.tsx +1 -0
  451. package/src/internal/THEOplayerView.tsx +49 -8
  452. package/src/internal/THEOplayerView.web.tsx +37 -7
  453. package/src/internal/ads/THEOplayerNativeAdsAPI.ts +44 -0
  454. package/src/internal/ads/THEOplayerNativeGoogleDAI.ts +23 -0
  455. package/src/internal/ads/THEOplayerWebAdsAPI.ts +51 -0
  456. package/src/internal/ads/THEOplayerWebGoogleDAI.ts +22 -0
  457. package/src/internal/drm/ContentProtectionRegistry.ts +173 -0
  458. package/src/internal/drm/ContentProtectionRegistry.web.ts +10 -0
  459. package/src/internal/drm/NativeCertificateRequest.ts +41 -0
  460. package/src/internal/drm/NativeCertificateResponse.ts +45 -0
  461. package/src/internal/drm/NativeContentProtectionEvent.ts +5 -0
  462. package/src/internal/drm/NativeLicenseRequest.ts +39 -0
  463. package/src/internal/drm/NativeLicenseResponse.ts +45 -0
  464. package/src/internal/utils/TypeUtils.ts +39 -0
  465. package/src/internal/web/TrackUtils.ts +22 -1
@@ -1,2 +1,24 @@
1
- export {};
1
+ /**
2
+ * Represents a media track (audio or video) of a media resource.
3
+ *
4
+ * @public
5
+ */
6
+ export function findMediaTrackByUid(mediaTracks, uid) {
7
+ return mediaTracks.find(track => track.uid === uid);
8
+ }
9
+ export function findQualityByUid(mediaTrack, uid) {
10
+ return mediaTrack.qualities.find(quality => quality.uid === uid);
11
+ }
12
+ export function findQualitiesByUid(mediaTrack, uid) {
13
+ if (uid && mediaTrack) {
14
+ if (Array.isArray(uid)) {
15
+ return mediaTrack.qualities.filter(quality => uid.includes(quality.uid));
16
+ } else {
17
+ const quality = findQualityByUid(mediaTrack, uid);
18
+ return quality ? [quality] : undefined;
19
+ }
20
+ }
21
+
22
+ return undefined;
23
+ }
2
24
  //# sourceMappingURL=MediaTrack.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["MediaTrack.ts"],"sourcesContent":["import type { Track } from './Track';\nimport type { Quality } from './Quality';\n\nexport type MediaTrackKind = 'main' | 'alternative';\n\n/**\n * Represents a media track (audio or video) of a media resource.\n *\n * @public\n */\nexport interface MediaTrack extends Track {\n /**\n * The identifier of the media track.\n *\n * @remarks\n * <br/> - This identifier can be used to distinguish between related tracks, e.g. tracks in the same list.\n */\n // Note: This identifier is a randomly generated string.\n readonly id: string;\n\n /**\n * A unique identifier of the media track.\n *\n * @remarks\n * <br/> - This identifier is unique across tracks of a THEOplayer instance and can be used to distinguish between tracks.\n * <br/> - This identifier is a randomly generated number.\n */\n readonly uid: number;\n\n /**\n * The kind of the media track, represented by a value from the following list:\n * <br/> - `'main'`: The track is the default track for playback\n * <br/> - `'alternative'`: The track is not the default track for playback\n */\n readonly kind: MediaTrackKind;\n\n /**\n * The label of the media track.\n */\n label: string;\n\n /**\n * The language of the media track.\n */\n readonly language: string;\n\n /**\n * The uid of the active quality of the media track, i.e. the quality that is currently being played.\n */\n readonly activeQuality: number | undefined;\n\n /**\n * The qualities of the media track.\n */\n readonly qualities: Quality[];\n\n /**\n * One or more desired uids of qualities of the media track.\n *\n * @remarks\n * <br/> - If desired qualities are present, the Adaptive Bitrate mechanism of the player will limit itself to these qualities.\n * <br/> - If one desired quality is present, the Adaptive Bitrate mechanism of the player will be disabled and the desired quality will be played back.\n */\n targetQuality: number | number[] | undefined;\n}\n"],"mappings":""}
1
+ {"version":3,"names":["findMediaTrackByUid","mediaTracks","uid","find","track","findQualityByUid","mediaTrack","qualities","quality","findQualitiesByUid","Array","isArray","filter","includes","undefined"],"sources":["MediaTrack.ts"],"sourcesContent":["import type { Track } from './Track';\nimport type { Quality } from './Quality';\n\nexport type MediaTrackKind = 'main' | 'alternative';\n\n/**\n * Represents a media track (audio or video) of a media resource.\n *\n * @public\n */\nexport interface MediaTrack extends Track {\n /**\n * The identifier of the media track.\n *\n * @remarks\n * <br/> - This identifier can be used to distinguish between related tracks, e.g. tracks in the same list.\n */\n // Note: This identifier is a randomly generated string.\n readonly id: string;\n\n /**\n * A unique identifier of the media track.\n *\n * @remarks\n * <br/> - This identifier is unique across tracks of a THEOplayer instance and can be used to distinguish between tracks.\n * <br/> - This identifier is a randomly generated number.\n */\n readonly uid: number;\n\n /**\n * The kind of the media track, represented by a value from the following list:\n * <br/> - `'main'`: The track is the default track for playback\n * <br/> - `'alternative'`: The track is not the default track for playback\n */\n readonly kind: MediaTrackKind;\n\n /**\n * The label of the media track.\n */\n readonly label: string;\n\n /**\n * The language of the media track.\n */\n readonly language: string;\n\n /**\n * The uid of the active quality of the media track, i.e. the quality that is currently being played.\n */\n readonly activeQuality: number | undefined;\n\n /**\n * The qualities of the media track.\n */\n readonly qualities: Quality[];\n\n /**\n * One or more desired uids of qualities of the media track.\n *\n * @remarks\n * <br/> - If desired qualities are present, the Adaptive Bitrate mechanism of the player will limit itself to these qualities.\n * <br/> - If one desired quality is present, the Adaptive Bitrate mechanism of the player will be disabled and the desired quality will be played back.\n */\n readonly targetQuality: number | number[] | undefined;\n}\n\nexport function findMediaTrackByUid(mediaTracks: MediaTrack[], uid: number | undefined): MediaTrack | undefined {\n return mediaTracks.find((track) => track.uid === uid);\n}\n\nexport function findQualityByUid(mediaTrack: MediaTrack, uid: number | undefined): Quality | undefined {\n return mediaTrack.qualities.find((quality) => quality.uid === uid);\n}\n\nexport function findQualitiesByUid(mediaTrack: MediaTrack | undefined, uid: number | number[] | undefined): Quality[] | undefined {\n if (uid && mediaTrack) {\n if (Array.isArray(uid)) {\n return mediaTrack.qualities.filter((quality) => uid.includes(quality.uid));\n } else {\n const quality = findQualityByUid(mediaTrack, uid);\n return quality ? [quality] : undefined;\n }\n }\n return undefined;\n}\n"],"mappings":"AAKA;AACA;AACA;AACA;AACA;AAyDA,OAAO,SAASA,mBAAT,CAA6BC,WAA7B,EAAwDC,GAAxD,EAAyG;EAC9G,OAAOD,WAAW,CAACE,IAAZ,CAAkBC,KAAD,IAAWA,KAAK,CAACF,GAAN,KAAcA,GAA1C,CAAP;AACD;AAED,OAAO,SAASG,gBAAT,CAA0BC,UAA1B,EAAkDJ,GAAlD,EAAgG;EACrG,OAAOI,UAAU,CAACC,SAAX,CAAqBJ,IAArB,CAA2BK,OAAD,IAAaA,OAAO,CAACN,GAAR,KAAgBA,GAAvD,CAAP;AACD;AAED,OAAO,SAASO,kBAAT,CAA4BH,UAA5B,EAAgEJ,GAAhE,EAA2H;EAChI,IAAIA,GAAG,IAAII,UAAX,EAAuB;IACrB,IAAII,KAAK,CAACC,OAAN,CAAcT,GAAd,CAAJ,EAAwB;MACtB,OAAOI,UAAU,CAACC,SAAX,CAAqBK,MAArB,CAA6BJ,OAAD,IAAaN,GAAG,CAACW,QAAJ,CAAaL,OAAO,CAACN,GAArB,CAAzC,CAAP;IACD,CAFD,MAEO;MACL,MAAMM,OAAO,GAAGH,gBAAgB,CAACC,UAAD,EAAaJ,GAAb,CAAhC;MACA,OAAOM,OAAO,GAAG,CAACA,OAAD,CAAH,GAAeM,SAA7B;IACD;EACF;;EACD,OAAOA,SAAP;AACD"}
@@ -0,0 +1,36 @@
1
+ import { Buffer } from 'buffer'; // from object
2
+
3
+ export function fromObjectToString(obj) {
4
+ return JSON.stringify(obj);
5
+ }
6
+ export function fromObjectToBase64String(obj) {
7
+ return fromStringToBase64String(fromObjectToString(obj));
8
+ }
9
+ export function fromObjectToUint8Array(obj) {
10
+ return fromStringToUint8Array(fromObjectToString(obj));
11
+ } // from string
12
+
13
+ export function fromStringToBase64String(str) {
14
+ return Buffer.from(str, 'utf8').toString('base64');
15
+ }
16
+ export function fromStringToUint8Array(str) {
17
+ return Buffer.from(str, 'utf8');
18
+ }
19
+ export function fromStringToObject(str) {
20
+ return JSON.parse(str);
21
+ } // from base64 string
22
+
23
+ export function fromBase64StringToUint8Array(str) {
24
+ return Buffer.from(str, 'base64');
25
+ } // from uint8Array
26
+
27
+ export function fromUint8ArrayToBase64String(array) {
28
+ return Buffer.from(array).toString('base64');
29
+ }
30
+ export function fromUint8ArrayToString(array) {
31
+ return Buffer.from(array).toString('utf8');
32
+ }
33
+ export function fromUint8ArrayToObject(array) {
34
+ return fromStringToObject(fromUint8ArrayToString(array));
35
+ }
36
+ //# sourceMappingURL=TypeUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Buffer","fromObjectToString","obj","JSON","stringify","fromObjectToBase64String","fromStringToBase64String","fromObjectToUint8Array","fromStringToUint8Array","str","from","toString","fromStringToObject","parse","fromBase64StringToUint8Array","fromUint8ArrayToBase64String","array","fromUint8ArrayToString","fromUint8ArrayToObject"],"sources":["TypeUtils.ts"],"sourcesContent":["import { Buffer } from 'buffer';\n\n// from object\nexport function fromObjectToString(obj: { [key: string]: any }): string {\n return JSON.stringify(obj);\n}\nexport function fromObjectToBase64String(obj: { [key: string]: any }): string {\n return fromStringToBase64String(fromObjectToString(obj));\n}\nexport function fromObjectToUint8Array(obj: { [key: string]: any }): Uint8Array {\n return fromStringToUint8Array(fromObjectToString(obj));\n}\n\n// from string\nexport function fromStringToBase64String(str: string): string {\n return Buffer.from(str, 'utf8').toString('base64');\n}\nexport function fromStringToUint8Array(str: string): Uint8Array {\n return Buffer.from(str, 'utf8');\n}\nexport function fromStringToObject(str: string): { [key: string]: any } {\n return JSON.parse(str);\n}\n\n// from base64 string\nexport function fromBase64StringToUint8Array(str: string): Uint8Array {\n return Buffer.from(str, 'base64');\n}\n\n// from uint8Array\nexport function fromUint8ArrayToBase64String(array: Uint8Array): string {\n return Buffer.from(array).toString('base64');\n}\nexport function fromUint8ArrayToString(array: Uint8Array): string {\n return Buffer.from(array).toString('utf8');\n}\nexport function fromUint8ArrayToObject(array: Uint8Array): { [key: string]: any } {\n return fromStringToObject(fromUint8ArrayToString(array));\n}\n"],"mappings":"AAAA,SAASA,MAAT,QAAuB,QAAvB,C,CAEA;;AACA,OAAO,SAASC,kBAAT,CAA4BC,GAA5B,EAAiE;EACtE,OAAOC,IAAI,CAACC,SAAL,CAAeF,GAAf,CAAP;AACD;AACD,OAAO,SAASG,wBAAT,CAAkCH,GAAlC,EAAuE;EAC5E,OAAOI,wBAAwB,CAACL,kBAAkB,CAACC,GAAD,CAAnB,CAA/B;AACD;AACD,OAAO,SAASK,sBAAT,CAAgCL,GAAhC,EAAyE;EAC9E,OAAOM,sBAAsB,CAACP,kBAAkB,CAACC,GAAD,CAAnB,CAA7B;AACD,C,CAED;;AACA,OAAO,SAASI,wBAAT,CAAkCG,GAAlC,EAAuD;EAC5D,OAAOT,MAAM,CAACU,IAAP,CAAYD,GAAZ,EAAiB,MAAjB,EAAyBE,QAAzB,CAAkC,QAAlC,CAAP;AACD;AACD,OAAO,SAASH,sBAAT,CAAgCC,GAAhC,EAAyD;EAC9D,OAAOT,MAAM,CAACU,IAAP,CAAYD,GAAZ,EAAiB,MAAjB,CAAP;AACD;AACD,OAAO,SAASG,kBAAT,CAA4BH,GAA5B,EAAiE;EACtE,OAAON,IAAI,CAACU,KAAL,CAAWJ,GAAX,CAAP;AACD,C,CAED;;AACA,OAAO,SAASK,4BAAT,CAAsCL,GAAtC,EAA+D;EACpE,OAAOT,MAAM,CAACU,IAAP,CAAYD,GAAZ,EAAiB,QAAjB,CAAP;AACD,C,CAED;;AACA,OAAO,SAASM,4BAAT,CAAsCC,KAAtC,EAAiE;EACtE,OAAOhB,MAAM,CAACU,IAAP,CAAYM,KAAZ,EAAmBL,QAAnB,CAA4B,QAA5B,CAAP;AACD;AACD,OAAO,SAASM,sBAAT,CAAgCD,KAAhC,EAA2D;EAChE,OAAOhB,MAAM,CAACU,IAAP,CAAYM,KAAZ,EAAmBL,QAAnB,CAA4B,MAA5B,CAAP;AACD;AACD,OAAO,SAASO,sBAAT,CAAgCF,KAAhC,EAA2E;EAChF,OAAOJ,kBAAkB,CAACK,sBAAsB,CAACD,KAAD,CAAvB,CAAzB;AACD"}
@@ -0,0 +1,2 @@
1
+ export * from './TypeUtils';
2
+ //# sourceMappingURL=barrel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["barrel.ts"],"sourcesContent":["export * from './TypeUtils';\n"],"mappings":"AAAA,cAAc,aAAd"}
@@ -1,3 +1,4 @@
1
1
  export * from './api/barrel';
2
2
  export { THEOplayerView } from './internal/THEOplayerView';
3
+ export { ContentProtectionRegistry } from './internal/drm/ContentProtectionRegistry';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["THEOplayerView"],"sources":["index.tsx"],"sourcesContent":["export * from './api/barrel';\nexport { THEOplayerView } from './internal/THEOplayerView';\n"],"mappings":"AAAA,cAAc,cAAd;AACA,SAASA,cAAT,QAA+B,2BAA/B"}
1
+ {"version":3,"names":["THEOplayerView","ContentProtectionRegistry"],"sources":["index.tsx"],"sourcesContent":["export * from './api/barrel';\nexport { THEOplayerView } from './internal/THEOplayerView';\nexport { ContentProtectionRegistry } from './internal/drm/ContentProtectionRegistry';\n"],"mappings":"AAAA,cAAc,cAAd;AACA,SAASA,cAAT,QAA+B,2BAA/B;AACA,SAASC,yBAAT,QAA0C,0CAA1C"}
@@ -5,12 +5,16 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
5
5
  import React, { PureComponent } from 'react';
6
6
  import { findNodeHandle, StyleSheet, requireNativeComponent, View, UIManager, Platform } from 'react-native';
7
7
  import styles from './THEOplayerView.style';
8
+ import { THEOplayerNativeAdsAPI } from './ads/THEOplayerNativeAdsAPI';
9
+ import { decodeNanInf } from './utils/TypeUtils';
8
10
  export class THEOplayerView extends PureComponent {
9
11
  constructor(props) {
10
12
  super(props);
11
13
 
12
14
  _defineProperty(this, "_root", void 0);
13
15
 
16
+ _defineProperty(this, "_adsApi", void 0);
17
+
14
18
  _defineProperty(this, "_onSourceChange", () => {
15
19
  this.reset();
16
20
 
@@ -36,7 +40,9 @@ export class THEOplayerView extends PureComponent {
36
40
 
37
41
  _defineProperty(this, "_onLoadedMetadata", event => {
38
42
  if (this.props.onLoadedMetadata) {
39
- this.props.onLoadedMetadata(event.nativeEvent);
43
+ this.props.onLoadedMetadata({ ...event.nativeEvent,
44
+ duration: decodeNanInf(event.nativeEvent.duration)
45
+ });
40
46
  }
41
47
  });
42
48
 
@@ -68,6 +74,9 @@ export class THEOplayerView extends PureComponent {
68
74
  });
69
75
 
70
76
  _defineProperty(this, "_onPlaying", () => {
77
+ // potentially notify change in buffering state
78
+ this.maybeChangeBufferingState(false);
79
+
71
80
  if (this.props.onPlaying) {
72
81
  this.props.onPlaying();
73
82
  }
@@ -114,7 +123,9 @@ export class THEOplayerView extends PureComponent {
114
123
 
115
124
  _defineProperty(this, "_onDurationChange", event => {
116
125
  if (this.props.onDurationChange) {
117
- this.props.onDurationChange(event.nativeEvent);
126
+ this.props.onDurationChange({
127
+ duration: decodeNanInf(event.nativeEvent.duration)
128
+ });
118
129
  }
119
130
  });
120
131
 
@@ -136,6 +147,12 @@ export class THEOplayerView extends PureComponent {
136
147
  }
137
148
  });
138
149
 
150
+ _defineProperty(this, "_onAdEvent", event => {
151
+ if (this.props.onAdEvent) {
152
+ this.props.onAdEvent(event.nativeEvent);
153
+ }
154
+ });
155
+
139
156
  _defineProperty(this, "_onFullscreenPlayerWillPresent", () => {
140
157
  if (this.props.onFullscreenPlayerWillPresent) {
141
158
  this.props.onFullscreenPlayerWillPresent();
@@ -162,6 +179,7 @@ export class THEOplayerView extends PureComponent {
162
179
 
163
180
  this._root = /*#__PURE__*/React.createRef();
164
181
  this.state = THEOplayerView.initialState;
182
+ this._adsApi = new THEOplayerNativeAdsAPI(this);
165
183
  }
166
184
 
167
185
  componentWillUnmount() {
@@ -188,6 +206,14 @@ export class THEOplayerView extends PureComponent {
188
206
  });
189
207
  }
190
208
 
209
+ get nativeHandle() {
210
+ return findNodeHandle(this._root.current);
211
+ }
212
+
213
+ get ads() {
214
+ return this._adsApi;
215
+ }
216
+
191
217
  reset() {
192
218
  this.setState(THEOplayerView.initialState);
193
219
  }
@@ -219,8 +245,18 @@ export class THEOplayerView extends PureComponent {
219
245
  }
220
246
  }
221
247
 
248
+ buildWrapperProps() {
249
+ const {
250
+ targetVideoQuality
251
+ } = this.props;
252
+ return Object.assign({}, { ...this.props,
253
+ // Always pass an array for targetVideoQuality.
254
+ targetVideoQuality: !targetVideoQuality ? [] : Array.isArray(targetVideoQuality) ? targetVideoQuality : [targetVideoQuality]
255
+ });
256
+ }
257
+
222
258
  render() {
223
- const wrapperProps = Object.assign({}, this.props);
259
+ const wrapperProps = this.buildWrapperProps();
224
260
  return /*#__PURE__*/React.createElement(View, {
225
261
  style: [styles.base, wrapperProps.style]
226
262
  }, /*#__PURE__*/React.createElement(THEOplayerRCTView, _extends({
@@ -244,6 +280,7 @@ export class THEOplayerView extends PureComponent {
244
280
  onNativeSegmentNotFound: this._onSegmentNotFound,
245
281
  onNativeTextTrackListEvent: this._onTextTrackListEvent,
246
282
  onNativeTextTrackEvent: this._onTextTrackEvent,
283
+ onNativeAdEvent: this._onAdEvent,
247
284
  onNativeFullscreenPlayerWillPresent: this._onFullscreenPlayerWillPresent,
248
285
  onNativeFullscreenPlayerDidPresent: this._onFullscreenPlayerDidPresent,
249
286
  onNativeFullscreenPlayerWillDismiss: this._onFullscreenPlayerWillDismiss,
@@ -1 +1 @@
1
- {"version":3,"names":["React","PureComponent","findNodeHandle","StyleSheet","requireNativeComponent","View","UIManager","Platform","styles","THEOplayerView","constructor","props","reset","onSourceChange","maybeChangeBufferingState","onLoadStart","onLoadedData","event","onLoadedMetadata","nativeEvent","error","setState","onError","onProgress","onPlay","onPlaying","onPause","onSeeking","onSeeked","onEnded","readyState","onReadyStateChange","onTimeUpdate","onDurationChange","onSegmentNotFound","onTextTrackListEvent","onTextTrackEvent","onFullscreenPlayerWillPresent","onFullscreenPlayerDidPresent","onFullscreenPlayerWillDismiss","onFullscreenPlayerDidDismiss","_root","createRef","state","initialState","componentWillUnmount","OS","destroyTheoPlayer","node","current","command","Commands","destroy","params","dispatchViewManagerCommand","seek","time","isNaN","Error","setNativeProps","nativeProps","isBuffering","wasBuffering","paused","newIsBuffering","onBufferingStateChange","render","wrapperProps","Object","assign","base","style","source","_onSourceChange","_onLoadStart","_onLoadedData","_onLoadedMetadata","_onError","_onProgress","_onPlay","_onPlaying","_onPause","_onSeeking","_onSeeked","_onEnded","_onReadStateChange","_onTimeUpdate","_onDurationChange","_onSegmentNotFound","_onTextTrackListEvent","_onTextTrackEvent","_onFullscreenPlayerWillPresent","_onFullscreenPlayerDidPresent","_onFullscreenPlayerWillDismiss","_onFullscreenPlayerDidDismiss","absoluteFill","undefined","LINKING_ERROR","select","ios","default","ComponentName","THEOplayerRCTView","getViewManagerConfig"],"sources":["THEOplayerView.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport { findNodeHandle, StyleSheet, requireNativeComponent, View, UIManager, Platform, NativeSyntheticEvent } from 'react-native';\nimport type {\n DurationChangeEvent,\n ErrorEvent,\n LoadedMetadataEvent,\n ReadyStateChangeEvent,\n THEOplayerViewComponent,\n THEOplayerViewProps,\n TimeUpdateEvent,\n ProgressEvent,\n PlayerError,\n SegmentNotFoundEvent,\n TextTrackListEvent,\n TextTrackEvent,\n} from 'react-native-theoplayer';\n\nimport styles from './THEOplayerView.style';\nimport type { SourceDescription } from 'react-native-theoplayer';\n\ninterface THEOplayerRCTViewProps extends THEOplayerViewProps {\n ref: React.RefObject<THEOplayerViewNativeComponent>;\n src: SourceDescription;\n seek?: number;\n\n onNativeSourceChange: () => void;\n onNativeLoadStart: () => void;\n onNativeLoadedData: () => void;\n onNativeLoadedMetadata: (event: NativeSyntheticEvent<LoadedMetadataEvent>) => void;\n onNativeReadyStateChange?: (event: NativeSyntheticEvent<ReadyStateChangeEvent>) => void;\n onNativeError: (event: NativeSyntheticEvent<ErrorEvent>) => void;\n onNativeProgress: (event: NativeSyntheticEvent<ProgressEvent>) => void;\n onNativePlay: () => void;\n onNativePlaying: () => void;\n onNativePause: () => void;\n onNativeSeeking: () => void;\n onNativeSeeked: () => void;\n onNativeEnded: () => void;\n onNativeTimeUpdate: (event: NativeSyntheticEvent<TimeUpdateEvent>) => void;\n onNativeDurationChange: (event: NativeSyntheticEvent<DurationChangeEvent>) => void;\n onNativeSegmentNotFound: (event: NativeSyntheticEvent<SegmentNotFoundEvent>) => void;\n onNativeTextTrackListEvent: (event: NativeSyntheticEvent<TextTrackListEvent>) => void;\n onNativeTextTrackEvent: (event: NativeSyntheticEvent<TextTrackEvent>) => void;\n onNativeFullscreenPlayerWillPresent?: () => void;\n onNativeFullscreenPlayerDidPresent?: () => void;\n onNativeFullscreenPlayerWillDismiss?: () => void;\n onNativeFullscreenPlayerDidDismiss?: () => void;\n}\n\ninterface THEOplayerRCTViewState {\n isBuffering: boolean;\n error?: PlayerError;\n}\n\ninterface THEOplayerViewNativeComponent extends THEOplayerViewComponent {\n setNativeProps: (props: Partial<THEOplayerRCTViewProps>) => void;\n}\n\nexport class THEOplayerView extends PureComponent<THEOplayerViewProps, THEOplayerRCTViewState> {\n private readonly _root: React.RefObject<THEOplayerViewNativeComponent>;\n\n private static initialState: THEOplayerRCTViewState = {\n isBuffering: false,\n error: undefined,\n };\n\n constructor(props: THEOplayerRCTViewProps) {\n super(props);\n this._root = React.createRef();\n this.state = THEOplayerView.initialState;\n }\n\n componentWillUnmount() {\n if (Platform.OS === 'ios') {\n // on iOS, we trigger an explicit 'destroy' to clean up the underlying THEOplayer\n this.destroyTheoPlayer();\n }\n }\n\n private destroyTheoPlayer() {\n const node = findNodeHandle(this._root.current);\n const command = (UIManager as {[index: string]: any})['THEOplayerRCTView'].Commands.destroy;\n const params: any[] = [];\n UIManager.dispatchViewManagerCommand(node, command, params);\n }\n\n public seek(time: number): void {\n if (isNaN(time)) {\n throw new Error('Specified time is not a number');\n }\n this.setNativeProps({ seek: time });\n }\n\n private reset() {\n this.setState(THEOplayerView.initialState);\n }\n\n private setNativeProps(nativeProps: Partial<THEOplayerRCTViewProps>) {\n if (this._root?.current) {\n this._root.current.setNativeProps(nativeProps);\n }\n }\n\n private maybeChangeBufferingState(isBuffering: boolean) {\n const { isBuffering: wasBuffering, error } = this.state;\n const { paused } = this.props;\n\n // do not change state to buffering in case of an error or if the player is paused\n const newIsBuffering = isBuffering && !error && !paused;\n this.setState({ isBuffering: newIsBuffering });\n\n // notify change in buffering state\n if (newIsBuffering !== wasBuffering && this.props.onBufferingStateChange) {\n this.props.onBufferingStateChange(isBuffering);\n }\n }\n\n private _onSourceChange = () => {\n this.reset();\n\n if (this.props.onSourceChange) {\n this.props.onSourceChange();\n }\n };\n\n private _onLoadStart = () => {\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(true);\n\n if (this.props.onLoadStart) {\n this.props.onLoadStart();\n }\n };\n\n private _onLoadedData = () => {\n if (this.props.onLoadedData) {\n this.props.onLoadedData();\n }\n };\n\n private _onLoadedMetadata = (event: NativeSyntheticEvent<LoadedMetadataEvent>) => {\n if (this.props.onLoadedMetadata) {\n this.props.onLoadedMetadata(event.nativeEvent);\n }\n };\n\n private _onError = (event: NativeSyntheticEvent<ErrorEvent>) => {\n const { error } = event.nativeEvent;\n this.setState({ error });\n\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(false);\n\n if (this.props.onError) {\n this.props.onError(event.nativeEvent);\n }\n };\n\n private _onProgress = (event: NativeSyntheticEvent<ProgressEvent>) => {\n if (this.props.onProgress) {\n this.props.onProgress(event.nativeEvent);\n }\n };\n\n private _onPlay = () => {\n if (this.props.onPlay) {\n this.props.onPlay();\n }\n };\n\n private _onPlaying = () => {\n if (this.props.onPlaying) {\n this.props.onPlaying();\n }\n };\n\n private _onPause = () => {\n if (this.props.onPause) {\n this.props.onPause();\n }\n };\n\n private _onSeeking = () => {\n if (this.props.onSeeking) {\n this.props.onSeeking();\n }\n };\n\n private _onSeeked = () => {\n if (this.props.onSeeked) {\n this.props.onSeeked();\n }\n };\n\n private _onEnded = () => {\n if (this.props.onEnded) {\n this.props.onEnded();\n }\n };\n\n private _onReadStateChange = (event: NativeSyntheticEvent<ReadyStateChangeEvent>) => {\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(event.nativeEvent.readyState < 3);\n\n if (this.props.onReadyStateChange) {\n this.props.onReadyStateChange(event.nativeEvent);\n }\n };\n\n private _onTimeUpdate = (event: NativeSyntheticEvent<TimeUpdateEvent>) => {\n if (this.props.onTimeUpdate) {\n this.props.onTimeUpdate(event.nativeEvent);\n }\n };\n\n private _onDurationChange = (event: NativeSyntheticEvent<DurationChangeEvent>) => {\n if (this.props.onDurationChange) {\n this.props.onDurationChange(event.nativeEvent);\n }\n };\n\n private _onSegmentNotFound = (event: NativeSyntheticEvent<SegmentNotFoundEvent>) => {\n if (this.props.onSegmentNotFound) {\n this.props.onSegmentNotFound(event.nativeEvent);\n }\n };\n\n private _onTextTrackListEvent = (event: NativeSyntheticEvent<TextTrackListEvent>) => {\n if (this.props.onTextTrackListEvent) {\n this.props.onTextTrackListEvent(event.nativeEvent);\n }\n };\n\n private _onTextTrackEvent = (event: NativeSyntheticEvent<TextTrackEvent>) => {\n if (this.props.onTextTrackEvent) {\n this.props.onTextTrackEvent(event.nativeEvent);\n }\n };\n\n private _onFullscreenPlayerWillPresent = () => {\n if (this.props.onFullscreenPlayerWillPresent) {\n this.props.onFullscreenPlayerWillPresent();\n }\n };\n\n private _onFullscreenPlayerDidPresent = () => {\n if (this.props.onFullscreenPlayerDidPresent) {\n this.props.onFullscreenPlayerDidPresent();\n }\n };\n\n private _onFullscreenPlayerWillDismiss = () => {\n if (this.props.onFullscreenPlayerWillDismiss) {\n this.props.onFullscreenPlayerWillDismiss();\n }\n };\n\n private _onFullscreenPlayerDidDismiss = () => {\n if (this.props.onFullscreenPlayerDidDismiss) {\n this.props.onFullscreenPlayerDidDismiss();\n }\n };\n\n public render(): JSX.Element {\n const wrapperProps = Object.assign({}, this.props);\n\n return (\n <View style={[styles.base, wrapperProps.style]}>\n <THEOplayerRCTView\n ref={this._root}\n src={this.props.source || {}}\n onNativeSourceChange={this._onSourceChange}\n onNativeLoadStart={this._onLoadStart}\n onNativeLoadedData={this._onLoadedData}\n onNativeLoadedMetadata={this._onLoadedMetadata}\n onNativeError={this._onError}\n onNativeProgress={this._onProgress}\n onNativePlay={this._onPlay}\n onNativePlaying={this._onPlaying}\n onNativePause={this._onPause}\n onNativeSeeking={this._onSeeking}\n onNativeSeeked={this._onSeeked}\n onNativeEnded={this._onEnded}\n onNativeReadyStateChange={this._onReadStateChange}\n onNativeTimeUpdate={this._onTimeUpdate}\n onNativeDurationChange={this._onDurationChange}\n onNativeSegmentNotFound={this._onSegmentNotFound}\n onNativeTextTrackListEvent={this._onTextTrackListEvent}\n onNativeTextTrackEvent={this._onTextTrackEvent}\n onNativeFullscreenPlayerWillPresent={this._onFullscreenPlayerWillPresent}\n onNativeFullscreenPlayerDidPresent={this._onFullscreenPlayerDidPresent}\n onNativeFullscreenPlayerWillDismiss={this._onFullscreenPlayerWillDismiss}\n onNativeFullscreenPlayerDidDismiss={this._onFullscreenPlayerDidDismiss}\n style={StyleSheet.absoluteFill}\n {...wrapperProps}\n />\n </View>\n );\n }\n}\n\nconst LINKING_ERROR =\n `The package 'react-native-theoplayer' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst ComponentName = 'THEOplayerRCTView';\n\nconst THEOplayerRCTView =\n UIManager.getViewManagerConfig(ComponentName) != null\n ? requireNativeComponent<THEOplayerRCTViewProps>(ComponentName)\n : () => {\n throw new Error(LINKING_ERROR);\n };\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","PureComponent","findNodeHandle","StyleSheet","requireNativeComponent","View","UIManager","Platform","styles","THEOplayerNativeAdsAPI","decodeNanInf","THEOplayerView","constructor","props","reset","onSourceChange","maybeChangeBufferingState","onLoadStart","onLoadedData","event","onLoadedMetadata","nativeEvent","duration","error","setState","onError","onProgress","onPlay","onPlaying","onPause","onSeeking","onSeeked","onEnded","readyState","onReadyStateChange","onTimeUpdate","onDurationChange","onSegmentNotFound","onTextTrackListEvent","onTextTrackEvent","onAdEvent","onFullscreenPlayerWillPresent","onFullscreenPlayerDidPresent","onFullscreenPlayerWillDismiss","onFullscreenPlayerDidDismiss","_root","createRef","state","initialState","_adsApi","componentWillUnmount","OS","destroyTheoPlayer","node","current","command","Commands","destroy","params","dispatchViewManagerCommand","seek","time","isNaN","Error","setNativeProps","nativeHandle","ads","nativeProps","isBuffering","wasBuffering","paused","newIsBuffering","onBufferingStateChange","buildWrapperProps","targetVideoQuality","Object","assign","Array","isArray","render","wrapperProps","base","style","source","_onSourceChange","_onLoadStart","_onLoadedData","_onLoadedMetadata","_onError","_onProgress","_onPlay","_onPlaying","_onPause","_onSeeking","_onSeeked","_onEnded","_onReadStateChange","_onTimeUpdate","_onDurationChange","_onSegmentNotFound","_onTextTrackListEvent","_onTextTrackEvent","_onAdEvent","_onFullscreenPlayerWillPresent","_onFullscreenPlayerDidPresent","_onFullscreenPlayerWillDismiss","_onFullscreenPlayerDidDismiss","absoluteFill","undefined","LINKING_ERROR","select","ios","default","ComponentName","THEOplayerRCTView","getViewManagerConfig"],"sources":["THEOplayerView.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport { findNodeHandle, StyleSheet, requireNativeComponent, View, UIManager, Platform, NativeSyntheticEvent, HostComponent } from 'react-native';\nimport type {\n DurationChangeEvent,\n ErrorEvent,\n LoadedMetadataEvent,\n ReadyStateChangeEvent,\n THEOplayerViewComponent,\n THEOplayerViewProps,\n TimeUpdateEvent,\n ProgressEvent,\n PlayerError,\n SegmentNotFoundEvent,\n TextTrackListEvent,\n TextTrackEvent,\n AdEvent,\n AdsAPI,\n} from 'react-native-theoplayer';\n\nimport styles from './THEOplayerView.style';\nimport type { SourceDescription } from 'react-native-theoplayer';\nimport { THEOplayerNativeAdsAPI } from './ads/THEOplayerNativeAdsAPI';\nimport { decodeNanInf } from './utils/TypeUtils';\n\ninterface THEOplayerRCTViewProps extends THEOplayerViewProps {\n ref: React.RefObject<THEOplayerViewNativeComponent>;\n src: SourceDescription;\n seek?: number;\n\n onNativeSourceChange: () => void;\n onNativeLoadStart: () => void;\n onNativeLoadedData: () => void;\n onNativeLoadedMetadata: (event: NativeSyntheticEvent<LoadedMetadataEvent>) => void;\n onNativeReadyStateChange?: (event: NativeSyntheticEvent<ReadyStateChangeEvent>) => void;\n onNativeError: (event: NativeSyntheticEvent<ErrorEvent>) => void;\n onNativeProgress: (event: NativeSyntheticEvent<ProgressEvent>) => void;\n onNativePlay: () => void;\n onNativePlaying: () => void;\n onNativePause: () => void;\n onNativeSeeking: () => void;\n onNativeSeeked: () => void;\n onNativeEnded: () => void;\n onNativeTimeUpdate: (event: NativeSyntheticEvent<TimeUpdateEvent>) => void;\n onNativeDurationChange: (event: NativeSyntheticEvent<DurationChangeEvent>) => void;\n onNativeSegmentNotFound: (event: NativeSyntheticEvent<SegmentNotFoundEvent>) => void;\n onNativeTextTrackListEvent: (event: NativeSyntheticEvent<TextTrackListEvent>) => void;\n onNativeTextTrackEvent: (event: NativeSyntheticEvent<TextTrackEvent>) => void;\n onNativeAdEvent: (event: NativeSyntheticEvent<AdEvent>) => void;\n onNativeFullscreenPlayerWillPresent?: () => void;\n onNativeFullscreenPlayerDidPresent?: () => void;\n onNativeFullscreenPlayerWillDismiss?: () => void;\n onNativeFullscreenPlayerDidDismiss?: () => void;\n}\n\ninterface THEOplayerRCTViewState {\n isBuffering: boolean;\n error?: PlayerError;\n}\n\ninterface THEOplayerViewNativeComponent extends THEOplayerViewComponent, HostComponent<THEOplayerViewProps> {\n setNativeProps: (props: Partial<THEOplayerRCTViewProps>) => void;\n}\n\nexport class THEOplayerView extends PureComponent<THEOplayerViewProps, THEOplayerRCTViewState> implements THEOplayerViewComponent {\n private readonly _root: React.RefObject<THEOplayerViewNativeComponent>;\n private readonly _adsApi: THEOplayerNativeAdsAPI;\n\n private static initialState: THEOplayerRCTViewState = {\n isBuffering: false,\n error: undefined,\n };\n\n constructor(props: THEOplayerRCTViewProps) {\n super(props);\n this._root = React.createRef();\n this.state = THEOplayerView.initialState;\n this._adsApi = new THEOplayerNativeAdsAPI(this);\n }\n\n componentWillUnmount() {\n if (Platform.OS === 'ios') {\n // on iOS, we trigger an explicit 'destroy' to clean up the underlying THEOplayer\n this.destroyTheoPlayer();\n }\n }\n\n private destroyTheoPlayer() {\n const node = findNodeHandle(this._root.current);\n const command = (UIManager as { [index: string]: any })['THEOplayerRCTView'].Commands.destroy;\n const params: any[] = [];\n UIManager.dispatchViewManagerCommand(node, command, params);\n }\n\n public seek(time: number): void {\n if (isNaN(time)) {\n throw new Error('Specified time is not a number');\n }\n this.setNativeProps({ seek: time });\n }\n\n public get nativeHandle(): number | null {\n return findNodeHandle(this._root.current);\n }\n\n public get ads(): AdsAPI {\n return this._adsApi;\n }\n\n private reset() {\n this.setState(THEOplayerView.initialState);\n }\n\n private setNativeProps(nativeProps: Partial<THEOplayerRCTViewProps>) {\n if (this._root?.current) {\n this._root.current.setNativeProps(nativeProps);\n }\n }\n\n private maybeChangeBufferingState(isBuffering: boolean) {\n const { isBuffering: wasBuffering, error } = this.state;\n const { paused } = this.props;\n\n // do not change state to buffering in case of an error or if the player is paused\n const newIsBuffering = isBuffering && !error && !paused;\n this.setState({ isBuffering: newIsBuffering });\n\n // notify change in buffering state\n if (newIsBuffering !== wasBuffering && this.props.onBufferingStateChange) {\n this.props.onBufferingStateChange(isBuffering);\n }\n }\n\n private _onSourceChange = () => {\n this.reset();\n\n if (this.props.onSourceChange) {\n this.props.onSourceChange();\n }\n };\n\n private _onLoadStart = () => {\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(true);\n\n if (this.props.onLoadStart) {\n this.props.onLoadStart();\n }\n };\n\n private _onLoadedData = () => {\n if (this.props.onLoadedData) {\n this.props.onLoadedData();\n }\n };\n\n private _onLoadedMetadata = (event: NativeSyntheticEvent<LoadedMetadataEvent>) => {\n if (this.props.onLoadedMetadata) {\n this.props.onLoadedMetadata({\n ...event.nativeEvent,\n duration: decodeNanInf(event.nativeEvent.duration),\n });\n }\n };\n\n private _onError = (event: NativeSyntheticEvent<ErrorEvent>) => {\n const { error } = event.nativeEvent;\n this.setState({ error });\n\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(false);\n\n if (this.props.onError) {\n this.props.onError(event.nativeEvent);\n }\n };\n\n private _onProgress = (event: NativeSyntheticEvent<ProgressEvent>) => {\n if (this.props.onProgress) {\n this.props.onProgress(event.nativeEvent);\n }\n };\n\n private _onPlay = () => {\n if (this.props.onPlay) {\n this.props.onPlay();\n }\n };\n\n private _onPlaying = () => {\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(false);\n\n if (this.props.onPlaying) {\n this.props.onPlaying();\n }\n };\n\n private _onPause = () => {\n if (this.props.onPause) {\n this.props.onPause();\n }\n };\n\n private _onSeeking = () => {\n if (this.props.onSeeking) {\n this.props.onSeeking();\n }\n };\n\n private _onSeeked = () => {\n if (this.props.onSeeked) {\n this.props.onSeeked();\n }\n };\n\n private _onEnded = () => {\n if (this.props.onEnded) {\n this.props.onEnded();\n }\n };\n\n private _onReadStateChange = (event: NativeSyntheticEvent<ReadyStateChangeEvent>) => {\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(event.nativeEvent.readyState < 3);\n\n if (this.props.onReadyStateChange) {\n this.props.onReadyStateChange(event.nativeEvent);\n }\n };\n\n private _onTimeUpdate = (event: NativeSyntheticEvent<TimeUpdateEvent>) => {\n if (this.props.onTimeUpdate) {\n this.props.onTimeUpdate(event.nativeEvent);\n }\n };\n\n private _onDurationChange = (event: NativeSyntheticEvent<DurationChangeEvent>) => {\n if (this.props.onDurationChange) {\n this.props.onDurationChange({\n duration: decodeNanInf(event.nativeEvent.duration),\n });\n }\n };\n\n private _onSegmentNotFound = (event: NativeSyntheticEvent<SegmentNotFoundEvent>) => {\n if (this.props.onSegmentNotFound) {\n this.props.onSegmentNotFound(event.nativeEvent);\n }\n };\n\n private _onTextTrackListEvent = (event: NativeSyntheticEvent<TextTrackListEvent>) => {\n if (this.props.onTextTrackListEvent) {\n this.props.onTextTrackListEvent(event.nativeEvent);\n }\n };\n\n private _onTextTrackEvent = (event: NativeSyntheticEvent<TextTrackEvent>) => {\n if (this.props.onTextTrackEvent) {\n this.props.onTextTrackEvent(event.nativeEvent);\n }\n };\n\n private _onAdEvent = (event: NativeSyntheticEvent<AdEvent>) => {\n if (this.props.onAdEvent) {\n this.props.onAdEvent(event.nativeEvent);\n }\n };\n\n private _onFullscreenPlayerWillPresent = () => {\n if (this.props.onFullscreenPlayerWillPresent) {\n this.props.onFullscreenPlayerWillPresent();\n }\n };\n\n private _onFullscreenPlayerDidPresent = () => {\n if (this.props.onFullscreenPlayerDidPresent) {\n this.props.onFullscreenPlayerDidPresent();\n }\n };\n\n private _onFullscreenPlayerWillDismiss = () => {\n if (this.props.onFullscreenPlayerWillDismiss) {\n this.props.onFullscreenPlayerWillDismiss();\n }\n };\n\n private _onFullscreenPlayerDidDismiss = () => {\n if (this.props.onFullscreenPlayerDidDismiss) {\n this.props.onFullscreenPlayerDidDismiss();\n }\n };\n\n private buildWrapperProps(): THEOplayerViewProps {\n const { targetVideoQuality } = this.props;\n return Object.assign(\n {},\n {\n ...this.props,\n // Always pass an array for targetVideoQuality.\n targetVideoQuality: !targetVideoQuality ? [] : Array.isArray(targetVideoQuality) ? targetVideoQuality : [targetVideoQuality],\n },\n );\n }\n\n public render(): JSX.Element {\n const wrapperProps = this.buildWrapperProps();\n return (\n <View style={[styles.base, wrapperProps.style]}>\n <THEOplayerRCTView\n ref={this._root}\n src={this.props.source || {}}\n onNativeSourceChange={this._onSourceChange}\n onNativeLoadStart={this._onLoadStart}\n onNativeLoadedData={this._onLoadedData}\n onNativeLoadedMetadata={this._onLoadedMetadata}\n onNativeError={this._onError}\n onNativeProgress={this._onProgress}\n onNativePlay={this._onPlay}\n onNativePlaying={this._onPlaying}\n onNativePause={this._onPause}\n onNativeSeeking={this._onSeeking}\n onNativeSeeked={this._onSeeked}\n onNativeEnded={this._onEnded}\n onNativeReadyStateChange={this._onReadStateChange}\n onNativeTimeUpdate={this._onTimeUpdate}\n onNativeDurationChange={this._onDurationChange}\n onNativeSegmentNotFound={this._onSegmentNotFound}\n onNativeTextTrackListEvent={this._onTextTrackListEvent}\n onNativeTextTrackEvent={this._onTextTrackEvent}\n onNativeAdEvent={this._onAdEvent}\n onNativeFullscreenPlayerWillPresent={this._onFullscreenPlayerWillPresent}\n onNativeFullscreenPlayerDidPresent={this._onFullscreenPlayerDidPresent}\n onNativeFullscreenPlayerWillDismiss={this._onFullscreenPlayerWillDismiss}\n onNativeFullscreenPlayerDidDismiss={this._onFullscreenPlayerDidDismiss}\n style={StyleSheet.absoluteFill}\n {...wrapperProps}\n />\n </View>\n );\n }\n}\n\nconst LINKING_ERROR =\n `The package 'react-native-theoplayer' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst ComponentName = 'THEOplayerRCTView';\n\nconst THEOplayerRCTView =\n UIManager.getViewManagerConfig(ComponentName) != null\n ? requireNativeComponent<THEOplayerRCTViewProps>(ComponentName)\n : () => {\n throw new Error(LINKING_ERROR);\n };\n"],"mappings":"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"}
@@ -1,15 +1,18 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
2
 
3
3
  import React, { PureComponent } from 'react';
4
- import { TextTrackEventType, TrackListEventType } from 'react-native-theoplayer';
4
+ import { AdEventNames, TextTrackEventType, TrackListEventType } from 'react-native-theoplayer';
5
5
  import * as THEOplayer from 'theoplayer';
6
- import { fromNativeCue, fromNativeMediaTrack, fromNativeTextTrack } from './web/TrackUtils';
6
+ import { findNativeQualitiesByUid, fromNativeCue, fromNativeMediaTrack, fromNativeTextTrack } from './web/TrackUtils';
7
+ import { THEOplayerWebAdsAPI } from './ads/THEOplayerWebAdsAPI';
7
8
  export class THEOplayerView extends PureComponent {
8
9
  constructor(props) {
9
10
  super(props);
10
11
 
11
12
  _defineProperty(this, "_player", null);
12
13
 
14
+ _defineProperty(this, "_adsApi", void 0);
15
+
13
16
  _defineProperty(this, "onAddTextTrackCue", track => event => {
14
17
  const {
15
18
  onTextTrackEvent
@@ -51,12 +54,14 @@ export class THEOplayerView extends PureComponent {
51
54
  });
52
55
 
53
56
  this.state = THEOplayerView.initialState;
57
+ this._adsApi = new THEOplayerWebAdsAPI(this);
54
58
  }
55
59
 
56
60
  componentDidMount() {
57
61
  const {
58
62
  config,
59
- source
63
+ source,
64
+ abrConfig
60
65
  } = this.props;
61
66
  const element = document.querySelector('.theoplayer-container');
62
67
 
@@ -75,6 +80,8 @@ export class THEOplayerView extends PureComponent {
75
80
  });
76
81
  }
77
82
 
83
+ Object.assign(this._player.abr, abrConfig);
84
+
78
85
  this._player.prepareWithUserAction();
79
86
 
80
87
  this._player.source = source;
@@ -97,6 +104,14 @@ export class THEOplayerView extends PureComponent {
97
104
  }
98
105
  }
99
106
 
107
+ get ads() {
108
+ return this._adsApi;
109
+ }
110
+
111
+ get nativePlayer() {
112
+ return this._player;
113
+ }
114
+
100
115
  reset() {
101
116
  this.setState(THEOplayerView.initialState);
102
117
  }
@@ -113,6 +128,7 @@ export class THEOplayerView extends PureComponent {
113
128
  selectedTextTrack,
114
129
  selectedAudioTrack,
115
130
  selectedVideoTrack,
131
+ targetVideoQuality,
116
132
  source,
117
133
  muted,
118
134
  playbackRate,
@@ -123,6 +139,7 @@ export class THEOplayerView extends PureComponent {
123
139
  selectedTextTrack: prevSelectedTextTrack,
124
140
  selectedAudioTrack: prevSelectedAudioTrack,
125
141
  selectedVideoTrack: prevSelectedVideoTrack,
142
+ targetVideoQuality: prevTargetVideoQuality,
126
143
  source: prevSource,
127
144
  muted: wasMuted,
128
145
  playbackRate: prevPlaybackRate,
@@ -193,6 +210,14 @@ export class THEOplayerView extends PureComponent {
193
210
  videoTrack.enabled = videoTrack.uid === selectedVideoTrack;
194
211
  });
195
212
  }
213
+
214
+ if (targetVideoQuality != prevTargetVideoQuality) {
215
+ const videoTrack = this._player.videoTracks.find(videoTrack => videoTrack.uid === selectedVideoTrack);
216
+
217
+ if (videoTrack) {
218
+ videoTrack.targetQuality = findNativeQualitiesByUid(videoTrack, targetVideoQuality);
219
+ }
220
+ }
196
221
  }
197
222
 
198
223
  maybeChangeBufferingState(isBuffering) {
@@ -215,6 +240,8 @@ export class THEOplayerView extends PureComponent {
215
240
  }
216
241
 
217
242
  addEventListeners() {
243
+ var _player$ads;
244
+
218
245
  const player = this._player;
219
246
 
220
247
  if (!player) {
@@ -268,7 +295,7 @@ export class THEOplayerView extends PureComponent {
268
295
  textTracks: player.textTracks.map(textTrack => fromNativeTextTrack(textTrack)),
269
296
  audioTracks: player.audioTracks.map(audioTrack => fromNativeMediaTrack(audioTrack)),
270
297
  videoTracks: player.videoTracks.map(videoTrack => fromNativeMediaTrack(videoTrack)),
271
- duration: 1e03 * player.duration,
298
+ duration: 1e3 * player.duration,
272
299
  selectedTextTrack: (_player$textTracks$fi = player.textTracks.find(track => track.mode === 'showing')) === null || _player$textTracks$fi === void 0 ? void 0 : _player$textTracks$fi.uid,
273
300
  selectedVideoTrack: (_player$videoTracks$f = player.videoTracks.find(track => track.enabled)) === null || _player$videoTracks$f === void 0 ? void 0 : _player$videoTracks$f.uid,
274
301
  selectedAudioTrack: (_player$audioTracks$f = player.audioTracks.find(track => track.enabled)) === null || _player$audioTracks$f === void 0 ? void 0 : _player$audioTracks$f.uid
@@ -328,6 +355,8 @@ export class THEOplayerView extends PureComponent {
328
355
  }
329
356
  });
330
357
  player.addEventListener('playing', () => {
358
+ // potentially notify change in buffering state
359
+ this.maybeChangeBufferingState(false);
331
360
  const {
332
361
  onPlaying
333
362
  } = this.props;
@@ -472,6 +501,15 @@ export class THEOplayerView extends PureComponent {
472
501
  });
473
502
  }
474
503
  });
504
+ (_player$ads = player.ads) === null || _player$ads === void 0 ? void 0 : _player$ads.addEventListener(AdEventNames, event => {
505
+ const {
506
+ onAdEvent
507
+ } = this.props;
508
+
509
+ if (onAdEvent) {
510
+ onAdEvent(event);
511
+ }
512
+ });
475
513
  }
476
514
 
477
515
  render() {
@@ -1 +1 @@
1
- {"version":3,"names":["React","PureComponent","TextTrackEventType","TrackListEventType","THEOplayer","fromNativeCue","fromNativeMediaTrack","fromNativeTextTrack","THEOplayerView","constructor","props","track","event","onTextTrackEvent","cue","type","AddCue","trackUid","uid","RemoveCue","state","initialState","componentDidMount","config","source","element","document","querySelector","chromeless","undefined","_player","ChromelessPlayer","libraryLocation","Player","ui","fluid","prepareWithUserAction","addEventListeners","componentWillUnmount","destroy","seek","time","isNaN","Error","currentTime","reset","setState","componentDidUpdate","prevProps","paused","volume","selectedTextTrack","selectedAudioTrack","selectedVideoTrack","muted","playbackRate","fullscreen","wasPaused","prevSelectedTextTrack","prevSelectedAudioTrack","prevSelectedVideoTrack","prevSource","wasMuted","prevPlaybackRate","wasFullscreen","prevVolume","pause","play","Boolean","Number","onFullscreenPlayerWillPresent","onFullscreenPlayerWillDismiss","appContainer","getElementById","requestFullscreen","then","exitFullscreen","textTracks","forEach","textTrack","mode","audioTracks","audioTrack","enabled","videoTracks","videoTrack","maybeChangeBufferingState","isBuffering","wasBuffering","error","newIsBuffering","onBufferingStateChange","player","addEventListener","onSourceChange","onLoadStart","onLoadedData","onLoadedMetadata","map","duration","find","errorObject","errorCode","code","toString","errorMessage","message","onError","onProgress","seekable","i","length","push","start","end","onPlay","onPlaying","onPause","onSeeking","onSeeked","onEnded","readyState","onReadyStateChange","onTimeUpdate","currentProgramDateTime","getTime","onDurationChange","onSegmentNotFound","segmentStartTime","retryCount","presentation","presentationMode","onFullscreenPlayerDidPresent","onFullscreenPlayerDidDismiss","onTextTrackListEvent","onAddTextTrackCue","onRemoveTextTrackCue","AddTrack","removeEventListener","RemoveTrack","render"],"sources":["THEOplayerView.web.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\n\nimport type { PlayerError, TextTrack, THEOplayerViewProps, TimeRange } from 'react-native-theoplayer';\nimport { TextTrackEventType, TrackListEventType } from 'react-native-theoplayer';\nimport type { Event, TextTrackCue as NativeTextTrackCue } from 'theoplayer';\n\nimport type {\n AddTrackEvent,\n MediaTrack as NativeMediaTrack,\n PresentationModeChangeEvent,\n ReadyStateChangeEvent as NativeReadyStateChangeEvent,\n RemoveTrackEvent,\n TextTrack as NativeTextTrack,\n} from 'theoplayer';\nimport * as THEOplayer from 'theoplayer';\nimport { fromNativeCue, fromNativeMediaTrack, fromNativeTextTrack } from './web/TrackUtils';\n\ninterface THEOplayerRCTViewState {\n isBuffering: boolean;\n error?: PlayerError;\n}\n\nexport class THEOplayerView extends PureComponent<THEOplayerViewProps, THEOplayerRCTViewState> {\n private _player: THEOplayer.ChromelessPlayer | null = null;\n\n private static initialState: THEOplayerRCTViewState = {\n isBuffering: false,\n error: undefined,\n };\n\n constructor(props: THEOplayerViewProps) {\n super(props);\n this.state = THEOplayerView.initialState;\n }\n\n componentDidMount() {\n const { config, source } = this.props;\n const element = document.querySelector('.theoplayer-container') as HTMLElement;\n if (config?.chromeless === true || config?.chromeless === undefined) {\n this._player = new THEOplayer.ChromelessPlayer(element, {\n libraryLocation: 'node_modules/theoplayer',\n ...config,\n });\n } else {\n this._player = new THEOplayer.Player(element, {\n libraryLocation: 'node_modules/theoplayer',\n ...config,\n ui: {\n fluid: true,\n },\n });\n }\n this._player.prepareWithUserAction();\n this._player.source = source;\n this.addEventListeners();\n }\n\n componentWillUnmount() {\n if (this._player) {\n this._player.destroy();\n }\n }\n\n public seek(time: number): void {\n if (isNaN(time)) {\n throw new Error('Specified time is not a number');\n }\n if (this._player) {\n this._player.currentTime = time / 1e3;\n }\n }\n\n private reset() {\n this.setState(THEOplayerView.initialState);\n }\n\n componentDidUpdate(prevProps: Readonly<THEOplayerViewProps>) {\n if (!this._player) {\n return;\n }\n // track property changes\n const { paused, volume, selectedTextTrack, selectedAudioTrack, selectedVideoTrack, source, muted, playbackRate, fullscreen } = this.props;\n const {\n paused: wasPaused,\n selectedTextTrack: prevSelectedTextTrack,\n selectedAudioTrack: prevSelectedAudioTrack,\n selectedVideoTrack: prevSelectedVideoTrack,\n source: prevSource,\n muted: wasMuted,\n playbackRate: prevPlaybackRate,\n fullscreen: wasFullscreen,\n volume: prevVolume,\n } = prevProps;\n\n if (source !== prevSource) {\n this._player.source = source;\n }\n if (paused !== wasPaused) {\n if (paused) {\n this._player.pause();\n } else {\n this._player.play();\n }\n }\n if (muted !== wasMuted) {\n this._player.muted = Boolean(muted);\n }\n if (volume !== prevVolume) {\n this._player.volume = Number(volume);\n }\n if (fullscreen !== wasFullscreen) {\n const { onFullscreenPlayerWillPresent, onFullscreenPlayerWillDismiss } = this.props;\n const appContainer = document.getElementById('app');\n if (fullscreen) {\n if (onFullscreenPlayerWillPresent) {\n onFullscreenPlayerWillPresent();\n }\n appContainer?.requestFullscreen().then();\n } else {\n if (onFullscreenPlayerWillDismiss) {\n onFullscreenPlayerWillDismiss();\n }\n document.exitFullscreen().then();\n }\n }\n if (playbackRate && playbackRate !== prevPlaybackRate) {\n this._player.playbackRate = playbackRate;\n }\n if (selectedTextTrack !== prevSelectedTextTrack) {\n this._player.textTracks.forEach((textTrack: NativeTextTrack) => {\n textTrack.mode = textTrack.uid === selectedTextTrack ? 'showing' : 'disabled';\n });\n }\n if (selectedAudioTrack !== prevSelectedAudioTrack) {\n this._player.audioTracks.forEach((audioTrack: NativeMediaTrack) => {\n audioTrack.enabled = audioTrack.uid === selectedAudioTrack;\n });\n }\n if (selectedVideoTrack !== prevSelectedVideoTrack) {\n this._player.videoTracks.forEach((videoTrack: NativeMediaTrack) => {\n videoTrack.enabled = videoTrack.uid === selectedVideoTrack;\n });\n }\n }\n\n private maybeChangeBufferingState(isBuffering: boolean) {\n const { isBuffering: wasBuffering, error } = this.state;\n const { paused } = this.props;\n\n // do not change state to buffering in case of an error or if the player is paused\n const newIsBuffering = isBuffering && !error && !paused;\n this.setState({ isBuffering: newIsBuffering });\n\n // notify change in buffering state\n if (newIsBuffering !== wasBuffering && this.props.onBufferingStateChange) {\n this.props.onBufferingStateChange(newIsBuffering);\n }\n }\n\n private onAddTextTrackCue = (track: NativeTextTrack) => (event: Event<'addcue'>) => {\n const { onTextTrackEvent } = this.props;\n if (onTextTrackEvent) {\n const { cue } = event as unknown as { cue: NativeTextTrackCue };\n if (cue) {\n onTextTrackEvent({\n type: TextTrackEventType.AddCue,\n trackUid: track.uid,\n cue: fromNativeCue(cue),\n });\n }\n }\n };\n\n private onRemoveTextTrackCue = (track: NativeTextTrack) => (event: Event<'removecue'>) => {\n const { onTextTrackEvent } = this.props;\n if (onTextTrackEvent) {\n const { cue } = event as unknown as { cue: NativeTextTrackCue };\n if (cue) {\n onTextTrackEvent({\n type: TextTrackEventType.RemoveCue,\n trackUid: track.uid,\n cue: fromNativeCue(cue),\n });\n }\n }\n };\n\n private addEventListeners() {\n const player = this._player;\n if (!player) {\n return;\n }\n\n player.addEventListener('sourcechange', () => {\n const { onSourceChange, paused } = this.props;\n\n this.reset();\n if (!paused) {\n player.play();\n }\n if (onSourceChange) {\n onSourceChange();\n }\n });\n\n player.addEventListener('loadstart', () => {\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(true);\n\n const { onLoadStart } = this.props;\n if (onLoadStart) {\n onLoadStart();\n }\n });\n\n player.addEventListener('loadeddata', () => {\n const { onLoadedData } = this.props;\n if (onLoadedData) {\n onLoadedData();\n }\n });\n\n player.addEventListener('loadedmetadata', () => {\n const { onLoadedMetadata } = this.props;\n if (onLoadedMetadata) {\n onLoadedMetadata({\n textTracks: player.textTracks.map((textTrack: NativeTextTrack) => fromNativeTextTrack(textTrack)),\n audioTracks: player.audioTracks.map((audioTrack: NativeMediaTrack) => fromNativeMediaTrack(audioTrack)),\n videoTracks: player.videoTracks.map((videoTrack: NativeMediaTrack) => fromNativeMediaTrack(videoTrack)),\n duration: 1e03 * player.duration,\n selectedTextTrack: player.textTracks.find((track: NativeTextTrack) => track.mode === 'showing')?.uid,\n selectedVideoTrack: player.videoTracks.find((track: NativeMediaTrack) => track.enabled)?.uid,\n selectedAudioTrack: player.audioTracks.find((track: NativeMediaTrack) => track.enabled)?.uid,\n });\n }\n });\n\n player.addEventListener('error', (event) => {\n const { errorObject } = event;\n const error = {\n errorCode: errorObject.code.toString(),\n errorMessage: errorObject.message,\n };\n this.setState({ error });\n\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(false);\n\n const { onError } = this.props;\n if (onError) {\n onError({ error });\n }\n });\n\n player.addEventListener('progress', () => {\n const { onProgress } = this.props;\n if (onProgress) {\n const seekable: TimeRange[] = [];\n for (let i = 0; i < player.seekable.length; i++) {\n seekable.push({\n start: player.seekable.start(i) * 1e3,\n end: player.seekable.end(i) * 1e3,\n });\n }\n onProgress({ seekable });\n }\n });\n\n player.addEventListener('play', () => {\n const { onPlay } = this.props;\n if (onPlay) {\n onPlay();\n }\n });\n\n player.addEventListener('playing', () => {\n const { onPlaying } = this.props;\n if (onPlaying) {\n onPlaying();\n }\n });\n\n player.addEventListener('pause', () => {\n const { onPause } = this.props;\n if (onPause) {\n onPause();\n }\n });\n\n player.addEventListener('seeking', () => {\n const { onSeeking } = this.props;\n if (onSeeking) {\n onSeeking();\n }\n });\n\n player.addEventListener('seeked', () => {\n const { onSeeked } = this.props;\n if (onSeeked) {\n onSeeked();\n }\n });\n\n player.addEventListener('ended', () => {\n const { onEnded } = this.props;\n if (onEnded) {\n onEnded();\n }\n });\n\n player.addEventListener('readystatechange', (event: NativeReadyStateChangeEvent) => {\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(event.readyState < 3);\n\n const { onReadyStateChange } = this.props;\n if (onReadyStateChange) {\n onReadyStateChange({ readyState: event.readyState });\n }\n });\n\n player.addEventListener('timeupdate', () => {\n const { onTimeUpdate } = this.props;\n if (onTimeUpdate) {\n onTimeUpdate({\n currentTime: player.currentTime * 1e3,\n currentProgramDateTime: player.currentProgramDateTime?.getTime(),\n });\n }\n });\n player.addEventListener('durationchange', (event) => {\n const { onDurationChange } = this.props;\n if (onDurationChange) {\n onDurationChange({\n duration: event.duration * 1e3,\n });\n }\n });\n player.addEventListener('segmentnotfound', () => {\n const { onSegmentNotFound } = this.props;\n if (onSegmentNotFound) {\n onSegmentNotFound({\n segmentStartTime: 0,\n error: 'Segment not found',\n retryCount: -1,\n });\n }\n });\n player.presentation.addEventListener('presentationmodechange', (event: PresentationModeChangeEvent) => {\n const { presentationMode } = event;\n const { onFullscreenPlayerDidPresent, onFullscreenPlayerDidDismiss } = this.props;\n if (presentationMode === 'fullscreen') {\n if (onFullscreenPlayerDidPresent) {\n onFullscreenPlayerDidPresent();\n }\n } else if (presentationMode === 'inline') {\n if (onFullscreenPlayerDidDismiss) {\n onFullscreenPlayerDidDismiss();\n }\n }\n });\n player.textTracks.addEventListener('addtrack', (event: AddTrackEvent) => {\n const { onTextTrackListEvent } = this.props;\n const track = event.track as NativeTextTrack;\n track.addEventListener('addcue', this.onAddTextTrackCue(track));\n track.addEventListener('removecue', this.onRemoveTextTrackCue(track));\n\n if (onTextTrackListEvent) {\n onTextTrackListEvent({\n type: TrackListEventType.AddTrack,\n track: track as TextTrack,\n });\n }\n });\n player.textTracks.addEventListener('removetrack', (event: RemoveTrackEvent) => {\n const { onTextTrackListEvent } = this.props;\n const track = event.track as NativeTextTrack;\n track.removeEventListener('addcue', this.onAddTextTrackCue(track));\n track.removeEventListener('removecue', this.onRemoveTextTrackCue(track));\n\n if (onTextTrackListEvent) {\n onTextTrackListEvent({\n type: TrackListEventType.RemoveTrack,\n track: event.track as unknown as TextTrack,\n });\n }\n });\n }\n\n public render(): JSX.Element {\n const { config } = this.props;\n const chromeless = config?.chromeless === undefined || config?.chromeless === true;\n\n return (\n <div id={'theoplayer-wrapper'}>\n <div className={chromeless ? 'theoplayer-container' : 'theoplayer-container video-js theoplayer-skin'} />\n </div>\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","PureComponent","AdEventNames","TextTrackEventType","TrackListEventType","THEOplayer","findNativeQualitiesByUid","fromNativeCue","fromNativeMediaTrack","fromNativeTextTrack","THEOplayerWebAdsAPI","THEOplayerView","constructor","props","track","event","onTextTrackEvent","cue","type","AddCue","trackUid","uid","RemoveCue","state","initialState","_adsApi","componentDidMount","config","source","abrConfig","element","document","querySelector","chromeless","undefined","_player","ChromelessPlayer","libraryLocation","Player","ui","fluid","Object","assign","abr","prepareWithUserAction","addEventListeners","componentWillUnmount","destroy","seek","time","isNaN","Error","currentTime","ads","nativePlayer","reset","setState","componentDidUpdate","prevProps","paused","volume","selectedTextTrack","selectedAudioTrack","selectedVideoTrack","targetVideoQuality","muted","playbackRate","fullscreen","wasPaused","prevSelectedTextTrack","prevSelectedAudioTrack","prevSelectedVideoTrack","prevTargetVideoQuality","prevSource","wasMuted","prevPlaybackRate","wasFullscreen","prevVolume","pause","play","Boolean","Number","onFullscreenPlayerWillPresent","onFullscreenPlayerWillDismiss","appContainer","getElementById","requestFullscreen","then","exitFullscreen","textTracks","forEach","textTrack","mode","audioTracks","audioTrack","enabled","videoTracks","videoTrack","find","targetQuality","maybeChangeBufferingState","isBuffering","wasBuffering","error","newIsBuffering","onBufferingStateChange","player","addEventListener","onSourceChange","onLoadStart","onLoadedData","onLoadedMetadata","map","duration","errorObject","errorCode","code","toString","errorMessage","message","onError","onProgress","seekable","i","length","push","start","end","onPlay","onPlaying","onPause","onSeeking","onSeeked","onEnded","readyState","onReadyStateChange","onTimeUpdate","currentProgramDateTime","getTime","onDurationChange","onSegmentNotFound","segmentStartTime","retryCount","presentation","presentationMode","onFullscreenPlayerDidPresent","onFullscreenPlayerDidDismiss","onTextTrackListEvent","onAddTextTrackCue","onRemoveTextTrackCue","AddTrack","removeEventListener","RemoveTrack","onAdEvent","render"],"sources":["THEOplayerView.web.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\n\nimport type { AdEvent, AdsAPI, PlayerError, TextTrack, THEOplayerViewProps, TimeRange } from 'react-native-theoplayer';\nimport { AdEventNames, TextTrackEventType, THEOplayerViewComponent, TrackListEventType } from 'react-native-theoplayer';\nimport type { Event, TextTrackCue as NativeTextTrackCue } from 'theoplayer';\n\nimport type {\n AddTrackEvent,\n MediaTrack as NativeMediaTrack,\n PresentationModeChangeEvent,\n ReadyStateChangeEvent as NativeReadyStateChangeEvent,\n RemoveTrackEvent,\n TextTrack as NativeTextTrack,\n} from 'theoplayer';\nimport * as THEOplayer from 'theoplayer';\nimport { findNativeQualitiesByUid, fromNativeCue, fromNativeMediaTrack, fromNativeTextTrack } from './web/TrackUtils';\nimport { THEOplayerWebAdsAPI } from './ads/THEOplayerWebAdsAPI';\n\ninterface THEOplayerRCTViewState {\n isBuffering: boolean;\n error?: PlayerError;\n}\n\nexport class THEOplayerView extends PureComponent<THEOplayerViewProps, THEOplayerRCTViewState> implements THEOplayerViewComponent {\n private _player: THEOplayer.ChromelessPlayer | null = null;\n private _adsApi: THEOplayerWebAdsAPI;\n\n private static initialState: THEOplayerRCTViewState = {\n isBuffering: false,\n error: undefined,\n };\n\n constructor(props: THEOplayerViewProps) {\n super(props);\n this.state = THEOplayerView.initialState;\n this._adsApi = new THEOplayerWebAdsAPI(this);\n }\n\n componentDidMount() {\n const { config, source, abrConfig } = this.props;\n const element = document.querySelector('.theoplayer-container') as HTMLElement;\n if (config?.chromeless === true || config?.chromeless === undefined) {\n this._player = new THEOplayer.ChromelessPlayer(element, {\n libraryLocation: 'node_modules/theoplayer',\n ...config,\n });\n } else {\n this._player = new THEOplayer.Player(element, {\n libraryLocation: 'node_modules/theoplayer',\n ...config,\n ui: {\n fluid: true,\n },\n });\n }\n\n Object.assign(this._player.abr, abrConfig);\n this._player.prepareWithUserAction();\n this._player.source = source;\n this.addEventListeners();\n }\n\n componentWillUnmount() {\n if (this._player) {\n this._player.destroy();\n }\n }\n\n public seek(time: number): void {\n if (isNaN(time)) {\n throw new Error('Specified time is not a number');\n }\n if (this._player) {\n this._player.currentTime = time / 1e3;\n }\n }\n\n public get ads(): AdsAPI {\n return this._adsApi;\n }\n\n public get nativePlayer(): THEOplayer.ChromelessPlayer | null {\n return this._player;\n }\n\n private reset() {\n this.setState(THEOplayerView.initialState);\n }\n\n componentDidUpdate(prevProps: Readonly<THEOplayerViewProps>) {\n if (!this._player) {\n return;\n }\n // track property changes\n const { paused, volume, selectedTextTrack, selectedAudioTrack, selectedVideoTrack, targetVideoQuality, source, muted, playbackRate, fullscreen } =\n this.props;\n const {\n paused: wasPaused,\n selectedTextTrack: prevSelectedTextTrack,\n selectedAudioTrack: prevSelectedAudioTrack,\n selectedVideoTrack: prevSelectedVideoTrack,\n targetVideoQuality: prevTargetVideoQuality,\n source: prevSource,\n muted: wasMuted,\n playbackRate: prevPlaybackRate,\n fullscreen: wasFullscreen,\n volume: prevVolume,\n } = prevProps;\n\n if (source !== prevSource) {\n this._player.source = source;\n }\n if (paused !== wasPaused) {\n if (paused) {\n this._player.pause();\n } else {\n this._player.play();\n }\n }\n if (muted !== wasMuted) {\n this._player.muted = Boolean(muted);\n }\n if (volume !== prevVolume) {\n this._player.volume = Number(volume);\n }\n if (fullscreen !== wasFullscreen) {\n const { onFullscreenPlayerWillPresent, onFullscreenPlayerWillDismiss } = this.props;\n const appContainer = document.getElementById('app');\n if (fullscreen) {\n if (onFullscreenPlayerWillPresent) {\n onFullscreenPlayerWillPresent();\n }\n appContainer?.requestFullscreen().then();\n } else {\n if (onFullscreenPlayerWillDismiss) {\n onFullscreenPlayerWillDismiss();\n }\n document.exitFullscreen().then();\n }\n }\n if (playbackRate && playbackRate !== prevPlaybackRate) {\n this._player.playbackRate = playbackRate;\n }\n if (selectedTextTrack !== prevSelectedTextTrack) {\n this._player.textTracks.forEach((textTrack: NativeTextTrack) => {\n textTrack.mode = textTrack.uid === selectedTextTrack ? 'showing' : 'disabled';\n });\n }\n if (selectedAudioTrack !== prevSelectedAudioTrack) {\n this._player.audioTracks.forEach((audioTrack: NativeMediaTrack) => {\n audioTrack.enabled = audioTrack.uid === selectedAudioTrack;\n });\n }\n if (selectedVideoTrack !== prevSelectedVideoTrack) {\n this._player.videoTracks.forEach((videoTrack: NativeMediaTrack) => {\n videoTrack.enabled = videoTrack.uid === selectedVideoTrack;\n });\n }\n if (targetVideoQuality != prevTargetVideoQuality) {\n const videoTrack = this._player.videoTracks.find((videoTrack: NativeMediaTrack) => videoTrack.uid === selectedVideoTrack);\n if (videoTrack) {\n videoTrack.targetQuality = findNativeQualitiesByUid(videoTrack, targetVideoQuality);\n }\n }\n }\n\n private maybeChangeBufferingState(isBuffering: boolean) {\n const { isBuffering: wasBuffering, error } = this.state;\n const { paused } = this.props;\n\n // do not change state to buffering in case of an error or if the player is paused\n const newIsBuffering = isBuffering && !error && !paused;\n this.setState({ isBuffering: newIsBuffering });\n\n // notify change in buffering state\n if (newIsBuffering !== wasBuffering && this.props.onBufferingStateChange) {\n this.props.onBufferingStateChange(newIsBuffering);\n }\n }\n\n private onAddTextTrackCue = (track: NativeTextTrack) => (event: Event<'addcue'>) => {\n const { onTextTrackEvent } = this.props;\n if (onTextTrackEvent) {\n const { cue } = event as unknown as { cue: NativeTextTrackCue };\n if (cue) {\n onTextTrackEvent({\n type: TextTrackEventType.AddCue,\n trackUid: track.uid,\n cue: fromNativeCue(cue),\n });\n }\n }\n };\n\n private onRemoveTextTrackCue = (track: NativeTextTrack) => (event: Event<'removecue'>) => {\n const { onTextTrackEvent } = this.props;\n if (onTextTrackEvent) {\n const { cue } = event as unknown as { cue: NativeTextTrackCue };\n if (cue) {\n onTextTrackEvent({\n type: TextTrackEventType.RemoveCue,\n trackUid: track.uid,\n cue: fromNativeCue(cue),\n });\n }\n }\n };\n\n private addEventListeners() {\n const player = this._player;\n if (!player) {\n return;\n }\n\n player.addEventListener('sourcechange', () => {\n const { onSourceChange, paused } = this.props;\n\n this.reset();\n if (!paused) {\n player.play();\n }\n if (onSourceChange) {\n onSourceChange();\n }\n });\n\n player.addEventListener('loadstart', () => {\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(true);\n\n const { onLoadStart } = this.props;\n if (onLoadStart) {\n onLoadStart();\n }\n });\n\n player.addEventListener('loadeddata', () => {\n const { onLoadedData } = this.props;\n if (onLoadedData) {\n onLoadedData();\n }\n });\n\n player.addEventListener('loadedmetadata', () => {\n const { onLoadedMetadata } = this.props;\n if (onLoadedMetadata) {\n onLoadedMetadata({\n textTracks: player.textTracks.map((textTrack: NativeTextTrack) => fromNativeTextTrack(textTrack)),\n audioTracks: player.audioTracks.map((audioTrack: NativeMediaTrack) => fromNativeMediaTrack(audioTrack)),\n videoTracks: player.videoTracks.map((videoTrack: NativeMediaTrack) => fromNativeMediaTrack(videoTrack)),\n duration: 1e3 * player.duration,\n selectedTextTrack: player.textTracks.find((track: NativeTextTrack) => track.mode === 'showing')?.uid,\n selectedVideoTrack: player.videoTracks.find((track: NativeMediaTrack) => track.enabled)?.uid,\n selectedAudioTrack: player.audioTracks.find((track: NativeMediaTrack) => track.enabled)?.uid,\n });\n }\n });\n\n player.addEventListener('error', (event) => {\n const { errorObject } = event;\n const error = {\n errorCode: errorObject.code.toString(),\n errorMessage: errorObject.message,\n };\n this.setState({ error });\n\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(false);\n\n const { onError } = this.props;\n if (onError) {\n onError({ error });\n }\n });\n\n player.addEventListener('progress', () => {\n const { onProgress } = this.props;\n if (onProgress) {\n const seekable: TimeRange[] = [];\n for (let i = 0; i < player.seekable.length; i++) {\n seekable.push({\n start: player.seekable.start(i) * 1e3,\n end: player.seekable.end(i) * 1e3,\n });\n }\n onProgress({ seekable });\n }\n });\n\n player.addEventListener('play', () => {\n const { onPlay } = this.props;\n if (onPlay) {\n onPlay();\n }\n });\n\n player.addEventListener('playing', () => {\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(false);\n\n const { onPlaying } = this.props;\n if (onPlaying) {\n onPlaying();\n }\n });\n\n player.addEventListener('pause', () => {\n const { onPause } = this.props;\n if (onPause) {\n onPause();\n }\n });\n\n player.addEventListener('seeking', () => {\n const { onSeeking } = this.props;\n if (onSeeking) {\n onSeeking();\n }\n });\n\n player.addEventListener('seeked', () => {\n const { onSeeked } = this.props;\n if (onSeeked) {\n onSeeked();\n }\n });\n\n player.addEventListener('ended', () => {\n const { onEnded } = this.props;\n if (onEnded) {\n onEnded();\n }\n });\n\n player.addEventListener('readystatechange', (event: NativeReadyStateChangeEvent) => {\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(event.readyState < 3);\n\n const { onReadyStateChange } = this.props;\n if (onReadyStateChange) {\n onReadyStateChange({ readyState: event.readyState });\n }\n });\n\n player.addEventListener('timeupdate', () => {\n const { onTimeUpdate } = this.props;\n if (onTimeUpdate) {\n onTimeUpdate({\n currentTime: player.currentTime * 1e3,\n currentProgramDateTime: player.currentProgramDateTime?.getTime(),\n });\n }\n });\n player.addEventListener('durationchange', (event) => {\n const { onDurationChange } = this.props;\n if (onDurationChange) {\n onDurationChange({\n duration: event.duration * 1e3,\n });\n }\n });\n player.addEventListener('segmentnotfound', () => {\n const { onSegmentNotFound } = this.props;\n if (onSegmentNotFound) {\n onSegmentNotFound({\n segmentStartTime: 0,\n error: 'Segment not found',\n retryCount: -1,\n });\n }\n });\n player.presentation.addEventListener('presentationmodechange', (event: PresentationModeChangeEvent) => {\n const { presentationMode } = event;\n const { onFullscreenPlayerDidPresent, onFullscreenPlayerDidDismiss } = this.props;\n if (presentationMode === 'fullscreen') {\n if (onFullscreenPlayerDidPresent) {\n onFullscreenPlayerDidPresent();\n }\n } else if (presentationMode === 'inline') {\n if (onFullscreenPlayerDidDismiss) {\n onFullscreenPlayerDidDismiss();\n }\n }\n });\n player.textTracks.addEventListener('addtrack', (event: AddTrackEvent) => {\n const { onTextTrackListEvent } = this.props;\n const track = event.track as NativeTextTrack;\n track.addEventListener('addcue', this.onAddTextTrackCue(track));\n track.addEventListener('removecue', this.onRemoveTextTrackCue(track));\n\n if (onTextTrackListEvent) {\n onTextTrackListEvent({\n type: TrackListEventType.AddTrack,\n track: track as TextTrack,\n });\n }\n });\n player.textTracks.addEventListener('removetrack', (event: RemoveTrackEvent) => {\n const { onTextTrackListEvent } = this.props;\n const track = event.track as NativeTextTrack;\n track.removeEventListener('addcue', this.onAddTextTrackCue(track));\n track.removeEventListener('removecue', this.onRemoveTextTrackCue(track));\n\n if (onTextTrackListEvent) {\n onTextTrackListEvent({\n type: TrackListEventType.RemoveTrack,\n track: event.track as unknown as TextTrack,\n });\n }\n });\n player.ads?.addEventListener(AdEventNames, (event) => {\n const { onAdEvent } = this.props;\n if (onAdEvent) {\n onAdEvent(event as AdEvent);\n }\n });\n }\n\n public render(): JSX.Element {\n const { config } = this.props;\n const chromeless = config?.chromeless === undefined || config?.chromeless === true;\n\n return (\n <div id={'theoplayer-wrapper'}>\n <div className={chromeless ? 'theoplayer-container' : 'theoplayer-container video-js theoplayer-skin'} />\n </div>\n );\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+
3
+ import { NativeModules } from "react-native";
4
+ import { THEOplayerNativeGoogleDAI } from "./THEOplayerNativeGoogleDAI";
5
+ export class THEOplayerNativeAdsAPI {
6
+ constructor(_player) {
7
+ this._player = _player;
8
+
9
+ _defineProperty(this, "_dai", void 0);
10
+
11
+ this._dai = new THEOplayerNativeGoogleDAI(this._player);
12
+ }
13
+
14
+ playing() {
15
+ return NativeModules.AdsModule.playing(this._player.nativeHandle);
16
+ }
17
+
18
+ skip() {
19
+ NativeModules.AdsModule.skip(this._player.nativeHandle);
20
+ }
21
+
22
+ currentAdBreak() {
23
+ return NativeModules.AdsModule.currentAdBreak(this._player.nativeHandle);
24
+ }
25
+
26
+ currentAds() {
27
+ return NativeModules.AdsModule.currentAds(this._player.nativeHandle);
28
+ }
29
+
30
+ scheduledAdBreaks() {
31
+ return NativeModules.AdsModule.scheduledAdBreaks(this._player.nativeHandle);
32
+ }
33
+
34
+ schedule(ad) {
35
+ NativeModules.AdsModule.schedule(this._player.nativeHandle, ad);
36
+ }
37
+
38
+ get dai() {
39
+ return this._dai;
40
+ }
41
+
42
+ }
43
+ //# sourceMappingURL=THEOplayerNativeAdsAPI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeModules","THEOplayerNativeGoogleDAI","THEOplayerNativeAdsAPI","constructor","_player","_dai","playing","AdsModule","nativeHandle","skip","currentAdBreak","currentAds","scheduledAdBreaks","schedule","ad","dai"],"sources":["THEOplayerNativeAdsAPI.ts"],"sourcesContent":["import type { AdBreak, AdsAPI } from \"react-native-theoplayer\";\nimport { NativeModules } from \"react-native\";\nimport type { AdDescription } from \"react-native-theoplayer\";\nimport type { Ad } from \"react-native-theoplayer\";\nimport type { THEOplayerView } from \"react-native-theoplayer\";\nimport type { GoogleDAI } from \"react-native-theoplayer\";\nimport { THEOplayerNativeGoogleDAI } from \"./THEOplayerNativeGoogleDAI\";\n\nexport class THEOplayerNativeAdsAPI implements AdsAPI {\n\n private readonly _dai: GoogleDAI;\n\n constructor(private _player: THEOplayerView) {\n this._dai = new THEOplayerNativeGoogleDAI(this._player);\n }\n\n playing(): Promise<boolean> {\n return NativeModules.AdsModule.playing(this._player.nativeHandle);\n }\n\n skip(): void {\n NativeModules.AdsModule.skip(this._player.nativeHandle);\n }\n\n currentAdBreak(): Promise<AdBreak> {\n return NativeModules.AdsModule.currentAdBreak(this._player.nativeHandle);\n }\n\n currentAds(): Promise<Ad[]> {\n return NativeModules.AdsModule.currentAds(this._player.nativeHandle);\n }\n\n scheduledAdBreaks(): Promise<AdBreak[]> {\n return NativeModules.AdsModule.scheduledAdBreaks(this._player.nativeHandle);\n }\n\n schedule(ad: AdDescription): void {\n NativeModules.AdsModule.schedule(this._player.nativeHandle, ad);\n }\n\n get dai(): GoogleDAI | undefined {\n return this._dai;\n }\n}\n"],"mappings":";;AACA,SAASA,aAAT,QAA8B,cAA9B;AAKA,SAASC,yBAAT,QAA0C,6BAA1C;AAEA,OAAO,MAAMC,sBAAN,CAA+C;EAIpDC,WAAW,CAASC,OAAT,EAAkC;IAAA,KAAzBA,OAAyB,GAAzBA,OAAyB;;IAAA;;IAC3C,KAAKC,IAAL,GAAY,IAAIJ,yBAAJ,CAA8B,KAAKG,OAAnC,CAAZ;EACD;;EAEDE,OAAO,GAAqB;IAC1B,OAAON,aAAa,CAACO,SAAd,CAAwBD,OAAxB,CAAgC,KAAKF,OAAL,CAAaI,YAA7C,CAAP;EACD;;EAEDC,IAAI,GAAS;IACXT,aAAa,CAACO,SAAd,CAAwBE,IAAxB,CAA6B,KAAKL,OAAL,CAAaI,YAA1C;EACD;;EAEDE,cAAc,GAAqB;IACjC,OAAOV,aAAa,CAACO,SAAd,CAAwBG,cAAxB,CAAuC,KAAKN,OAAL,CAAaI,YAApD,CAAP;EACD;;EAEDG,UAAU,GAAkB;IAC1B,OAAOX,aAAa,CAACO,SAAd,CAAwBI,UAAxB,CAAmC,KAAKP,OAAL,CAAaI,YAAhD,CAAP;EACD;;EAEDI,iBAAiB,GAAuB;IACtC,OAAOZ,aAAa,CAACO,SAAd,CAAwBK,iBAAxB,CAA0C,KAAKR,OAAL,CAAaI,YAAvD,CAAP;EACD;;EAEDK,QAAQ,CAACC,EAAD,EAA0B;IAChCd,aAAa,CAACO,SAAd,CAAwBM,QAAxB,CAAiC,KAAKT,OAAL,CAAaI,YAA9C,EAA4DM,EAA5D;EACD;;EAEM,IAAHC,GAAG,GAA0B;IAC/B,OAAO,KAAKV,IAAZ;EACD;;AAlCmD"}