react-native-theoplayer 1.7.2 → 1.8.1

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 (248) hide show
  1. package/README.md +2 -0
  2. package/android/src/main/java/com/theoplayer/PlayerConfigAdapter.kt +115 -0
  3. package/android/src/main/java/com/theoplayer/PlayerEventEmitter.kt +648 -0
  4. package/android/src/main/java/com/theoplayer/ReactTHEOplayerPackage.kt +23 -0
  5. package/android/src/main/java/com/theoplayer/ReactTHEOplayerView.kt +447 -0
  6. package/android/src/main/java/com/theoplayer/ReactTHEOplayerViewManager.kt +117 -0
  7. package/android/src/main/java/com/theoplayer/{TimeUpdateRate.java → TimeUpdateRate.kt} +2 -2
  8. package/android/src/main/java/com/theoplayer/ads/AdAdapter.kt +161 -0
  9. package/android/src/main/java/com/theoplayer/ads/AdEventAdapter.kt +90 -0
  10. package/android/src/main/java/com/theoplayer/ads/AdsModule.kt +140 -0
  11. package/android/src/main/java/com/theoplayer/cast/CastEventAdapter.kt +81 -0
  12. package/android/src/main/java/com/theoplayer/cast/CastModule.kt +75 -0
  13. package/android/src/main/java/com/theoplayer/drm/ContentProtectionAdapter.kt +2 -2
  14. package/android/src/main/java/com/theoplayer/drm/ContentProtectionModule.kt +1 -2
  15. package/android/src/main/java/com/theoplayer/drm/ProxyContentProtectionIntegration.kt +1 -2
  16. package/android/src/main/java/com/theoplayer/drm/ProxyContentProtectionIntegrationFactory.kt +3 -5
  17. package/android/src/main/java/com/theoplayer/source/SourceAdapter.kt +402 -0
  18. package/android/src/main/java/com/theoplayer/track/MediaTrackEventType.kt +6 -0
  19. package/android/src/main/java/com/theoplayer/track/MediaTrackType.kt +6 -0
  20. package/android/src/main/java/com/theoplayer/track/QualityListAdapter.kt +43 -0
  21. package/android/src/main/java/com/theoplayer/track/QualityListFilter.kt +28 -0
  22. package/android/src/main/java/com/theoplayer/track/TextTrackCueEventType.kt +10 -0
  23. package/android/src/main/java/com/theoplayer/track/TrackEventType.kt +7 -0
  24. package/android/src/main/java/com/theoplayer/track/TrackListAdapter.kt +219 -0
  25. package/android/src/main/java/com/theoplayer/util/ViewResolver.kt +19 -0
  26. package/ios/THEOplayerRCTBridge.m +52 -1
  27. package/ios/THEOplayerRCTDebug.swift +3 -0
  28. package/ios/{THEOplayerRCTViewMainEventHandler.swift → THEOplayerRCTMainEventHandler.swift} +2 -2
  29. package/ios/{THEOplayerRCTViewMediaTrackEventHandler.swift → THEOplayerRCTMediaTrackEventHandler.swift} +8 -8
  30. package/ios/THEOplayerRCTSourceDescriptionBuilder.swift +95 -118
  31. package/ios/{THEOplayerRCTViewTextTrackEventHandler.swift → THEOplayerRCTTextTrackEventHandler.swift} +7 -7
  32. package/ios/{THEOplayerRCTMetadataAggregator.swift → THEOplayerRCTTrackMetadataAggregator.swift} +12 -12
  33. package/ios/THEOplayerRCTView.swift +51 -71
  34. package/ios/{THEOplayerRCTAdAggregator.swift → ads/THEOplayerRCTAdAggregator.swift} +13 -7
  35. package/ios/ads/THEOplayerRCTAdsAPI+DAI.swift +108 -0
  36. package/ios/{THEOplayerRCTAdsAPI.swift → ads/THEOplayerRCTAdsAPI.swift} +4 -95
  37. package/ios/{THEOplayerRCTViewAdEventHandler.swift → ads/THEOplayerRCTAdsEventHandler.swift} +3 -3
  38. package/ios/ads/THEOplayerRCTSourceDescriptionBuilder+Ads.swift +130 -0
  39. package/ios/ads/THEOplayerRCTView+Ads.swift +15 -0
  40. package/ios/ads/THEOplayerRCTView+AdsConfig.swift +82 -0
  41. package/ios/casting/THEOplayerRCTCastAPI+Airplay.swift +97 -0
  42. package/ios/casting/THEOplayerRCTCastAPI+Chromecast.swift +132 -0
  43. package/ios/casting/THEOplayerRCTCastAPI.swift +53 -0
  44. package/ios/casting/THEOplayerRCTCastEventHandler.swift +124 -0
  45. package/ios/casting/THEOplayerRCTView+CastConfig.swift +47 -0
  46. package/ios/casting/THEOplayerRCTView+Casting.swift +17 -0
  47. package/ios/{THEOplayerRCTContentProtectionAPI.swift → contentprotection/THEOplayerRCTContentProtectionAPI.swift} +0 -0
  48. package/ios/{THEOplayerRCTContentProtectionAggregator.swift → contentprotection/THEOplayerRCTContentProtectionAggregator.swift} +0 -0
  49. package/ios/{THEOplayerRCTProxyContentProtectionIntegration.swift → contentprotection/THEOplayerRCTProxyContentProtectionIntegration.swift} +0 -0
  50. package/ios/{THEOplayerRCTProxyContentProtectionIntegrationFactory.swift → contentprotection/THEOplayerRCTProxyContentProtectionIntegrationFactory.swift} +0 -0
  51. package/ios/custom/Frameworks/ios/put_custom_ios_xcframework_here.txt +1 -1
  52. package/ios/custom/Frameworks/tvos/put_custom_tvos_xcframework_here.txt +2 -0
  53. package/ios/custom/react-native-theoplayer_custom.podspec +46 -0
  54. package/lib/commonjs/api/THEOplayerView.js.map +1 -1
  55. package/lib/commonjs/api/barrel.js +21 -8
  56. package/lib/commonjs/api/barrel.js.map +1 -1
  57. package/lib/commonjs/api/cast/Airplay.js +6 -0
  58. package/lib/commonjs/api/cast/Airplay.js.map +1 -0
  59. package/lib/commonjs/api/cast/CastAPI.js +6 -0
  60. package/lib/commonjs/api/cast/CastAPI.js.map +1 -0
  61. package/lib/commonjs/api/cast/CastConfiguration.js +2 -0
  62. package/lib/commonjs/api/cast/CastConfiguration.js.map +1 -0
  63. package/lib/commonjs/api/cast/CastState.js +2 -0
  64. package/lib/commonjs/api/cast/CastState.js.map +1 -0
  65. package/lib/commonjs/api/cast/Chromecast.js +6 -0
  66. package/lib/commonjs/api/cast/Chromecast.js.map +1 -0
  67. package/lib/commonjs/api/cast/barrel.js +71 -0
  68. package/lib/commonjs/api/cast/barrel.js.map +1 -0
  69. package/lib/commonjs/api/config/PlayerConfiguration.js.map +1 -1
  70. package/lib/commonjs/api/error/ChromecastError.js +2 -0
  71. package/lib/commonjs/api/error/ChromecastError.js.map +1 -0
  72. package/lib/commonjs/api/error/barrel.js +13 -0
  73. package/lib/commonjs/api/error/barrel.js.map +1 -1
  74. package/lib/commonjs/api/event/CastEvent.js +21 -0
  75. package/lib/commonjs/api/event/CastEvent.js.map +1 -0
  76. package/lib/commonjs/api/event/barrel.js +25 -12
  77. package/lib/commonjs/api/event/barrel.js.map +1 -1
  78. package/lib/commonjs/api/source/SourceDescription.js.map +1 -1
  79. package/lib/commonjs/api/source/barrel.js +13 -0
  80. package/lib/commonjs/api/source/barrel.js.map +1 -1
  81. package/lib/commonjs/api/source/metadata/MetadataDescription.js +2 -0
  82. package/lib/commonjs/api/source/metadata/MetadataDescription.js.map +1 -0
  83. package/lib/commonjs/api/source/metadata/barrel.js +19 -0
  84. package/lib/commonjs/api/source/metadata/barrel.js.map +1 -0
  85. package/lib/commonjs/internal/THEOplayerView.js +16 -0
  86. package/lib/commonjs/internal/THEOplayerView.js.map +1 -1
  87. package/lib/commonjs/internal/THEOplayerView.web.js +9 -0
  88. package/lib/commonjs/internal/THEOplayerView.web.js.map +1 -1
  89. package/lib/commonjs/internal/cast/THEOplayerNativeAirplay.js +34 -0
  90. package/lib/commonjs/internal/cast/THEOplayerNativeAirplay.js.map +1 -0
  91. package/lib/commonjs/internal/cast/THEOplayerNativeCastApi.js +46 -0
  92. package/lib/commonjs/internal/cast/THEOplayerNativeCastApi.js.map +1 -0
  93. package/lib/commonjs/internal/cast/THEOplayerNativeChromecast.js +42 -0
  94. package/lib/commonjs/internal/cast/THEOplayerNativeChromecast.js.map +1 -0
  95. package/lib/commonjs/internal/cast/THEOplayerWebCastApi.js +31 -0
  96. package/lib/commonjs/internal/cast/THEOplayerWebCastApi.js.map +1 -0
  97. package/lib/commonjs/internal/web/stub/CastButtonStub.js +16 -0
  98. package/lib/commonjs/internal/web/stub/CastButtonStub.js.map +1 -0
  99. package/lib/module/api/THEOplayerView.js.map +1 -1
  100. package/lib/module/api/barrel.js +1 -0
  101. package/lib/module/api/barrel.js.map +1 -1
  102. package/lib/module/api/cast/Airplay.js +2 -0
  103. package/lib/module/api/cast/Airplay.js.map +1 -0
  104. package/lib/module/api/cast/CastAPI.js +2 -0
  105. package/lib/module/api/cast/CastAPI.js.map +1 -0
  106. package/lib/module/api/cast/CastConfiguration.js +2 -0
  107. package/lib/module/api/cast/CastConfiguration.js.map +1 -0
  108. package/lib/module/api/cast/CastState.js +2 -0
  109. package/lib/module/api/cast/CastState.js.map +1 -0
  110. package/lib/module/api/cast/Chromecast.js +2 -0
  111. package/lib/module/api/cast/Chromecast.js.map +1 -0
  112. package/lib/module/api/cast/barrel.js +6 -0
  113. package/lib/module/api/cast/barrel.js.map +1 -0
  114. package/lib/module/api/config/PlayerConfiguration.js.map +1 -1
  115. package/lib/module/api/error/ChromecastError.js +2 -0
  116. package/lib/module/api/error/ChromecastError.js.map +1 -0
  117. package/lib/module/api/error/barrel.js +1 -0
  118. package/lib/module/api/error/barrel.js.map +1 -1
  119. package/lib/module/api/event/CastEvent.js +14 -0
  120. package/lib/module/api/event/CastEvent.js.map +1 -0
  121. package/lib/module/api/event/barrel.js +2 -1
  122. package/lib/module/api/event/barrel.js.map +1 -1
  123. package/lib/module/api/source/SourceDescription.js.map +1 -1
  124. package/lib/module/api/source/barrel.js +1 -0
  125. package/lib/module/api/source/barrel.js.map +1 -1
  126. package/lib/module/api/source/metadata/MetadataDescription.js +2 -0
  127. package/lib/module/api/source/metadata/MetadataDescription.js.map +1 -0
  128. package/lib/module/api/source/metadata/barrel.js +2 -0
  129. package/lib/module/api/source/metadata/barrel.js.map +1 -0
  130. package/lib/module/internal/THEOplayerView.js +15 -0
  131. package/lib/module/internal/THEOplayerView.js.map +1 -1
  132. package/lib/module/internal/THEOplayerView.web.js +8 -0
  133. package/lib/module/internal/THEOplayerView.web.js.map +1 -1
  134. package/lib/module/internal/cast/THEOplayerNativeAirplay.js +24 -0
  135. package/lib/module/internal/cast/THEOplayerNativeAirplay.js.map +1 -0
  136. package/lib/module/internal/cast/THEOplayerNativeCastApi.js +34 -0
  137. package/lib/module/internal/cast/THEOplayerNativeCastApi.js.map +1 -0
  138. package/lib/module/internal/cast/THEOplayerNativeChromecast.js +32 -0
  139. package/lib/module/internal/cast/THEOplayerNativeChromecast.js.map +1 -0
  140. package/lib/module/internal/cast/THEOplayerWebCastApi.js +22 -0
  141. package/lib/module/internal/cast/THEOplayerWebCastApi.js.map +1 -0
  142. package/lib/module/internal/web/stub/CastButtonStub.js +6 -0
  143. package/lib/module/internal/web/stub/CastButtonStub.js.map +1 -0
  144. package/lib/typescript/lib/commonjs/api/cast/Airplay.d.ts +1 -0
  145. package/lib/typescript/lib/commonjs/api/cast/CastAPI.d.ts +1 -0
  146. package/lib/typescript/lib/commonjs/api/cast/CastConfiguration.d.ts +0 -0
  147. package/lib/typescript/lib/commonjs/api/cast/CastState.d.ts +0 -0
  148. package/lib/typescript/lib/commonjs/api/cast/Chromecast.d.ts +1 -0
  149. package/lib/typescript/lib/commonjs/api/cast/barrel.d.ts +1 -0
  150. package/lib/typescript/lib/commonjs/api/error/ChromecastError.d.ts +0 -0
  151. package/lib/typescript/lib/commonjs/api/event/CastEvent.d.ts +2 -0
  152. package/lib/typescript/lib/commonjs/api/source/metadata/MetadataDescription.d.ts +0 -0
  153. package/lib/typescript/lib/commonjs/api/source/metadata/barrel.d.ts +1 -0
  154. package/lib/typescript/lib/commonjs/internal/THEOplayerView.d.ts +3 -0
  155. package/lib/typescript/lib/commonjs/internal/THEOplayerView.web.d.ts +3 -0
  156. package/lib/typescript/lib/commonjs/internal/cast/THEOplayerNativeAirplay.d.ts +9 -0
  157. package/lib/typescript/lib/commonjs/internal/cast/THEOplayerNativeCastApi.d.ts +12 -0
  158. package/lib/typescript/lib/commonjs/internal/cast/THEOplayerNativeChromecast.d.ts +11 -0
  159. package/lib/typescript/lib/commonjs/internal/cast/THEOplayerWebCastApi.d.ts +8 -0
  160. package/lib/typescript/lib/commonjs/internal/web/stub/CastButtonStub.d.ts +2 -0
  161. package/lib/typescript/lib/module/api/barrel.d.ts +1 -0
  162. package/lib/typescript/lib/module/api/cast/Airplay.d.ts +1 -0
  163. package/lib/typescript/lib/module/api/cast/CastAPI.d.ts +1 -0
  164. package/lib/typescript/lib/module/api/cast/CastConfiguration.d.ts +0 -0
  165. package/lib/typescript/lib/module/api/cast/CastState.d.ts +0 -0
  166. package/lib/typescript/lib/module/api/cast/Chromecast.d.ts +1 -0
  167. package/lib/typescript/lib/module/api/cast/barrel.d.ts +3 -0
  168. package/lib/typescript/lib/module/api/error/ChromecastError.d.ts +0 -0
  169. package/lib/typescript/lib/module/api/event/CastEvent.d.ts +1 -0
  170. package/lib/typescript/lib/module/api/event/barrel.d.ts +2 -1
  171. package/lib/typescript/lib/module/api/source/barrel.d.ts +1 -0
  172. package/lib/typescript/lib/module/api/source/metadata/MetadataDescription.d.ts +0 -0
  173. package/lib/typescript/lib/module/api/source/metadata/barrel.d.ts +1 -0
  174. package/lib/typescript/lib/module/internal/THEOplayerView.d.ts +3 -0
  175. package/lib/typescript/lib/module/internal/THEOplayerView.web.d.ts +3 -0
  176. package/lib/typescript/lib/module/internal/cast/THEOplayerNativeAirplay.d.ts +8 -0
  177. package/lib/typescript/lib/module/internal/cast/THEOplayerNativeCastApi.d.ts +11 -0
  178. package/lib/typescript/lib/module/internal/cast/THEOplayerNativeChromecast.d.ts +10 -0
  179. package/lib/typescript/lib/module/internal/cast/THEOplayerWebCastApi.d.ts +7 -0
  180. package/lib/typescript/lib/module/internal/web/stub/CastButtonStub.d.ts +2 -0
  181. package/lib/typescript/src/api/THEOplayerView.d.ts +10 -0
  182. package/lib/typescript/src/api/barrel.d.ts +1 -0
  183. package/lib/typescript/src/api/cast/Airplay.d.ts +27 -0
  184. package/lib/typescript/src/api/cast/CastAPI.d.ts +25 -0
  185. package/lib/typescript/src/api/cast/CastConfiguration.d.ts +41 -0
  186. package/lib/typescript/src/api/cast/CastState.d.ts +10 -0
  187. package/lib/typescript/src/api/cast/Chromecast.d.ts +39 -0
  188. package/lib/typescript/src/api/cast/barrel.d.ts +5 -0
  189. package/lib/typescript/src/api/config/PlayerConfiguration.d.ts +6 -1
  190. package/lib/typescript/src/api/error/ChromecastError.d.ts +34 -0
  191. package/lib/typescript/src/api/error/barrel.d.ts +1 -0
  192. package/lib/typescript/src/api/event/CastEvent.d.ts +21 -0
  193. package/lib/typescript/src/api/event/barrel.d.ts +2 -1
  194. package/lib/typescript/src/api/source/SourceDescription.d.ts +7 -0
  195. package/lib/typescript/src/api/source/barrel.d.ts +1 -0
  196. package/lib/typescript/src/api/source/metadata/MetadataDescription.d.ts +12 -0
  197. package/lib/typescript/src/api/source/metadata/barrel.d.ts +1 -0
  198. package/lib/typescript/src/internal/THEOplayerView.d.ts +5 -1
  199. package/lib/typescript/src/internal/THEOplayerView.web.d.ts +3 -1
  200. package/lib/typescript/src/internal/cast/THEOplayerNativeAirplay.d.ts +9 -0
  201. package/lib/typescript/src/internal/cast/THEOplayerNativeCastApi.d.ts +10 -0
  202. package/lib/typescript/src/internal/cast/THEOplayerNativeChromecast.d.ts +11 -0
  203. package/lib/typescript/src/internal/cast/THEOplayerWebCastApi.d.ts +9 -0
  204. package/lib/typescript/src/internal/web/stub/CastButtonStub.d.ts +3 -0
  205. package/package.json +2 -2
  206. package/react-native-theoplayer.podspec +2 -2
  207. package/src/api/THEOplayerView.ts +12 -0
  208. package/src/api/barrel.ts +1 -0
  209. package/src/api/cast/Airplay.ts +31 -0
  210. package/src/api/cast/CastAPI.ts +30 -0
  211. package/src/api/cast/CastConfiguration.ts +44 -0
  212. package/src/api/cast/CastState.ts +10 -0
  213. package/src/api/cast/Chromecast.ts +45 -0
  214. package/src/api/cast/barrel.ts +5 -0
  215. package/src/api/config/PlayerConfiguration.ts +7 -1
  216. package/src/api/error/ChromecastError.ts +46 -0
  217. package/src/api/error/barrel.ts +1 -0
  218. package/src/api/event/CastEvent.ts +45 -0
  219. package/src/api/event/barrel.ts +2 -1
  220. package/src/api/source/SourceDescription.ts +8 -0
  221. package/src/api/source/barrel.ts +1 -0
  222. package/src/api/source/metadata/MetadataDescription.ts +13 -0
  223. package/src/api/source/metadata/barrel.ts +1 -0
  224. package/src/internal/THEOplayerView.tsx +17 -0
  225. package/src/internal/THEOplayerView.web.tsx +8 -1
  226. package/src/internal/cast/THEOplayerNativeAirplay.ts +22 -0
  227. package/src/internal/cast/THEOplayerNativeCastApi.ts +28 -0
  228. package/src/internal/cast/THEOplayerNativeChromecast.ts +30 -0
  229. package/src/internal/cast/THEOplayerWebCastApi.ts +21 -0
  230. package/src/internal/web/stub/CastButtonStub.tsx +7 -0
  231. package/android/src/main/java/com/theoplayer/PlayerConfigHelper.java +0 -70
  232. package/android/src/main/java/com/theoplayer/ReactTHEOplayerPackage.java +0 -32
  233. package/android/src/main/java/com/theoplayer/ReactTHEOplayerView.java +0 -525
  234. package/android/src/main/java/com/theoplayer/ReactTHEOplayerViewManager.java +0 -127
  235. package/android/src/main/java/com/theoplayer/SourceHelper.java +0 -362
  236. package/android/src/main/java/com/theoplayer/VideoEventEmitter.java +0 -578
  237. package/android/src/main/java/com/theoplayer/ads/AdEventAdapter.java +0 -92
  238. package/android/src/main/java/com/theoplayer/ads/AdInfo.java +0 -168
  239. package/android/src/main/java/com/theoplayer/ads/AdsModule.java +0 -152
  240. package/android/src/main/java/com/theoplayer/track/MediaTrackEventType.java +0 -11
  241. package/android/src/main/java/com/theoplayer/track/MediaTrackType.java +0 -11
  242. package/android/src/main/java/com/theoplayer/track/QualityListAdapter.java +0 -54
  243. package/android/src/main/java/com/theoplayer/track/QualityListFilter.java +0 -40
  244. package/android/src/main/java/com/theoplayer/track/TextTrackCueEventType.java +0 -11
  245. package/android/src/main/java/com/theoplayer/track/TrackEventType.java +0 -12
  246. package/android/src/main/java/com/theoplayer/track/TrackListInfo.java +0 -234
  247. package/android/src/main/java/com/theoplayer/util/ViewResolver.java +0 -42
  248. package/ios/custom/react-native-theoplayer_custom_ios.podspec +0 -36
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["barrel.ts"],"sourcesContent":["export * from './ads/barrel';\nexport * from './drm/barrel';\nexport * from './dash/barrel';\nexport * from './hls/barrel';\nexport * from './SourceDescription';\n"],"mappings":"AAAA,cAAc,cAAd;AACA,cAAc,cAAd;AACA,cAAc,eAAd;AACA,cAAc,cAAd;AACA,cAAc,qBAAd"}
1
+ {"version":3,"names":[],"sources":["barrel.ts"],"sourcesContent":["export * from './ads/barrel';\nexport * from './drm/barrel';\nexport * from './dash/barrel';\nexport * from './hls/barrel';\nexport * from './metadata/barrel';\nexport * from './SourceDescription';\n"],"mappings":"AAAA,cAAc,cAAd;AACA,cAAc,cAAd;AACA,cAAc,eAAd;AACA,cAAc,cAAd;AACA,cAAc,mBAAd;AACA,cAAc,qBAAd"}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=MetadataDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["MetadataDescription.ts"],"sourcesContent":["/**\n * Describes the metadata of a source.\n *\n * @public\n */\nexport interface MetadataDescription {\n [metadataKey: string]: any;\n\n /**\n * The title of the content.\n */\n readonly title?: string;\n}\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from './MetadataDescription';
2
+ //# sourceMappingURL=barrel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["barrel.ts"],"sourcesContent":["export * from './MetadataDescription';\n"],"mappings":"AAAA,cAAc,uBAAd"}
@@ -6,6 +6,7 @@ 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
8
  import { THEOplayerNativeAdsAPI } from './ads/THEOplayerNativeAdsAPI';
9
+ import { THEOplayerNativeCastAPI } from './cast/THEOplayerNativeCastApi';
9
10
  import { decodeNanInf } from './utils/TypeUtils';
10
11
  export class THEOplayerView extends PureComponent {
11
12
  constructor(props) {
@@ -15,6 +16,8 @@ export class THEOplayerView extends PureComponent {
15
16
 
16
17
  _defineProperty(this, "_adsApi", void 0);
17
18
 
19
+ _defineProperty(this, "_castApi", void 0);
20
+
18
21
  _defineProperty(this, "_onSourceChange", () => {
19
22
  this.reset();
20
23
 
@@ -165,6 +168,12 @@ export class THEOplayerView extends PureComponent {
165
168
  }
166
169
  });
167
170
 
171
+ _defineProperty(this, "_onCastEvent", event => {
172
+ if (this.props.onCastEvent) {
173
+ this.props.onCastEvent(event.nativeEvent);
174
+ }
175
+ });
176
+
168
177
  _defineProperty(this, "_onFullscreenPlayerWillPresent", () => {
169
178
  if (this.props.onFullscreenPlayerWillPresent) {
170
179
  this.props.onFullscreenPlayerWillPresent();
@@ -192,6 +201,7 @@ export class THEOplayerView extends PureComponent {
192
201
  this._root = /*#__PURE__*/React.createRef();
193
202
  this.state = THEOplayerView.initialState;
194
203
  this._adsApi = new THEOplayerNativeAdsAPI(this);
204
+ this._castApi = new THEOplayerNativeCastAPI(this);
195
205
  }
196
206
 
197
207
  componentWillUnmount() {
@@ -226,6 +236,10 @@ export class THEOplayerView extends PureComponent {
226
236
  return this._adsApi;
227
237
  }
228
238
 
239
+ get cast() {
240
+ return this._castApi;
241
+ }
242
+
229
243
  reset() {
230
244
  this.setState(THEOplayerView.initialState);
231
245
  }
@@ -295,6 +309,7 @@ export class THEOplayerView extends PureComponent {
295
309
  onNativeMediaTrackListEvent: this._onMediaTrackListEvent,
296
310
  onNativeMediaTrackEvent: this._onMediaTrackEvent,
297
311
  onNativeAdEvent: this._onAdEvent,
312
+ onNativeCastEvent: this._onCastEvent,
298
313
  onNativeFullscreenPlayerWillPresent: this._onFullscreenPlayerWillPresent,
299
314
  onNativeFullscreenPlayerDidPresent: this._onFullscreenPlayerDidPresent,
300
315
  onNativeFullscreenPlayerWillDismiss: this._onFullscreenPlayerWillDismiss,
@@ -1 +1 @@
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","onMediaTrackListEvent","onMediaTrackEvent","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","_onMediaTrackListEvent","_onMediaTrackEvent","_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 MediaTrackEvent,\n MediaTrackListEvent,\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 onNativeMediaTrackListEvent: (event: NativeSyntheticEvent<MediaTrackListEvent>) => void;\n onNativeMediaTrackEvent: (event: NativeSyntheticEvent<MediaTrackEvent>) => 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 _onMediaTrackListEvent = (event: NativeSyntheticEvent<MediaTrackListEvent>) => {\n if (this.props.onMediaTrackListEvent) {\n this.props.onMediaTrackListEvent(event.nativeEvent);\n }\n };\n\n private _onMediaTrackEvent = (event: NativeSyntheticEvent<MediaTrackEvent>) => {\n if (this.props.onMediaTrackEvent) {\n this.props.onMediaTrackEvent(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 onNativeMediaTrackListEvent={this._onMediaTrackListEvent}\n onNativeMediaTrackEvent={this._onMediaTrackEvent}\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
+ {"version":3,"names":["React","PureComponent","findNodeHandle","StyleSheet","requireNativeComponent","View","UIManager","Platform","styles","THEOplayerNativeAdsAPI","THEOplayerNativeCastAPI","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","onMediaTrackListEvent","onMediaTrackEvent","onAdEvent","onCastEvent","onFullscreenPlayerWillPresent","onFullscreenPlayerDidPresent","onFullscreenPlayerWillDismiss","onFullscreenPlayerDidDismiss","_root","createRef","state","initialState","_adsApi","_castApi","componentWillUnmount","OS","destroyTheoPlayer","node","current","command","Commands","destroy","params","dispatchViewManagerCommand","seek","time","isNaN","Error","setNativeProps","nativeHandle","ads","cast","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","_onMediaTrackListEvent","_onMediaTrackEvent","_onAdEvent","_onCastEvent","_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 MediaTrackEvent,\n MediaTrackListEvent,\n CastAPI,\n CastEvent,\n} from 'react-native-theoplayer';\n\nimport styles from './THEOplayerView.style';\nimport type { SourceDescription } from 'react-native-theoplayer';\nimport { THEOplayerNativeAdsAPI } from './ads/THEOplayerNativeAdsAPI';\nimport { THEOplayerNativeCastAPI } from './cast/THEOplayerNativeCastApi';\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 onNativeMediaTrackListEvent: (event: NativeSyntheticEvent<MediaTrackListEvent>) => void;\n onNativeMediaTrackEvent: (event: NativeSyntheticEvent<MediaTrackEvent>) => void;\n onNativeAdEvent: (event: NativeSyntheticEvent<AdEvent>) => void;\n onNativeCastEvent: (event: NativeSyntheticEvent<CastEvent>) => 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 private readonly _castApi: THEOplayerNativeCastAPI;\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 this._castApi = new THEOplayerNativeCastAPI(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 public get cast(): CastAPI {\n return this._castApi;\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 _onMediaTrackListEvent = (event: NativeSyntheticEvent<MediaTrackListEvent>) => {\n if (this.props.onMediaTrackListEvent) {\n this.props.onMediaTrackListEvent(event.nativeEvent);\n }\n };\n\n private _onMediaTrackEvent = (event: NativeSyntheticEvent<MediaTrackEvent>) => {\n if (this.props.onMediaTrackEvent) {\n this.props.onMediaTrackEvent(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 _onCastEvent = (event: NativeSyntheticEvent<CastEvent>) => {\n if (this.props.onCastEvent) {\n this.props.onCastEvent(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 onNativeMediaTrackListEvent={this._onMediaTrackListEvent}\n onNativeMediaTrackEvent={this._onMediaTrackEvent}\n onNativeAdEvent={this._onAdEvent}\n onNativeCastEvent={this._onCastEvent}\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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"}
@@ -5,6 +5,7 @@ import { AdEventNames, MediaTrackEventType, MediaTrackType, TextTrackEventType,
5
5
  import * as THEOplayer from 'theoplayer';
6
6
  import { findNativeQualitiesByUid, fromNativeCue, fromNativeMediaTrack, fromNativeTextTrack } from './web/TrackUtils';
7
7
  import { THEOplayerWebAdsAPI } from './ads/THEOplayerWebAdsAPI';
8
+ import { THEOplayerWebCastAPI } from './cast/THEOplayerWebCastApi';
8
9
  export class THEOplayerView extends PureComponent {
9
10
  constructor(props) {
10
11
  super(props);
@@ -13,6 +14,8 @@ export class THEOplayerView extends PureComponent {
13
14
 
14
15
  _defineProperty(this, "_adsApi", void 0);
15
16
 
17
+ _defineProperty(this, "_castApi", void 0);
18
+
16
19
  _defineProperty(this, "onAddTextTrackCue", track => event => {
17
20
  const {
18
21
  onTextTrackEvent
@@ -98,6 +101,7 @@ export class THEOplayerView extends PureComponent {
98
101
 
99
102
  this.state = THEOplayerView.initialState;
100
103
  this._adsApi = new THEOplayerWebAdsAPI(this);
104
+ this._castApi = new THEOplayerWebCastAPI(this);
101
105
  }
102
106
 
103
107
  componentDidMount() {
@@ -151,6 +155,10 @@ export class THEOplayerView extends PureComponent {
151
155
  return this._adsApi;
152
156
  }
153
157
 
158
+ get cast() {
159
+ return this._castApi;
160
+ }
161
+
154
162
  get nativePlayer() {
155
163
  return this._player;
156
164
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","PureComponent","AdEventNames","MediaTrackEventType","MediaTrackType","TextTrackEventType","TrackListEventType","THEOplayer","findNativeQualitiesByUid","fromNativeCue","fromNativeMediaTrack","fromNativeTextTrack","THEOplayerWebAdsAPI","THEOplayerView","constructor","props","track","event","onTextTrackEvent","cue","type","AddCue","trackUid","uid","RemoveCue","trackType","onMediaTrackEvent","quality","activeQuality","ActiveQualityChanged","qualities","undefined","onTextTrackListEvent","onMediaTrackListEvent","state","initialState","_adsApi","componentDidMount","config","source","abrConfig","element","document","querySelector","chromeless","_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","onAddTextTrackCue","onRemoveTextTrackCue","dispatchTextTrackListEvent","AddTrack","removeEventListener","RemoveTrack","ChangeTrack","Audio","Video","mediaTracks","onActiveQualityChanged","dispatchMediaTrackListEvent","onAdEvent","render"],"sources":["THEOplayerView.web.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\n\nimport type { AdEvent, AdsAPI, MediaTrack, PlayerError, TextTrack, THEOplayerViewProps, TimeRange } from 'react-native-theoplayer';\nimport {\n AdEventNames,\n MediaTrackEventType,\n MediaTrackType,\n TextTrackEventType,\n THEOplayerViewComponent,\n TrackListEventType,\n} from 'react-native-theoplayer';\nimport type { Event, TextTrackCue as NativeTextTrackCue, TrackChangeEvent } 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 readonly _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 onActiveQualityChanged = (trackType: MediaTrackType, track: NativeMediaTrack) => () => {\n const { onMediaTrackEvent } = this.props;\n if (onMediaTrackEvent) {\n const quality = track.activeQuality;\n onMediaTrackEvent({\n type: MediaTrackEventType.ActiveQualityChanged,\n trackType,\n trackUid: track.uid,\n qualities: quality ? [quality] : undefined,\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\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\n player.textTracks.addEventListener('addtrack', (event: AddTrackEvent) => {\n const track = event.track as NativeTextTrack;\n track.addEventListener('addcue', this.onAddTextTrackCue(track));\n track.addEventListener('removecue', this.onRemoveTextTrackCue(track));\n this.dispatchTextTrackListEvent(TrackListEventType.AddTrack, track as TextTrack);\n });\n\n player.textTracks.addEventListener('removetrack', (event: RemoveTrackEvent) => {\n const track = event.track as NativeTextTrack;\n track.removeEventListener('addcue', this.onAddTextTrackCue(track));\n track.removeEventListener('removecue', this.onRemoveTextTrackCue(track));\n this.dispatchTextTrackListEvent(TrackListEventType.RemoveTrack, track as NativeTextTrack as TextTrack);\n });\n\n player.textTracks.addEventListener('change', (event: TrackChangeEvent) => {\n this.dispatchTextTrackListEvent(TrackListEventType.ChangeTrack, event.track as NativeTextTrack as TextTrack);\n });\n\n [MediaTrackType.Audio, MediaTrackType.Video].forEach((trackType) => {\n const mediaTracks = trackType === MediaTrackType.Audio ? player.audioTracks : player.videoTracks;\n mediaTracks.addEventListener('addtrack', (event: AddTrackEvent) => {\n const track = event.track as NativeMediaTrack;\n track.addEventListener('activequalitychanged', this.onActiveQualityChanged(trackType, track));\n this.dispatchMediaTrackListEvent(TrackListEventType.AddTrack, trackType, track as MediaTrack);\n });\n });\n\n [MediaTrackType.Audio, MediaTrackType.Video].forEach((trackType) => {\n const mediaTracks = trackType === MediaTrackType.Audio ? player.audioTracks : player.videoTracks;\n mediaTracks.addEventListener('removetrack', (event: RemoveTrackEvent) => {\n const track = event.track as NativeMediaTrack;\n track.removeEventListener('activequalitychanged', this.onActiveQualityChanged(trackType, track));\n this.dispatchMediaTrackListEvent(TrackListEventType.RemoveTrack, trackType, track as MediaTrack);\n });\n });\n\n [MediaTrackType.Audio, MediaTrackType.Video].forEach((trackType) => {\n const mediaTracks = trackType === MediaTrackType.Audio ? player.audioTracks : player.videoTracks;\n mediaTracks.addEventListener('change', (event: TrackChangeEvent) => {\n const track = event.track as NativeMediaTrack;\n this.dispatchMediaTrackListEvent(TrackListEventType.ChangeTrack, trackType, track as MediaTrack);\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 private dispatchTextTrackListEvent = (type: TrackListEventType, track: TextTrack) => {\n const { onTextTrackListEvent } = this.props;\n if (onTextTrackListEvent) {\n onTextTrackListEvent({\n type,\n track,\n });\n }\n };\n\n private dispatchMediaTrackListEvent = (type: TrackListEventType, trackType: MediaTrackType, track: MediaTrack) => {\n const { onMediaTrackListEvent } = this.props;\n if (onMediaTrackListEvent) {\n onMediaTrackListEvent({\n type,\n trackType,\n track: track as MediaTrack,\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","MediaTrackEventType","MediaTrackType","TextTrackEventType","TrackListEventType","THEOplayer","findNativeQualitiesByUid","fromNativeCue","fromNativeMediaTrack","fromNativeTextTrack","THEOplayerWebAdsAPI","THEOplayerWebCastAPI","THEOplayerView","constructor","props","track","event","onTextTrackEvent","cue","type","AddCue","trackUid","uid","RemoveCue","trackType","onMediaTrackEvent","quality","activeQuality","ActiveQualityChanged","qualities","undefined","onTextTrackListEvent","onMediaTrackListEvent","state","initialState","_adsApi","_castApi","componentDidMount","config","source","abrConfig","element","document","querySelector","chromeless","_player","ChromelessPlayer","libraryLocation","Player","ui","fluid","Object","assign","abr","prepareWithUserAction","addEventListeners","componentWillUnmount","destroy","seek","time","isNaN","Error","currentTime","ads","cast","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","onAddTextTrackCue","onRemoveTextTrackCue","dispatchTextTrackListEvent","AddTrack","removeEventListener","RemoveTrack","ChangeTrack","Audio","Video","mediaTracks","onActiveQualityChanged","dispatchMediaTrackListEvent","onAdEvent","render"],"sources":["THEOplayerView.web.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\n\nimport type { AdEvent, AdsAPI, CastAPI, MediaTrack, PlayerError, TextTrack, THEOplayerViewProps, TimeRange } from 'react-native-theoplayer';\nimport {\n AdEventNames,\n MediaTrackEventType,\n MediaTrackType,\n TextTrackEventType,\n THEOplayerViewComponent,\n TrackListEventType,\n} from 'react-native-theoplayer';\nimport type { Event, TextTrackCue as NativeTextTrackCue, TrackChangeEvent } 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';\nimport { THEOplayerWebCastAPI } from './cast/THEOplayerWebCastApi';\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 readonly _adsApi: THEOplayerWebAdsAPI;\n private readonly _castApi: THEOplayerWebCastAPI;\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 this._castApi = new THEOplayerWebCastAPI(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 cast(): CastAPI {\n return this._castApi;\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 onActiveQualityChanged = (trackType: MediaTrackType, track: NativeMediaTrack) => () => {\n const { onMediaTrackEvent } = this.props;\n if (onMediaTrackEvent) {\n const quality = track.activeQuality;\n onMediaTrackEvent({\n type: MediaTrackEventType.ActiveQualityChanged,\n trackType,\n trackUid: track.uid,\n qualities: quality ? [quality] : undefined,\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\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\n player.textTracks.addEventListener('addtrack', (event: AddTrackEvent) => {\n const track = event.track as NativeTextTrack;\n track.addEventListener('addcue', this.onAddTextTrackCue(track));\n track.addEventListener('removecue', this.onRemoveTextTrackCue(track));\n this.dispatchTextTrackListEvent(TrackListEventType.AddTrack, track as TextTrack);\n });\n\n player.textTracks.addEventListener('removetrack', (event: RemoveTrackEvent) => {\n const track = event.track as NativeTextTrack;\n track.removeEventListener('addcue', this.onAddTextTrackCue(track));\n track.removeEventListener('removecue', this.onRemoveTextTrackCue(track));\n this.dispatchTextTrackListEvent(TrackListEventType.RemoveTrack, track as NativeTextTrack as TextTrack);\n });\n\n player.textTracks.addEventListener('change', (event: TrackChangeEvent) => {\n this.dispatchTextTrackListEvent(TrackListEventType.ChangeTrack, event.track as NativeTextTrack as TextTrack);\n });\n\n [MediaTrackType.Audio, MediaTrackType.Video].forEach((trackType) => {\n const mediaTracks = trackType === MediaTrackType.Audio ? player.audioTracks : player.videoTracks;\n mediaTracks.addEventListener('addtrack', (event: AddTrackEvent) => {\n const track = event.track as NativeMediaTrack;\n track.addEventListener('activequalitychanged', this.onActiveQualityChanged(trackType, track));\n this.dispatchMediaTrackListEvent(TrackListEventType.AddTrack, trackType, track as MediaTrack);\n });\n });\n\n [MediaTrackType.Audio, MediaTrackType.Video].forEach((trackType) => {\n const mediaTracks = trackType === MediaTrackType.Audio ? player.audioTracks : player.videoTracks;\n mediaTracks.addEventListener('removetrack', (event: RemoveTrackEvent) => {\n const track = event.track as NativeMediaTrack;\n track.removeEventListener('activequalitychanged', this.onActiveQualityChanged(trackType, track));\n this.dispatchMediaTrackListEvent(TrackListEventType.RemoveTrack, trackType, track as MediaTrack);\n });\n });\n\n [MediaTrackType.Audio, MediaTrackType.Video].forEach((trackType) => {\n const mediaTracks = trackType === MediaTrackType.Audio ? player.audioTracks : player.videoTracks;\n mediaTracks.addEventListener('change', (event: TrackChangeEvent) => {\n const track = event.track as NativeMediaTrack;\n this.dispatchMediaTrackListEvent(TrackListEventType.ChangeTrack, trackType, track as MediaTrack);\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 private dispatchTextTrackListEvent = (type: TrackListEventType, track: TextTrack) => {\n const { onTextTrackListEvent } = this.props;\n if (onTextTrackListEvent) {\n onTextTrackListEvent({\n type,\n track,\n });\n }\n };\n\n private dispatchMediaTrackListEvent = (type: TrackListEventType, trackType: MediaTrackType, track: MediaTrack) => {\n const { onMediaTrackListEvent } = this.props;\n if (onMediaTrackListEvent) {\n onMediaTrackListEvent({\n type,\n trackType,\n track: track as MediaTrack,\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,24 @@
1
+ import { NativeModules } from 'react-native';
2
+ export class THEOplayerNativeAirplay {
3
+ constructor(_player) {
4
+ this._player = _player;
5
+ }
6
+
7
+ casting() {
8
+ return NativeModules.CastModule.airplayCasting(this._player.nativeHandle);
9
+ }
10
+
11
+ state() {
12
+ return NativeModules.CastModule.airplayState(this._player.nativeHandle);
13
+ }
14
+
15
+ start() {
16
+ NativeModules.CastModule.airplayStart(this._player.nativeHandle);
17
+ }
18
+
19
+ stop() {
20
+ NativeModules.CastModule.airplayStop(this._player.nativeHandle);
21
+ }
22
+
23
+ }
24
+ //# sourceMappingURL=THEOplayerNativeAirplay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeModules","THEOplayerNativeAirplay","constructor","_player","casting","CastModule","airplayCasting","nativeHandle","state","airplayState","start","airplayStart","stop","airplayStop"],"sources":["THEOplayerNativeAirplay.ts"],"sourcesContent":["import type { Airplay, CastState, THEOplayerView } from 'react-native-theoplayer';\nimport { NativeModules } from 'react-native';\n\nexport class THEOplayerNativeAirplay implements Airplay {\n public constructor(private readonly _player: THEOplayerView) {}\n\n casting(): Promise<boolean> {\n return NativeModules.CastModule.airplayCasting(this._player.nativeHandle);\n }\n\n state(): Promise<CastState> {\n return NativeModules.CastModule.airplayState(this._player.nativeHandle);\n }\n\n start(): void {\n NativeModules.CastModule.airplayStart(this._player.nativeHandle);\n }\n\n stop(): void {\n NativeModules.CastModule.airplayStop(this._player.nativeHandle);\n }\n}\n"],"mappings":"AACA,SAASA,aAAT,QAA8B,cAA9B;AAEA,OAAO,MAAMC,uBAAN,CAAiD;EAC/CC,WAAW,CAAkBC,OAAlB,EAA2C;IAAA,KAAzBA,OAAyB,GAAzBA,OAAyB;EAAE;;EAE/DC,OAAO,GAAqB;IAC1B,OAAOJ,aAAa,CAACK,UAAd,CAAyBC,cAAzB,CAAwC,KAAKH,OAAL,CAAaI,YAArD,CAAP;EACD;;EAEDC,KAAK,GAAuB;IAC1B,OAAOR,aAAa,CAACK,UAAd,CAAyBI,YAAzB,CAAsC,KAAKN,OAAL,CAAaI,YAAnD,CAAP;EACD;;EAEDG,KAAK,GAAS;IACZV,aAAa,CAACK,UAAd,CAAyBM,YAAzB,CAAsC,KAAKR,OAAL,CAAaI,YAAnD;EACD;;EAEDK,IAAI,GAAS;IACXZ,aAAa,CAACK,UAAd,CAAyBQ,WAAzB,CAAqC,KAAKV,OAAL,CAAaI,YAAlD;EACD;;AAjBqD"}
@@ -0,0 +1,34 @@
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, Platform } from 'react-native';
4
+ import { THEOplayerNativeChromecast } from './THEOplayerNativeChromecast';
5
+ import { THEOplayerNativeAirplay } from './THEOplayerNativeAirplay';
6
+ export class THEOplayerNativeCastAPI {
7
+ constructor(_player) {
8
+ this._player = _player;
9
+
10
+ _defineProperty(this, "_chromecast", void 0);
11
+
12
+ _defineProperty(this, "_airplay", void 0);
13
+
14
+ this._chromecast = new THEOplayerNativeChromecast(this._player);
15
+
16
+ if (Platform.OS !== 'android') {
17
+ this._airplay = new THEOplayerNativeAirplay(this._player);
18
+ }
19
+ }
20
+
21
+ casting() {
22
+ return NativeModules.CastModule.casting(this._player.nativeHandle);
23
+ }
24
+
25
+ get chromecast() {
26
+ return this._chromecast;
27
+ }
28
+
29
+ get airplay() {
30
+ return this._airplay;
31
+ }
32
+
33
+ }
34
+ //# sourceMappingURL=THEOplayerNativeCastApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeModules","Platform","THEOplayerNativeChromecast","THEOplayerNativeAirplay","THEOplayerNativeCastAPI","constructor","_player","_chromecast","OS","_airplay","casting","CastModule","nativeHandle","chromecast","airplay"],"sources":["THEOplayerNativeCastApi.ts"],"sourcesContent":["import { NativeModules, Platform } from 'react-native';\nimport { THEOplayerNativeChromecast } from './THEOplayerNativeChromecast';\nimport { THEOplayerNativeAirplay } from './THEOplayerNativeAirplay';\nimport type { Airplay, CastAPI, Chromecast, THEOplayerView } from 'react-native-theoplayer';\n\nexport class THEOplayerNativeCastAPI implements CastAPI {\n private readonly _chromecast: Chromecast;\n private readonly _airplay: Airplay | undefined;\n\n constructor(private readonly _player: THEOplayerView) {\n this._chromecast = new THEOplayerNativeChromecast(this._player);\n if (Platform.OS !== 'android') {\n this._airplay = new THEOplayerNativeAirplay(this._player);\n }\n }\n\n casting(): Promise<boolean> {\n return NativeModules.CastModule.casting(this._player.nativeHandle);\n }\n\n get chromecast(): Chromecast | undefined {\n return this._chromecast;\n }\n\n get airplay(): Airplay | undefined {\n return this._airplay;\n }\n}\n"],"mappings":";;AAAA,SAASA,aAAT,EAAwBC,QAAxB,QAAwC,cAAxC;AACA,SAASC,0BAAT,QAA2C,8BAA3C;AACA,SAASC,uBAAT,QAAwC,2BAAxC;AAGA,OAAO,MAAMC,uBAAN,CAAiD;EAItDC,WAAW,CAAkBC,OAAlB,EAA2C;IAAA,KAAzBA,OAAyB,GAAzBA,OAAyB;;IAAA;;IAAA;;IACpD,KAAKC,WAAL,GAAmB,IAAIL,0BAAJ,CAA+B,KAAKI,OAApC,CAAnB;;IACA,IAAIL,QAAQ,CAACO,EAAT,KAAgB,SAApB,EAA+B;MAC7B,KAAKC,QAAL,GAAgB,IAAIN,uBAAJ,CAA4B,KAAKG,OAAjC,CAAhB;IACD;EACF;;EAEDI,OAAO,GAAqB;IAC1B,OAAOV,aAAa,CAACW,UAAd,CAAyBD,OAAzB,CAAiC,KAAKJ,OAAL,CAAaM,YAA9C,CAAP;EACD;;EAEa,IAAVC,UAAU,GAA2B;IACvC,OAAO,KAAKN,WAAZ;EACD;;EAEU,IAAPO,OAAO,GAAwB;IACjC,OAAO,KAAKL,QAAZ;EACD;;AArBqD"}
@@ -0,0 +1,32 @@
1
+ import { NativeModules } from 'react-native';
2
+ export class THEOplayerNativeChromecast {
3
+ constructor(_player) {
4
+ this._player = _player;
5
+ }
6
+
7
+ casting() {
8
+ return NativeModules.CastModule.chromecastCasting(this._player.nativeHandle);
9
+ }
10
+
11
+ state() {
12
+ return NativeModules.CastModule.chromecastState(this._player.nativeHandle);
13
+ }
14
+
15
+ start() {
16
+ NativeModules.CastModule.chromecastStart(this._player.nativeHandle);
17
+ }
18
+
19
+ stop() {
20
+ NativeModules.CastModule.chromecastStop(this._player.nativeHandle);
21
+ }
22
+
23
+ join() {
24
+ NativeModules.CastModule.chromecastJoin(this._player.nativeHandle);
25
+ }
26
+
27
+ leave() {
28
+ NativeModules.CastModule.chromecastLeave(this._player.nativeHandle);
29
+ }
30
+
31
+ }
32
+ //# sourceMappingURL=THEOplayerNativeChromecast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeModules","THEOplayerNativeChromecast","constructor","_player","casting","CastModule","chromecastCasting","nativeHandle","state","chromecastState","start","chromecastStart","stop","chromecastStop","join","chromecastJoin","leave","chromecastLeave"],"sources":["THEOplayerNativeChromecast.ts"],"sourcesContent":["import type { CastState, Chromecast, THEOplayerView } from 'react-native-theoplayer';\nimport { NativeModules } from 'react-native';\n\nexport class THEOplayerNativeChromecast implements Chromecast {\n public constructor(private readonly _player: THEOplayerView) {}\n\n casting(): Promise<boolean> {\n return NativeModules.CastModule.chromecastCasting(this._player.nativeHandle);\n }\n\n state(): Promise<CastState> {\n return NativeModules.CastModule.chromecastState(this._player.nativeHandle);\n }\n\n start(): void {\n NativeModules.CastModule.chromecastStart(this._player.nativeHandle);\n }\n\n stop(): void {\n NativeModules.CastModule.chromecastStop(this._player.nativeHandle);\n }\n\n join(): void {\n NativeModules.CastModule.chromecastJoin(this._player.nativeHandle);\n }\n\n leave(): void {\n NativeModules.CastModule.chromecastLeave(this._player.nativeHandle);\n }\n}\n"],"mappings":"AACA,SAASA,aAAT,QAA8B,cAA9B;AAEA,OAAO,MAAMC,0BAAN,CAAuD;EACrDC,WAAW,CAAkBC,OAAlB,EAA2C;IAAA,KAAzBA,OAAyB,GAAzBA,OAAyB;EAAE;;EAE/DC,OAAO,GAAqB;IAC1B,OAAOJ,aAAa,CAACK,UAAd,CAAyBC,iBAAzB,CAA2C,KAAKH,OAAL,CAAaI,YAAxD,CAAP;EACD;;EAEDC,KAAK,GAAuB;IAC1B,OAAOR,aAAa,CAACK,UAAd,CAAyBI,eAAzB,CAAyC,KAAKN,OAAL,CAAaI,YAAtD,CAAP;EACD;;EAEDG,KAAK,GAAS;IACZV,aAAa,CAACK,UAAd,CAAyBM,eAAzB,CAAyC,KAAKR,OAAL,CAAaI,YAAtD;EACD;;EAEDK,IAAI,GAAS;IACXZ,aAAa,CAACK,UAAd,CAAyBQ,cAAzB,CAAwC,KAAKV,OAAL,CAAaI,YAArD;EACD;;EAEDO,IAAI,GAAS;IACXd,aAAa,CAACK,UAAd,CAAyBU,cAAzB,CAAwC,KAAKZ,OAAL,CAAaI,YAArD;EACD;;EAEDS,KAAK,GAAS;IACZhB,aAAa,CAACK,UAAd,CAAyBY,eAAzB,CAAyC,KAAKd,OAAL,CAAaI,YAAtD;EACD;;AAzB2D"}
@@ -0,0 +1,22 @@
1
+ export class THEOplayerWebCastAPI {
2
+ // @ts-ignore
3
+ constructor(_player) {
4
+ this._player = _player;
5
+ }
6
+
7
+ casting() {
8
+ return Promise.resolve(false);
9
+ }
10
+
11
+ get chromecast() {
12
+ // TODO
13
+ return undefined;
14
+ }
15
+
16
+ get airplay() {
17
+ // TODO
18
+ return undefined;
19
+ }
20
+
21
+ }
22
+ //# sourceMappingURL=THEOplayerWebCastApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["THEOplayerWebCastAPI","constructor","_player","casting","Promise","resolve","chromecast","undefined","airplay"],"sources":["THEOplayerWebCastApi.ts"],"sourcesContent":["import type { Airplay, CastAPI, Chromecast } from 'react-native-theoplayer';\nimport type { THEOplayerView } from '../THEOplayerView.web';\n\nexport class THEOplayerWebCastAPI implements CastAPI {\n // @ts-ignore\n constructor(private readonly _player: THEOplayerView) {}\n\n casting(): Promise<boolean> {\n return Promise.resolve(false);\n }\n\n get chromecast(): Chromecast | undefined {\n // TODO\n return undefined;\n }\n\n get airplay(): Airplay | undefined {\n // TODO\n return undefined;\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,oBAAN,CAA8C;EACnD;EACAC,WAAW,CAAkBC,OAAlB,EAA2C;IAAA,KAAzBA,OAAyB,GAAzBA,OAAyB;EAAE;;EAExDC,OAAO,GAAqB;IAC1B,OAAOC,OAAO,CAACC,OAAR,CAAgB,KAAhB,CAAP;EACD;;EAEa,IAAVC,UAAU,GAA2B;IACvC;IACA,OAAOC,SAAP;EACD;;EAEU,IAAPC,OAAO,GAAwB;IACjC;IACA,OAAOD,SAAP;EACD;;AAhBkD"}
@@ -0,0 +1,6 @@
1
+ import React from 'react'; // Provides a stub for react-native-google-cast on web.
2
+
3
+ export function CastButton(_props) {
4
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
5
+ }
6
+ //# sourceMappingURL=CastButtonStub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","CastButton","_props"],"sources":["CastButtonStub.tsx"],"sourcesContent":["import type { ViewProps } from 'react-native';\nimport React from 'react';\n\n// Provides a stub for react-native-google-cast on web.\nexport function CastButton(_props: ViewProps): JSX.Element {\n return <></>;\n}\n"],"mappings":"AACA,OAAOA,KAAP,MAAkB,OAAlB,C,CAEA;;AACA,OAAO,SAASC,UAAT,CAAoBC,MAApB,EAAoD;EACzD,oBAAO,yCAAP;AACD"}
@@ -0,0 +1 @@
1
+ export const __esModule: boolean;
@@ -0,0 +1 @@
1
+ export const __esModule: boolean;
@@ -0,0 +1 @@
1
+ export const __esModule: boolean;
@@ -0,0 +1 @@
1
+ export const __esModule: boolean;
@@ -0,0 +1,2 @@
1
+ export const __esModule: boolean;
2
+ export const CastEventNames: string[];
@@ -0,0 +1 @@
1
+ export const __esModule: boolean;
@@ -6,11 +6,13 @@ export class THEOplayerView extends THEOplayerView_base {
6
6
  _root: any;
7
7
  state: any;
8
8
  _adsApi: _THEOplayerNativeAdsAPI.THEOplayerNativeAdsAPI;
9
+ _castApi: _THEOplayerNativeCastApi.THEOplayerNativeCastAPI;
9
10
  componentWillUnmount(): void;
10
11
  destroyTheoPlayer(): void;
11
12
  seek(time: any): void;
12
13
  get nativeHandle(): number | null;
13
14
  get ads(): _THEOplayerNativeAdsAPI.THEOplayerNativeAdsAPI;
15
+ get cast(): _THEOplayerNativeCastApi.THEOplayerNativeCastAPI;
14
16
  reset(): void;
15
17
  setNativeProps(nativeProps: any): void;
16
18
  maybeChangeBufferingState(isBuffering: any): void;
@@ -18,4 +20,5 @@ export class THEOplayerView extends THEOplayerView_base {
18
20
  render(): any;
19
21
  }
20
22
  import _THEOplayerNativeAdsAPI = require("./ads/THEOplayerNativeAdsAPI");
23
+ import _THEOplayerNativeCastApi = require("./cast/THEOplayerNativeCastApi");
21
24
  export {};
@@ -5,11 +5,13 @@ export class THEOplayerView extends THEOplayerView_base {
5
5
  constructor(props: any);
6
6
  state: any;
7
7
  _adsApi: _THEOplayerWebAdsAPI.THEOplayerWebAdsAPI;
8
+ _castApi: _THEOplayerWebCastApi.THEOplayerWebCastAPI;
8
9
  componentDidMount(): void;
9
10
  _player: any;
10
11
  componentWillUnmount(): void;
11
12
  seek(time: any): void;
12
13
  get ads(): _THEOplayerWebAdsAPI.THEOplayerWebAdsAPI;
14
+ get cast(): _THEOplayerWebCastApi.THEOplayerWebCastAPI;
13
15
  get nativePlayer(): any;
14
16
  reset(): void;
15
17
  componentDidUpdate(prevProps: any): void;
@@ -18,4 +20,5 @@ export class THEOplayerView extends THEOplayerView_base {
18
20
  render(): any;
19
21
  }
20
22
  import _THEOplayerWebAdsAPI = require("./ads/THEOplayerWebAdsAPI");
23
+ import _THEOplayerWebCastApi = require("./cast/THEOplayerWebCastApi");
21
24
  export {};