react-native-theoplayer 1.0.0 → 1.3.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 (379) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +54 -18
  3. package/android/.gradle/7.0.2/dependencies-accessors/dependencies-accessors.lock +0 -0
  4. package/android/.gradle/7.0.2/dependencies-accessors/gc.properties +0 -0
  5. package/android/.gradle/7.0.2/executionHistory/executionHistory.lock +0 -0
  6. package/android/.gradle/7.0.2/fileChanges/last-build.bin +0 -0
  7. package/android/.gradle/7.0.2/fileHashes/fileHashes.bin +0 -0
  8. package/android/.gradle/7.0.2/fileHashes/fileHashes.lock +0 -0
  9. package/android/.gradle/7.0.2/gc.properties +0 -0
  10. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  11. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  12. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  13. package/android/.gradle/checksums/checksums.lock +0 -0
  14. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  15. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  16. package/android/.gradle/vcs-1/gc.properties +0 -0
  17. package/android/.idea/compiler.xml +6 -0
  18. package/android/.idea/gradle.xml +18 -0
  19. package/android/.idea/jarRepositories.xml +40 -0
  20. package/android/.idea/libraries/Gradle__androidx_activity_activity_1_1_0_aar.xml +13 -0
  21. package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_2_0.xml +11 -0
  22. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_1_0_aar.xml +16 -0
  23. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_1_0_aar.xml +13 -0
  24. package/android/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml +11 -0
  25. package/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_1_0_aar.xml +13 -0
  26. package/android/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml +13 -0
  27. package/android/.idea/libraries/Gradle__androidx_browser_browser_1_3_0_aar.xml +16 -0
  28. package/android/.idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml +11 -0
  29. package/android/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_0_0_aar.xml +16 -0
  30. package/android/.idea/libraries/Gradle__androidx_core_core_1_2_0_aar.xml +16 -0
  31. package/android/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +13 -0
  32. package/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml +13 -0
  33. package/android/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml +13 -0
  34. package/android/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml +16 -0
  35. package/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_2_4_aar.xml +16 -0
  36. package/android/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +13 -0
  37. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml +13 -0
  38. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml +13 -0
  39. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_2_0.xml +11 -0
  40. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml +13 -0
  41. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_2_0_aar.xml +13 -0
  42. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_2_0_aar.xml +13 -0
  43. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_2_0_aar.xml +13 -0
  44. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_savedstate_2_2_0_aar.xml +13 -0
  45. package/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +13 -0
  46. package/android/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml +13 -0
  47. package/android/.idea/libraries/Gradle__androidx_preference_preference_1_1_1_aar.xml +13 -0
  48. package/android/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml +16 -0
  49. package/android/.idea/libraries/Gradle__androidx_recyclerview_recyclerview_1_0_0_aar.xml +16 -0
  50. package/android/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_0_0_aar.xml +13 -0
  51. package/android/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml +13 -0
  52. package/android/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +16 -0
  53. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml +13 -0
  54. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml +13 -0
  55. package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_0_aar.xml +13 -0
  56. package/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +13 -0
  57. package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_java_only_0_0_3.xml +13 -0
  58. package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_2_0_0_aar.xml +15 -0
  59. package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_2_0_0_aar.xml +18 -0
  60. package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_2_0_0_aar.xml +18 -0
  61. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_2_0_0_aar.xml +18 -0
  62. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_2_0_0_aar.xml +18 -0
  63. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_2_0_0_aar.xml +15 -0
  64. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagefilters_2_0_0_aar.xml +15 -0
  65. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagetranscoder_2_0_0_aar.xml +15 -0
  66. package/android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_11_2.xml +13 -0
  67. package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_64_2_aar.xml +18 -0
  68. package/android/.idea/libraries/Gradle__com_facebook_soloader_annotation_0_9_0.xml +13 -0
  69. package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_9_0.xml +13 -0
  70. package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_9_0_aar.xml +15 -0
  71. package/android/.idea/libraries/Gradle__com_facebook_yoga_proguard_annotations_1_14_1.xml +13 -0
  72. package/android/.idea/libraries/Gradle__com_google_ads_interactivemedia_v3_interactivemedia_3_25_1.xml +9 -0
  73. package/android/.idea/libraries/Gradle__com_google_android_gms_play_services_ads_identifier_17_1_0_aar.xml +13 -0
  74. package/android/.idea/libraries/Gradle__com_google_android_gms_play_services_appset_16_0_0_aar.xml +13 -0
  75. package/android/.idea/libraries/Gradle__com_google_android_gms_play_services_base_17_6_0_aar.xml +13 -0
  76. package/android/.idea/libraries/Gradle__com_google_android_gms_play_services_basement_17_6_0_aar.xml +13 -0
  77. package/android/.idea/libraries/Gradle__com_google_android_gms_play_services_tasks_17_2_1_aar.xml +13 -0
  78. package/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2.xml +13 -0
  79. package/android/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_2.xml +13 -0
  80. package/android/.idea/libraries/Gradle__com_google_guava_listenablefuture_1_0.xml +13 -0
  81. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_12.xml +13 -0
  82. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_3_12_12.xml +13 -0
  83. package/android/.idea/libraries/Gradle__com_squareup_okio_okio_1_17_5.xml +13 -0
  84. package/android/.idea/libraries/Gradle__com_theoplayer_theoplayer_sdk_android_unified_3_6_1_aar.xml +12 -0
  85. package/android/.idea/libraries/Gradle__com_theoplayer_theoplayer_sdk_android_unified_ads_3_6_1_aar.xml +11 -0
  86. package/android/.idea/libraries/Gradle__com_theoplayer_theoplayer_sdk_android_unified_ads_ima_3_6_1_aar.xml +11 -0
  87. package/android/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml +13 -0
  88. package/android/.idea/misc.xml +9 -0
  89. package/android/.idea/modules/android.androidTest.iml +105 -0
  90. package/android/.idea/modules/android.iml +40 -0
  91. package/android/.idea/modules/android.main.iml +113 -0
  92. package/android/.idea/modules/android.unitTest.iml +100 -0
  93. package/android/.idea/modules.xml +11 -0
  94. package/android/.idea/vcs.xml +6 -0
  95. package/android/build.gradle +89 -0
  96. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  97. package/android/gradle/wrapper/gradle-wrapper.properties +5 -0
  98. package/android/gradlew +185 -0
  99. package/android/gradlew.bat +89 -0
  100. package/android/local.properties +8 -0
  101. package/android/src/main/AndroidManifest.xml +6 -0
  102. package/android/src/main/java/com/theoplayer/PlayerConfigHelper.java +30 -0
  103. package/android/src/main/java/com/theoplayer/ReactTHEOplayerPackage.java +27 -0
  104. package/android/src/main/java/com/theoplayer/ReactTHEOplayerView.java +420 -0
  105. package/android/src/main/java/com/theoplayer/ReactTHEOplayerViewManager.java +114 -0
  106. package/android/src/main/java/com/theoplayer/SourceHelper.java +224 -0
  107. package/android/src/main/java/com/theoplayer/TimeUpdateRate.java +8 -0
  108. package/android/src/main/java/com/theoplayer/VideoEventEmitter.java +410 -0
  109. package/android/src/main/java/com/theoplayer/track/TextTrackCueEventType.java +11 -0
  110. package/android/src/main/java/com/theoplayer/track/TrackEventType.java +11 -0
  111. package/android/src/main/java/com/theoplayer/track/TrackListInfo.java +204 -0
  112. package/ios/THEOplayerRCTBridge.m +46 -0
  113. package/ios/THEOplayerRCTDebug.swift +16 -0
  114. package/ios/THEOplayerRCTMetadataAggregator.swift +169 -0
  115. package/ios/THEOplayerRCTView.swift +423 -0
  116. package/ios/THEOplayerRCTViewEventHandler.swift +493 -0
  117. package/ios/THEOplayerRCTViewManager.swift +23 -0
  118. package/ios/Theoplayer-Bridging-Header.h +5 -0
  119. package/ios/Theoplayer.xcodeproj/project.pbxproj +296 -0
  120. package/lib/commonjs/api/THEOplayerView.js +6 -0
  121. package/lib/commonjs/api/THEOplayerView.js.map +1 -0
  122. package/lib/commonjs/api/barrel.js +97 -0
  123. package/lib/commonjs/api/barrel.js.map +1 -0
  124. package/lib/commonjs/api/config/PlayerConfiguration.js +2 -0
  125. package/lib/commonjs/api/config/PlayerConfiguration.js.map +1 -0
  126. package/lib/commonjs/api/config/barrel.js +19 -0
  127. package/lib/commonjs/api/config/barrel.js.map +1 -0
  128. package/lib/commonjs/api/error/PlayerError.js +2 -0
  129. package/lib/commonjs/api/error/PlayerError.js.map +1 -0
  130. package/lib/commonjs/api/error/barrel.js +19 -0
  131. package/lib/commonjs/api/error/barrel.js.map +1 -0
  132. package/lib/commonjs/api/event/PlayerEvent.js +6 -0
  133. package/lib/commonjs/api/event/PlayerEvent.js.map +1 -0
  134. package/lib/commonjs/api/event/TrackEvent.js +22 -0
  135. package/lib/commonjs/api/event/TrackEvent.js.map +1 -0
  136. package/lib/commonjs/api/event/barrel.js +32 -0
  137. package/lib/commonjs/api/event/barrel.js.map +1 -0
  138. package/lib/commonjs/api/source/SourceDescription.js +6 -0
  139. package/lib/commonjs/api/source/SourceDescription.js.map +1 -0
  140. package/lib/commonjs/api/source/ads/Ads.js +2 -0
  141. package/lib/commonjs/api/source/ads/Ads.js.map +1 -0
  142. package/lib/commonjs/api/source/barrel.js +58 -0
  143. package/lib/commonjs/api/source/barrel.js.map +1 -0
  144. package/lib/commonjs/api/source/dash/DashPlaybackConfiguration.js +2 -0
  145. package/lib/commonjs/api/source/dash/DashPlaybackConfiguration.js.map +1 -0
  146. package/lib/commonjs/api/source/dash/barrel.js +19 -0
  147. package/lib/commonjs/api/source/dash/barrel.js.map +1 -0
  148. package/lib/commonjs/api/source/drm/DRMConfiguration.js +2 -0
  149. package/lib/commonjs/api/source/drm/DRMConfiguration.js.map +1 -0
  150. package/lib/commonjs/api/source/drm/barrel.js +19 -0
  151. package/lib/commonjs/api/source/drm/barrel.js.map +1 -0
  152. package/lib/commonjs/api/source/hls/HlsPlaybackConfiguration.js +2 -0
  153. package/lib/commonjs/api/source/hls/HlsPlaybackConfiguration.js.map +1 -0
  154. package/lib/commonjs/api/source/hls/barrel.js +19 -0
  155. package/lib/commonjs/api/source/hls/barrel.js.map +1 -0
  156. package/lib/commonjs/api/timeranges/TimeRange.js +2 -0
  157. package/lib/commonjs/api/timeranges/TimeRange.js.map +1 -0
  158. package/lib/commonjs/api/timeranges/barrel.js +19 -0
  159. package/lib/commonjs/api/timeranges/barrel.js.map +1 -0
  160. package/lib/commonjs/api/track/MediaTrack.js +6 -0
  161. package/lib/commonjs/api/track/MediaTrack.js.map +1 -0
  162. package/lib/commonjs/api/track/Quality.js +2 -0
  163. package/lib/commonjs/api/track/Quality.js.map +1 -0
  164. package/lib/commonjs/api/track/TextTrack.js +72 -0
  165. package/lib/commonjs/api/track/TextTrack.js.map +1 -0
  166. package/lib/commonjs/api/track/TextTrackCue.js +2 -0
  167. package/lib/commonjs/api/track/TextTrackCue.js.map +1 -0
  168. package/lib/commonjs/api/track/Track.js +2 -0
  169. package/lib/commonjs/api/track/Track.js.map +1 -0
  170. package/lib/commonjs/api/track/barrel.js +71 -0
  171. package/lib/commonjs/api/track/barrel.js.map +1 -0
  172. package/lib/commonjs/index.js +31 -0
  173. package/lib/commonjs/index.js.map +1 -0
  174. package/lib/commonjs/internal/THEOplayerView.js +274 -0
  175. package/lib/commonjs/internal/THEOplayerView.js.map +1 -0
  176. package/lib/commonjs/internal/THEOplayerView.style.js +22 -0
  177. package/lib/commonjs/internal/THEOplayerView.style.js.map +1 -0
  178. package/lib/commonjs/internal/THEOplayerView.web.js +512 -0
  179. package/lib/commonjs/internal/THEOplayerView.web.js.map +1 -0
  180. package/lib/commonjs/internal/web/TrackUtils.js +68 -0
  181. package/lib/commonjs/internal/web/TrackUtils.js.map +1 -0
  182. package/lib/module/api/THEOplayerView.js +2 -0
  183. package/lib/module/api/THEOplayerView.js.map +1 -0
  184. package/lib/module/api/barrel.js +8 -0
  185. package/lib/module/api/barrel.js.map +1 -0
  186. package/lib/module/api/config/PlayerConfiguration.js +2 -0
  187. package/lib/module/api/config/PlayerConfiguration.js.map +1 -0
  188. package/lib/module/api/config/barrel.js +2 -0
  189. package/lib/module/api/config/barrel.js.map +1 -0
  190. package/lib/module/api/error/PlayerError.js +2 -0
  191. package/lib/module/api/error/PlayerError.js.map +1 -0
  192. package/lib/module/api/error/barrel.js +2 -0
  193. package/lib/module/api/error/barrel.js.map +1 -0
  194. package/lib/module/api/event/PlayerEvent.js +2 -0
  195. package/lib/module/api/event/PlayerEvent.js.map +1 -0
  196. package/lib/module/api/event/TrackEvent.js +14 -0
  197. package/lib/module/api/event/TrackEvent.js.map +1 -0
  198. package/lib/module/api/event/barrel.js +3 -0
  199. package/lib/module/api/event/barrel.js.map +1 -0
  200. package/lib/module/api/source/SourceDescription.js +2 -0
  201. package/lib/module/api/source/SourceDescription.js.map +1 -0
  202. package/lib/module/api/source/ads/Ads.js +2 -0
  203. package/lib/module/api/source/ads/Ads.js.map +1 -0
  204. package/lib/module/api/source/barrel.js +5 -0
  205. package/lib/module/api/source/barrel.js.map +1 -0
  206. package/lib/module/api/source/dash/DashPlaybackConfiguration.js +2 -0
  207. package/lib/module/api/source/dash/DashPlaybackConfiguration.js.map +1 -0
  208. package/lib/module/api/source/dash/barrel.js +2 -0
  209. package/lib/module/api/source/dash/barrel.js.map +1 -0
  210. package/lib/module/api/source/drm/DRMConfiguration.js +2 -0
  211. package/lib/module/api/source/drm/DRMConfiguration.js.map +1 -0
  212. package/lib/module/api/source/drm/barrel.js +2 -0
  213. package/lib/module/api/source/drm/barrel.js.map +1 -0
  214. package/lib/module/api/source/hls/HlsPlaybackConfiguration.js +2 -0
  215. package/lib/module/api/source/hls/HlsPlaybackConfiguration.js.map +1 -0
  216. package/lib/module/api/source/hls/barrel.js +2 -0
  217. package/lib/module/api/source/hls/barrel.js.map +1 -0
  218. package/lib/module/api/timeranges/TimeRange.js +2 -0
  219. package/lib/module/api/timeranges/TimeRange.js.map +1 -0
  220. package/lib/module/api/timeranges/barrel.js +2 -0
  221. package/lib/module/api/timeranges/barrel.js.map +1 -0
  222. package/lib/module/api/track/MediaTrack.js +2 -0
  223. package/lib/module/api/track/MediaTrack.js.map +1 -0
  224. package/lib/module/api/track/Quality.js +2 -0
  225. package/lib/module/api/track/Quality.js.map +1 -0
  226. package/lib/module/api/track/TextTrack.js +47 -0
  227. package/lib/module/api/track/TextTrack.js.map +1 -0
  228. package/lib/module/api/track/TextTrackCue.js +2 -0
  229. package/lib/module/api/track/TextTrackCue.js.map +1 -0
  230. package/lib/module/api/track/Track.js +2 -0
  231. package/lib/module/api/track/Track.js.map +1 -0
  232. package/lib/module/api/track/barrel.js +6 -0
  233. package/lib/module/api/track/barrel.js.map +1 -0
  234. package/lib/module/index.js +3 -0
  235. package/lib/module/index.js.map +1 -0
  236. package/lib/module/internal/THEOplayerView.js +256 -0
  237. package/lib/module/internal/THEOplayerView.js.map +1 -0
  238. package/lib/module/internal/THEOplayerView.style.js +12 -0
  239. package/lib/module/internal/THEOplayerView.style.js.map +1 -0
  240. package/lib/module/internal/THEOplayerView.web.js +495 -0
  241. package/lib/module/internal/THEOplayerView.web.js.map +1 -0
  242. package/lib/module/internal/web/TrackUtils.js +57 -0
  243. package/lib/module/internal/web/TrackUtils.js.map +1 -0
  244. package/lib/typescript/babel.config.d.ts +1 -0
  245. package/lib/typescript/lib/commonjs/api/THEOplayerView.d.ts +1 -0
  246. package/lib/typescript/lib/commonjs/api/barrel.d.ts +1 -0
  247. package/lib/typescript/lib/commonjs/api/config/PlayerConfiguration.d.ts +0 -0
  248. package/lib/typescript/lib/commonjs/api/config/barrel.d.ts +1 -0
  249. package/lib/typescript/lib/commonjs/api/error/PlayerError.d.ts +0 -0
  250. package/lib/typescript/lib/commonjs/api/error/barrel.d.ts +1 -0
  251. package/lib/typescript/lib/commonjs/api/event/PlayerEvent.d.ts +1 -0
  252. package/lib/typescript/lib/commonjs/api/event/TrackEvent.d.ts +5 -0
  253. package/lib/typescript/lib/commonjs/api/event/barrel.d.ts +1 -0
  254. package/lib/typescript/lib/commonjs/api/source/SourceDescription.d.ts +1 -0
  255. package/lib/typescript/lib/commonjs/api/source/ads/Ads.d.ts +0 -0
  256. package/lib/typescript/lib/commonjs/api/source/barrel.d.ts +1 -0
  257. package/lib/typescript/lib/commonjs/api/source/dash/DashPlaybackConfiguration.d.ts +0 -0
  258. package/lib/typescript/lib/commonjs/api/source/dash/barrel.d.ts +1 -0
  259. package/lib/typescript/lib/commonjs/api/source/drm/DRMConfiguration.d.ts +0 -0
  260. package/lib/typescript/lib/commonjs/api/source/drm/barrel.d.ts +1 -0
  261. package/lib/typescript/lib/commonjs/api/source/hls/HlsPlaybackConfiguration.d.ts +0 -0
  262. package/lib/typescript/lib/commonjs/api/source/hls/barrel.d.ts +1 -0
  263. package/lib/typescript/lib/commonjs/api/timeranges/TimeRange.d.ts +0 -0
  264. package/lib/typescript/lib/commonjs/api/timeranges/barrel.d.ts +1 -0
  265. package/lib/typescript/lib/commonjs/api/track/MediaTrack.d.ts +1 -0
  266. package/lib/typescript/lib/commonjs/api/track/Quality.d.ts +0 -0
  267. package/lib/typescript/lib/commonjs/api/track/TextTrack.d.ts +21 -0
  268. package/lib/typescript/lib/commonjs/api/track/TextTrackCue.d.ts +0 -0
  269. package/lib/typescript/lib/commonjs/api/track/Track.d.ts +0 -0
  270. package/lib/typescript/lib/commonjs/api/track/barrel.d.ts +1 -0
  271. package/lib/typescript/lib/commonjs/index.d.ts +3 -0
  272. package/lib/typescript/lib/commonjs/internal/THEOplayerView.d.ts +14 -0
  273. package/lib/typescript/lib/commonjs/internal/THEOplayerView.style.d.ts +12 -0
  274. package/lib/typescript/lib/commonjs/internal/THEOplayerView.web.d.ts +17 -0
  275. package/lib/typescript/lib/commonjs/internal/web/TrackUtils.d.ts +30 -0
  276. package/lib/typescript/lib/module/api/THEOplayerView.d.ts +1 -0
  277. package/lib/typescript/lib/module/api/barrel.d.ts +7 -0
  278. package/lib/typescript/lib/module/api/config/PlayerConfiguration.d.ts +0 -0
  279. package/lib/typescript/lib/module/api/config/barrel.d.ts +1 -0
  280. package/lib/typescript/lib/module/api/error/PlayerError.d.ts +0 -0
  281. package/lib/typescript/lib/module/api/error/barrel.d.ts +1 -0
  282. package/lib/typescript/lib/module/api/event/PlayerEvent.d.ts +1 -0
  283. package/lib/typescript/lib/module/api/event/TrackEvent.d.ts +2 -0
  284. package/lib/typescript/lib/module/api/event/barrel.d.ts +2 -0
  285. package/lib/typescript/lib/module/api/source/SourceDescription.d.ts +1 -0
  286. package/lib/typescript/lib/module/api/source/ads/Ads.d.ts +0 -0
  287. package/lib/typescript/lib/module/api/source/barrel.d.ts +4 -0
  288. package/lib/typescript/lib/module/api/source/dash/DashPlaybackConfiguration.d.ts +0 -0
  289. package/lib/typescript/lib/module/api/source/dash/barrel.d.ts +1 -0
  290. package/lib/typescript/lib/module/api/source/drm/DRMConfiguration.d.ts +0 -0
  291. package/lib/typescript/lib/module/api/source/drm/barrel.d.ts +1 -0
  292. package/lib/typescript/lib/module/api/source/hls/HlsPlaybackConfiguration.d.ts +0 -0
  293. package/lib/typescript/lib/module/api/source/hls/barrel.d.ts +1 -0
  294. package/lib/typescript/lib/module/api/timeranges/TimeRange.d.ts +0 -0
  295. package/lib/typescript/lib/module/api/timeranges/barrel.d.ts +1 -0
  296. package/lib/typescript/lib/module/api/track/MediaTrack.d.ts +1 -0
  297. package/lib/typescript/lib/module/api/track/Quality.d.ts +0 -0
  298. package/lib/typescript/lib/module/api/track/TextTrack.d.ts +20 -0
  299. package/lib/typescript/lib/module/api/track/TextTrackCue.d.ts +0 -0
  300. package/lib/typescript/lib/module/api/track/Track.d.ts +0 -0
  301. package/lib/typescript/lib/module/api/track/barrel.d.ts +2 -0
  302. package/lib/typescript/lib/module/index.d.ts +2 -0
  303. package/lib/typescript/lib/module/internal/THEOplayerView.d.ts +9 -0
  304. package/lib/typescript/lib/module/internal/THEOplayerView.style.d.ts +11 -0
  305. package/lib/typescript/lib/module/internal/THEOplayerView.web.d.ts +10 -0
  306. package/lib/typescript/lib/module/internal/web/TrackUtils.d.ts +29 -0
  307. package/lib/typescript/src/api/THEOplayerView.d.ts +178 -0
  308. package/lib/typescript/src/api/barrel.d.ts +7 -0
  309. package/lib/typescript/src/api/config/PlayerConfiguration.d.ts +14 -0
  310. package/lib/typescript/src/api/config/barrel.d.ts +1 -0
  311. package/lib/typescript/src/api/error/PlayerError.d.ts +4 -0
  312. package/lib/typescript/src/api/error/barrel.d.ts +1 -0
  313. package/lib/typescript/src/api/event/PlayerEvent.d.ts +56 -0
  314. package/lib/typescript/src/api/event/TrackEvent.d.ts +46 -0
  315. package/lib/typescript/src/api/event/barrel.d.ts +2 -0
  316. package/lib/typescript/src/api/source/SourceDescription.d.ts +268 -0
  317. package/lib/typescript/src/api/source/ads/Ads.d.ts +94 -0
  318. package/lib/typescript/src/api/source/barrel.d.ts +4 -0
  319. package/lib/typescript/src/api/source/dash/DashPlaybackConfiguration.d.ts +44 -0
  320. package/lib/typescript/src/api/source/dash/barrel.d.ts +1 -0
  321. package/lib/typescript/src/api/source/drm/DRMConfiguration.d.ts +262 -0
  322. package/lib/typescript/src/api/source/drm/barrel.d.ts +1 -0
  323. package/lib/typescript/src/api/source/hls/HlsPlaybackConfiguration.d.ts +37 -0
  324. package/lib/typescript/src/api/source/hls/barrel.d.ts +1 -0
  325. package/lib/typescript/src/api/timeranges/TimeRange.d.ts +4 -0
  326. package/lib/typescript/src/api/timeranges/barrel.d.ts +1 -0
  327. package/lib/typescript/src/api/track/MediaTrack.d.ts +55 -0
  328. package/lib/typescript/src/api/track/Quality.d.ts +79 -0
  329. package/lib/typescript/src/api/track/TextTrack.d.ts +86 -0
  330. package/lib/typescript/src/api/track/TextTrackCue.d.ts +38 -0
  331. package/lib/typescript/src/api/track/Track.d.ts +43 -0
  332. package/lib/typescript/src/api/track/barrel.d.ts +5 -0
  333. package/lib/typescript/src/index.d.ts +2 -0
  334. package/lib/typescript/src/internal/THEOplayerView.d.ts +71 -0
  335. package/lib/typescript/src/internal/THEOplayerView.style.d.ts +11 -0
  336. package/lib/typescript/src/internal/THEOplayerView.web.d.ts +22 -0
  337. package/lib/typescript/src/internal/web/TrackUtils.d.ts +5 -0
  338. package/package.json +115 -9
  339. package/react-native-theoplayer.podspec +20 -0
  340. package/src/api/THEOplayerView.ts +221 -0
  341. package/src/api/barrel.ts +7 -0
  342. package/src/api/config/PlayerConfiguration.ts +16 -0
  343. package/src/api/config/barrel.ts +1 -0
  344. package/src/api/error/PlayerError.ts +4 -0
  345. package/src/api/error/barrel.ts +1 -0
  346. package/src/api/event/PlayerEvent.ts +66 -0
  347. package/src/api/event/TrackEvent.ts +55 -0
  348. package/src/api/event/barrel.ts +2 -0
  349. package/src/api/source/SourceDescription.ts +292 -0
  350. package/src/api/source/ads/Ads.ts +101 -0
  351. package/src/api/source/barrel.ts +4 -0
  352. package/src/api/source/dash/DashPlaybackConfiguration.ts +45 -0
  353. package/src/api/source/dash/barrel.ts +1 -0
  354. package/src/api/source/drm/DRMConfiguration.ts +287 -0
  355. package/src/api/source/drm/barrel.ts +1 -0
  356. package/src/api/source/hls/HlsPlaybackConfiguration.ts +38 -0
  357. package/src/api/source/hls/barrel.ts +1 -0
  358. package/src/api/timeranges/TimeRange.ts +5 -0
  359. package/src/api/timeranges/barrel.ts +1 -0
  360. package/src/api/track/MediaTrack.ts +65 -0
  361. package/src/api/track/Quality.ts +91 -0
  362. package/src/api/track/TextTrack.ts +133 -0
  363. package/src/api/track/TextTrackCue.ts +42 -0
  364. package/src/api/track/Track.ts +47 -0
  365. package/src/api/track/barrel.ts +5 -0
  366. package/src/index.tsx +2 -0
  367. package/src/internal/THEOplayerView.style.ts +12 -0
  368. package/src/internal/THEOplayerView.tsx +301 -0
  369. package/src/internal/THEOplayerView.web.tsx +399 -0
  370. package/src/internal/web/TrackUtils.ts +44 -0
  371. package/.gitattributes +0 -1
  372. package/index.js +0 -5
  373. package/ios/IOSNativeToast.h +0 -18
  374. package/ios/IOSNativeToast.m +0 -49
  375. package/ios/RNTheoplayer.h +0 -11
  376. package/ios/RNTheoplayer.m +0 -15
  377. package/ios/RNTheoplayer.podspec +0 -23
  378. package/ios/RNTheoplayer.xcodeproj/project.pbxproj +0 -417
  379. package/ios/RNTheoplayer.xcworkspace/contents.xcworkspacedata +0 -9
@@ -0,0 +1,133 @@
1
+ import type { Track } from './Track';
2
+ import type { TextTrackCue } from './TextTrackCue';
3
+
4
+ export type TextTrackType = 'srt' | 'ttml' | 'webvtt' | 'cea608' | '';
5
+
6
+ export type TextTrackKind = 'subtitles' | 'captions' | 'descriptions' | 'chapters' | 'metadata' | 'thumbnails';
7
+
8
+ export type TextTrackMode = 'disabled' | 'showing';
9
+
10
+ export interface TextTrack extends Track {
11
+ /**
12
+ * The kind of the text track, represented by a value from the following list:
13
+ * <br/> - `'subtitles'`: The track contains subtitles.
14
+ * <br/> - `'captions'`: The track contains closed captions, a translation of dialogue and sound effects.
15
+ * <br/> - `'descriptions'`: The track contains descriptions, a textual description of the video.
16
+ * <br/> - `'chapters'`: The track contains chapter titles.
17
+ * <br/> - `'metadata'`: The track contains metadata. This track will not serve display purposes.
18
+ */
19
+ readonly kind: TextTrackKind;
20
+
21
+ /**
22
+ * The label of the text track.
23
+ */
24
+ label: string;
25
+
26
+ /**
27
+ * The language of the text track.
28
+ */
29
+ readonly language: string;
30
+
31
+ /**
32
+ * The identifier of the text track.
33
+ *
34
+ * @remarks
35
+ * <br/> - This identifier can be used to distinguish between related tracks, e.g. tracks in the same list.
36
+ */
37
+ readonly id: string;
38
+
39
+ /**
40
+ * A unique identifier of the text track.
41
+ *
42
+ * @remarks
43
+ * <br/> - This identifier is unique across tracks of a THEOplayer instance and can be used to distinguish between tracks.
44
+ */
45
+ readonly uid: number;
46
+
47
+ /**
48
+ * The mode of the text track, represented by a value from the following list:
49
+ * <br/> - `'disabled'`: The track is disabled.
50
+ * <br/> - `'showing'`: The track is showing.
51
+ */
52
+ mode: TextTrackMode;
53
+
54
+ /**
55
+ * The content type of the text track.
56
+ */
57
+ readonly type: TextTrackType;
58
+
59
+ /**
60
+ * The list of cues of the track.
61
+ *
62
+ * @remarks
63
+ * <br/> - If the {@link TextTrack.mode} is `'disabled'`, this property is `null`.
64
+ */
65
+ cues: TextTrackCue[] | null;
66
+
67
+ /**
68
+ * The source of the text track.
69
+ */
70
+ readonly src: string;
71
+
72
+ /**
73
+ * Indicates whether the track contains Forced Narrative cues.
74
+ * This may only be true for subtitle tracks where
75
+ * <br/> - For DASH: the corresponding AdaptationSet contains a child Role with its value attribute equal to `'forced_subtitle'`
76
+ * <br/> - For HLS: the corresponding #EXT-X-MEDIA tag contains the attributes TYPE=SUBTITLES and FORCED=YES (not supported yet)
77
+ */
78
+ readonly forced: boolean;
79
+ }
80
+
81
+ /**
82
+ * Retain renderable tracks.
83
+ * https://html.spec.whatwg.org/multipage/embedded-content.html#text-track-showing
84
+ */
85
+ export function filterRenderableTracks(textTracks: TextTrack[] | undefined): TextTrack[] | undefined {
86
+ return textTracks && textTracks.filter((textTrack) => textTrack.kind === 'subtitles' || textTrack.kind === 'captions');
87
+ }
88
+
89
+ /**
90
+ * Retain first thumbnail track encountered in the textTracks list.
91
+ */
92
+ export function filterThumbnailTracks(textTracks: TextTrack[] | undefined): TextTrack | undefined {
93
+ return textTracks && textTracks.find(isThumbnailTrack);
94
+ }
95
+
96
+ /**
97
+ * Query whether a track is a valid thumbnail track.
98
+ */
99
+ export function isThumbnailTrack(textTrack: TextTrack | undefined): boolean {
100
+ return !!textTrack && (textTrack.kind === 'thumbnails' || (textTrack.kind === 'metadata' && textTrack.label === 'thumbnails'));
101
+ }
102
+
103
+ export function hasTextTrack(textTrackList: TextTrack[], textTrack: TextTrack): boolean {
104
+ return !!(textTrackList && textTrack && textTrackList.find((t) => t.uid === textTrack.uid));
105
+ }
106
+
107
+ export function removeTextTrack(textTrackList: TextTrack[], textTrack: TextTrack): TextTrack[] {
108
+ return textTrackList && textTrack ? textTrackList.filter((t) => t.uid !== textTrack.uid) : textTrackList;
109
+ }
110
+
111
+ export function addTextTrack(textTrackList: TextTrack[], textTrack: TextTrack): TextTrack[] {
112
+ return textTrackList && textTrack && !hasTextTrack(textTrackList, textTrack) ? [...textTrackList, textTrack] : textTrackList;
113
+ }
114
+
115
+ export function hasTextTrackCue(textTrack: TextTrack, cue: TextTrackCue): boolean {
116
+ return !!(textTrack.cues && cue && textTrack.cues.find((c) => cue.uid === c.uid));
117
+ }
118
+
119
+ export function removeTextTrackCue(textTrack: TextTrack, cue: TextTrackCue) {
120
+ if (textTrack && textTrack.cues && cue && !hasTextTrackCue(textTrack, cue)) {
121
+ textTrack.cues = textTrack.cues.filter((c) => c.uid !== cue.uid);
122
+ }
123
+ }
124
+
125
+ export function addTextTrackCue(textTrack: TextTrack, cue: TextTrackCue) {
126
+ if (textTrack && textTrack.cues && cue && !hasTextTrackCue(textTrack, cue)) {
127
+ textTrack.cues.push(cue);
128
+ }
129
+ }
130
+
131
+ export function findTextTrackByUid(textTracks: TextTrack[], uid: number): TextTrack | undefined {
132
+ return textTracks.find((t) => t.uid === uid);
133
+ }
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Represents a cue of a text track.
3
+ *
4
+ * @public
5
+ */
6
+ export interface TextTrackCue {
7
+ /**
8
+ * The identifier of the cue.
9
+ */
10
+ id: string;
11
+
12
+ /**
13
+ * A unique identifier of the text track cue.
14
+ *
15
+ * @remarks
16
+ * <br/> - This identifier is unique across text track cues of a THEOplayer instance and can be used to distinguish between cues.
17
+ * <br/> - This identifier is a randomly generated number.
18
+ */
19
+ readonly uid: number;
20
+
21
+ /**
22
+ * The playback position at which the cue becomes active, in milliseconds.
23
+ */
24
+ startTime: number;
25
+
26
+ /**
27
+ * The playback position at which the cue becomes inactive, in milliseconds.
28
+ */
29
+ endTime: number;
30
+
31
+ /**
32
+ * The content of the cue.
33
+ *
34
+ * @remarks
35
+ * The content differs depending on the {@link TextTrackCue.track}'s {@link TextTrack."type" | type }:
36
+ * <br/> - `'emsg'`: Content is a Uint8Array representing the binary message data from the `emsg` box.
37
+ * <br/> - `'eventstream'`: Content is the value of the `messageData` attribute which was specified in the manifest.
38
+ * <br/> - `'ttml'`: Content is an intermediate TTML document’s body element. This is a view of a TTML document where all nodes in the document are active during the cue’s startTime and endTime. As a result, all begin, dur and end properties have been removed. TTML Styles, Regions and Metadata are stored in cue.styles, cue.regions, cue.metadata respectively. Combining those properties with the given content should suffice to render a TTML cue.
39
+ * <br/> - `'webvtt'`: Content is the cue text in raw unparsed form.
40
+ */
41
+ content: any;
42
+ }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Represents a track of a media resource.
3
+ *
4
+ * @remarks
5
+ * <br/> - A specific track type (e.g. {@link TextTrack}) will always be used.
6
+ *
7
+ * @public
8
+ */
9
+ export interface Track {
10
+ /**
11
+ * The kind of the track.
12
+ *
13
+ * @remarks
14
+ * <br/> - The values for this property depend on the specific type of the track.
15
+ */
16
+ readonly kind: string;
17
+
18
+ /**
19
+ * The label of the track.
20
+ */
21
+ label: string;
22
+
23
+ /**
24
+ * The identifier of the track.
25
+ *
26
+ * @remarks
27
+ * <br/> - This identifier can be used to distinguish between related tracks, e.g. tracks in the same list.
28
+ *
29
+ * @privateRemarks
30
+ * <br/> - This identifier is a randomly generated string.
31
+ */
32
+ readonly id: string;
33
+
34
+ /**
35
+ * A unique identifier of the track.
36
+ *
37
+ * @remarks
38
+ * <br/> - This identifier is unique across tracks of a THEOplayer instance and can be used to distinguish between tracks.
39
+ * <br/> - This identifier is a randomly generated number.
40
+ */
41
+ readonly uid: number;
42
+
43
+ /**
44
+ * The language of the track.
45
+ */
46
+ readonly language: string;
47
+ }
@@ -0,0 +1,5 @@
1
+ export * from './MediaTrack';
2
+ export * from './Quality';
3
+ export * from './TextTrack';
4
+ export * from './TextTrackCue';
5
+ export * from './Track';
package/src/index.tsx ADDED
@@ -0,0 +1,2 @@
1
+ export * from './api/barrel';
2
+ export { THEOplayerView } from './internal/THEOplayerView';
@@ -0,0 +1,12 @@
1
+ import { StyleSheet } from 'react-native';
2
+
3
+ export default StyleSheet.create({
4
+ base: {
5
+ overflow: 'hidden',
6
+ position: 'absolute',
7
+ top: 0,
8
+ left: 0,
9
+ bottom: 0,
10
+ right: 0,
11
+ },
12
+ });
@@ -0,0 +1,301 @@
1
+ import React, { PureComponent } from 'react';
2
+ import { StyleSheet, requireNativeComponent, View, UIManager, Platform, NativeSyntheticEvent } from 'react-native';
3
+ import type {
4
+ DurationChangeEvent,
5
+ ErrorEvent,
6
+ LoadedMetadataEvent,
7
+ ReadyStateChangeEvent,
8
+ THEOplayerViewComponent,
9
+ THEOplayerViewProps,
10
+ TimeUpdateEvent,
11
+ ProgressEvent,
12
+ PlayerError,
13
+ SegmentNotFoundEvent,
14
+ TextTrackListEvent,
15
+ TextTrackEvent,
16
+ } from 'react-native-theoplayer';
17
+
18
+ import styles from './THEOplayerView.style';
19
+ import type { SourceDescription } from 'react-native-theoplayer';
20
+
21
+ interface THEOplayerRCTViewProps extends THEOplayerViewProps {
22
+ ref: React.RefObject<THEOplayerViewNativeComponent>;
23
+ src: SourceDescription;
24
+ seek?: number;
25
+
26
+ onNativeSourceChange: () => void;
27
+ onNativeLoadStart: () => void;
28
+ onNativeLoadedData: () => void;
29
+ onNativeLoadedMetadata: (event: NativeSyntheticEvent<LoadedMetadataEvent>) => void;
30
+ onNativeReadyStateChange?: (event: NativeSyntheticEvent<ReadyStateChangeEvent>) => void;
31
+ onNativeError: (event: NativeSyntheticEvent<ErrorEvent>) => void;
32
+ onNativeProgress: (event: NativeSyntheticEvent<ProgressEvent>) => void;
33
+ onNativePlay: () => void;
34
+ onNativePlaying: () => void;
35
+ onNativePause: () => void;
36
+ onNativeSeeking: () => void;
37
+ onNativeSeeked: () => void;
38
+ onNativeEnded: () => void;
39
+ onNativeTimeUpdate: (event: NativeSyntheticEvent<TimeUpdateEvent>) => void;
40
+ onNativeDurationChange: (event: NativeSyntheticEvent<DurationChangeEvent>) => void;
41
+ onNativeSegmentNotFound: (event: NativeSyntheticEvent<SegmentNotFoundEvent>) => void;
42
+ onNativeTextTrackListEvent: (event: NativeSyntheticEvent<TextTrackListEvent>) => void;
43
+ onNativeTextTrackEvent: (event: NativeSyntheticEvent<TextTrackEvent>) => void;
44
+ onNativeFullscreenPlayerWillPresent?: () => void;
45
+ onNativeFullscreenPlayerDidPresent?: () => void;
46
+ onNativeFullscreenPlayerWillDismiss?: () => void;
47
+ onNativeFullscreenPlayerDidDismiss?: () => void;
48
+ }
49
+
50
+ interface THEOplayerRCTViewState {
51
+ isBuffering: boolean;
52
+ error?: PlayerError;
53
+ }
54
+
55
+ interface THEOplayerViewNativeComponent extends THEOplayerViewComponent {
56
+ setNativeProps: (props: Partial<THEOplayerRCTViewProps>) => void;
57
+ }
58
+
59
+ export class THEOplayerView extends PureComponent<THEOplayerViewProps, THEOplayerRCTViewState> {
60
+ private readonly _root: React.RefObject<THEOplayerViewNativeComponent>;
61
+
62
+ private static initialState: THEOplayerRCTViewState = {
63
+ isBuffering: false,
64
+ error: undefined,
65
+ };
66
+
67
+ constructor(props: THEOplayerRCTViewProps) {
68
+ super(props);
69
+ this._root = React.createRef();
70
+ this.state = THEOplayerView.initialState;
71
+ }
72
+
73
+ public seek(time: number): void {
74
+ if (isNaN(time)) {
75
+ throw new Error('Specified time is not a number');
76
+ }
77
+ this.setNativeProps({ seek: time });
78
+ }
79
+
80
+ private reset() {
81
+ this.setState(THEOplayerView.initialState);
82
+ }
83
+
84
+ private setNativeProps(nativeProps: Partial<THEOplayerRCTViewProps>) {
85
+ if (this._root?.current) {
86
+ this._root.current.setNativeProps(nativeProps);
87
+ }
88
+ }
89
+
90
+ private maybeChangeBufferingState(isBuffering: boolean) {
91
+ const { isBuffering: wasBuffering, error } = this.state;
92
+ const { paused } = this.props;
93
+
94
+ // do not change state to buffering in case of an error or if the player is paused
95
+ const newIsBuffering = isBuffering && !error && !paused;
96
+ this.setState({ isBuffering: newIsBuffering });
97
+
98
+ // notify change in buffering state
99
+ if (newIsBuffering !== wasBuffering && this.props.onBufferingStateChange) {
100
+ this.props.onBufferingStateChange(isBuffering);
101
+ }
102
+ }
103
+
104
+ private _onSourceChange = () => {
105
+ this.reset();
106
+
107
+ if (this.props.onSourceChange) {
108
+ this.props.onSourceChange();
109
+ }
110
+ };
111
+
112
+ private _onLoadStart = () => {
113
+ // potentially notify change in buffering state
114
+ this.maybeChangeBufferingState(true);
115
+
116
+ if (this.props.onLoadStart) {
117
+ this.props.onLoadStart();
118
+ }
119
+ };
120
+
121
+ private _onLoadedData = () => {
122
+ if (this.props.onLoadedData) {
123
+ this.props.onLoadedData();
124
+ }
125
+ };
126
+
127
+ private _onLoadedMetadata = (event: NativeSyntheticEvent<LoadedMetadataEvent>) => {
128
+ if (this.props.onLoadedMetadata) {
129
+ this.props.onLoadedMetadata(event.nativeEvent);
130
+ }
131
+ };
132
+
133
+ private _onError = (event: NativeSyntheticEvent<ErrorEvent>) => {
134
+ const { error } = event.nativeEvent;
135
+ this.setState({ error });
136
+
137
+ // potentially notify change in buffering state
138
+ this.maybeChangeBufferingState(false);
139
+
140
+ if (this.props.onError) {
141
+ this.props.onError(event.nativeEvent);
142
+ }
143
+ };
144
+
145
+ private _onProgress = (event: NativeSyntheticEvent<ProgressEvent>) => {
146
+ if (this.props.onProgress) {
147
+ this.props.onProgress(event.nativeEvent);
148
+ }
149
+ };
150
+
151
+ private _onPlay = () => {
152
+ if (this.props.onPlay) {
153
+ this.props.onPlay();
154
+ }
155
+ };
156
+
157
+ private _onPlaying = () => {
158
+ if (this.props.onPlaying) {
159
+ this.props.onPlaying();
160
+ }
161
+ };
162
+
163
+ private _onPause = () => {
164
+ if (this.props.onPause) {
165
+ this.props.onPause();
166
+ }
167
+ };
168
+
169
+ private _onSeeking = () => {
170
+ if (this.props.onSeeking) {
171
+ this.props.onSeeking();
172
+ }
173
+ };
174
+
175
+ private _onSeeked = () => {
176
+ if (this.props.onSeeked) {
177
+ this.props.onSeeked();
178
+ }
179
+ };
180
+
181
+ private _onEnded = () => {
182
+ if (this.props.onEnded) {
183
+ this.props.onEnded();
184
+ }
185
+ };
186
+
187
+ private _onReadStateChange = (event: NativeSyntheticEvent<ReadyStateChangeEvent>) => {
188
+ // potentially notify change in buffering state
189
+ this.maybeChangeBufferingState(event.nativeEvent.readyState < 3);
190
+
191
+ if (this.props.onReadyStateChange) {
192
+ this.props.onReadyStateChange(event.nativeEvent);
193
+ }
194
+ };
195
+
196
+ private _onTimeUpdate = (event: NativeSyntheticEvent<TimeUpdateEvent>) => {
197
+ if (this.props.onTimeUpdate) {
198
+ this.props.onTimeUpdate(event.nativeEvent);
199
+ }
200
+ };
201
+
202
+ private _onDurationChange = (event: NativeSyntheticEvent<DurationChangeEvent>) => {
203
+ if (this.props.onDurationChange) {
204
+ this.props.onDurationChange(event.nativeEvent);
205
+ }
206
+ };
207
+
208
+ private _onSegmentNotFound = (event: NativeSyntheticEvent<SegmentNotFoundEvent>) => {
209
+ if (this.props.onSegmentNotFound) {
210
+ this.props.onSegmentNotFound(event.nativeEvent);
211
+ }
212
+ };
213
+
214
+ private _onTextTrackListEvent = (event: NativeSyntheticEvent<TextTrackListEvent>) => {
215
+ if (this.props.onTextTrackListEvent) {
216
+ this.props.onTextTrackListEvent(event.nativeEvent);
217
+ }
218
+ };
219
+
220
+ private _onTextTrackEvent = (event: NativeSyntheticEvent<TextTrackEvent>) => {
221
+ if (this.props.onTextTrackEvent) {
222
+ this.props.onTextTrackEvent(event.nativeEvent);
223
+ }
224
+ };
225
+
226
+ private _onFullscreenPlayerWillPresent = () => {
227
+ if (this.props.onFullscreenPlayerWillPresent) {
228
+ this.props.onFullscreenPlayerWillPresent();
229
+ }
230
+ };
231
+
232
+ private _onFullscreenPlayerDidPresent = () => {
233
+ if (this.props.onFullscreenPlayerDidPresent) {
234
+ this.props.onFullscreenPlayerDidPresent();
235
+ }
236
+ };
237
+
238
+ private _onFullscreenPlayerWillDismiss = () => {
239
+ if (this.props.onFullscreenPlayerWillDismiss) {
240
+ this.props.onFullscreenPlayerWillDismiss();
241
+ }
242
+ };
243
+
244
+ private _onFullscreenPlayerDidDismiss = () => {
245
+ if (this.props.onFullscreenPlayerDidDismiss) {
246
+ this.props.onFullscreenPlayerDidDismiss();
247
+ }
248
+ };
249
+
250
+ public render(): JSX.Element {
251
+ const wrapperProps = Object.assign({}, this.props);
252
+
253
+ return (
254
+ <View style={[styles.base, wrapperProps.style]}>
255
+ <THEOplayerRCTView
256
+ ref={this._root}
257
+ src={this.props.source || {}}
258
+ onNativeSourceChange={this._onSourceChange}
259
+ onNativeLoadStart={this._onLoadStart}
260
+ onNativeLoadedData={this._onLoadedData}
261
+ onNativeLoadedMetadata={this._onLoadedMetadata}
262
+ onNativeError={this._onError}
263
+ onNativeProgress={this._onProgress}
264
+ onNativePlay={this._onPlay}
265
+ onNativePlaying={this._onPlaying}
266
+ onNativePause={this._onPause}
267
+ onNativeSeeking={this._onSeeking}
268
+ onNativeSeeked={this._onSeeked}
269
+ onNativeEnded={this._onEnded}
270
+ onNativeReadyStateChange={this._onReadStateChange}
271
+ onNativeTimeUpdate={this._onTimeUpdate}
272
+ onNativeDurationChange={this._onDurationChange}
273
+ onNativeSegmentNotFound={this._onSegmentNotFound}
274
+ onNativeTextTrackListEvent={this._onTextTrackListEvent}
275
+ onNativeTextTrackEvent={this._onTextTrackEvent}
276
+ onNativeFullscreenPlayerWillPresent={this._onFullscreenPlayerWillPresent}
277
+ onNativeFullscreenPlayerDidPresent={this._onFullscreenPlayerDidPresent}
278
+ onNativeFullscreenPlayerWillDismiss={this._onFullscreenPlayerWillDismiss}
279
+ onNativeFullscreenPlayerDidDismiss={this._onFullscreenPlayerDidDismiss}
280
+ style={StyleSheet.absoluteFill}
281
+ {...wrapperProps}
282
+ />
283
+ </View>
284
+ );
285
+ }
286
+ }
287
+
288
+ const LINKING_ERROR =
289
+ `The package 'react-native-theoplayer' doesn't seem to be linked. Make sure: \n\n` +
290
+ Platform.select({ ios: "- You have run 'pod install'\n", default: '' }) +
291
+ '- You rebuilt the app after installing the package\n' +
292
+ '- You are not using Expo managed workflow\n';
293
+
294
+ const ComponentName = 'THEOplayerRCTView';
295
+
296
+ const THEOplayerRCTView =
297
+ UIManager.getViewManagerConfig(ComponentName) != null
298
+ ? requireNativeComponent<THEOplayerRCTViewProps>(ComponentName)
299
+ : () => {
300
+ throw new Error(LINKING_ERROR);
301
+ };