react-native-theoplayer 1.7.2 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) 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 +446 -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/THEOplayerRCTAdAggregator.swift +12 -6
  27. package/ios/THEOplayerRCTAdsAPI.swift +39 -40
  28. package/ios/THEOplayerRCTBridge.m +52 -1
  29. package/ios/THEOplayerRCTCastAPI.swift +275 -0
  30. package/ios/THEOplayerRCTDebug.swift +3 -0
  31. package/ios/THEOplayerRCTSourceDescriptionBuilder.swift +91 -19
  32. package/ios/{THEOplayerRCTMetadataAggregator.swift → THEOplayerRCTTrackMetadataAggregator.swift} +12 -12
  33. package/ios/THEOplayerRCTView.swift +104 -24
  34. package/ios/THEOplayerRCTViewAdEventHandler.swift +2 -2
  35. package/ios/THEOplayerRCTViewCastEventHandler.swift +124 -0
  36. package/ios/THEOplayerRCTViewMainEventHandler.swift +1 -1
  37. package/ios/THEOplayerRCTViewMediaTrackEventHandler.swift +6 -6
  38. package/ios/THEOplayerRCTViewTextTrackEventHandler.swift +5 -5
  39. package/ios/custom/Frameworks/ios/put_custom_ios_xcframework_here.txt +1 -1
  40. package/ios/custom/Frameworks/tvos/put_custom_tvos_xcframework_here.txt +2 -0
  41. package/ios/custom/react-native-theoplayer_custom.podspec +46 -0
  42. package/lib/commonjs/api/THEOplayerView.js.map +1 -1
  43. package/lib/commonjs/api/barrel.js +21 -8
  44. package/lib/commonjs/api/barrel.js.map +1 -1
  45. package/lib/commonjs/api/cast/Airplay.js +6 -0
  46. package/lib/commonjs/api/cast/Airplay.js.map +1 -0
  47. package/lib/commonjs/api/cast/CastAPI.js +6 -0
  48. package/lib/commonjs/api/cast/CastAPI.js.map +1 -0
  49. package/lib/commonjs/api/cast/CastConfiguration.js +2 -0
  50. package/lib/commonjs/api/cast/CastConfiguration.js.map +1 -0
  51. package/lib/commonjs/api/cast/CastState.js +2 -0
  52. package/lib/commonjs/api/cast/CastState.js.map +1 -0
  53. package/lib/commonjs/api/cast/Chromecast.js +6 -0
  54. package/lib/commonjs/api/cast/Chromecast.js.map +1 -0
  55. package/lib/commonjs/api/cast/barrel.js +71 -0
  56. package/lib/commonjs/api/cast/barrel.js.map +1 -0
  57. package/lib/commonjs/api/config/PlayerConfiguration.js.map +1 -1
  58. package/lib/commonjs/api/error/ChromecastError.js +2 -0
  59. package/lib/commonjs/api/error/ChromecastError.js.map +1 -0
  60. package/lib/commonjs/api/error/barrel.js +13 -0
  61. package/lib/commonjs/api/error/barrel.js.map +1 -1
  62. package/lib/commonjs/api/event/CastEvent.js +21 -0
  63. package/lib/commonjs/api/event/CastEvent.js.map +1 -0
  64. package/lib/commonjs/api/event/barrel.js +25 -12
  65. package/lib/commonjs/api/event/barrel.js.map +1 -1
  66. package/lib/commonjs/api/source/SourceDescription.js.map +1 -1
  67. package/lib/commonjs/api/source/barrel.js +13 -0
  68. package/lib/commonjs/api/source/barrel.js.map +1 -1
  69. package/lib/commonjs/api/source/metadata/MetadataDescription.js +2 -0
  70. package/lib/commonjs/api/source/metadata/MetadataDescription.js.map +1 -0
  71. package/lib/commonjs/api/source/metadata/barrel.js +19 -0
  72. package/lib/commonjs/api/source/metadata/barrel.js.map +1 -0
  73. package/lib/commonjs/internal/THEOplayerView.js +16 -0
  74. package/lib/commonjs/internal/THEOplayerView.js.map +1 -1
  75. package/lib/commonjs/internal/THEOplayerView.web.js +9 -0
  76. package/lib/commonjs/internal/THEOplayerView.web.js.map +1 -1
  77. package/lib/commonjs/internal/cast/THEOplayerNativeAirplay.js +34 -0
  78. package/lib/commonjs/internal/cast/THEOplayerNativeAirplay.js.map +1 -0
  79. package/lib/commonjs/internal/cast/THEOplayerNativeCastApi.js +46 -0
  80. package/lib/commonjs/internal/cast/THEOplayerNativeCastApi.js.map +1 -0
  81. package/lib/commonjs/internal/cast/THEOplayerNativeChromecast.js +42 -0
  82. package/lib/commonjs/internal/cast/THEOplayerNativeChromecast.js.map +1 -0
  83. package/lib/commonjs/internal/cast/THEOplayerWebCastApi.js +31 -0
  84. package/lib/commonjs/internal/cast/THEOplayerWebCastApi.js.map +1 -0
  85. package/lib/commonjs/internal/web/stub/CastButtonStub.js +16 -0
  86. package/lib/commonjs/internal/web/stub/CastButtonStub.js.map +1 -0
  87. package/lib/module/api/THEOplayerView.js.map +1 -1
  88. package/lib/module/api/barrel.js +1 -0
  89. package/lib/module/api/barrel.js.map +1 -1
  90. package/lib/module/api/cast/Airplay.js +2 -0
  91. package/lib/module/api/cast/Airplay.js.map +1 -0
  92. package/lib/module/api/cast/CastAPI.js +2 -0
  93. package/lib/module/api/cast/CastAPI.js.map +1 -0
  94. package/lib/module/api/cast/CastConfiguration.js +2 -0
  95. package/lib/module/api/cast/CastConfiguration.js.map +1 -0
  96. package/lib/module/api/cast/CastState.js +2 -0
  97. package/lib/module/api/cast/CastState.js.map +1 -0
  98. package/lib/module/api/cast/Chromecast.js +2 -0
  99. package/lib/module/api/cast/Chromecast.js.map +1 -0
  100. package/lib/module/api/cast/barrel.js +6 -0
  101. package/lib/module/api/cast/barrel.js.map +1 -0
  102. package/lib/module/api/config/PlayerConfiguration.js.map +1 -1
  103. package/lib/module/api/error/ChromecastError.js +2 -0
  104. package/lib/module/api/error/ChromecastError.js.map +1 -0
  105. package/lib/module/api/error/barrel.js +1 -0
  106. package/lib/module/api/error/barrel.js.map +1 -1
  107. package/lib/module/api/event/CastEvent.js +14 -0
  108. package/lib/module/api/event/CastEvent.js.map +1 -0
  109. package/lib/module/api/event/barrel.js +2 -1
  110. package/lib/module/api/event/barrel.js.map +1 -1
  111. package/lib/module/api/source/SourceDescription.js.map +1 -1
  112. package/lib/module/api/source/barrel.js +1 -0
  113. package/lib/module/api/source/barrel.js.map +1 -1
  114. package/lib/module/api/source/metadata/MetadataDescription.js +2 -0
  115. package/lib/module/api/source/metadata/MetadataDescription.js.map +1 -0
  116. package/lib/module/api/source/metadata/barrel.js +2 -0
  117. package/lib/module/api/source/metadata/barrel.js.map +1 -0
  118. package/lib/module/internal/THEOplayerView.js +15 -0
  119. package/lib/module/internal/THEOplayerView.js.map +1 -1
  120. package/lib/module/internal/THEOplayerView.web.js +8 -0
  121. package/lib/module/internal/THEOplayerView.web.js.map +1 -1
  122. package/lib/module/internal/cast/THEOplayerNativeAirplay.js +24 -0
  123. package/lib/module/internal/cast/THEOplayerNativeAirplay.js.map +1 -0
  124. package/lib/module/internal/cast/THEOplayerNativeCastApi.js +34 -0
  125. package/lib/module/internal/cast/THEOplayerNativeCastApi.js.map +1 -0
  126. package/lib/module/internal/cast/THEOplayerNativeChromecast.js +32 -0
  127. package/lib/module/internal/cast/THEOplayerNativeChromecast.js.map +1 -0
  128. package/lib/module/internal/cast/THEOplayerWebCastApi.js +22 -0
  129. package/lib/module/internal/cast/THEOplayerWebCastApi.js.map +1 -0
  130. package/lib/module/internal/web/stub/CastButtonStub.js +6 -0
  131. package/lib/module/internal/web/stub/CastButtonStub.js.map +1 -0
  132. package/lib/typescript/lib/commonjs/api/cast/Airplay.d.ts +1 -0
  133. package/lib/typescript/lib/commonjs/api/cast/CastAPI.d.ts +1 -0
  134. package/lib/typescript/lib/commonjs/api/cast/CastConfiguration.d.ts +0 -0
  135. package/lib/typescript/lib/commonjs/api/cast/CastState.d.ts +0 -0
  136. package/lib/typescript/lib/commonjs/api/cast/Chromecast.d.ts +1 -0
  137. package/lib/typescript/lib/commonjs/api/cast/barrel.d.ts +1 -0
  138. package/lib/typescript/lib/commonjs/api/error/ChromecastError.d.ts +0 -0
  139. package/lib/typescript/lib/commonjs/api/event/CastEvent.d.ts +2 -0
  140. package/lib/typescript/lib/commonjs/api/source/metadata/MetadataDescription.d.ts +0 -0
  141. package/lib/typescript/lib/commonjs/api/source/metadata/barrel.d.ts +1 -0
  142. package/lib/typescript/lib/commonjs/internal/THEOplayerView.d.ts +3 -0
  143. package/lib/typescript/lib/commonjs/internal/THEOplayerView.web.d.ts +3 -0
  144. package/lib/typescript/lib/commonjs/internal/cast/THEOplayerNativeAirplay.d.ts +9 -0
  145. package/lib/typescript/lib/commonjs/internal/cast/THEOplayerNativeCastApi.d.ts +12 -0
  146. package/lib/typescript/lib/commonjs/internal/cast/THEOplayerNativeChromecast.d.ts +11 -0
  147. package/lib/typescript/lib/commonjs/internal/cast/THEOplayerWebCastApi.d.ts +8 -0
  148. package/lib/typescript/lib/commonjs/internal/web/stub/CastButtonStub.d.ts +2 -0
  149. package/lib/typescript/lib/module/api/barrel.d.ts +1 -0
  150. package/lib/typescript/lib/module/api/cast/Airplay.d.ts +1 -0
  151. package/lib/typescript/lib/module/api/cast/CastAPI.d.ts +1 -0
  152. package/lib/typescript/lib/module/api/cast/CastConfiguration.d.ts +0 -0
  153. package/lib/typescript/lib/module/api/cast/CastState.d.ts +0 -0
  154. package/lib/typescript/lib/module/api/cast/Chromecast.d.ts +1 -0
  155. package/lib/typescript/lib/module/api/cast/barrel.d.ts +3 -0
  156. package/lib/typescript/lib/module/api/error/ChromecastError.d.ts +0 -0
  157. package/lib/typescript/lib/module/api/event/CastEvent.d.ts +1 -0
  158. package/lib/typescript/lib/module/api/event/barrel.d.ts +2 -1
  159. package/lib/typescript/lib/module/api/source/barrel.d.ts +1 -0
  160. package/lib/typescript/lib/module/api/source/metadata/MetadataDescription.d.ts +0 -0
  161. package/lib/typescript/lib/module/api/source/metadata/barrel.d.ts +1 -0
  162. package/lib/typescript/lib/module/internal/THEOplayerView.d.ts +3 -0
  163. package/lib/typescript/lib/module/internal/THEOplayerView.web.d.ts +3 -0
  164. package/lib/typescript/lib/module/internal/cast/THEOplayerNativeAirplay.d.ts +8 -0
  165. package/lib/typescript/lib/module/internal/cast/THEOplayerNativeCastApi.d.ts +11 -0
  166. package/lib/typescript/lib/module/internal/cast/THEOplayerNativeChromecast.d.ts +10 -0
  167. package/lib/typescript/lib/module/internal/cast/THEOplayerWebCastApi.d.ts +7 -0
  168. package/lib/typescript/lib/module/internal/web/stub/CastButtonStub.d.ts +2 -0
  169. package/lib/typescript/src/api/THEOplayerView.d.ts +10 -0
  170. package/lib/typescript/src/api/barrel.d.ts +1 -0
  171. package/lib/typescript/src/api/cast/Airplay.d.ts +27 -0
  172. package/lib/typescript/src/api/cast/CastAPI.d.ts +25 -0
  173. package/lib/typescript/src/api/cast/CastConfiguration.d.ts +41 -0
  174. package/lib/typescript/src/api/cast/CastState.d.ts +10 -0
  175. package/lib/typescript/src/api/cast/Chromecast.d.ts +39 -0
  176. package/lib/typescript/src/api/cast/barrel.d.ts +5 -0
  177. package/lib/typescript/src/api/config/PlayerConfiguration.d.ts +6 -1
  178. package/lib/typescript/src/api/error/ChromecastError.d.ts +34 -0
  179. package/lib/typescript/src/api/error/barrel.d.ts +1 -0
  180. package/lib/typescript/src/api/event/CastEvent.d.ts +21 -0
  181. package/lib/typescript/src/api/event/barrel.d.ts +2 -1
  182. package/lib/typescript/src/api/source/SourceDescription.d.ts +7 -0
  183. package/lib/typescript/src/api/source/barrel.d.ts +1 -0
  184. package/lib/typescript/src/api/source/metadata/MetadataDescription.d.ts +12 -0
  185. package/lib/typescript/src/api/source/metadata/barrel.d.ts +1 -0
  186. package/lib/typescript/src/internal/THEOplayerView.d.ts +5 -1
  187. package/lib/typescript/src/internal/THEOplayerView.web.d.ts +3 -1
  188. package/lib/typescript/src/internal/cast/THEOplayerNativeAirplay.d.ts +9 -0
  189. package/lib/typescript/src/internal/cast/THEOplayerNativeCastApi.d.ts +10 -0
  190. package/lib/typescript/src/internal/cast/THEOplayerNativeChromecast.d.ts +11 -0
  191. package/lib/typescript/src/internal/cast/THEOplayerWebCastApi.d.ts +9 -0
  192. package/lib/typescript/src/internal/web/stub/CastButtonStub.d.ts +3 -0
  193. package/package.json +2 -2
  194. package/react-native-theoplayer.podspec +2 -2
  195. package/src/api/THEOplayerView.ts +12 -0
  196. package/src/api/barrel.ts +1 -0
  197. package/src/api/cast/Airplay.ts +31 -0
  198. package/src/api/cast/CastAPI.ts +30 -0
  199. package/src/api/cast/CastConfiguration.ts +44 -0
  200. package/src/api/cast/CastState.ts +10 -0
  201. package/src/api/cast/Chromecast.ts +45 -0
  202. package/src/api/cast/barrel.ts +5 -0
  203. package/src/api/config/PlayerConfiguration.ts +7 -1
  204. package/src/api/error/ChromecastError.ts +46 -0
  205. package/src/api/error/barrel.ts +1 -0
  206. package/src/api/event/CastEvent.ts +45 -0
  207. package/src/api/event/barrel.ts +2 -1
  208. package/src/api/source/SourceDescription.ts +8 -0
  209. package/src/api/source/barrel.ts +1 -0
  210. package/src/api/source/metadata/MetadataDescription.ts +13 -0
  211. package/src/api/source/metadata/barrel.ts +1 -0
  212. package/src/internal/THEOplayerView.tsx +17 -0
  213. package/src/internal/THEOplayerView.web.tsx +8 -1
  214. package/src/internal/cast/THEOplayerNativeAirplay.ts +22 -0
  215. package/src/internal/cast/THEOplayerNativeCastApi.ts +28 -0
  216. package/src/internal/cast/THEOplayerNativeChromecast.ts +30 -0
  217. package/src/internal/cast/THEOplayerWebCastApi.ts +21 -0
  218. package/src/internal/web/stub/CastButtonStub.tsx +7 -0
  219. package/android/src/main/java/com/theoplayer/PlayerConfigHelper.java +0 -70
  220. package/android/src/main/java/com/theoplayer/ReactTHEOplayerPackage.java +0 -32
  221. package/android/src/main/java/com/theoplayer/ReactTHEOplayerView.java +0 -525
  222. package/android/src/main/java/com/theoplayer/ReactTHEOplayerViewManager.java +0 -127
  223. package/android/src/main/java/com/theoplayer/SourceHelper.java +0 -362
  224. package/android/src/main/java/com/theoplayer/VideoEventEmitter.java +0 -578
  225. package/android/src/main/java/com/theoplayer/ads/AdEventAdapter.java +0 -92
  226. package/android/src/main/java/com/theoplayer/ads/AdInfo.java +0 -168
  227. package/android/src/main/java/com/theoplayer/ads/AdsModule.java +0 -152
  228. package/android/src/main/java/com/theoplayer/track/MediaTrackEventType.java +0 -11
  229. package/android/src/main/java/com/theoplayer/track/MediaTrackType.java +0 -11
  230. package/android/src/main/java/com/theoplayer/track/QualityListAdapter.java +0 -54
  231. package/android/src/main/java/com/theoplayer/track/QualityListFilter.java +0 -40
  232. package/android/src/main/java/com/theoplayer/track/TextTrackCueEventType.java +0 -11
  233. package/android/src/main/java/com/theoplayer/track/TrackEventType.java +0 -12
  234. package/android/src/main/java/com/theoplayer/track/TrackListInfo.java +0 -234
  235. package/android/src/main/java/com/theoplayer/util/ViewResolver.java +0 -42
  236. package/ios/custom/react-native-theoplayer_custom_ios.podspec +0 -36
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["Chromecast.ts"],"sourcesContent":["/**\n * The Airplay API.\n *\n * @public\n */\nimport type {CastState} from \"./CastState\";\n\nexport interface Chromecast {\n /**\n * Whether the player is connected with a chromecast device.\n */\n casting(): Promise<boolean>;\n\n /**\n * The state of the casting process.\n */\n state(): Promise<CastState>;\n\n /**\n * Start a casting session with the player's source.\n *\n * @remarks\n * <br/> - A native browser pop-up will prompt to choose a chromecast device.\n */\n start(): void;\n\n /**\n * Stop the active casting session.\n */\n stop(): void;\n\n /**\n * Join an active casting session.\n */\n join(): void;\n\n /**\n * Leave the active casting session.\n *\n * @remarks\n * <br/> - Does not stop the session when other devices are connected.\n * <br/> - Use {@link stop} to fully stop the session.\n */\n leave(): void;\n}\n"],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export * from './Airplay';
2
+ export * from './CastAPI';
3
+ export * from './CastConfiguration';
4
+ export * from './CastState';
5
+ export * from './Chromecast';
6
+ //# sourceMappingURL=barrel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["barrel.ts"],"sourcesContent":["export * from './Airplay';\nexport * from './CastAPI';\nexport * from './CastConfiguration';\nexport * from './CastState';\nexport * from './Chromecast';\n"],"mappings":"AAAA,cAAc,WAAd;AACA,cAAc,WAAd;AACA,cAAc,qBAAd;AACA,cAAc,aAAd;AACA,cAAc,cAAd"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["PlayerConfiguration.ts"],"sourcesContent":["import type { AdsConfiguration } from \"../ads/AdsConfiguration\";\n\nexport interface PlayerConfiguration {\n /**\n * The ads configuration for the player.\n */\n ads?: AdsConfiguration;\n\n /**\n * The license for the player\n */\n readonly license?: string;\n\n /**\n * The url to fetch the license for the player\n */\n readonly licenseUrl?: string;\n\n /**\n * Sets whether the native player is chromeless (without UI).\n */\n readonly chromeless?: boolean;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["PlayerConfiguration.ts"],"sourcesContent":["import type { AdsConfiguration } from '../ads/AdsConfiguration';\nimport type { CastConfiguration } from '../cast/CastConfiguration';\n\nexport interface PlayerConfiguration {\n /**\n * The ads configuration for the player.\n */\n ads?: AdsConfiguration;\n\n /**\n * The cast configuration for the player.\n */\n cast?: CastConfiguration;\n\n /**\n * The license for the player\n */\n readonly license?: string;\n\n /**\n * The url to fetch the license for the player\n */\n readonly licenseUrl?: string;\n\n /**\n * Sets whether the native player is chromeless (without UI).\n */\n readonly chromeless?: boolean;\n}\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=ChromecastError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["ChromecastError.ts"],"sourcesContent":["/**\n * The chromecast error code, represented by a value from the following list:\n * <br/> - `'CANCEL'`: The operation was canceled by the user.\n * <br/> - `'TIMEOUT'`: The operation timed out.\n * <br/> - `'API_NOT_INITIALIZED'`: The API is not initialized.\n * <br/> - `'INVALID_PARAMETER'`: The parameters to the operation were not valid.\n * <br/> - `'EXTENSION_NOT_COMPATIBLE'`: The API script is not compatible with the installed Cast extension.\n * <br/> - `'EXTENSION_MISSING'`: The Cast extension is not available.\n * <br/> - `'RECEIVER_UNAVAILABLE'`: No receiver was compatible with the session request.\n * <br/> - `'SESSION_ERROR'`: A session could not be created, or a session was invalid.\n * <br/> - `'CHANNEL_ERROR'`: A channel to the receiver is not available.\n * <br/> - `'LOAD_MEDIA_FAILED'`: Load media failed.\n *\n * @remarks\n * <br/> - The error codes correspond to the error codes documented in the {@link https://developers.google.com/cast/docs/reference/chrome/chrome.cast.html#.ErrorCode | Chromecast API reference}.\n *\n * @public\n */\nexport type ChromecastErrorCode =\n | 'CANCEL'\n | 'TIMEOUT'\n | 'API_NOT_INITIALIZED'\n | 'INVALID_PARAMETER'\n | 'EXTENSION_NOT_COMPATIBLE'\n | 'EXTENSION_MISSING'\n | 'RECEIVER_UNAVAILABLE'\n | 'SESSION_ERROR'\n | 'CHANNEL_ERROR'\n | 'LOAD_MEDIA_FAILED';\n\n/**\n * An error that occurred while casting or attempting to cast to Chromecast.\n *\n * @public\n */\nexport interface ChromecastError {\n /**\n * The error code of the error.\n */\n errorCode: ChromecastErrorCode;\n\n /**\n * The human-readable description of the error.\n */\n description: string;\n}\n"],"mappings":""}
@@ -1,2 +1,3 @@
1
1
  export * from './PlayerError';
2
+ export * from './ChromecastError';
2
3
  //# sourceMappingURL=barrel.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["barrel.ts"],"sourcesContent":["export * from './PlayerError';\n"],"mappings":"AAAA,cAAc,eAAd"}
1
+ {"version":3,"names":[],"sources":["barrel.ts"],"sourcesContent":["export * from './PlayerError';\nexport * from './ChromecastError';\n"],"mappings":"AAAA,cAAc,eAAd;AACA,cAAc,mBAAd"}
@@ -0,0 +1,14 @@
1
+ export const CastEventNames = [
2
+ /**
3
+ * Dispatched when the ChromeCast state was changed.
4
+ */
5
+ 'chromecaststatechange',
6
+ /**
7
+ * Dispatched when the Airplay state was changed.
8
+ */
9
+ 'airplaystatechange',
10
+ /**
11
+ * Dispatched when an error occurred when using Chromecast.
12
+ */
13
+ 'chromecasterror'];
14
+ //# sourceMappingURL=CastEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CastEventNames"],"sources":["CastEvent.ts"],"sourcesContent":["import type { CastState, ChromecastError } from 'react-native-theoplayer';\n\nexport const CastEventNames = [\n /**\n * Dispatched when the ChromeCast state was changed.\n */\n 'chromecaststatechange',\n\n /**\n * Dispatched when the Airplay state was changed.\n */\n 'airplaystatechange',\n\n /**\n * Dispatched when an error occurred when using Chromecast.\n */\n 'chromecasterror',\n] as const;\n\nexport type CastEventType = typeof CastEventNames[number];\n\nexport interface CastEvent {\n /**\n * Type of ad event.\n */\n readonly type: CastEventType;\n}\n\nexport interface ChromecastChangeEvent extends CastEvent {\n readonly type: 'chromecaststatechange';\n\n readonly state: CastState;\n}\n\nexport interface AirplayStateChangeEvent extends CastEvent {\n readonly type: 'airplaystatechange';\n\n readonly state: CastState;\n}\n\nexport interface ChromecastErrorEvent extends CastEvent {\n readonly type: 'chromecasterror';\n\n readonly error: ChromecastError;\n}\n"],"mappings":"AAEA,OAAO,MAAMA,cAAc,GAAG;AAC5B;AACF;AACA;AACE,uBAJ4B;AAM5B;AACF;AACA;AACE,oBAT4B;AAW5B;AACF;AACA;AACE,iBAd4B,CAAvB"}
@@ -1,4 +1,5 @@
1
+ export * from './AdEvent';
2
+ export * from './CastEvent';
1
3
  export * from './PlayerEvent';
2
4
  export * from './TrackEvent';
3
- export * from './AdEvent';
4
5
  //# sourceMappingURL=barrel.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["barrel.ts"],"sourcesContent":["export * from './PlayerEvent';\nexport * from './TrackEvent';\nexport * from './AdEvent';\n"],"mappings":"AAAA,cAAc,eAAd;AACA,cAAc,cAAd;AACA,cAAc,WAAd"}
1
+ {"version":3,"names":[],"sources":["barrel.ts"],"sourcesContent":["export * from './AdEvent';\nexport * from './CastEvent';\nexport * from './PlayerEvent';\nexport * from './TrackEvent';\n"],"mappings":"AAAA,cAAc,WAAd;AACA,cAAc,aAAd;AACA,cAAc,eAAd;AACA,cAAc,cAAd"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["SourceDescription.ts"],"sourcesContent":["/**\n * Represents a media resource.\n *\n * @remarks\n * <br/> - Can be a string value representing the URL of a media resource, a {@link TypedSource}.\n *\n * @public\n */\nimport type { DashPlaybackConfiguration } from './dash/DashPlaybackConfiguration';\nimport type { DRMConfiguration } from './drm/DRMConfiguration';\nimport type { HlsPlaybackConfiguration } from './hls/HlsPlaybackConfiguration';\nimport type { AdDescription } from './ads/Ads';\nimport type { ServerSideAdInsertionConfiguration } from \"./ads/ssai/ServerSideAdInsertionConfiguration\";\n\nexport type Source = TypedSource;\n\n/**\n * A media resource or list of media resources.\n *\n * @remarks\n * <br/> - The order of sources when using a list determines their priority when attempting playback.\n *\n * @public\n */\nexport type Sources = Source | Source[];\n\n/**\n * The cross-origin setting of a source, represented by a value from the following list:\n * <br/> - `'anonymous'`: CORS requests will have the credentials flag set to 'same-origin'.\n * <br/> - `'use-credentials'`: CORS requests will have the credentials flag set to 'include'.\n * <br/> - `''`: Setting the empty string is the same as `'anonymous'`\n *\n * @remarks\n * <br/> - See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes | The crossorigin attribute: Requesting CORS access to content}\n *\n * @public\n */\nexport type CrossOriginSetting = '' | 'anonymous' | 'use-credentials';\n\n/**\n * Describes the configuration of a player's source.\n *\n * @public\n */\nexport interface SourceConfiguration {\n /**\n * List of {@link AdDescription}s to be queued for playback.\n */\n ads?: AdDescription[];\n\n /**\n * Content protection configuration.\n */\n contentProtection?: DRMConfiguration;\n\n /**\n * The poster of the media source.\n *\n * @remarks\n * <br/> - An empty string (`''`) clears the current poster.\n * <br/> - This poster has priority over {@link ChromelessPlayer.poster}.\n */\n poster?: string;\n\n /**\n * List of text tracks to be side-loaded with the media source.\n *\n * @remarks\n * <br/> - A source change will reset side-loaded text tracks.\n */\n textTracks?: TextTrackDescription[];\n\n /**\n * The URL of a time server used by the player to synchronise the time in DASH sources.\n *\n * @remarks\n * <br/> - The time server should return time in ISO-8601 format.\n * <br/> - Overrides the time server provided the DASH manifest's `<UTCTiming>`.\n * <br/> - All sources will use the time server. Alternatively, for one source use {@link BaseSource.timeServer}.\n */\n timeServer?: string;\n}\n\n/**\n * Describes the configuration of a player's source.\n *\n * @public\n */\nexport interface SourceDescription extends SourceConfiguration {\n /**\n * One or more media resources for playback.\n *\n * @remarks\n * <br/> - Multiple media sources should be used to increase platform compatibility. See examples below for important use cases.\n * <br/> - The player will try each source in the provided order.\n *\n * @example\n * In this example, the player will first try to play the DASH source.\n * This might fail if the browser does not support the {@link https://www.widevine.com/ | Widevine} or {@link https://www.microsoft.com/playready/ | PlayReady} CDM, for example on Safari.\n * In that case, the player will try to play the HLS source instead.\n *\n * ```\n * [{\n * src: 'dash-source-with-drm.mpd'\n * contentProtection: {\n * widevine: {\n * licenseAcquisitionURL: 'https://license.company.com/wv'\n * },\n * playready: {\n * licenseAcquisitionURL: 'https://license.company.com/pr'\n * }\n * }\n * },{\n * src: 'hls-source-with-drm.m3u8',\n * contentProtection: {\n * fairplay: {\n * certificateURL: 'https://license.company.com/fp'\n * }\n * }\n * }]\n * ```\n *\n * @example\n * In this example, the player will first try to play the DASH source.\n * This might fail if the browser does not support the {@link https://developer.mozilla.org/en-US/docs/Web/API/Media_Source_Extensions_API | Media Source Extensions API}.\n * In that case, the player will try to play the MP4 source instead, though without features such as adaptive bitrate switching.\n *\n * ```\n * [{\n * src: 'source.mpd'\n * },{\n * src: 'source.mp4'\n * }]\n * ```\n */\n sources?: Sources;\n}\n\n/**\n * Describes the configuration of a side-loaded text track.\n *\n * @public\n */\nexport interface TextTrackDescription {\n /**\n * Whether the text track should be enabled by default.\n *\n * @remarks\n * <br/> - Only one text track per {@link TextTrack.kind} may be marked as default.\n *\n * @defaultValue `false`\n */\n default?: boolean;\n\n /**\n * The kind of the text track, represented by a value from the following list:\n * <br/> - `'subtitles'`: The track provides subtitles, used to display subtitles in a video.\n * <br/> - `'captions'`: The track provides a translation of dialogue and sound effects (suitable for users with a hearing impairment).\n * <br/> - `'descriptions'`: The track provides a textual description of the video (suitable for users with a vision impairment).\n * <br/> - `'chapters'`: The track provides chapter titles (suitable for navigating the media resource).\n * <br/> - `'metadata'`: The track provides content used by scripts and is not visible for users.\n *\n * @remarks\n * <br/> - If an unrecognized value is provided, the player will interpret it as `'metadata'`.\n *\n * @defaultValue `'subtitles'`\n */\n kind?: string;\n\n /**\n * The format of the track, represented by a value from the following list:\n * <br/> - `'srt'`\n * <br/> - `'ttml'`\n * <br/> - `'webvtt'`\n * <br/> - `'emsg'`\n * <br/> - `'eventstream'`\n * <br/> - `'id3'`\n * <br/> - `'cea608'`\n * <br/> - `'daterange'`\n *\n * @defaultValue `''`\n */\n format?: string;\n\n /**\n * The source URL of the text track.\n */\n src: string;\n\n /**\n * The language of the text track.\n */\n srclang?: string;\n\n /**\n * A label for the text track.\n *\n * @remarks\n * <br/> - This will be used as an identifier on the player API and in the UI.\n */\n label?: string;\n\n /**\n * The identifier of this text track.\n *\n * @internal\n */\n // Note: This works for HLS, but not for DASH.\n id?: string;\n}\n\n/**\n * Represents the common properties of a media resource.\n *\n * @public\n */\nexport interface BaseSource {\n /**\n * The URL of a time server used by the player to synchronise the time in DASH sources.\n *\n * @remarks\n * <br/> - Available since v2.47.0.\n * <br/> - The time server should return time in ISO-8601 format.\n * <br/> - Overrides the time server provided the DASH manifest's `<UTCTiming>`.\n * <br/> - Only this source will use the time server. Alternatively, for all source use {@link SourceConfiguration.timeServer}.\n */\n timeServer?: string;\n\n /**\n * Whether the source should be played in the low-latency-mode of the player.\n *\n * @defaultValue `false`\n *\n * @remarks\n * <br/> - This setting must be `true` when using Low-Latency CMAF with ABR.\n * <br/> - Available since v2.62.0.\n */\n lowLatency?: boolean;\n\n /**\n * The configuration for controlling playback of an MPEG-DASH stream.\n *\n * @remarks\n * <br/> - Available since v2.79.0.\n * <br/> - Ignored for non-DASH streams.\n */\n dash?: DashPlaybackConfiguration;\n\n /**\n * The configuration for controlling playback of an HLS stream.\n *\n * @remarks\n * <br/> - Available since v2.82.0.\n * <br/> - Ignored for non-HLS streams.\n */\n hls?: HlsPlaybackConfiguration;\n}\n\n/**\n * Represents a media resource characterized by a URL to the resource and optionally information about the resource.\n *\n * @public\n */\nexport interface TypedSource extends BaseSource {\n /**\n * The source URL of the media resource.\n *\n * @remarks\n * <br/> - Required if the `ssai` property is absent.\n * <br/> - Available since v2.4.0.\n */\n src?: string;\n\n /**\n * The content type (MIME type) of the media resource, represented by a value from the following list:\n * <br/> - `'application/dash+xml'`: The media resource is an MPEG-DASH stream.\n * <br/> - `'application/x-mpegURL'` or `'application/vnd.apple.mpegurl'`: The media resource is an HLS stream.\n * <br/> - `'video/mp4'`, `'video/webm'` and other formats: The media resource should use native HTML5 playback if supported by the browser.\n * <br/> - `'application/vnd.theo.hesp+json'`: The media resource is an HESP stream.\n *\n * @remarks\n * <br/> - Available since v2.4.0.\n */\n type?: string;\n\n /**\n * The content protection parameters for the media resource.\n *\n * @remarks\n * <br/> - Available since v2.15.0.\n */\n contentProtection?: DRMConfiguration;\n\n /**\n * The Server-side Ad Insertion parameters for the media resource.\n *\n * @remarks\n * <br/> - Available since v2.12.0.\n */\n ssai?: ServerSideAdInsertionConfiguration;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["SourceDescription.ts"],"sourcesContent":["/**\n * Represents a media resource.\n *\n * @remarks\n * <br/> - Can be a string value representing the URL of a media resource, a {@link TypedSource}.\n *\n * @public\n */\nimport type { DashPlaybackConfiguration } from './dash/DashPlaybackConfiguration';\nimport type { DRMConfiguration } from './drm/DRMConfiguration';\nimport type { HlsPlaybackConfiguration } from './hls/HlsPlaybackConfiguration';\nimport type { AdDescription } from './ads/Ads';\nimport type { MetadataDescription } from './metadata/MetadataDescription';\nimport type { ServerSideAdInsertionConfiguration } from \"./ads/ssai/ServerSideAdInsertionConfiguration\";\n\nexport type Source = TypedSource;\n\n/**\n * A media resource or list of media resources.\n *\n * @remarks\n * <br/> - The order of sources when using a list determines their priority when attempting playback.\n *\n * @public\n */\nexport type Sources = Source | Source[];\n\n/**\n * The cross-origin setting of a source, represented by a value from the following list:\n * <br/> - `'anonymous'`: CORS requests will have the credentials flag set to 'same-origin'.\n * <br/> - `'use-credentials'`: CORS requests will have the credentials flag set to 'include'.\n * <br/> - `''`: Setting the empty string is the same as `'anonymous'`\n *\n * @remarks\n * <br/> - See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes | The crossorigin attribute: Requesting CORS access to content}\n *\n * @public\n */\nexport type CrossOriginSetting = '' | 'anonymous' | 'use-credentials';\n\n/**\n * Describes the configuration of a player's source.\n *\n * @public\n */\nexport interface SourceConfiguration {\n /**\n * List of {@link AdDescription}s to be queued for playback.\n */\n ads?: AdDescription[];\n\n /**\n * Content protection configuration.\n */\n contentProtection?: DRMConfiguration;\n\n /**\n * The poster of the media source.\n *\n * @remarks\n * <br/> - An empty string (`''`) clears the current poster.\n * <br/> - This poster has priority over {@link ChromelessPlayer.poster}.\n */\n poster?: string;\n\n /**\n * List of text tracks to be side-loaded with the media source.\n *\n * @remarks\n * <br/> - A source change will reset side-loaded text tracks.\n */\n textTracks?: TextTrackDescription[];\n\n /**\n * The URL of a time server used by the player to synchronise the time in DASH sources.\n *\n * @remarks\n * <br/> - The time server should return time in ISO-8601 format.\n * <br/> - Overrides the time server provided the DASH manifest's `<UTCTiming>`.\n * <br/> - All sources will use the time server. Alternatively, for one source use {@link BaseSource.timeServer}.\n */\n timeServer?: string;\n\n /**\n * Describes the metadata of a source.\n *\n * @public\n */\n metadata?: MetadataDescription;\n}\n\n/**\n * Describes the configuration of a player's source.\n *\n * @public\n */\nexport interface SourceDescription extends SourceConfiguration {\n /**\n * One or more media resources for playback.\n *\n * @remarks\n * <br/> - Multiple media sources should be used to increase platform compatibility. See examples below for important use cases.\n * <br/> - The player will try each source in the provided order.\n *\n * @example\n * In this example, the player will first try to play the DASH source.\n * This might fail if the browser does not support the {@link https://www.widevine.com/ | Widevine} or {@link https://www.microsoft.com/playready/ | PlayReady} CDM, for example on Safari.\n * In that case, the player will try to play the HLS source instead.\n *\n * ```\n * [{\n * src: 'dash-source-with-drm.mpd'\n * contentProtection: {\n * widevine: {\n * licenseAcquisitionURL: 'https://license.company.com/wv'\n * },\n * playready: {\n * licenseAcquisitionURL: 'https://license.company.com/pr'\n * }\n * }\n * },{\n * src: 'hls-source-with-drm.m3u8',\n * contentProtection: {\n * fairplay: {\n * certificateURL: 'https://license.company.com/fp'\n * }\n * }\n * }]\n * ```\n *\n * @example\n * In this example, the player will first try to play the DASH source.\n * This might fail if the browser does not support the {@link https://developer.mozilla.org/en-US/docs/Web/API/Media_Source_Extensions_API | Media Source Extensions API}.\n * In that case, the player will try to play the MP4 source instead, though without features such as adaptive bitrate switching.\n *\n * ```\n * [{\n * src: 'source.mpd'\n * },{\n * src: 'source.mp4'\n * }]\n * ```\n */\n sources?: Sources;\n}\n\n/**\n * Describes the configuration of a side-loaded text track.\n *\n * @public\n */\nexport interface TextTrackDescription {\n /**\n * Whether the text track should be enabled by default.\n *\n * @remarks\n * <br/> - Only one text track per {@link TextTrack.kind} may be marked as default.\n *\n * @defaultValue `false`\n */\n default?: boolean;\n\n /**\n * The kind of the text track, represented by a value from the following list:\n * <br/> - `'subtitles'`: The track provides subtitles, used to display subtitles in a video.\n * <br/> - `'captions'`: The track provides a translation of dialogue and sound effects (suitable for users with a hearing impairment).\n * <br/> - `'descriptions'`: The track provides a textual description of the video (suitable for users with a vision impairment).\n * <br/> - `'chapters'`: The track provides chapter titles (suitable for navigating the media resource).\n * <br/> - `'metadata'`: The track provides content used by scripts and is not visible for users.\n *\n * @remarks\n * <br/> - If an unrecognized value is provided, the player will interpret it as `'metadata'`.\n *\n * @defaultValue `'subtitles'`\n */\n kind?: string;\n\n /**\n * The format of the track, represented by a value from the following list:\n * <br/> - `'srt'`\n * <br/> - `'ttml'`\n * <br/> - `'webvtt'`\n * <br/> - `'emsg'`\n * <br/> - `'eventstream'`\n * <br/> - `'id3'`\n * <br/> - `'cea608'`\n * <br/> - `'daterange'`\n *\n * @defaultValue `''`\n */\n format?: string;\n\n /**\n * The source URL of the text track.\n */\n src: string;\n\n /**\n * The language of the text track.\n */\n srclang?: string;\n\n /**\n * A label for the text track.\n *\n * @remarks\n * <br/> - This will be used as an identifier on the player API and in the UI.\n */\n label?: string;\n\n /**\n * The identifier of this text track.\n *\n * @internal\n */\n // Note: This works for HLS, but not for DASH.\n id?: string;\n}\n\n/**\n * Represents the common properties of a media resource.\n *\n * @public\n */\nexport interface BaseSource {\n /**\n * The URL of a time server used by the player to synchronise the time in DASH sources.\n *\n * @remarks\n * <br/> - Available since v2.47.0.\n * <br/> - The time server should return time in ISO-8601 format.\n * <br/> - Overrides the time server provided the DASH manifest's `<UTCTiming>`.\n * <br/> - Only this source will use the time server. Alternatively, for all source use {@link SourceConfiguration.timeServer}.\n */\n timeServer?: string;\n\n /**\n * Whether the source should be played in the low-latency-mode of the player.\n *\n * @defaultValue `false`\n *\n * @remarks\n * <br/> - This setting must be `true` when using Low-Latency CMAF with ABR.\n * <br/> - Available since v2.62.0.\n */\n lowLatency?: boolean;\n\n /**\n * The configuration for controlling playback of an MPEG-DASH stream.\n *\n * @remarks\n * <br/> - Available since v2.79.0.\n * <br/> - Ignored for non-DASH streams.\n */\n dash?: DashPlaybackConfiguration;\n\n /**\n * The configuration for controlling playback of an HLS stream.\n *\n * @remarks\n * <br/> - Available since v2.82.0.\n * <br/> - Ignored for non-HLS streams.\n */\n hls?: HlsPlaybackConfiguration;\n}\n\n/**\n * Represents a media resource characterized by a URL to the resource and optionally information about the resource.\n *\n * @public\n */\nexport interface TypedSource extends BaseSource {\n /**\n * The source URL of the media resource.\n *\n * @remarks\n * <br/> - Required if the `ssai` property is absent.\n * <br/> - Available since v2.4.0.\n */\n src?: string;\n\n /**\n * The content type (MIME type) of the media resource, represented by a value from the following list:\n * <br/> - `'application/dash+xml'`: The media resource is an MPEG-DASH stream.\n * <br/> - `'application/x-mpegURL'` or `'application/vnd.apple.mpegurl'`: The media resource is an HLS stream.\n * <br/> - `'video/mp4'`, `'video/webm'` and other formats: The media resource should use native HTML5 playback if supported by the browser.\n * <br/> - `'application/vnd.theo.hesp+json'`: The media resource is an HESP stream.\n *\n * @remarks\n * <br/> - Available since v2.4.0.\n */\n type?: string;\n\n /**\n * The content protection parameters for the media resource.\n *\n * @remarks\n * <br/> - Available since v2.15.0.\n */\n contentProtection?: DRMConfiguration;\n\n /**\n * The Server-side Ad Insertion parameters for the media resource.\n *\n * @remarks\n * <br/> - Available since v2.12.0.\n */\n ssai?: ServerSideAdInsertionConfiguration;\n}\n"],"mappings":""}
@@ -2,5 +2,6 @@ export * from './ads/barrel';
2
2
  export * from './drm/barrel';
3
3
  export * from './dash/barrel';
4
4
  export * from './hls/barrel';
5
+ export * from './metadata/barrel';
5
6
  export * from './SourceDescription';
6
7
  //# sourceMappingURL=barrel.js.map
@@ -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"}