react-native-theoplayer 1.6.1 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/android/build.gradle +70 -25
- package/android/local/com/theoplayer/theoplayer-sdk-android/ads-wrapper/4.3.0/ads-wrapper-4.3.0.aar +0 -0
- package/android/local/com/theoplayer/theoplayer-sdk-android/ads-wrapper/4.3.0/ads-wrapper-4.3.0.pom +9 -0
- package/android/local/com/theoplayer/theoplayer-sdk-android/ads-wrapper/maven-metadata-local.xml +13 -0
- package/android/src/main/java/com/theoplayer/PlayerConfigHelper.java +40 -0
- package/android/src/main/java/com/theoplayer/ReactTHEOplayerPackage.java +8 -3
- package/android/src/main/java/com/theoplayer/ReactTHEOplayerView.java +131 -28
- package/android/src/main/java/com/theoplayer/ReactTHEOplayerViewManager.java +14 -1
- package/android/src/main/java/com/theoplayer/SourceHelper.java +137 -86
- package/android/src/main/java/com/theoplayer/VideoEventEmitter.java +44 -12
- package/android/src/main/java/com/theoplayer/abr/ABRConfigurationAdapter.kt +72 -0
- package/android/src/main/java/com/theoplayer/ads/AdEventAdapter.java +92 -0
- package/android/src/main/java/com/theoplayer/ads/AdInfo.java +168 -0
- package/android/src/main/java/com/theoplayer/ads/AdsModule.java +152 -0
- package/android/src/main/java/com/theoplayer/drm/ContentProtectionAdapter.kt +143 -0
- package/android/src/main/java/com/theoplayer/drm/ContentProtectionModule.kt +269 -0
- package/android/src/main/java/com/theoplayer/drm/KeySystemAdapter.kt +22 -0
- package/android/src/main/java/com/theoplayer/drm/ProxyContentProtectionIntegration.kt +33 -0
- package/android/src/main/java/com/theoplayer/drm/ProxyContentProtectionIntegrationFactory.kt +19 -0
- package/android/src/main/java/com/theoplayer/drm/RequestMethodAdapter.kt +28 -0
- package/android/src/main/java/com/theoplayer/track/QualityListAdapter.java +54 -0
- package/android/src/main/java/com/theoplayer/track/QualityListFilter.java +40 -0
- package/android/src/main/java/com/theoplayer/track/TrackListInfo.java +10 -2
- package/android/src/main/java/com/theoplayer/util/TypeUtils.kt +17 -0
- package/android/src/main/java/com/theoplayer/util/ViewResolver.java +42 -0
- package/ios/THEOplayerRCTAdAggregator.swift +158 -0
- package/ios/THEOplayerRCTAdsAPI.swift +296 -0
- package/ios/THEOplayerRCTBridge.m +65 -0
- package/ios/THEOplayerRCTContentProtectionAPI.swift +359 -0
- package/ios/THEOplayerRCTContentProtectionAggregator.swift +119 -0
- package/ios/THEOplayerRCTDebug.swift +11 -5
- package/ios/THEOplayerRCTMetadataAggregator.swift +1 -1
- package/ios/THEOplayerRCTNetworkUtils.swift +54 -0
- package/ios/THEOplayerRCTProxyContentProtectionIntegration.swift +155 -0
- package/ios/THEOplayerRCTProxyContentProtectionIntegrationFactory.swift +32 -0
- package/ios/THEOplayerRCTSourceDescriptionBuilder.swift +223 -30
- package/ios/THEOplayerRCTTypeUtils.swift +18 -0
- package/ios/THEOplayerRCTView.swift +109 -49
- package/ios/THEOplayerRCTViewAdEventHandler.swift +238 -0
- package/ios/{THEOplayerRCTViewEventHandler.swift → THEOplayerRCTViewMainEventHandler.swift} +7 -119
- package/ios/THEOplayerRCTViewTextTrackEventHandler.swift +134 -0
- package/ios/Theoplayer-Bridging-Header.h +3 -1
- package/ios/custom/Frameworks/ios/put_custom_ios_xcframework_here.txt +2 -0
- package/ios/custom/react-native-theoplayer_custom_ios.podspec +36 -0
- package/ios/custom/theofeatures.sh +14 -0
- package/lib/commonjs/api/THEOplayerView.js.map +1 -1
- package/lib/commonjs/api/abr/ABRConfiguration.js +2 -0
- package/lib/commonjs/api/abr/ABRConfiguration.js.map +1 -0
- package/lib/commonjs/api/abr/barrel.js +19 -0
- package/lib/commonjs/api/abr/barrel.js.map +1 -0
- package/lib/commonjs/api/ads/Ad.js +6 -0
- package/lib/commonjs/api/ads/Ad.js.map +1 -0
- package/lib/commonjs/api/ads/AdBreak.js +6 -0
- package/lib/commonjs/api/ads/AdBreak.js.map +1 -0
- package/lib/commonjs/api/ads/AdsAPI.js +6 -0
- package/lib/commonjs/api/ads/AdsAPI.js.map +1 -0
- package/lib/commonjs/api/ads/AdsConfiguration.js +6 -0
- package/lib/commonjs/api/ads/AdsConfiguration.js.map +1 -0
- package/lib/commonjs/api/ads/CompanionAd.js +2 -0
- package/lib/commonjs/api/ads/CompanionAd.js.map +1 -0
- package/lib/commonjs/api/ads/GoogleDai.js +2 -0
- package/lib/commonjs/api/ads/GoogleDai.js.map +1 -0
- package/lib/commonjs/api/ads/GoogleImaAd.js +6 -0
- package/lib/commonjs/api/ads/GoogleImaAd.js.map +1 -0
- package/lib/commonjs/api/ads/GoogleImaConfiguration.js +2 -0
- package/lib/commonjs/api/ads/GoogleImaConfiguration.js.map +1 -0
- package/lib/commonjs/api/ads/barrel.js +110 -0
- package/lib/commonjs/api/ads/barrel.js.map +1 -0
- package/lib/commonjs/api/barrel.js +58 -6
- package/lib/commonjs/api/barrel.js.map +1 -1
- package/lib/commonjs/api/config/PlayerConfiguration.js +4 -0
- package/lib/commonjs/api/config/PlayerConfiguration.js.map +1 -1
- package/lib/commonjs/api/drm/ContentProtectionAPI.js +6 -0
- package/lib/commonjs/api/drm/ContentProtectionAPI.js.map +1 -0
- package/lib/commonjs/api/drm/ContentProtectionIntegration.js +6 -0
- package/lib/commonjs/api/drm/ContentProtectionIntegration.js.map +1 -0
- package/lib/commonjs/api/drm/ContentProtectionIntegrationFactory.js +6 -0
- package/lib/commonjs/api/drm/ContentProtectionIntegrationFactory.js.map +1 -0
- package/lib/commonjs/api/drm/ContentProtectionRequest.js +2 -0
- package/lib/commonjs/api/drm/ContentProtectionRequest.js.map +1 -0
- package/lib/commonjs/api/drm/ContentProtectionResponse.js +6 -0
- package/lib/commonjs/api/drm/ContentProtectionResponse.js.map +1 -0
- package/lib/commonjs/api/drm/barrel.js +71 -0
- package/lib/commonjs/api/drm/barrel.js.map +1 -0
- package/lib/commonjs/api/event/AdEvent.js +89 -0
- package/lib/commonjs/api/event/AdEvent.js.map +1 -0
- package/lib/commonjs/api/event/barrel.js +13 -0
- package/lib/commonjs/api/event/barrel.js.map +1 -1
- package/lib/commonjs/api/source/SourceDescription.js.map +1 -1
- package/lib/commonjs/api/source/ads/FreeWheelAdDescription.js +6 -0
- package/lib/commonjs/api/source/ads/FreeWheelAdDescription.js.map +1 -0
- package/lib/commonjs/api/source/ads/IMAAdDescription.js +6 -0
- package/lib/commonjs/api/source/ads/IMAAdDescription.js.map +1 -0
- package/lib/commonjs/api/source/ads/SpotXAdDescription.js +6 -0
- package/lib/commonjs/api/source/ads/SpotXAdDescription.js.map +1 -0
- package/lib/commonjs/api/source/ads/THEOplayerAdDescription.js +6 -0
- package/lib/commonjs/api/source/ads/THEOplayerAdDescription.js.map +1 -0
- package/lib/commonjs/api/source/ads/barrel.js +84 -0
- package/lib/commonjs/api/source/ads/barrel.js.map +1 -0
- package/lib/commonjs/api/source/ads/ssai/GoogleDAIConfiguration.js +6 -0
- package/lib/commonjs/api/source/ads/ssai/GoogleDAIConfiguration.js.map +1 -0
- package/lib/commonjs/api/source/ads/ssai/ImagineServerSideAdInsertionConfiguration.js +6 -0
- package/lib/commonjs/api/source/ads/ssai/ImagineServerSideAdInsertionConfiguration.js.map +1 -0
- package/lib/commonjs/api/source/ads/ssai/ServerSideAdInsertionConfiguration.js +6 -0
- package/lib/commonjs/api/source/ads/ssai/ServerSideAdInsertionConfiguration.js.map +1 -0
- package/lib/commonjs/api/source/ads/ssai/YospaceServerSideAdInsertionConfiguration.js +6 -0
- package/lib/commonjs/api/source/ads/ssai/YospaceServerSideAdInsertionConfiguration.js.map +1 -0
- package/lib/commonjs/api/source/ads/ssai/barrel.js +58 -0
- package/lib/commonjs/api/source/ads/ssai/barrel.js.map +1 -0
- package/lib/commonjs/api/source/barrel.js +16 -3
- package/lib/commonjs/api/source/barrel.js.map +1 -1
- package/lib/commonjs/api/source/drm/DRMConfiguration.js.map +1 -1
- package/lib/commonjs/api/track/MediaTrack.js +29 -0
- package/lib/commonjs/api/track/MediaTrack.js.map +1 -1
- package/lib/commonjs/api/utils/TypeUtils.js +62 -0
- package/lib/commonjs/api/utils/TypeUtils.js.map +1 -0
- package/lib/commonjs/api/utils/barrel.js +19 -0
- package/lib/commonjs/api/utils/barrel.js.map +1 -0
- package/lib/commonjs/index.js +10 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/internal/THEOplayerView.js +42 -3
- package/lib/commonjs/internal/THEOplayerView.js.map +1 -1
- package/lib/commonjs/internal/THEOplayerView.web.js +41 -2
- package/lib/commonjs/internal/THEOplayerView.web.js.map +1 -1
- package/lib/commonjs/internal/ads/THEOplayerNativeAdsAPI.js +54 -0
- package/lib/commonjs/internal/ads/THEOplayerNativeAdsAPI.js.map +1 -0
- package/lib/commonjs/internal/ads/THEOplayerNativeGoogleDAI.js +34 -0
- package/lib/commonjs/internal/ads/THEOplayerNativeGoogleDAI.js.map +1 -0
- package/lib/commonjs/internal/ads/THEOplayerWebAdsAPI.js +78 -0
- package/lib/commonjs/internal/ads/THEOplayerWebAdsAPI.js.map +1 -0
- package/lib/commonjs/internal/ads/THEOplayerWebGoogleDAI.js +32 -0
- package/lib/commonjs/internal/ads/THEOplayerWebGoogleDAI.js.map +1 -0
- package/lib/commonjs/internal/drm/ContentProtectionRegistry.js +214 -0
- package/lib/commonjs/internal/drm/ContentProtectionRegistry.js.map +1 -0
- package/lib/commonjs/internal/drm/ContentProtectionRegistry.web.js +20 -0
- package/lib/commonjs/internal/drm/ContentProtectionRegistry.web.js.map +1 -0
- package/lib/commonjs/internal/drm/NativeCertificateRequest.js +41 -0
- package/lib/commonjs/internal/drm/NativeCertificateRequest.js.map +1 -0
- package/lib/commonjs/internal/drm/NativeCertificateResponse.js +41 -0
- package/lib/commonjs/internal/drm/NativeCertificateResponse.js.map +1 -0
- package/lib/commonjs/internal/drm/NativeContentProtectionEvent.js +2 -0
- package/lib/commonjs/internal/drm/NativeContentProtectionEvent.js.map +1 -0
- package/lib/commonjs/internal/drm/NativeLicenseRequest.js +44 -0
- package/lib/commonjs/internal/drm/NativeLicenseRequest.js.map +1 -0
- package/lib/commonjs/internal/drm/NativeLicenseResponse.js +41 -0
- package/lib/commonjs/internal/drm/NativeLicenseResponse.js.map +1 -0
- package/lib/commonjs/internal/utils/TypeUtils.js +41 -0
- package/lib/commonjs/internal/utils/TypeUtils.js.map +1 -0
- package/lib/commonjs/internal/web/TrackUtils.js +19 -0
- package/lib/commonjs/internal/web/TrackUtils.js.map +1 -1
- package/lib/module/api/THEOplayerView.js.map +1 -1
- package/lib/module/api/abr/ABRConfiguration.js +2 -0
- package/lib/module/api/abr/ABRConfiguration.js.map +1 -0
- package/lib/module/api/abr/barrel.js +2 -0
- package/lib/module/api/abr/barrel.js.map +1 -0
- package/lib/module/api/ads/Ad.js +2 -0
- package/lib/module/api/ads/Ad.js.map +1 -0
- package/lib/module/api/ads/AdBreak.js +2 -0
- package/lib/module/api/ads/AdBreak.js.map +1 -0
- package/lib/module/api/ads/AdsAPI.js +2 -0
- package/lib/module/api/ads/AdsAPI.js.map +1 -0
- package/lib/module/api/ads/AdsConfiguration.js +2 -0
- package/lib/module/api/ads/AdsConfiguration.js.map +1 -0
- package/lib/module/api/ads/CompanionAd.js +2 -0
- package/lib/module/api/ads/CompanionAd.js.map +1 -0
- package/lib/module/api/ads/GoogleDai.js +2 -0
- package/lib/module/api/ads/GoogleDai.js.map +1 -0
- package/lib/module/api/ads/GoogleImaAd.js +2 -0
- package/lib/module/api/ads/GoogleImaAd.js.map +1 -0
- package/lib/module/api/ads/GoogleImaConfiguration.js +2 -0
- package/lib/module/api/ads/GoogleImaConfiguration.js.map +1 -0
- package/lib/module/api/ads/barrel.js +9 -0
- package/lib/module/api/ads/barrel.js.map +1 -0
- package/lib/module/api/barrel.js +5 -1
- package/lib/module/api/barrel.js.map +1 -1
- package/lib/module/api/config/PlayerConfiguration.js +1 -1
- package/lib/module/api/config/PlayerConfiguration.js.map +1 -1
- package/lib/module/api/drm/ContentProtectionAPI.js +2 -0
- package/lib/module/api/drm/ContentProtectionAPI.js.map +1 -0
- package/lib/module/api/drm/ContentProtectionIntegration.js +2 -0
- package/lib/module/api/drm/ContentProtectionIntegration.js.map +1 -0
- package/lib/module/api/drm/ContentProtectionIntegrationFactory.js +2 -0
- package/lib/module/api/drm/ContentProtectionIntegrationFactory.js.map +1 -0
- package/lib/module/api/drm/ContentProtectionRequest.js +2 -0
- package/lib/module/api/drm/ContentProtectionRequest.js.map +1 -0
- package/lib/module/api/drm/ContentProtectionResponse.js +2 -0
- package/lib/module/api/drm/ContentProtectionResponse.js.map +1 -0
- package/lib/module/api/drm/barrel.js +6 -0
- package/lib/module/api/drm/barrel.js.map +1 -0
- package/lib/module/api/event/AdEvent.js +82 -0
- package/lib/module/api/event/AdEvent.js.map +1 -0
- package/lib/module/api/event/barrel.js +1 -0
- package/lib/module/api/event/barrel.js.map +1 -1
- package/lib/module/api/source/SourceDescription.js.map +1 -1
- package/lib/module/api/source/ads/FreeWheelAdDescription.js +2 -0
- package/lib/module/api/source/ads/FreeWheelAdDescription.js.map +1 -0
- package/lib/module/api/source/ads/IMAAdDescription.js +2 -0
- package/lib/module/api/source/ads/IMAAdDescription.js.map +1 -0
- package/lib/module/api/source/ads/SpotXAdDescription.js +2 -0
- package/lib/module/api/source/ads/SpotXAdDescription.js.map +1 -0
- package/lib/module/api/source/ads/THEOplayerAdDescription.js +2 -0
- package/lib/module/api/source/ads/THEOplayerAdDescription.js.map +1 -0
- package/lib/module/api/source/ads/barrel.js +7 -0
- package/lib/module/api/source/ads/barrel.js.map +1 -0
- package/lib/module/api/source/ads/ssai/GoogleDAIConfiguration.js +2 -0
- package/lib/module/api/source/ads/ssai/GoogleDAIConfiguration.js.map +1 -0
- package/lib/module/api/source/ads/ssai/ImagineServerSideAdInsertionConfiguration.js +2 -0
- package/lib/module/api/source/ads/ssai/ImagineServerSideAdInsertionConfiguration.js.map +1 -0
- package/lib/module/api/source/ads/ssai/ServerSideAdInsertionConfiguration.js +2 -0
- package/lib/module/api/source/ads/ssai/ServerSideAdInsertionConfiguration.js.map +1 -0
- package/lib/module/api/source/ads/ssai/YospaceServerSideAdInsertionConfiguration.js +2 -0
- package/lib/module/api/source/ads/ssai/YospaceServerSideAdInsertionConfiguration.js.map +1 -0
- package/lib/module/api/source/ads/ssai/barrel.js +5 -0
- package/lib/module/api/source/ads/ssai/barrel.js.map +1 -0
- package/lib/module/api/source/barrel.js +1 -0
- package/lib/module/api/source/barrel.js.map +1 -1
- package/lib/module/api/source/drm/DRMConfiguration.js.map +1 -1
- package/lib/module/api/track/MediaTrack.js +23 -1
- package/lib/module/api/track/MediaTrack.js.map +1 -1
- package/lib/module/api/utils/TypeUtils.js +36 -0
- package/lib/module/api/utils/TypeUtils.js.map +1 -0
- package/lib/module/api/utils/barrel.js +2 -0
- package/lib/module/api/utils/barrel.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/internal/THEOplayerView.js +40 -3
- package/lib/module/internal/THEOplayerView.js.map +1 -1
- package/lib/module/internal/THEOplayerView.web.js +42 -4
- package/lib/module/internal/THEOplayerView.web.js.map +1 -1
- package/lib/module/internal/ads/THEOplayerNativeAdsAPI.js +43 -0
- package/lib/module/internal/ads/THEOplayerNativeAdsAPI.js.map +1 -0
- package/lib/module/internal/ads/THEOplayerNativeGoogleDAI.js +24 -0
- package/lib/module/internal/ads/THEOplayerNativeGoogleDAI.js.map +1 -0
- package/lib/module/internal/ads/THEOplayerWebAdsAPI.js +68 -0
- package/lib/module/internal/ads/THEOplayerWebAdsAPI.js.map +1 -0
- package/lib/module/internal/ads/THEOplayerWebGoogleDAI.js +23 -0
- package/lib/module/internal/ads/THEOplayerWebGoogleDAI.js.map +1 -0
- package/lib/module/internal/drm/ContentProtectionRegistry.js +188 -0
- package/lib/module/internal/drm/ContentProtectionRegistry.js.map +1 -0
- package/lib/module/internal/drm/ContentProtectionRegistry.web.js +9 -0
- package/lib/module/internal/drm/ContentProtectionRegistry.web.js.map +1 -0
- package/lib/module/internal/drm/NativeCertificateRequest.js +31 -0
- package/lib/module/internal/drm/NativeCertificateRequest.js.map +1 -0
- package/lib/module/internal/drm/NativeCertificateResponse.js +30 -0
- package/lib/module/internal/drm/NativeCertificateResponse.js.map +1 -0
- package/lib/module/internal/drm/NativeContentProtectionEvent.js +2 -0
- package/lib/module/internal/drm/NativeContentProtectionEvent.js.map +1 -0
- package/lib/module/internal/drm/NativeLicenseRequest.js +34 -0
- package/lib/module/internal/drm/NativeLicenseRequest.js.map +1 -0
- package/lib/module/internal/drm/NativeLicenseResponse.js +30 -0
- package/lib/module/internal/drm/NativeLicenseResponse.js.map +1 -0
- package/lib/module/internal/utils/TypeUtils.js +24 -0
- package/lib/module/internal/utils/TypeUtils.js.map +1 -0
- package/lib/module/internal/web/TrackUtils.js +15 -0
- package/lib/module/internal/web/TrackUtils.js.map +1 -1
- package/lib/typescript/lib/commonjs/api/abr/ABRConfiguration.d.ts +0 -0
- package/lib/typescript/lib/commonjs/api/abr/barrel.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/ads/Ad.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/ads/AdBreak.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/ads/AdsAPI.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/ads/AdsConfiguration.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/ads/CompanionAd.d.ts +0 -0
- package/lib/typescript/lib/commonjs/api/ads/GoogleDai.d.ts +0 -0
- package/lib/typescript/lib/commonjs/api/ads/GoogleImaAd.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/ads/GoogleImaConfiguration.d.ts +0 -0
- package/lib/typescript/lib/commonjs/api/ads/barrel.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/config/PlayerConfiguration.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/drm/ContentProtectionAPI.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/drm/ContentProtectionIntegration.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/drm/ContentProtectionIntegrationFactory.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/drm/ContentProtectionRequest.d.ts +0 -0
- package/lib/typescript/lib/commonjs/api/drm/ContentProtectionResponse.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/drm/barrel.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/event/AdEvent.d.ts +2 -0
- package/lib/typescript/lib/commonjs/api/source/ads/FreeWheelAdDescription.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/source/ads/IMAAdDescription.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/source/ads/SpotXAdDescription.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/source/ads/THEOplayerAdDescription.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/source/ads/barrel.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/source/ads/ssai/GoogleDAIConfiguration.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/source/ads/ssai/ImagineServerSideAdInsertionConfiguration.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/source/ads/ssai/ServerSideAdInsertionConfiguration.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/source/ads/ssai/YospaceServerSideAdInsertionConfiguration.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/source/ads/ssai/barrel.d.ts +1 -0
- package/lib/typescript/lib/commonjs/api/track/MediaTrack.d.ts +8 -0
- package/lib/typescript/lib/commonjs/api/utils/TypeUtils.d.ts +13 -0
- package/lib/typescript/lib/commonjs/api/utils/barrel.d.ts +1 -0
- package/lib/typescript/lib/commonjs/index.d.ts +2 -0
- package/lib/typescript/lib/commonjs/internal/THEOplayerView.d.ts +5 -0
- package/lib/typescript/lib/commonjs/internal/THEOplayerView.web.d.ts +4 -0
- package/lib/typescript/lib/commonjs/internal/ads/THEOplayerNativeAdsAPI.d.ts +14 -0
- package/lib/typescript/lib/commonjs/internal/ads/THEOplayerNativeGoogleDAI.d.ts +9 -0
- package/lib/typescript/lib/commonjs/internal/ads/THEOplayerWebAdsAPI.d.ts +14 -0
- package/lib/typescript/lib/commonjs/internal/ads/THEOplayerWebGoogleDAI.d.ts +9 -0
- package/lib/typescript/lib/commonjs/internal/drm/ContentProtectionRegistry.d.ts +14 -0
- package/lib/typescript/lib/commonjs/internal/drm/ContentProtectionRegistry.web.d.ts +5 -0
- package/lib/typescript/lib/commonjs/internal/drm/NativeCertificateRequest.d.ts +18 -0
- package/lib/typescript/lib/commonjs/internal/drm/NativeCertificateResponse.d.ts +21 -0
- package/lib/typescript/lib/commonjs/internal/drm/NativeContentProtectionEvent.d.ts +0 -0
- package/lib/typescript/lib/commonjs/internal/drm/NativeLicenseRequest.d.ts +20 -0
- package/lib/typescript/lib/commonjs/internal/drm/NativeLicenseResponse.d.ts +22 -0
- package/lib/typescript/lib/commonjs/internal/utils/TypeUtils.d.ts +6 -0
- package/lib/typescript/lib/commonjs/internal/web/TrackUtils.d.ts +2 -0
- package/lib/typescript/lib/module/api/abr/ABRConfiguration.d.ts +0 -0
- package/lib/typescript/lib/module/api/abr/barrel.d.ts +1 -0
- package/lib/typescript/lib/module/api/ads/Ad.d.ts +1 -0
- package/lib/typescript/lib/module/api/ads/AdBreak.d.ts +1 -0
- package/lib/typescript/lib/module/api/ads/AdsAPI.d.ts +1 -0
- package/lib/typescript/lib/module/api/ads/AdsConfiguration.d.ts +1 -0
- package/lib/typescript/lib/module/api/ads/CompanionAd.d.ts +0 -0
- package/lib/typescript/lib/module/api/ads/GoogleDai.d.ts +0 -0
- package/lib/typescript/lib/module/api/ads/GoogleImaAd.d.ts +1 -0
- package/lib/typescript/lib/module/api/ads/GoogleImaConfiguration.d.ts +0 -0
- package/lib/typescript/lib/module/api/ads/barrel.d.ts +5 -0
- package/lib/typescript/lib/module/api/barrel.d.ts +5 -1
- package/lib/typescript/lib/module/api/config/PlayerConfiguration.d.ts +1 -0
- package/lib/typescript/lib/module/api/config/barrel.d.ts +1 -1
- package/lib/typescript/lib/module/api/drm/ContentProtectionAPI.d.ts +1 -0
- package/lib/typescript/lib/module/api/drm/ContentProtectionIntegration.d.ts +1 -0
- package/lib/typescript/lib/module/api/drm/ContentProtectionIntegrationFactory.d.ts +1 -0
- package/lib/typescript/lib/module/api/drm/ContentProtectionRequest.d.ts +0 -0
- package/lib/typescript/lib/module/api/drm/ContentProtectionResponse.d.ts +1 -0
- package/lib/typescript/lib/module/api/drm/barrel.d.ts +4 -0
- package/lib/typescript/lib/module/api/event/AdEvent.d.ts +1 -0
- package/lib/typescript/lib/module/api/event/barrel.d.ts +1 -0
- package/lib/typescript/lib/module/api/source/ads/FreeWheelAdDescription.d.ts +1 -0
- package/lib/typescript/lib/module/api/source/ads/IMAAdDescription.d.ts +1 -0
- package/lib/typescript/lib/module/api/source/ads/SpotXAdDescription.d.ts +1 -0
- package/lib/typescript/lib/module/api/source/ads/THEOplayerAdDescription.d.ts +1 -0
- package/lib/typescript/lib/module/api/source/ads/barrel.d.ts +5 -0
- package/lib/typescript/lib/module/api/source/ads/ssai/GoogleDAIConfiguration.d.ts +1 -0
- package/lib/typescript/lib/module/api/source/ads/ssai/ImagineServerSideAdInsertionConfiguration.d.ts +1 -0
- package/lib/typescript/lib/module/api/source/ads/ssai/ServerSideAdInsertionConfiguration.d.ts +1 -0
- package/lib/typescript/lib/module/api/source/ads/ssai/YospaceServerSideAdInsertionConfiguration.d.ts +1 -0
- package/lib/typescript/lib/module/api/source/ads/ssai/barrel.d.ts +4 -0
- package/lib/typescript/lib/module/api/source/barrel.d.ts +1 -0
- package/lib/typescript/lib/module/api/track/MediaTrack.d.ts +8 -1
- package/lib/typescript/lib/module/api/utils/TypeUtils.d.ts +12 -0
- package/lib/typescript/lib/module/api/utils/barrel.d.ts +1 -0
- package/lib/typescript/lib/module/index.d.ts +1 -0
- package/lib/typescript/lib/module/internal/THEOplayerView.d.ts +8 -0
- package/lib/typescript/lib/module/internal/THEOplayerView.web.d.ts +4 -0
- package/lib/typescript/lib/module/internal/ads/THEOplayerNativeAdsAPI.d.ts +13 -0
- package/lib/typescript/lib/module/internal/ads/THEOplayerNativeGoogleDAI.d.ts +8 -0
- package/lib/typescript/lib/module/internal/ads/THEOplayerWebAdsAPI.d.ts +13 -0
- package/lib/typescript/lib/module/internal/ads/THEOplayerWebGoogleDAI.d.ts +8 -0
- package/lib/typescript/lib/module/internal/drm/ContentProtectionRegistry.d.ts +13 -0
- package/lib/typescript/lib/module/internal/drm/ContentProtectionRegistry.web.d.ts +4 -0
- package/lib/typescript/lib/module/internal/drm/NativeCertificateRequest.d.ts +17 -0
- package/lib/typescript/lib/module/internal/drm/NativeCertificateResponse.d.ts +20 -0
- package/lib/typescript/lib/module/internal/drm/NativeContentProtectionEvent.d.ts +0 -0
- package/lib/typescript/lib/module/internal/drm/NativeLicenseRequest.d.ts +19 -0
- package/lib/typescript/lib/module/internal/drm/NativeLicenseResponse.d.ts +21 -0
- package/lib/typescript/lib/module/internal/utils/TypeUtils.d.ts +5 -0
- package/lib/typescript/lib/module/internal/web/TrackUtils.d.ts +2 -0
- package/lib/typescript/src/api/THEOplayerView.d.ts +25 -4
- package/lib/typescript/src/api/abr/ABRConfiguration.d.ts +95 -0
- package/lib/typescript/src/api/abr/barrel.d.ts +1 -0
- package/lib/typescript/src/api/ads/Ad.d.ts +238 -0
- package/lib/typescript/src/api/ads/AdBreak.d.ts +39 -0
- package/lib/typescript/src/api/ads/AdsAPI.d.ts +46 -0
- package/lib/typescript/src/api/ads/AdsConfiguration.d.ts +69 -0
- package/lib/typescript/src/api/ads/CompanionAd.d.ts +59 -0
- package/lib/typescript/src/api/ads/GoogleDai.d.ts +29 -0
- package/lib/typescript/src/api/ads/GoogleImaAd.d.ts +78 -0
- package/lib/typescript/src/api/ads/GoogleImaConfiguration.d.ts +13 -0
- package/lib/typescript/src/api/ads/barrel.d.ts +8 -0
- package/lib/typescript/src/api/barrel.d.ts +5 -1
- package/lib/typescript/src/api/config/PlayerConfiguration.d.ts +5 -0
- package/lib/typescript/src/api/drm/ContentProtectionAPI.d.ts +5 -0
- package/lib/typescript/src/api/drm/ContentProtectionIntegration.d.ts +86 -0
- package/lib/typescript/src/api/drm/ContentProtectionIntegrationFactory.d.ts +15 -0
- package/lib/typescript/src/api/drm/ContentProtectionRequest.d.ts +56 -0
- package/lib/typescript/src/api/drm/ContentProtectionResponse.d.ts +56 -0
- package/lib/typescript/src/api/drm/barrel.d.ts +5 -0
- package/lib/typescript/src/api/event/AdEvent.d.ts +13 -0
- package/lib/typescript/src/api/event/barrel.d.ts +1 -0
- package/lib/typescript/src/api/source/SourceDescription.d.ts +8 -0
- package/lib/typescript/src/api/source/ads/FreeWheelAdDescription.d.ts +85 -0
- package/lib/typescript/src/api/source/ads/IMAAdDescription.d.ts +25 -0
- package/lib/typescript/src/api/source/ads/SpotXAdDescription.d.ts +115 -0
- package/lib/typescript/src/api/source/ads/THEOplayerAdDescription.d.ts +32 -0
- package/lib/typescript/src/api/source/ads/barrel.d.ts +6 -0
- package/lib/typescript/src/api/source/ads/ssai/GoogleDAIConfiguration.d.ts +130 -0
- package/lib/typescript/src/api/source/ads/ssai/ImagineServerSideAdInsertionConfiguration.d.ts +27 -0
- package/lib/typescript/src/api/source/ads/ssai/ServerSideAdInsertionConfiguration.d.ts +26 -0
- package/lib/typescript/src/api/source/ads/ssai/YospaceServerSideAdInsertionConfiguration.d.ts +46 -0
- package/lib/typescript/src/api/source/ads/ssai/barrel.d.ts +4 -0
- package/lib/typescript/src/api/source/barrel.d.ts +1 -0
- package/lib/typescript/src/api/source/drm/DRMConfiguration.d.ts +0 -30
- package/lib/typescript/src/api/track/MediaTrack.d.ts +5 -2
- package/lib/typescript/src/api/utils/TypeUtils.d.ts +20 -0
- package/lib/typescript/src/api/utils/barrel.d.ts +1 -0
- package/lib/typescript/src/index.d.ts +1 -0
- package/lib/typescript/src/internal/THEOplayerView.d.ts +10 -4
- package/lib/typescript/src/internal/THEOplayerView.web.d.ts +7 -2
- package/lib/typescript/src/internal/ads/THEOplayerNativeAdsAPI.d.ts +17 -0
- package/lib/typescript/src/internal/ads/THEOplayerNativeGoogleDAI.d.ts +10 -0
- package/lib/typescript/src/internal/ads/THEOplayerWebAdsAPI.d.ts +15 -0
- package/lib/typescript/src/internal/ads/THEOplayerWebGoogleDAI.d.ts +10 -0
- package/lib/typescript/src/internal/drm/ContentProtectionRegistry.d.ts +19 -0
- package/lib/typescript/src/internal/drm/ContentProtectionRegistry.web.d.ts +5 -0
- package/lib/typescript/src/internal/drm/NativeCertificateRequest.d.ts +13 -0
- package/lib/typescript/src/internal/drm/NativeCertificateResponse.d.ts +18 -0
- package/lib/typescript/src/internal/drm/NativeContentProtectionEvent.d.ts +5 -0
- package/lib/typescript/src/internal/drm/NativeLicenseRequest.d.ts +14 -0
- package/lib/typescript/src/internal/drm/NativeLicenseResponse.d.ts +18 -0
- package/lib/typescript/src/internal/utils/TypeUtils.d.ts +5 -0
- package/lib/typescript/src/internal/web/TrackUtils.d.ts +3 -1
- package/package.json +4 -3
- package/src/api/THEOplayerView.ts +29 -4
- package/src/api/abr/ABRConfiguration.ts +103 -0
- package/src/api/abr/barrel.ts +1 -0
- package/src/api/ads/Ad.ts +267 -0
- package/src/api/ads/AdBreak.ts +44 -0
- package/src/api/ads/AdsAPI.ts +53 -0
- package/src/api/ads/AdsConfiguration.ts +76 -0
- package/src/api/ads/CompanionAd.ts +65 -0
- package/src/api/ads/GoogleDai.ts +32 -0
- package/src/api/ads/GoogleImaAd.ts +86 -0
- package/src/api/ads/GoogleImaConfiguration.ts +13 -0
- package/src/api/ads/barrel.ts +8 -0
- package/src/api/barrel.ts +5 -1
- package/src/api/config/PlayerConfiguration.ts +7 -0
- package/src/api/drm/ContentProtectionAPI.ts +6 -0
- package/src/api/drm/ContentProtectionIntegration.ts +93 -0
- package/src/api/drm/ContentProtectionIntegrationFactory.ts +16 -0
- package/src/api/drm/ContentProtectionRequest.ts +60 -0
- package/src/api/drm/ContentProtectionResponse.ts +62 -0
- package/src/api/drm/barrel.ts +5 -0
- package/src/api/event/AdEvent.ts +117 -0
- package/src/api/event/barrel.ts +1 -0
- package/src/api/source/SourceDescription.ts +9 -0
- package/src/api/source/ads/FreeWheelAdDescription.ts +97 -0
- package/src/api/source/ads/IMAAdDescription.ts +26 -0
- package/src/api/source/ads/SpotXAdDescription.ts +126 -0
- package/src/api/source/ads/THEOplayerAdDescription.ts +34 -0
- package/src/api/source/ads/barrel.ts +6 -0
- package/src/api/source/ads/ssai/GoogleDAIConfiguration.ts +145 -0
- package/src/api/source/ads/ssai/ImagineServerSideAdInsertionConfiguration.ts +30 -0
- package/src/api/source/ads/ssai/ServerSideAdInsertionConfiguration.ts +28 -0
- package/src/api/source/ads/ssai/YospaceServerSideAdInsertionConfiguration.ts +51 -0
- package/src/api/source/ads/ssai/barrel.ts +4 -0
- package/src/api/source/barrel.ts +1 -0
- package/src/api/source/drm/DRMConfiguration.ts +0 -35
- package/src/api/track/MediaTrack.ts +22 -2
- package/src/api/utils/TypeUtils.ts +39 -0
- package/src/api/utils/barrel.ts +1 -0
- package/src/index.tsx +1 -0
- package/src/internal/THEOplayerView.tsx +49 -8
- package/src/internal/THEOplayerView.web.tsx +37 -7
- package/src/internal/ads/THEOplayerNativeAdsAPI.ts +44 -0
- package/src/internal/ads/THEOplayerNativeGoogleDAI.ts +23 -0
- package/src/internal/ads/THEOplayerWebAdsAPI.ts +51 -0
- package/src/internal/ads/THEOplayerWebGoogleDAI.ts +22 -0
- package/src/internal/drm/ContentProtectionRegistry.ts +173 -0
- package/src/internal/drm/ContentProtectionRegistry.web.ts +10 -0
- package/src/internal/drm/NativeCertificateRequest.ts +41 -0
- package/src/internal/drm/NativeCertificateResponse.ts +45 -0
- package/src/internal/drm/NativeContentProtectionEvent.ts +5 -0
- package/src/internal/drm/NativeLicenseRequest.ts +39 -0
- package/src/internal/drm/NativeLicenseResponse.ts +45 -0
- package/src/internal/utils/TypeUtils.ts +39 -0
- package/src/internal/web/TrackUtils.ts +22 -1
|
@@ -1,2 +1,24 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Represents a media track (audio or video) of a media resource.
|
|
3
|
+
*
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export function findMediaTrackByUid(mediaTracks, uid) {
|
|
7
|
+
return mediaTracks.find(track => track.uid === uid);
|
|
8
|
+
}
|
|
9
|
+
export function findQualityByUid(mediaTrack, uid) {
|
|
10
|
+
return mediaTrack.qualities.find(quality => quality.uid === uid);
|
|
11
|
+
}
|
|
12
|
+
export function findQualitiesByUid(mediaTrack, uid) {
|
|
13
|
+
if (uid && mediaTrack) {
|
|
14
|
+
if (Array.isArray(uid)) {
|
|
15
|
+
return mediaTrack.qualities.filter(quality => uid.includes(quality.uid));
|
|
16
|
+
} else {
|
|
17
|
+
const quality = findQualityByUid(mediaTrack, uid);
|
|
18
|
+
return quality ? [quality] : undefined;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
2
24
|
//# sourceMappingURL=MediaTrack.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["MediaTrack.ts"],"sourcesContent":["import type { Track } from './Track';\nimport type { Quality } from './Quality';\n\nexport type MediaTrackKind = 'main' | 'alternative';\n\n/**\n * Represents a media track (audio or video) of a media resource.\n *\n * @public\n */\nexport interface MediaTrack extends Track {\n /**\n * The identifier of the media track.\n *\n * @remarks\n * <br/> - This identifier can be used to distinguish between related tracks, e.g. tracks in the same list.\n */\n // Note: This identifier is a randomly generated string.\n readonly id: string;\n\n /**\n * A unique identifier of the media track.\n *\n * @remarks\n * <br/> - This identifier is unique across tracks of a THEOplayer instance and can be used to distinguish between tracks.\n * <br/> - This identifier is a randomly generated number.\n */\n readonly uid: number;\n\n /**\n * The kind of the media track, represented by a value from the following list:\n * <br/> - `'main'`: The track is the default track for playback\n * <br/> - `'alternative'`: The track is not the default track for playback\n */\n readonly kind: MediaTrackKind;\n\n /**\n * The label of the media track.\n */\n label: string;\n\n /**\n * The language of the media track.\n */\n readonly language: string;\n\n /**\n * The uid of the active quality of the media track, i.e. the quality that is currently being played.\n */\n readonly activeQuality: number | undefined;\n\n /**\n * The qualities of the media track.\n */\n readonly qualities: Quality[];\n\n /**\n * One or more desired uids of qualities of the media track.\n *\n * @remarks\n * <br/> - If desired qualities are present, the Adaptive Bitrate mechanism of the player will limit itself to these qualities.\n * <br/> - If one desired quality is present, the Adaptive Bitrate mechanism of the player will be disabled and the desired quality will be played back.\n */\n targetQuality: number | number[] | undefined;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"names":["findMediaTrackByUid","mediaTracks","uid","find","track","findQualityByUid","mediaTrack","qualities","quality","findQualitiesByUid","Array","isArray","filter","includes","undefined"],"sources":["MediaTrack.ts"],"sourcesContent":["import type { Track } from './Track';\nimport type { Quality } from './Quality';\n\nexport type MediaTrackKind = 'main' | 'alternative';\n\n/**\n * Represents a media track (audio or video) of a media resource.\n *\n * @public\n */\nexport interface MediaTrack extends Track {\n /**\n * The identifier of the media track.\n *\n * @remarks\n * <br/> - This identifier can be used to distinguish between related tracks, e.g. tracks in the same list.\n */\n // Note: This identifier is a randomly generated string.\n readonly id: string;\n\n /**\n * A unique identifier of the media track.\n *\n * @remarks\n * <br/> - This identifier is unique across tracks of a THEOplayer instance and can be used to distinguish between tracks.\n * <br/> - This identifier is a randomly generated number.\n */\n readonly uid: number;\n\n /**\n * The kind of the media track, represented by a value from the following list:\n * <br/> - `'main'`: The track is the default track for playback\n * <br/> - `'alternative'`: The track is not the default track for playback\n */\n readonly kind: MediaTrackKind;\n\n /**\n * The label of the media track.\n */\n readonly label: string;\n\n /**\n * The language of the media track.\n */\n readonly language: string;\n\n /**\n * The uid of the active quality of the media track, i.e. the quality that is currently being played.\n */\n readonly activeQuality: number | undefined;\n\n /**\n * The qualities of the media track.\n */\n readonly qualities: Quality[];\n\n /**\n * One or more desired uids of qualities of the media track.\n *\n * @remarks\n * <br/> - If desired qualities are present, the Adaptive Bitrate mechanism of the player will limit itself to these qualities.\n * <br/> - If one desired quality is present, the Adaptive Bitrate mechanism of the player will be disabled and the desired quality will be played back.\n */\n readonly targetQuality: number | number[] | undefined;\n}\n\nexport function findMediaTrackByUid(mediaTracks: MediaTrack[], uid: number | undefined): MediaTrack | undefined {\n return mediaTracks.find((track) => track.uid === uid);\n}\n\nexport function findQualityByUid(mediaTrack: MediaTrack, uid: number | undefined): Quality | undefined {\n return mediaTrack.qualities.find((quality) => quality.uid === uid);\n}\n\nexport function findQualitiesByUid(mediaTrack: MediaTrack | undefined, uid: number | number[] | undefined): Quality[] | undefined {\n if (uid && mediaTrack) {\n if (Array.isArray(uid)) {\n return mediaTrack.qualities.filter((quality) => uid.includes(quality.uid));\n } else {\n const quality = findQualityByUid(mediaTrack, uid);\n return quality ? [quality] : undefined;\n }\n }\n return undefined;\n}\n"],"mappings":"AAKA;AACA;AACA;AACA;AACA;AAyDA,OAAO,SAASA,mBAAT,CAA6BC,WAA7B,EAAwDC,GAAxD,EAAyG;EAC9G,OAAOD,WAAW,CAACE,IAAZ,CAAkBC,KAAD,IAAWA,KAAK,CAACF,GAAN,KAAcA,GAA1C,CAAP;AACD;AAED,OAAO,SAASG,gBAAT,CAA0BC,UAA1B,EAAkDJ,GAAlD,EAAgG;EACrG,OAAOI,UAAU,CAACC,SAAX,CAAqBJ,IAArB,CAA2BK,OAAD,IAAaA,OAAO,CAACN,GAAR,KAAgBA,GAAvD,CAAP;AACD;AAED,OAAO,SAASO,kBAAT,CAA4BH,UAA5B,EAAgEJ,GAAhE,EAA2H;EAChI,IAAIA,GAAG,IAAII,UAAX,EAAuB;IACrB,IAAII,KAAK,CAACC,OAAN,CAAcT,GAAd,CAAJ,EAAwB;MACtB,OAAOI,UAAU,CAACC,SAAX,CAAqBK,MAArB,CAA6BJ,OAAD,IAAaN,GAAG,CAACW,QAAJ,CAAaL,OAAO,CAACN,GAArB,CAAzC,CAAP;IACD,CAFD,MAEO;MACL,MAAMM,OAAO,GAAGH,gBAAgB,CAACC,UAAD,EAAaJ,GAAb,CAAhC;MACA,OAAOM,OAAO,GAAG,CAACA,OAAD,CAAH,GAAeM,SAA7B;IACD;EACF;;EACD,OAAOA,SAAP;AACD"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Buffer } from 'buffer'; // from object
|
|
2
|
+
|
|
3
|
+
export function fromObjectToString(obj) {
|
|
4
|
+
return JSON.stringify(obj);
|
|
5
|
+
}
|
|
6
|
+
export function fromObjectToBase64String(obj) {
|
|
7
|
+
return fromStringToBase64String(fromObjectToString(obj));
|
|
8
|
+
}
|
|
9
|
+
export function fromObjectToUint8Array(obj) {
|
|
10
|
+
return fromStringToUint8Array(fromObjectToString(obj));
|
|
11
|
+
} // from string
|
|
12
|
+
|
|
13
|
+
export function fromStringToBase64String(str) {
|
|
14
|
+
return Buffer.from(str, 'utf8').toString('base64');
|
|
15
|
+
}
|
|
16
|
+
export function fromStringToUint8Array(str) {
|
|
17
|
+
return Buffer.from(str, 'utf8');
|
|
18
|
+
}
|
|
19
|
+
export function fromStringToObject(str) {
|
|
20
|
+
return JSON.parse(str);
|
|
21
|
+
} // from base64 string
|
|
22
|
+
|
|
23
|
+
export function fromBase64StringToUint8Array(str) {
|
|
24
|
+
return Buffer.from(str, 'base64');
|
|
25
|
+
} // from uint8Array
|
|
26
|
+
|
|
27
|
+
export function fromUint8ArrayToBase64String(array) {
|
|
28
|
+
return Buffer.from(array).toString('base64');
|
|
29
|
+
}
|
|
30
|
+
export function fromUint8ArrayToString(array) {
|
|
31
|
+
return Buffer.from(array).toString('utf8');
|
|
32
|
+
}
|
|
33
|
+
export function fromUint8ArrayToObject(array) {
|
|
34
|
+
return fromStringToObject(fromUint8ArrayToString(array));
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=TypeUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Buffer","fromObjectToString","obj","JSON","stringify","fromObjectToBase64String","fromStringToBase64String","fromObjectToUint8Array","fromStringToUint8Array","str","from","toString","fromStringToObject","parse","fromBase64StringToUint8Array","fromUint8ArrayToBase64String","array","fromUint8ArrayToString","fromUint8ArrayToObject"],"sources":["TypeUtils.ts"],"sourcesContent":["import { Buffer } from 'buffer';\n\n// from object\nexport function fromObjectToString(obj: { [key: string]: any }): string {\n return JSON.stringify(obj);\n}\nexport function fromObjectToBase64String(obj: { [key: string]: any }): string {\n return fromStringToBase64String(fromObjectToString(obj));\n}\nexport function fromObjectToUint8Array(obj: { [key: string]: any }): Uint8Array {\n return fromStringToUint8Array(fromObjectToString(obj));\n}\n\n// from string\nexport function fromStringToBase64String(str: string): string {\n return Buffer.from(str, 'utf8').toString('base64');\n}\nexport function fromStringToUint8Array(str: string): Uint8Array {\n return Buffer.from(str, 'utf8');\n}\nexport function fromStringToObject(str: string): { [key: string]: any } {\n return JSON.parse(str);\n}\n\n// from base64 string\nexport function fromBase64StringToUint8Array(str: string): Uint8Array {\n return Buffer.from(str, 'base64');\n}\n\n// from uint8Array\nexport function fromUint8ArrayToBase64String(array: Uint8Array): string {\n return Buffer.from(array).toString('base64');\n}\nexport function fromUint8ArrayToString(array: Uint8Array): string {\n return Buffer.from(array).toString('utf8');\n}\nexport function fromUint8ArrayToObject(array: Uint8Array): { [key: string]: any } {\n return fromStringToObject(fromUint8ArrayToString(array));\n}\n"],"mappings":"AAAA,SAASA,MAAT,QAAuB,QAAvB,C,CAEA;;AACA,OAAO,SAASC,kBAAT,CAA4BC,GAA5B,EAAiE;EACtE,OAAOC,IAAI,CAACC,SAAL,CAAeF,GAAf,CAAP;AACD;AACD,OAAO,SAASG,wBAAT,CAAkCH,GAAlC,EAAuE;EAC5E,OAAOI,wBAAwB,CAACL,kBAAkB,CAACC,GAAD,CAAnB,CAA/B;AACD;AACD,OAAO,SAASK,sBAAT,CAAgCL,GAAhC,EAAyE;EAC9E,OAAOM,sBAAsB,CAACP,kBAAkB,CAACC,GAAD,CAAnB,CAA7B;AACD,C,CAED;;AACA,OAAO,SAASI,wBAAT,CAAkCG,GAAlC,EAAuD;EAC5D,OAAOT,MAAM,CAACU,IAAP,CAAYD,GAAZ,EAAiB,MAAjB,EAAyBE,QAAzB,CAAkC,QAAlC,CAAP;AACD;AACD,OAAO,SAASH,sBAAT,CAAgCC,GAAhC,EAAyD;EAC9D,OAAOT,MAAM,CAACU,IAAP,CAAYD,GAAZ,EAAiB,MAAjB,CAAP;AACD;AACD,OAAO,SAASG,kBAAT,CAA4BH,GAA5B,EAAiE;EACtE,OAAON,IAAI,CAACU,KAAL,CAAWJ,GAAX,CAAP;AACD,C,CAED;;AACA,OAAO,SAASK,4BAAT,CAAsCL,GAAtC,EAA+D;EACpE,OAAOT,MAAM,CAACU,IAAP,CAAYD,GAAZ,EAAiB,QAAjB,CAAP;AACD,C,CAED;;AACA,OAAO,SAASM,4BAAT,CAAsCC,KAAtC,EAAiE;EACtE,OAAOhB,MAAM,CAACU,IAAP,CAAYM,KAAZ,EAAmBL,QAAnB,CAA4B,QAA5B,CAAP;AACD;AACD,OAAO,SAASM,sBAAT,CAAgCD,KAAhC,EAA2D;EAChE,OAAOhB,MAAM,CAACU,IAAP,CAAYM,KAAZ,EAAmBL,QAAnB,CAA4B,MAA5B,CAAP;AACD;AACD,OAAO,SAASO,sBAAT,CAAgCF,KAAhC,EAA2E;EAChF,OAAOJ,kBAAkB,CAACK,sBAAsB,CAACD,KAAD,CAAvB,CAAzB;AACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["barrel.ts"],"sourcesContent":["export * from './TypeUtils';\n"],"mappings":"AAAA,cAAc,aAAd"}
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["THEOplayerView"],"sources":["index.tsx"],"sourcesContent":["export * from './api/barrel';\nexport { THEOplayerView } from './internal/THEOplayerView';\n"],"mappings":"AAAA,cAAc,cAAd;AACA,SAASA,cAAT,QAA+B,2BAA/B"}
|
|
1
|
+
{"version":3,"names":["THEOplayerView","ContentProtectionRegistry"],"sources":["index.tsx"],"sourcesContent":["export * from './api/barrel';\nexport { THEOplayerView } from './internal/THEOplayerView';\nexport { ContentProtectionRegistry } from './internal/drm/ContentProtectionRegistry';\n"],"mappings":"AAAA,cAAc,cAAd;AACA,SAASA,cAAT,QAA+B,2BAA/B;AACA,SAASC,yBAAT,QAA0C,0CAA1C"}
|
|
@@ -5,12 +5,16 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
5
5
|
import React, { PureComponent } from 'react';
|
|
6
6
|
import { findNodeHandle, StyleSheet, requireNativeComponent, View, UIManager, Platform } from 'react-native';
|
|
7
7
|
import styles from './THEOplayerView.style';
|
|
8
|
+
import { THEOplayerNativeAdsAPI } from './ads/THEOplayerNativeAdsAPI';
|
|
9
|
+
import { decodeNanInf } from './utils/TypeUtils';
|
|
8
10
|
export class THEOplayerView extends PureComponent {
|
|
9
11
|
constructor(props) {
|
|
10
12
|
super(props);
|
|
11
13
|
|
|
12
14
|
_defineProperty(this, "_root", void 0);
|
|
13
15
|
|
|
16
|
+
_defineProperty(this, "_adsApi", void 0);
|
|
17
|
+
|
|
14
18
|
_defineProperty(this, "_onSourceChange", () => {
|
|
15
19
|
this.reset();
|
|
16
20
|
|
|
@@ -36,7 +40,9 @@ export class THEOplayerView extends PureComponent {
|
|
|
36
40
|
|
|
37
41
|
_defineProperty(this, "_onLoadedMetadata", event => {
|
|
38
42
|
if (this.props.onLoadedMetadata) {
|
|
39
|
-
this.props.onLoadedMetadata(event.nativeEvent
|
|
43
|
+
this.props.onLoadedMetadata({ ...event.nativeEvent,
|
|
44
|
+
duration: decodeNanInf(event.nativeEvent.duration)
|
|
45
|
+
});
|
|
40
46
|
}
|
|
41
47
|
});
|
|
42
48
|
|
|
@@ -68,6 +74,9 @@ export class THEOplayerView extends PureComponent {
|
|
|
68
74
|
});
|
|
69
75
|
|
|
70
76
|
_defineProperty(this, "_onPlaying", () => {
|
|
77
|
+
// potentially notify change in buffering state
|
|
78
|
+
this.maybeChangeBufferingState(false);
|
|
79
|
+
|
|
71
80
|
if (this.props.onPlaying) {
|
|
72
81
|
this.props.onPlaying();
|
|
73
82
|
}
|
|
@@ -114,7 +123,9 @@ export class THEOplayerView extends PureComponent {
|
|
|
114
123
|
|
|
115
124
|
_defineProperty(this, "_onDurationChange", event => {
|
|
116
125
|
if (this.props.onDurationChange) {
|
|
117
|
-
this.props.onDurationChange(
|
|
126
|
+
this.props.onDurationChange({
|
|
127
|
+
duration: decodeNanInf(event.nativeEvent.duration)
|
|
128
|
+
});
|
|
118
129
|
}
|
|
119
130
|
});
|
|
120
131
|
|
|
@@ -136,6 +147,12 @@ export class THEOplayerView extends PureComponent {
|
|
|
136
147
|
}
|
|
137
148
|
});
|
|
138
149
|
|
|
150
|
+
_defineProperty(this, "_onAdEvent", event => {
|
|
151
|
+
if (this.props.onAdEvent) {
|
|
152
|
+
this.props.onAdEvent(event.nativeEvent);
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
|
|
139
156
|
_defineProperty(this, "_onFullscreenPlayerWillPresent", () => {
|
|
140
157
|
if (this.props.onFullscreenPlayerWillPresent) {
|
|
141
158
|
this.props.onFullscreenPlayerWillPresent();
|
|
@@ -162,6 +179,7 @@ export class THEOplayerView extends PureComponent {
|
|
|
162
179
|
|
|
163
180
|
this._root = /*#__PURE__*/React.createRef();
|
|
164
181
|
this.state = THEOplayerView.initialState;
|
|
182
|
+
this._adsApi = new THEOplayerNativeAdsAPI(this);
|
|
165
183
|
}
|
|
166
184
|
|
|
167
185
|
componentWillUnmount() {
|
|
@@ -188,6 +206,14 @@ export class THEOplayerView extends PureComponent {
|
|
|
188
206
|
});
|
|
189
207
|
}
|
|
190
208
|
|
|
209
|
+
get nativeHandle() {
|
|
210
|
+
return findNodeHandle(this._root.current);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
get ads() {
|
|
214
|
+
return this._adsApi;
|
|
215
|
+
}
|
|
216
|
+
|
|
191
217
|
reset() {
|
|
192
218
|
this.setState(THEOplayerView.initialState);
|
|
193
219
|
}
|
|
@@ -219,8 +245,18 @@ export class THEOplayerView extends PureComponent {
|
|
|
219
245
|
}
|
|
220
246
|
}
|
|
221
247
|
|
|
248
|
+
buildWrapperProps() {
|
|
249
|
+
const {
|
|
250
|
+
targetVideoQuality
|
|
251
|
+
} = this.props;
|
|
252
|
+
return Object.assign({}, { ...this.props,
|
|
253
|
+
// Always pass an array for targetVideoQuality.
|
|
254
|
+
targetVideoQuality: !targetVideoQuality ? [] : Array.isArray(targetVideoQuality) ? targetVideoQuality : [targetVideoQuality]
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
|
|
222
258
|
render() {
|
|
223
|
-
const wrapperProps =
|
|
259
|
+
const wrapperProps = this.buildWrapperProps();
|
|
224
260
|
return /*#__PURE__*/React.createElement(View, {
|
|
225
261
|
style: [styles.base, wrapperProps.style]
|
|
226
262
|
}, /*#__PURE__*/React.createElement(THEOplayerRCTView, _extends({
|
|
@@ -244,6 +280,7 @@ export class THEOplayerView extends PureComponent {
|
|
|
244
280
|
onNativeSegmentNotFound: this._onSegmentNotFound,
|
|
245
281
|
onNativeTextTrackListEvent: this._onTextTrackListEvent,
|
|
246
282
|
onNativeTextTrackEvent: this._onTextTrackEvent,
|
|
283
|
+
onNativeAdEvent: this._onAdEvent,
|
|
247
284
|
onNativeFullscreenPlayerWillPresent: this._onFullscreenPlayerWillPresent,
|
|
248
285
|
onNativeFullscreenPlayerDidPresent: this._onFullscreenPlayerDidPresent,
|
|
249
286
|
onNativeFullscreenPlayerWillDismiss: this._onFullscreenPlayerWillDismiss,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","PureComponent","findNodeHandle","StyleSheet","requireNativeComponent","View","UIManager","Platform","styles","THEOplayerView","constructor","props","reset","onSourceChange","maybeChangeBufferingState","onLoadStart","onLoadedData","event","onLoadedMetadata","nativeEvent","error","setState","onError","onProgress","onPlay","onPlaying","onPause","onSeeking","onSeeked","onEnded","readyState","onReadyStateChange","onTimeUpdate","onDurationChange","onSegmentNotFound","onTextTrackListEvent","onTextTrackEvent","onFullscreenPlayerWillPresent","onFullscreenPlayerDidPresent","onFullscreenPlayerWillDismiss","onFullscreenPlayerDidDismiss","_root","createRef","state","initialState","componentWillUnmount","OS","destroyTheoPlayer","node","current","command","Commands","destroy","params","dispatchViewManagerCommand","seek","time","isNaN","Error","setNativeProps","nativeProps","isBuffering","wasBuffering","paused","newIsBuffering","onBufferingStateChange","render","wrapperProps","Object","assign","base","style","source","_onSourceChange","_onLoadStart","_onLoadedData","_onLoadedMetadata","_onError","_onProgress","_onPlay","_onPlaying","_onPause","_onSeeking","_onSeeked","_onEnded","_onReadStateChange","_onTimeUpdate","_onDurationChange","_onSegmentNotFound","_onTextTrackListEvent","_onTextTrackEvent","_onFullscreenPlayerWillPresent","_onFullscreenPlayerDidPresent","_onFullscreenPlayerWillDismiss","_onFullscreenPlayerDidDismiss","absoluteFill","undefined","LINKING_ERROR","select","ios","default","ComponentName","THEOplayerRCTView","getViewManagerConfig"],"sources":["THEOplayerView.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport { findNodeHandle, StyleSheet, requireNativeComponent, View, UIManager, Platform, NativeSyntheticEvent } from 'react-native';\nimport type {\n DurationChangeEvent,\n ErrorEvent,\n LoadedMetadataEvent,\n ReadyStateChangeEvent,\n THEOplayerViewComponent,\n THEOplayerViewProps,\n TimeUpdateEvent,\n ProgressEvent,\n PlayerError,\n SegmentNotFoundEvent,\n TextTrackListEvent,\n TextTrackEvent,\n} from 'react-native-theoplayer';\n\nimport styles from './THEOplayerView.style';\nimport type { SourceDescription } from 'react-native-theoplayer';\n\ninterface THEOplayerRCTViewProps extends THEOplayerViewProps {\n ref: React.RefObject<THEOplayerViewNativeComponent>;\n src: SourceDescription;\n seek?: number;\n\n onNativeSourceChange: () => void;\n onNativeLoadStart: () => void;\n onNativeLoadedData: () => void;\n onNativeLoadedMetadata: (event: NativeSyntheticEvent<LoadedMetadataEvent>) => void;\n onNativeReadyStateChange?: (event: NativeSyntheticEvent<ReadyStateChangeEvent>) => void;\n onNativeError: (event: NativeSyntheticEvent<ErrorEvent>) => void;\n onNativeProgress: (event: NativeSyntheticEvent<ProgressEvent>) => void;\n onNativePlay: () => void;\n onNativePlaying: () => void;\n onNativePause: () => void;\n onNativeSeeking: () => void;\n onNativeSeeked: () => void;\n onNativeEnded: () => void;\n onNativeTimeUpdate: (event: NativeSyntheticEvent<TimeUpdateEvent>) => void;\n onNativeDurationChange: (event: NativeSyntheticEvent<DurationChangeEvent>) => void;\n onNativeSegmentNotFound: (event: NativeSyntheticEvent<SegmentNotFoundEvent>) => void;\n onNativeTextTrackListEvent: (event: NativeSyntheticEvent<TextTrackListEvent>) => void;\n onNativeTextTrackEvent: (event: NativeSyntheticEvent<TextTrackEvent>) => void;\n onNativeFullscreenPlayerWillPresent?: () => void;\n onNativeFullscreenPlayerDidPresent?: () => void;\n onNativeFullscreenPlayerWillDismiss?: () => void;\n onNativeFullscreenPlayerDidDismiss?: () => void;\n}\n\ninterface THEOplayerRCTViewState {\n isBuffering: boolean;\n error?: PlayerError;\n}\n\ninterface THEOplayerViewNativeComponent extends THEOplayerViewComponent {\n setNativeProps: (props: Partial<THEOplayerRCTViewProps>) => void;\n}\n\nexport class THEOplayerView extends PureComponent<THEOplayerViewProps, THEOplayerRCTViewState> {\n private readonly _root: React.RefObject<THEOplayerViewNativeComponent>;\n\n private static initialState: THEOplayerRCTViewState = {\n isBuffering: false,\n error: undefined,\n };\n\n constructor(props: THEOplayerRCTViewProps) {\n super(props);\n this._root = React.createRef();\n this.state = THEOplayerView.initialState;\n }\n\n componentWillUnmount() {\n if (Platform.OS === 'ios') {\n // on iOS, we trigger an explicit 'destroy' to clean up the underlying THEOplayer\n this.destroyTheoPlayer();\n }\n }\n\n private destroyTheoPlayer() {\n const node = findNodeHandle(this._root.current);\n const command = (UIManager as {[index: string]: any})['THEOplayerRCTView'].Commands.destroy;\n const params: any[] = [];\n UIManager.dispatchViewManagerCommand(node, command, params);\n }\n\n public seek(time: number): void {\n if (isNaN(time)) {\n throw new Error('Specified time is not a number');\n }\n this.setNativeProps({ seek: time });\n }\n\n private reset() {\n this.setState(THEOplayerView.initialState);\n }\n\n private setNativeProps(nativeProps: Partial<THEOplayerRCTViewProps>) {\n if (this._root?.current) {\n this._root.current.setNativeProps(nativeProps);\n }\n }\n\n private maybeChangeBufferingState(isBuffering: boolean) {\n const { isBuffering: wasBuffering, error } = this.state;\n const { paused } = this.props;\n\n // do not change state to buffering in case of an error or if the player is paused\n const newIsBuffering = isBuffering && !error && !paused;\n this.setState({ isBuffering: newIsBuffering });\n\n // notify change in buffering state\n if (newIsBuffering !== wasBuffering && this.props.onBufferingStateChange) {\n this.props.onBufferingStateChange(isBuffering);\n }\n }\n\n private _onSourceChange = () => {\n this.reset();\n\n if (this.props.onSourceChange) {\n this.props.onSourceChange();\n }\n };\n\n private _onLoadStart = () => {\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(true);\n\n if (this.props.onLoadStart) {\n this.props.onLoadStart();\n }\n };\n\n private _onLoadedData = () => {\n if (this.props.onLoadedData) {\n this.props.onLoadedData();\n }\n };\n\n private _onLoadedMetadata = (event: NativeSyntheticEvent<LoadedMetadataEvent>) => {\n if (this.props.onLoadedMetadata) {\n this.props.onLoadedMetadata(event.nativeEvent);\n }\n };\n\n private _onError = (event: NativeSyntheticEvent<ErrorEvent>) => {\n const { error } = event.nativeEvent;\n this.setState({ error });\n\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(false);\n\n if (this.props.onError) {\n this.props.onError(event.nativeEvent);\n }\n };\n\n private _onProgress = (event: NativeSyntheticEvent<ProgressEvent>) => {\n if (this.props.onProgress) {\n this.props.onProgress(event.nativeEvent);\n }\n };\n\n private _onPlay = () => {\n if (this.props.onPlay) {\n this.props.onPlay();\n }\n };\n\n private _onPlaying = () => {\n if (this.props.onPlaying) {\n this.props.onPlaying();\n }\n };\n\n private _onPause = () => {\n if (this.props.onPause) {\n this.props.onPause();\n }\n };\n\n private _onSeeking = () => {\n if (this.props.onSeeking) {\n this.props.onSeeking();\n }\n };\n\n private _onSeeked = () => {\n if (this.props.onSeeked) {\n this.props.onSeeked();\n }\n };\n\n private _onEnded = () => {\n if (this.props.onEnded) {\n this.props.onEnded();\n }\n };\n\n private _onReadStateChange = (event: NativeSyntheticEvent<ReadyStateChangeEvent>) => {\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(event.nativeEvent.readyState < 3);\n\n if (this.props.onReadyStateChange) {\n this.props.onReadyStateChange(event.nativeEvent);\n }\n };\n\n private _onTimeUpdate = (event: NativeSyntheticEvent<TimeUpdateEvent>) => {\n if (this.props.onTimeUpdate) {\n this.props.onTimeUpdate(event.nativeEvent);\n }\n };\n\n private _onDurationChange = (event: NativeSyntheticEvent<DurationChangeEvent>) => {\n if (this.props.onDurationChange) {\n this.props.onDurationChange(event.nativeEvent);\n }\n };\n\n private _onSegmentNotFound = (event: NativeSyntheticEvent<SegmentNotFoundEvent>) => {\n if (this.props.onSegmentNotFound) {\n this.props.onSegmentNotFound(event.nativeEvent);\n }\n };\n\n private _onTextTrackListEvent = (event: NativeSyntheticEvent<TextTrackListEvent>) => {\n if (this.props.onTextTrackListEvent) {\n this.props.onTextTrackListEvent(event.nativeEvent);\n }\n };\n\n private _onTextTrackEvent = (event: NativeSyntheticEvent<TextTrackEvent>) => {\n if (this.props.onTextTrackEvent) {\n this.props.onTextTrackEvent(event.nativeEvent);\n }\n };\n\n private _onFullscreenPlayerWillPresent = () => {\n if (this.props.onFullscreenPlayerWillPresent) {\n this.props.onFullscreenPlayerWillPresent();\n }\n };\n\n private _onFullscreenPlayerDidPresent = () => {\n if (this.props.onFullscreenPlayerDidPresent) {\n this.props.onFullscreenPlayerDidPresent();\n }\n };\n\n private _onFullscreenPlayerWillDismiss = () => {\n if (this.props.onFullscreenPlayerWillDismiss) {\n this.props.onFullscreenPlayerWillDismiss();\n }\n };\n\n private _onFullscreenPlayerDidDismiss = () => {\n if (this.props.onFullscreenPlayerDidDismiss) {\n this.props.onFullscreenPlayerDidDismiss();\n }\n };\n\n public render(): JSX.Element {\n const wrapperProps = Object.assign({}, this.props);\n\n return (\n <View style={[styles.base, wrapperProps.style]}>\n <THEOplayerRCTView\n ref={this._root}\n src={this.props.source || {}}\n onNativeSourceChange={this._onSourceChange}\n onNativeLoadStart={this._onLoadStart}\n onNativeLoadedData={this._onLoadedData}\n onNativeLoadedMetadata={this._onLoadedMetadata}\n onNativeError={this._onError}\n onNativeProgress={this._onProgress}\n onNativePlay={this._onPlay}\n onNativePlaying={this._onPlaying}\n onNativePause={this._onPause}\n onNativeSeeking={this._onSeeking}\n onNativeSeeked={this._onSeeked}\n onNativeEnded={this._onEnded}\n onNativeReadyStateChange={this._onReadStateChange}\n onNativeTimeUpdate={this._onTimeUpdate}\n onNativeDurationChange={this._onDurationChange}\n onNativeSegmentNotFound={this._onSegmentNotFound}\n onNativeTextTrackListEvent={this._onTextTrackListEvent}\n onNativeTextTrackEvent={this._onTextTrackEvent}\n onNativeFullscreenPlayerWillPresent={this._onFullscreenPlayerWillPresent}\n onNativeFullscreenPlayerDidPresent={this._onFullscreenPlayerDidPresent}\n onNativeFullscreenPlayerWillDismiss={this._onFullscreenPlayerWillDismiss}\n onNativeFullscreenPlayerDidDismiss={this._onFullscreenPlayerDidDismiss}\n style={StyleSheet.absoluteFill}\n {...wrapperProps}\n />\n </View>\n );\n }\n}\n\nconst LINKING_ERROR =\n `The package 'react-native-theoplayer' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst ComponentName = 'THEOplayerRCTView';\n\nconst THEOplayerRCTView =\n UIManager.getViewManagerConfig(ComponentName) != null\n ? requireNativeComponent<THEOplayerRCTViewProps>(ComponentName)\n : () => {\n throw new Error(LINKING_ERROR);\n };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","PureComponent","findNodeHandle","StyleSheet","requireNativeComponent","View","UIManager","Platform","styles","THEOplayerNativeAdsAPI","decodeNanInf","THEOplayerView","constructor","props","reset","onSourceChange","maybeChangeBufferingState","onLoadStart","onLoadedData","event","onLoadedMetadata","nativeEvent","duration","error","setState","onError","onProgress","onPlay","onPlaying","onPause","onSeeking","onSeeked","onEnded","readyState","onReadyStateChange","onTimeUpdate","onDurationChange","onSegmentNotFound","onTextTrackListEvent","onTextTrackEvent","onAdEvent","onFullscreenPlayerWillPresent","onFullscreenPlayerDidPresent","onFullscreenPlayerWillDismiss","onFullscreenPlayerDidDismiss","_root","createRef","state","initialState","_adsApi","componentWillUnmount","OS","destroyTheoPlayer","node","current","command","Commands","destroy","params","dispatchViewManagerCommand","seek","time","isNaN","Error","setNativeProps","nativeHandle","ads","nativeProps","isBuffering","wasBuffering","paused","newIsBuffering","onBufferingStateChange","buildWrapperProps","targetVideoQuality","Object","assign","Array","isArray","render","wrapperProps","base","style","source","_onSourceChange","_onLoadStart","_onLoadedData","_onLoadedMetadata","_onError","_onProgress","_onPlay","_onPlaying","_onPause","_onSeeking","_onSeeked","_onEnded","_onReadStateChange","_onTimeUpdate","_onDurationChange","_onSegmentNotFound","_onTextTrackListEvent","_onTextTrackEvent","_onAdEvent","_onFullscreenPlayerWillPresent","_onFullscreenPlayerDidPresent","_onFullscreenPlayerWillDismiss","_onFullscreenPlayerDidDismiss","absoluteFill","undefined","LINKING_ERROR","select","ios","default","ComponentName","THEOplayerRCTView","getViewManagerConfig"],"sources":["THEOplayerView.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport { findNodeHandle, StyleSheet, requireNativeComponent, View, UIManager, Platform, NativeSyntheticEvent, HostComponent } from 'react-native';\nimport type {\n DurationChangeEvent,\n ErrorEvent,\n LoadedMetadataEvent,\n ReadyStateChangeEvent,\n THEOplayerViewComponent,\n THEOplayerViewProps,\n TimeUpdateEvent,\n ProgressEvent,\n PlayerError,\n SegmentNotFoundEvent,\n TextTrackListEvent,\n TextTrackEvent,\n AdEvent,\n AdsAPI,\n} from 'react-native-theoplayer';\n\nimport styles from './THEOplayerView.style';\nimport type { SourceDescription } from 'react-native-theoplayer';\nimport { THEOplayerNativeAdsAPI } from './ads/THEOplayerNativeAdsAPI';\nimport { decodeNanInf } from './utils/TypeUtils';\n\ninterface THEOplayerRCTViewProps extends THEOplayerViewProps {\n ref: React.RefObject<THEOplayerViewNativeComponent>;\n src: SourceDescription;\n seek?: number;\n\n onNativeSourceChange: () => void;\n onNativeLoadStart: () => void;\n onNativeLoadedData: () => void;\n onNativeLoadedMetadata: (event: NativeSyntheticEvent<LoadedMetadataEvent>) => void;\n onNativeReadyStateChange?: (event: NativeSyntheticEvent<ReadyStateChangeEvent>) => void;\n onNativeError: (event: NativeSyntheticEvent<ErrorEvent>) => void;\n onNativeProgress: (event: NativeSyntheticEvent<ProgressEvent>) => void;\n onNativePlay: () => void;\n onNativePlaying: () => void;\n onNativePause: () => void;\n onNativeSeeking: () => void;\n onNativeSeeked: () => void;\n onNativeEnded: () => void;\n onNativeTimeUpdate: (event: NativeSyntheticEvent<TimeUpdateEvent>) => void;\n onNativeDurationChange: (event: NativeSyntheticEvent<DurationChangeEvent>) => void;\n onNativeSegmentNotFound: (event: NativeSyntheticEvent<SegmentNotFoundEvent>) => void;\n onNativeTextTrackListEvent: (event: NativeSyntheticEvent<TextTrackListEvent>) => void;\n onNativeTextTrackEvent: (event: NativeSyntheticEvent<TextTrackEvent>) => void;\n onNativeAdEvent: (event: NativeSyntheticEvent<AdEvent>) => void;\n onNativeFullscreenPlayerWillPresent?: () => void;\n onNativeFullscreenPlayerDidPresent?: () => void;\n onNativeFullscreenPlayerWillDismiss?: () => void;\n onNativeFullscreenPlayerDidDismiss?: () => void;\n}\n\ninterface THEOplayerRCTViewState {\n isBuffering: boolean;\n error?: PlayerError;\n}\n\ninterface THEOplayerViewNativeComponent extends THEOplayerViewComponent, HostComponent<THEOplayerViewProps> {\n setNativeProps: (props: Partial<THEOplayerRCTViewProps>) => void;\n}\n\nexport class THEOplayerView extends PureComponent<THEOplayerViewProps, THEOplayerRCTViewState> implements THEOplayerViewComponent {\n private readonly _root: React.RefObject<THEOplayerViewNativeComponent>;\n private readonly _adsApi: THEOplayerNativeAdsAPI;\n\n private static initialState: THEOplayerRCTViewState = {\n isBuffering: false,\n error: undefined,\n };\n\n constructor(props: THEOplayerRCTViewProps) {\n super(props);\n this._root = React.createRef();\n this.state = THEOplayerView.initialState;\n this._adsApi = new THEOplayerNativeAdsAPI(this);\n }\n\n componentWillUnmount() {\n if (Platform.OS === 'ios') {\n // on iOS, we trigger an explicit 'destroy' to clean up the underlying THEOplayer\n this.destroyTheoPlayer();\n }\n }\n\n private destroyTheoPlayer() {\n const node = findNodeHandle(this._root.current);\n const command = (UIManager as { [index: string]: any })['THEOplayerRCTView'].Commands.destroy;\n const params: any[] = [];\n UIManager.dispatchViewManagerCommand(node, command, params);\n }\n\n public seek(time: number): void {\n if (isNaN(time)) {\n throw new Error('Specified time is not a number');\n }\n this.setNativeProps({ seek: time });\n }\n\n public get nativeHandle(): number | null {\n return findNodeHandle(this._root.current);\n }\n\n public get ads(): AdsAPI {\n return this._adsApi;\n }\n\n private reset() {\n this.setState(THEOplayerView.initialState);\n }\n\n private setNativeProps(nativeProps: Partial<THEOplayerRCTViewProps>) {\n if (this._root?.current) {\n this._root.current.setNativeProps(nativeProps);\n }\n }\n\n private maybeChangeBufferingState(isBuffering: boolean) {\n const { isBuffering: wasBuffering, error } = this.state;\n const { paused } = this.props;\n\n // do not change state to buffering in case of an error or if the player is paused\n const newIsBuffering = isBuffering && !error && !paused;\n this.setState({ isBuffering: newIsBuffering });\n\n // notify change in buffering state\n if (newIsBuffering !== wasBuffering && this.props.onBufferingStateChange) {\n this.props.onBufferingStateChange(isBuffering);\n }\n }\n\n private _onSourceChange = () => {\n this.reset();\n\n if (this.props.onSourceChange) {\n this.props.onSourceChange();\n }\n };\n\n private _onLoadStart = () => {\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(true);\n\n if (this.props.onLoadStart) {\n this.props.onLoadStart();\n }\n };\n\n private _onLoadedData = () => {\n if (this.props.onLoadedData) {\n this.props.onLoadedData();\n }\n };\n\n private _onLoadedMetadata = (event: NativeSyntheticEvent<LoadedMetadataEvent>) => {\n if (this.props.onLoadedMetadata) {\n this.props.onLoadedMetadata({\n ...event.nativeEvent,\n duration: decodeNanInf(event.nativeEvent.duration),\n });\n }\n };\n\n private _onError = (event: NativeSyntheticEvent<ErrorEvent>) => {\n const { error } = event.nativeEvent;\n this.setState({ error });\n\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(false);\n\n if (this.props.onError) {\n this.props.onError(event.nativeEvent);\n }\n };\n\n private _onProgress = (event: NativeSyntheticEvent<ProgressEvent>) => {\n if (this.props.onProgress) {\n this.props.onProgress(event.nativeEvent);\n }\n };\n\n private _onPlay = () => {\n if (this.props.onPlay) {\n this.props.onPlay();\n }\n };\n\n private _onPlaying = () => {\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(false);\n\n if (this.props.onPlaying) {\n this.props.onPlaying();\n }\n };\n\n private _onPause = () => {\n if (this.props.onPause) {\n this.props.onPause();\n }\n };\n\n private _onSeeking = () => {\n if (this.props.onSeeking) {\n this.props.onSeeking();\n }\n };\n\n private _onSeeked = () => {\n if (this.props.onSeeked) {\n this.props.onSeeked();\n }\n };\n\n private _onEnded = () => {\n if (this.props.onEnded) {\n this.props.onEnded();\n }\n };\n\n private _onReadStateChange = (event: NativeSyntheticEvent<ReadyStateChangeEvent>) => {\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(event.nativeEvent.readyState < 3);\n\n if (this.props.onReadyStateChange) {\n this.props.onReadyStateChange(event.nativeEvent);\n }\n };\n\n private _onTimeUpdate = (event: NativeSyntheticEvent<TimeUpdateEvent>) => {\n if (this.props.onTimeUpdate) {\n this.props.onTimeUpdate(event.nativeEvent);\n }\n };\n\n private _onDurationChange = (event: NativeSyntheticEvent<DurationChangeEvent>) => {\n if (this.props.onDurationChange) {\n this.props.onDurationChange({\n duration: decodeNanInf(event.nativeEvent.duration),\n });\n }\n };\n\n private _onSegmentNotFound = (event: NativeSyntheticEvent<SegmentNotFoundEvent>) => {\n if (this.props.onSegmentNotFound) {\n this.props.onSegmentNotFound(event.nativeEvent);\n }\n };\n\n private _onTextTrackListEvent = (event: NativeSyntheticEvent<TextTrackListEvent>) => {\n if (this.props.onTextTrackListEvent) {\n this.props.onTextTrackListEvent(event.nativeEvent);\n }\n };\n\n private _onTextTrackEvent = (event: NativeSyntheticEvent<TextTrackEvent>) => {\n if (this.props.onTextTrackEvent) {\n this.props.onTextTrackEvent(event.nativeEvent);\n }\n };\n\n private _onAdEvent = (event: NativeSyntheticEvent<AdEvent>) => {\n if (this.props.onAdEvent) {\n this.props.onAdEvent(event.nativeEvent);\n }\n };\n\n private _onFullscreenPlayerWillPresent = () => {\n if (this.props.onFullscreenPlayerWillPresent) {\n this.props.onFullscreenPlayerWillPresent();\n }\n };\n\n private _onFullscreenPlayerDidPresent = () => {\n if (this.props.onFullscreenPlayerDidPresent) {\n this.props.onFullscreenPlayerDidPresent();\n }\n };\n\n private _onFullscreenPlayerWillDismiss = () => {\n if (this.props.onFullscreenPlayerWillDismiss) {\n this.props.onFullscreenPlayerWillDismiss();\n }\n };\n\n private _onFullscreenPlayerDidDismiss = () => {\n if (this.props.onFullscreenPlayerDidDismiss) {\n this.props.onFullscreenPlayerDidDismiss();\n }\n };\n\n private buildWrapperProps(): THEOplayerViewProps {\n const { targetVideoQuality } = this.props;\n return Object.assign(\n {},\n {\n ...this.props,\n // Always pass an array for targetVideoQuality.\n targetVideoQuality: !targetVideoQuality ? [] : Array.isArray(targetVideoQuality) ? targetVideoQuality : [targetVideoQuality],\n },\n );\n }\n\n public render(): JSX.Element {\n const wrapperProps = this.buildWrapperProps();\n return (\n <View style={[styles.base, wrapperProps.style]}>\n <THEOplayerRCTView\n ref={this._root}\n src={this.props.source || {}}\n onNativeSourceChange={this._onSourceChange}\n onNativeLoadStart={this._onLoadStart}\n onNativeLoadedData={this._onLoadedData}\n onNativeLoadedMetadata={this._onLoadedMetadata}\n onNativeError={this._onError}\n onNativeProgress={this._onProgress}\n onNativePlay={this._onPlay}\n onNativePlaying={this._onPlaying}\n onNativePause={this._onPause}\n onNativeSeeking={this._onSeeking}\n onNativeSeeked={this._onSeeked}\n onNativeEnded={this._onEnded}\n onNativeReadyStateChange={this._onReadStateChange}\n onNativeTimeUpdate={this._onTimeUpdate}\n onNativeDurationChange={this._onDurationChange}\n onNativeSegmentNotFound={this._onSegmentNotFound}\n onNativeTextTrackListEvent={this._onTextTrackListEvent}\n onNativeTextTrackEvent={this._onTextTrackEvent}\n onNativeAdEvent={this._onAdEvent}\n onNativeFullscreenPlayerWillPresent={this._onFullscreenPlayerWillPresent}\n onNativeFullscreenPlayerDidPresent={this._onFullscreenPlayerDidPresent}\n onNativeFullscreenPlayerWillDismiss={this._onFullscreenPlayerWillDismiss}\n onNativeFullscreenPlayerDidDismiss={this._onFullscreenPlayerDidDismiss}\n style={StyleSheet.absoluteFill}\n {...wrapperProps}\n />\n </View>\n );\n }\n}\n\nconst LINKING_ERROR =\n `The package 'react-native-theoplayer' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst ComponentName = 'THEOplayerRCTView';\n\nconst THEOplayerRCTView =\n UIManager.getViewManagerConfig(ComponentName) != null\n ? requireNativeComponent<THEOplayerRCTViewProps>(ComponentName)\n : () => {\n throw new Error(LINKING_ERROR);\n };\n"],"mappings":"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"}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
2
|
|
|
3
3
|
import React, { PureComponent } from 'react';
|
|
4
|
-
import { TextTrackEventType, TrackListEventType } from 'react-native-theoplayer';
|
|
4
|
+
import { AdEventNames, TextTrackEventType, TrackListEventType } from 'react-native-theoplayer';
|
|
5
5
|
import * as THEOplayer from 'theoplayer';
|
|
6
|
-
import { fromNativeCue, fromNativeMediaTrack, fromNativeTextTrack } from './web/TrackUtils';
|
|
6
|
+
import { findNativeQualitiesByUid, fromNativeCue, fromNativeMediaTrack, fromNativeTextTrack } from './web/TrackUtils';
|
|
7
|
+
import { THEOplayerWebAdsAPI } from './ads/THEOplayerWebAdsAPI';
|
|
7
8
|
export class THEOplayerView extends PureComponent {
|
|
8
9
|
constructor(props) {
|
|
9
10
|
super(props);
|
|
10
11
|
|
|
11
12
|
_defineProperty(this, "_player", null);
|
|
12
13
|
|
|
14
|
+
_defineProperty(this, "_adsApi", void 0);
|
|
15
|
+
|
|
13
16
|
_defineProperty(this, "onAddTextTrackCue", track => event => {
|
|
14
17
|
const {
|
|
15
18
|
onTextTrackEvent
|
|
@@ -51,12 +54,14 @@ export class THEOplayerView extends PureComponent {
|
|
|
51
54
|
});
|
|
52
55
|
|
|
53
56
|
this.state = THEOplayerView.initialState;
|
|
57
|
+
this._adsApi = new THEOplayerWebAdsAPI(this);
|
|
54
58
|
}
|
|
55
59
|
|
|
56
60
|
componentDidMount() {
|
|
57
61
|
const {
|
|
58
62
|
config,
|
|
59
|
-
source
|
|
63
|
+
source,
|
|
64
|
+
abrConfig
|
|
60
65
|
} = this.props;
|
|
61
66
|
const element = document.querySelector('.theoplayer-container');
|
|
62
67
|
|
|
@@ -75,6 +80,8 @@ export class THEOplayerView extends PureComponent {
|
|
|
75
80
|
});
|
|
76
81
|
}
|
|
77
82
|
|
|
83
|
+
Object.assign(this._player.abr, abrConfig);
|
|
84
|
+
|
|
78
85
|
this._player.prepareWithUserAction();
|
|
79
86
|
|
|
80
87
|
this._player.source = source;
|
|
@@ -97,6 +104,14 @@ export class THEOplayerView extends PureComponent {
|
|
|
97
104
|
}
|
|
98
105
|
}
|
|
99
106
|
|
|
107
|
+
get ads() {
|
|
108
|
+
return this._adsApi;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
get nativePlayer() {
|
|
112
|
+
return this._player;
|
|
113
|
+
}
|
|
114
|
+
|
|
100
115
|
reset() {
|
|
101
116
|
this.setState(THEOplayerView.initialState);
|
|
102
117
|
}
|
|
@@ -113,6 +128,7 @@ export class THEOplayerView extends PureComponent {
|
|
|
113
128
|
selectedTextTrack,
|
|
114
129
|
selectedAudioTrack,
|
|
115
130
|
selectedVideoTrack,
|
|
131
|
+
targetVideoQuality,
|
|
116
132
|
source,
|
|
117
133
|
muted,
|
|
118
134
|
playbackRate,
|
|
@@ -123,6 +139,7 @@ export class THEOplayerView extends PureComponent {
|
|
|
123
139
|
selectedTextTrack: prevSelectedTextTrack,
|
|
124
140
|
selectedAudioTrack: prevSelectedAudioTrack,
|
|
125
141
|
selectedVideoTrack: prevSelectedVideoTrack,
|
|
142
|
+
targetVideoQuality: prevTargetVideoQuality,
|
|
126
143
|
source: prevSource,
|
|
127
144
|
muted: wasMuted,
|
|
128
145
|
playbackRate: prevPlaybackRate,
|
|
@@ -193,6 +210,14 @@ export class THEOplayerView extends PureComponent {
|
|
|
193
210
|
videoTrack.enabled = videoTrack.uid === selectedVideoTrack;
|
|
194
211
|
});
|
|
195
212
|
}
|
|
213
|
+
|
|
214
|
+
if (targetVideoQuality != prevTargetVideoQuality) {
|
|
215
|
+
const videoTrack = this._player.videoTracks.find(videoTrack => videoTrack.uid === selectedVideoTrack);
|
|
216
|
+
|
|
217
|
+
if (videoTrack) {
|
|
218
|
+
videoTrack.targetQuality = findNativeQualitiesByUid(videoTrack, targetVideoQuality);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
196
221
|
}
|
|
197
222
|
|
|
198
223
|
maybeChangeBufferingState(isBuffering) {
|
|
@@ -215,6 +240,8 @@ export class THEOplayerView extends PureComponent {
|
|
|
215
240
|
}
|
|
216
241
|
|
|
217
242
|
addEventListeners() {
|
|
243
|
+
var _player$ads;
|
|
244
|
+
|
|
218
245
|
const player = this._player;
|
|
219
246
|
|
|
220
247
|
if (!player) {
|
|
@@ -268,7 +295,7 @@ export class THEOplayerView extends PureComponent {
|
|
|
268
295
|
textTracks: player.textTracks.map(textTrack => fromNativeTextTrack(textTrack)),
|
|
269
296
|
audioTracks: player.audioTracks.map(audioTrack => fromNativeMediaTrack(audioTrack)),
|
|
270
297
|
videoTracks: player.videoTracks.map(videoTrack => fromNativeMediaTrack(videoTrack)),
|
|
271
|
-
duration:
|
|
298
|
+
duration: 1e3 * player.duration,
|
|
272
299
|
selectedTextTrack: (_player$textTracks$fi = player.textTracks.find(track => track.mode === 'showing')) === null || _player$textTracks$fi === void 0 ? void 0 : _player$textTracks$fi.uid,
|
|
273
300
|
selectedVideoTrack: (_player$videoTracks$f = player.videoTracks.find(track => track.enabled)) === null || _player$videoTracks$f === void 0 ? void 0 : _player$videoTracks$f.uid,
|
|
274
301
|
selectedAudioTrack: (_player$audioTracks$f = player.audioTracks.find(track => track.enabled)) === null || _player$audioTracks$f === void 0 ? void 0 : _player$audioTracks$f.uid
|
|
@@ -328,6 +355,8 @@ export class THEOplayerView extends PureComponent {
|
|
|
328
355
|
}
|
|
329
356
|
});
|
|
330
357
|
player.addEventListener('playing', () => {
|
|
358
|
+
// potentially notify change in buffering state
|
|
359
|
+
this.maybeChangeBufferingState(false);
|
|
331
360
|
const {
|
|
332
361
|
onPlaying
|
|
333
362
|
} = this.props;
|
|
@@ -472,6 +501,15 @@ export class THEOplayerView extends PureComponent {
|
|
|
472
501
|
});
|
|
473
502
|
}
|
|
474
503
|
});
|
|
504
|
+
(_player$ads = player.ads) === null || _player$ads === void 0 ? void 0 : _player$ads.addEventListener(AdEventNames, event => {
|
|
505
|
+
const {
|
|
506
|
+
onAdEvent
|
|
507
|
+
} = this.props;
|
|
508
|
+
|
|
509
|
+
if (onAdEvent) {
|
|
510
|
+
onAdEvent(event);
|
|
511
|
+
}
|
|
512
|
+
});
|
|
475
513
|
}
|
|
476
514
|
|
|
477
515
|
render() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","PureComponent","TextTrackEventType","TrackListEventType","THEOplayer","fromNativeCue","fromNativeMediaTrack","fromNativeTextTrack","THEOplayerView","constructor","props","track","event","onTextTrackEvent","cue","type","AddCue","trackUid","uid","RemoveCue","state","initialState","componentDidMount","config","source","element","document","querySelector","chromeless","undefined","_player","ChromelessPlayer","libraryLocation","Player","ui","fluid","prepareWithUserAction","addEventListeners","componentWillUnmount","destroy","seek","time","isNaN","Error","currentTime","reset","setState","componentDidUpdate","prevProps","paused","volume","selectedTextTrack","selectedAudioTrack","selectedVideoTrack","muted","playbackRate","fullscreen","wasPaused","prevSelectedTextTrack","prevSelectedAudioTrack","prevSelectedVideoTrack","prevSource","wasMuted","prevPlaybackRate","wasFullscreen","prevVolume","pause","play","Boolean","Number","onFullscreenPlayerWillPresent","onFullscreenPlayerWillDismiss","appContainer","getElementById","requestFullscreen","then","exitFullscreen","textTracks","forEach","textTrack","mode","audioTracks","audioTrack","enabled","videoTracks","videoTrack","maybeChangeBufferingState","isBuffering","wasBuffering","error","newIsBuffering","onBufferingStateChange","player","addEventListener","onSourceChange","onLoadStart","onLoadedData","onLoadedMetadata","map","duration","find","errorObject","errorCode","code","toString","errorMessage","message","onError","onProgress","seekable","i","length","push","start","end","onPlay","onPlaying","onPause","onSeeking","onSeeked","onEnded","readyState","onReadyStateChange","onTimeUpdate","currentProgramDateTime","getTime","onDurationChange","onSegmentNotFound","segmentStartTime","retryCount","presentation","presentationMode","onFullscreenPlayerDidPresent","onFullscreenPlayerDidDismiss","onTextTrackListEvent","onAddTextTrackCue","onRemoveTextTrackCue","AddTrack","removeEventListener","RemoveTrack","render"],"sources":["THEOplayerView.web.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\n\nimport type { PlayerError, TextTrack, THEOplayerViewProps, TimeRange } from 'react-native-theoplayer';\nimport { TextTrackEventType, TrackListEventType } from 'react-native-theoplayer';\nimport type { Event, TextTrackCue as NativeTextTrackCue } from 'theoplayer';\n\nimport type {\n AddTrackEvent,\n MediaTrack as NativeMediaTrack,\n PresentationModeChangeEvent,\n ReadyStateChangeEvent as NativeReadyStateChangeEvent,\n RemoveTrackEvent,\n TextTrack as NativeTextTrack,\n} from 'theoplayer';\nimport * as THEOplayer from 'theoplayer';\nimport { fromNativeCue, fromNativeMediaTrack, fromNativeTextTrack } from './web/TrackUtils';\n\ninterface THEOplayerRCTViewState {\n isBuffering: boolean;\n error?: PlayerError;\n}\n\nexport class THEOplayerView extends PureComponent<THEOplayerViewProps, THEOplayerRCTViewState> {\n private _player: THEOplayer.ChromelessPlayer | null = null;\n\n private static initialState: THEOplayerRCTViewState = {\n isBuffering: false,\n error: undefined,\n };\n\n constructor(props: THEOplayerViewProps) {\n super(props);\n this.state = THEOplayerView.initialState;\n }\n\n componentDidMount() {\n const { config, source } = this.props;\n const element = document.querySelector('.theoplayer-container') as HTMLElement;\n if (config?.chromeless === true || config?.chromeless === undefined) {\n this._player = new THEOplayer.ChromelessPlayer(element, {\n libraryLocation: 'node_modules/theoplayer',\n ...config,\n });\n } else {\n this._player = new THEOplayer.Player(element, {\n libraryLocation: 'node_modules/theoplayer',\n ...config,\n ui: {\n fluid: true,\n },\n });\n }\n this._player.prepareWithUserAction();\n this._player.source = source;\n this.addEventListeners();\n }\n\n componentWillUnmount() {\n if (this._player) {\n this._player.destroy();\n }\n }\n\n public seek(time: number): void {\n if (isNaN(time)) {\n throw new Error('Specified time is not a number');\n }\n if (this._player) {\n this._player.currentTime = time / 1e3;\n }\n }\n\n private reset() {\n this.setState(THEOplayerView.initialState);\n }\n\n componentDidUpdate(prevProps: Readonly<THEOplayerViewProps>) {\n if (!this._player) {\n return;\n }\n // track property changes\n const { paused, volume, selectedTextTrack, selectedAudioTrack, selectedVideoTrack, source, muted, playbackRate, fullscreen } = this.props;\n const {\n paused: wasPaused,\n selectedTextTrack: prevSelectedTextTrack,\n selectedAudioTrack: prevSelectedAudioTrack,\n selectedVideoTrack: prevSelectedVideoTrack,\n source: prevSource,\n muted: wasMuted,\n playbackRate: prevPlaybackRate,\n fullscreen: wasFullscreen,\n volume: prevVolume,\n } = prevProps;\n\n if (source !== prevSource) {\n this._player.source = source;\n }\n if (paused !== wasPaused) {\n if (paused) {\n this._player.pause();\n } else {\n this._player.play();\n }\n }\n if (muted !== wasMuted) {\n this._player.muted = Boolean(muted);\n }\n if (volume !== prevVolume) {\n this._player.volume = Number(volume);\n }\n if (fullscreen !== wasFullscreen) {\n const { onFullscreenPlayerWillPresent, onFullscreenPlayerWillDismiss } = this.props;\n const appContainer = document.getElementById('app');\n if (fullscreen) {\n if (onFullscreenPlayerWillPresent) {\n onFullscreenPlayerWillPresent();\n }\n appContainer?.requestFullscreen().then();\n } else {\n if (onFullscreenPlayerWillDismiss) {\n onFullscreenPlayerWillDismiss();\n }\n document.exitFullscreen().then();\n }\n }\n if (playbackRate && playbackRate !== prevPlaybackRate) {\n this._player.playbackRate = playbackRate;\n }\n if (selectedTextTrack !== prevSelectedTextTrack) {\n this._player.textTracks.forEach((textTrack: NativeTextTrack) => {\n textTrack.mode = textTrack.uid === selectedTextTrack ? 'showing' : 'disabled';\n });\n }\n if (selectedAudioTrack !== prevSelectedAudioTrack) {\n this._player.audioTracks.forEach((audioTrack: NativeMediaTrack) => {\n audioTrack.enabled = audioTrack.uid === selectedAudioTrack;\n });\n }\n if (selectedVideoTrack !== prevSelectedVideoTrack) {\n this._player.videoTracks.forEach((videoTrack: NativeMediaTrack) => {\n videoTrack.enabled = videoTrack.uid === selectedVideoTrack;\n });\n }\n }\n\n private maybeChangeBufferingState(isBuffering: boolean) {\n const { isBuffering: wasBuffering, error } = this.state;\n const { paused } = this.props;\n\n // do not change state to buffering in case of an error or if the player is paused\n const newIsBuffering = isBuffering && !error && !paused;\n this.setState({ isBuffering: newIsBuffering });\n\n // notify change in buffering state\n if (newIsBuffering !== wasBuffering && this.props.onBufferingStateChange) {\n this.props.onBufferingStateChange(newIsBuffering);\n }\n }\n\n private onAddTextTrackCue = (track: NativeTextTrack) => (event: Event<'addcue'>) => {\n const { onTextTrackEvent } = this.props;\n if (onTextTrackEvent) {\n const { cue } = event as unknown as { cue: NativeTextTrackCue };\n if (cue) {\n onTextTrackEvent({\n type: TextTrackEventType.AddCue,\n trackUid: track.uid,\n cue: fromNativeCue(cue),\n });\n }\n }\n };\n\n private onRemoveTextTrackCue = (track: NativeTextTrack) => (event: Event<'removecue'>) => {\n const { onTextTrackEvent } = this.props;\n if (onTextTrackEvent) {\n const { cue } = event as unknown as { cue: NativeTextTrackCue };\n if (cue) {\n onTextTrackEvent({\n type: TextTrackEventType.RemoveCue,\n trackUid: track.uid,\n cue: fromNativeCue(cue),\n });\n }\n }\n };\n\n private addEventListeners() {\n const player = this._player;\n if (!player) {\n return;\n }\n\n player.addEventListener('sourcechange', () => {\n const { onSourceChange, paused } = this.props;\n\n this.reset();\n if (!paused) {\n player.play();\n }\n if (onSourceChange) {\n onSourceChange();\n }\n });\n\n player.addEventListener('loadstart', () => {\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(true);\n\n const { onLoadStart } = this.props;\n if (onLoadStart) {\n onLoadStart();\n }\n });\n\n player.addEventListener('loadeddata', () => {\n const { onLoadedData } = this.props;\n if (onLoadedData) {\n onLoadedData();\n }\n });\n\n player.addEventListener('loadedmetadata', () => {\n const { onLoadedMetadata } = this.props;\n if (onLoadedMetadata) {\n onLoadedMetadata({\n textTracks: player.textTracks.map((textTrack: NativeTextTrack) => fromNativeTextTrack(textTrack)),\n audioTracks: player.audioTracks.map((audioTrack: NativeMediaTrack) => fromNativeMediaTrack(audioTrack)),\n videoTracks: player.videoTracks.map((videoTrack: NativeMediaTrack) => fromNativeMediaTrack(videoTrack)),\n duration: 1e03 * player.duration,\n selectedTextTrack: player.textTracks.find((track: NativeTextTrack) => track.mode === 'showing')?.uid,\n selectedVideoTrack: player.videoTracks.find((track: NativeMediaTrack) => track.enabled)?.uid,\n selectedAudioTrack: player.audioTracks.find((track: NativeMediaTrack) => track.enabled)?.uid,\n });\n }\n });\n\n player.addEventListener('error', (event) => {\n const { errorObject } = event;\n const error = {\n errorCode: errorObject.code.toString(),\n errorMessage: errorObject.message,\n };\n this.setState({ error });\n\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(false);\n\n const { onError } = this.props;\n if (onError) {\n onError({ error });\n }\n });\n\n player.addEventListener('progress', () => {\n const { onProgress } = this.props;\n if (onProgress) {\n const seekable: TimeRange[] = [];\n for (let i = 0; i < player.seekable.length; i++) {\n seekable.push({\n start: player.seekable.start(i) * 1e3,\n end: player.seekable.end(i) * 1e3,\n });\n }\n onProgress({ seekable });\n }\n });\n\n player.addEventListener('play', () => {\n const { onPlay } = this.props;\n if (onPlay) {\n onPlay();\n }\n });\n\n player.addEventListener('playing', () => {\n const { onPlaying } = this.props;\n if (onPlaying) {\n onPlaying();\n }\n });\n\n player.addEventListener('pause', () => {\n const { onPause } = this.props;\n if (onPause) {\n onPause();\n }\n });\n\n player.addEventListener('seeking', () => {\n const { onSeeking } = this.props;\n if (onSeeking) {\n onSeeking();\n }\n });\n\n player.addEventListener('seeked', () => {\n const { onSeeked } = this.props;\n if (onSeeked) {\n onSeeked();\n }\n });\n\n player.addEventListener('ended', () => {\n const { onEnded } = this.props;\n if (onEnded) {\n onEnded();\n }\n });\n\n player.addEventListener('readystatechange', (event: NativeReadyStateChangeEvent) => {\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(event.readyState < 3);\n\n const { onReadyStateChange } = this.props;\n if (onReadyStateChange) {\n onReadyStateChange({ readyState: event.readyState });\n }\n });\n\n player.addEventListener('timeupdate', () => {\n const { onTimeUpdate } = this.props;\n if (onTimeUpdate) {\n onTimeUpdate({\n currentTime: player.currentTime * 1e3,\n currentProgramDateTime: player.currentProgramDateTime?.getTime(),\n });\n }\n });\n player.addEventListener('durationchange', (event) => {\n const { onDurationChange } = this.props;\n if (onDurationChange) {\n onDurationChange({\n duration: event.duration * 1e3,\n });\n }\n });\n player.addEventListener('segmentnotfound', () => {\n const { onSegmentNotFound } = this.props;\n if (onSegmentNotFound) {\n onSegmentNotFound({\n segmentStartTime: 0,\n error: 'Segment not found',\n retryCount: -1,\n });\n }\n });\n player.presentation.addEventListener('presentationmodechange', (event: PresentationModeChangeEvent) => {\n const { presentationMode } = event;\n const { onFullscreenPlayerDidPresent, onFullscreenPlayerDidDismiss } = this.props;\n if (presentationMode === 'fullscreen') {\n if (onFullscreenPlayerDidPresent) {\n onFullscreenPlayerDidPresent();\n }\n } else if (presentationMode === 'inline') {\n if (onFullscreenPlayerDidDismiss) {\n onFullscreenPlayerDidDismiss();\n }\n }\n });\n player.textTracks.addEventListener('addtrack', (event: AddTrackEvent) => {\n const { onTextTrackListEvent } = this.props;\n const track = event.track as NativeTextTrack;\n track.addEventListener('addcue', this.onAddTextTrackCue(track));\n track.addEventListener('removecue', this.onRemoveTextTrackCue(track));\n\n if (onTextTrackListEvent) {\n onTextTrackListEvent({\n type: TrackListEventType.AddTrack,\n track: track as TextTrack,\n });\n }\n });\n player.textTracks.addEventListener('removetrack', (event: RemoveTrackEvent) => {\n const { onTextTrackListEvent } = this.props;\n const track = event.track as NativeTextTrack;\n track.removeEventListener('addcue', this.onAddTextTrackCue(track));\n track.removeEventListener('removecue', this.onRemoveTextTrackCue(track));\n\n if (onTextTrackListEvent) {\n onTextTrackListEvent({\n type: TrackListEventType.RemoveTrack,\n track: event.track as unknown as TextTrack,\n });\n }\n });\n }\n\n public render(): JSX.Element {\n const { config } = this.props;\n const chromeless = config?.chromeless === undefined || config?.chromeless === true;\n\n return (\n <div id={'theoplayer-wrapper'}>\n <div className={chromeless ? 'theoplayer-container' : 'theoplayer-container video-js theoplayer-skin'} />\n </div>\n );\n }\n}\n"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,aAAhB,QAAqC,OAArC;AAGA,SAASC,kBAAT,EAA6BC,kBAA7B,QAAuD,yBAAvD;AAWA,OAAO,KAAKC,UAAZ,MAA4B,YAA5B;AACA,SAASC,aAAT,EAAwBC,oBAAxB,EAA8CC,mBAA9C,QAAyE,kBAAzE;AAOA,OAAO,MAAMC,cAAN,SAA6BP,aAA7B,CAAwF;EAQ7FQ,WAAW,CAACC,KAAD,EAA6B;IACtC,MAAMA,KAAN;;IADsC,iCAPc,IAOd;;IAAA,2CAiIXC,KAAD,IAA6BC,KAAD,IAA4B;MAClF,MAAM;QAAEC;MAAF,IAAuB,KAAKH,KAAlC;;MACA,IAAIG,gBAAJ,EAAsB;QACpB,MAAM;UAAEC;QAAF,IAAUF,KAAhB;;QACA,IAAIE,GAAJ,EAAS;UACPD,gBAAgB,CAAC;YACfE,IAAI,EAAEb,kBAAkB,CAACc,MADV;YAEfC,QAAQ,EAAEN,KAAK,CAACO,GAFD;YAGfJ,GAAG,EAAET,aAAa,CAACS,GAAD;UAHH,CAAD,CAAhB;QAKD;MACF;IACF,CA7IuC;;IAAA,8CA+IRH,KAAD,IAA6BC,KAAD,IAA+B;MACxF,MAAM;QAAEC;MAAF,IAAuB,KAAKH,KAAlC;;MACA,IAAIG,gBAAJ,EAAsB;QACpB,MAAM;UAAEC;QAAF,IAAUF,KAAhB;;QACA,IAAIE,GAAJ,EAAS;UACPD,gBAAgB,CAAC;YACfE,IAAI,EAAEb,kBAAkB,CAACiB,SADV;YAEfF,QAAQ,EAAEN,KAAK,CAACO,GAFD;YAGfJ,GAAG,EAAET,aAAa,CAACS,GAAD;UAHH,CAAD,CAAhB;QAKD;MACF;IACF,CA3JuC;;IAEtC,KAAKM,KAAL,GAAaZ,cAAc,CAACa,YAA5B;EACD;;EAEDC,iBAAiB,GAAG;IAClB,MAAM;MAAEC,MAAF;MAAUC;IAAV,IAAqB,KAAKd,KAAhC;IACA,MAAMe,OAAO,GAAGC,QAAQ,CAACC,aAAT,CAAuB,uBAAvB,CAAhB;;IACA,IAAI,CAAAJ,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAEK,UAAR,MAAuB,IAAvB,IAA+B,CAAAL,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAEK,UAAR,MAAuBC,SAA1D,EAAqE;MACnE,KAAKC,OAAL,GAAe,IAAI1B,UAAU,CAAC2B,gBAAf,CAAgCN,OAAhC,EAAyC;QACtDO,eAAe,EAAE,yBADqC;QAEtD,GAAGT;MAFmD,CAAzC,CAAf;IAID,CALD,MAKO;MACL,KAAKO,OAAL,GAAe,IAAI1B,UAAU,CAAC6B,MAAf,CAAsBR,OAAtB,EAA+B;QAC5CO,eAAe,EAAE,yBAD2B;QAE5C,GAAGT,MAFyC;QAG5CW,EAAE,EAAE;UACFC,KAAK,EAAE;QADL;MAHwC,CAA/B,CAAf;IAOD;;IACD,KAAKL,OAAL,CAAaM,qBAAb;;IACA,KAAKN,OAAL,CAAaN,MAAb,GAAsBA,MAAtB;IACA,KAAKa,iBAAL;EACD;;EAEDC,oBAAoB,GAAG;IACrB,IAAI,KAAKR,OAAT,EAAkB;MAChB,KAAKA,OAAL,CAAaS,OAAb;IACD;EACF;;EAEMC,IAAI,CAACC,IAAD,EAAqB;IAC9B,IAAIC,KAAK,CAACD,IAAD,CAAT,EAAiB;MACf,MAAM,IAAIE,KAAJ,CAAU,gCAAV,CAAN;IACD;;IACD,IAAI,KAAKb,OAAT,EAAkB;MAChB,KAAKA,OAAL,CAAac,WAAb,GAA2BH,IAAI,GAAG,GAAlC;IACD;EACF;;EAEOI,KAAK,GAAG;IACd,KAAKC,QAAL,CAActC,cAAc,CAACa,YAA7B;EACD;;EAED0B,kBAAkB,CAACC,SAAD,EAA2C;IAC3D,IAAI,CAAC,KAAKlB,OAAV,EAAmB;MACjB;IACD,CAH0D,CAI3D;;;IACA,MAAM;MAAEmB,MAAF;MAAUC,MAAV;MAAkBC,iBAAlB;MAAqCC,kBAArC;MAAyDC,kBAAzD;MAA6E7B,MAA7E;MAAqF8B,KAArF;MAA4FC,YAA5F;MAA0GC;IAA1G,IAAyH,KAAK9C,KAApI;IACA,MAAM;MACJuC,MAAM,EAAEQ,SADJ;MAEJN,iBAAiB,EAAEO,qBAFf;MAGJN,kBAAkB,EAAEO,sBAHhB;MAIJN,kBAAkB,EAAEO,sBAJhB;MAKJpC,MAAM,EAAEqC,UALJ;MAMJP,KAAK,EAAEQ,QANH;MAOJP,YAAY,EAAEQ,gBAPV;MAQJP,UAAU,EAAEQ,aARR;MASJd,MAAM,EAAEe;IATJ,IAUFjB,SAVJ;;IAYA,IAAIxB,MAAM,KAAKqC,UAAf,EAA2B;MACzB,KAAK/B,OAAL,CAAaN,MAAb,GAAsBA,MAAtB;IACD;;IACD,IAAIyB,MAAM,KAAKQ,SAAf,EAA0B;MACxB,IAAIR,MAAJ,EAAY;QACV,KAAKnB,OAAL,CAAaoC,KAAb;MACD,CAFD,MAEO;QACL,KAAKpC,OAAL,CAAaqC,IAAb;MACD;IACF;;IACD,IAAIb,KAAK,KAAKQ,QAAd,EAAwB;MACtB,KAAKhC,OAAL,CAAawB,KAAb,GAAqBc,OAAO,CAACd,KAAD,CAA5B;IACD;;IACD,IAAIJ,MAAM,KAAKe,UAAf,EAA2B;MACzB,KAAKnC,OAAL,CAAaoB,MAAb,GAAsBmB,MAAM,CAACnB,MAAD,CAA5B;IACD;;IACD,IAAIM,UAAU,KAAKQ,aAAnB,EAAkC;MAChC,MAAM;QAAEM,6BAAF;QAAiCC;MAAjC,IAAmE,KAAK7D,KAA9E;MACA,MAAM8D,YAAY,GAAG9C,QAAQ,CAAC+C,cAAT,CAAwB,KAAxB,CAArB;;MACA,IAAIjB,UAAJ,EAAgB;QACd,IAAIc,6BAAJ,EAAmC;UACjCA,6BAA6B;QAC9B;;QACDE,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAEE,iBAAd,GAAkCC,IAAlC;MACD,CALD,MAKO;QACL,IAAIJ,6BAAJ,EAAmC;UACjCA,6BAA6B;QAC9B;;QACD7C,QAAQ,CAACkD,cAAT,GAA0BD,IAA1B;MACD;IACF;;IACD,IAAIpB,YAAY,IAAIA,YAAY,KAAKQ,gBAArC,EAAuD;MACrD,KAAKjC,OAAL,CAAayB,YAAb,GAA4BA,YAA5B;IACD;;IACD,IAAIJ,iBAAiB,KAAKO,qBAA1B,EAAiD;MAC/C,KAAK5B,OAAL,CAAa+C,UAAb,CAAwBC,OAAxB,CAAiCC,SAAD,IAAgC;QAC9DA,SAAS,CAACC,IAAV,GAAiBD,SAAS,CAAC7D,GAAV,KAAkBiC,iBAAlB,GAAsC,SAAtC,GAAkD,UAAnE;MACD,CAFD;IAGD;;IACD,IAAIC,kBAAkB,KAAKO,sBAA3B,EAAmD;MACjD,KAAK7B,OAAL,CAAamD,WAAb,CAAyBH,OAAzB,CAAkCI,UAAD,IAAkC;QACjEA,UAAU,CAACC,OAAX,GAAqBD,UAAU,CAAChE,GAAX,KAAmBkC,kBAAxC;MACD,CAFD;IAGD;;IACD,IAAIC,kBAAkB,KAAKO,sBAA3B,EAAmD;MACjD,KAAK9B,OAAL,CAAasD,WAAb,CAAyBN,OAAzB,CAAkCO,UAAD,IAAkC;QACjEA,UAAU,CAACF,OAAX,GAAqBE,UAAU,CAACnE,GAAX,KAAmBmC,kBAAxC;MACD,CAFD;IAGD;EACF;;EAEOiC,yBAAyB,CAACC,WAAD,EAAuB;IACtD,MAAM;MAAEA,WAAW,EAAEC,YAAf;MAA6BC;IAA7B,IAAuC,KAAKrE,KAAlD;IACA,MAAM;MAAE6B;IAAF,IAAa,KAAKvC,KAAxB,CAFsD,CAItD;;IACA,MAAMgF,cAAc,GAAGH,WAAW,IAAI,CAACE,KAAhB,IAAyB,CAACxC,MAAjD;IACA,KAAKH,QAAL,CAAc;MAAEyC,WAAW,EAAEG;IAAf,CAAd,EANsD,CAQtD;;IACA,IAAIA,cAAc,KAAKF,YAAnB,IAAmC,KAAK9E,KAAL,CAAWiF,sBAAlD,EAA0E;MACxE,KAAKjF,KAAL,CAAWiF,sBAAX,CAAkCD,cAAlC;IACD;EACF;;EA8BOrD,iBAAiB,GAAG;IAC1B,MAAMuD,MAAM,GAAG,KAAK9D,OAApB;;IACA,IAAI,CAAC8D,MAAL,EAAa;MACX;IACD;;IAEDA,MAAM,CAACC,gBAAP,CAAwB,cAAxB,EAAwC,MAAM;MAC5C,MAAM;QAAEC,cAAF;QAAkB7C;MAAlB,IAA6B,KAAKvC,KAAxC;MAEA,KAAKmC,KAAL;;MACA,IAAI,CAACI,MAAL,EAAa;QACX2C,MAAM,CAACzB,IAAP;MACD;;MACD,IAAI2B,cAAJ,EAAoB;QAClBA,cAAc;MACf;IACF,CAVD;IAYAF,MAAM,CAACC,gBAAP,CAAwB,WAAxB,EAAqC,MAAM;MACzC;MACA,KAAKP,yBAAL,CAA+B,IAA/B;MAEA,MAAM;QAAES;MAAF,IAAkB,KAAKrF,KAA7B;;MACA,IAAIqF,WAAJ,EAAiB;QACfA,WAAW;MACZ;IACF,CARD;IAUAH,MAAM,CAACC,gBAAP,CAAwB,YAAxB,EAAsC,MAAM;MAC1C,MAAM;QAAEG;MAAF,IAAmB,KAAKtF,KAA9B;;MACA,IAAIsF,YAAJ,EAAkB;QAChBA,YAAY;MACb;IACF,CALD;IAOAJ,MAAM,CAACC,gBAAP,CAAwB,gBAAxB,EAA0C,MAAM;MAC9C,MAAM;QAAEI;MAAF,IAAuB,KAAKvF,KAAlC;;MACA,IAAIuF,gBAAJ,EAAsB;QAAA;;QACpBA,gBAAgB,CAAC;UACfpB,UAAU,EAAEe,MAAM,CAACf,UAAP,CAAkBqB,GAAlB,CAAuBnB,SAAD,IAAgCxE,mBAAmB,CAACwE,SAAD,CAAzE,CADG;UAEfE,WAAW,EAAEW,MAAM,CAACX,WAAP,CAAmBiB,GAAnB,CAAwBhB,UAAD,IAAkC5E,oBAAoB,CAAC4E,UAAD,CAA7E,CAFE;UAGfE,WAAW,EAAEQ,MAAM,CAACR,WAAP,CAAmBc,GAAnB,CAAwBb,UAAD,IAAkC/E,oBAAoB,CAAC+E,UAAD,CAA7E,CAHE;UAIfc,QAAQ,EAAE,OAAOP,MAAM,CAACO,QAJT;UAKfhD,iBAAiB,2BAAEyC,MAAM,CAACf,UAAP,CAAkBuB,IAAlB,CAAwBzF,KAAD,IAA4BA,KAAK,CAACqE,IAAN,KAAe,SAAlE,CAAF,0DAAE,sBAA8E9D,GALlF;UAMfmC,kBAAkB,2BAAEuC,MAAM,CAACR,WAAP,CAAmBgB,IAAnB,CAAyBzF,KAAD,IAA6BA,KAAK,CAACwE,OAA3D,CAAF,0DAAE,sBAAqEjE,GAN1E;UAOfkC,kBAAkB,2BAAEwC,MAAM,CAACX,WAAP,CAAmBmB,IAAnB,CAAyBzF,KAAD,IAA6BA,KAAK,CAACwE,OAA3D,CAAF,0DAAE,sBAAqEjE;QAP1E,CAAD,CAAhB;MASD;IACF,CAbD;IAeA0E,MAAM,CAACC,gBAAP,CAAwB,OAAxB,EAAkCjF,KAAD,IAAW;MAC1C,MAAM;QAAEyF;MAAF,IAAkBzF,KAAxB;MACA,MAAM6E,KAAK,GAAG;QACZa,SAAS,EAAED,WAAW,CAACE,IAAZ,CAAiBC,QAAjB,EADC;QAEZC,YAAY,EAAEJ,WAAW,CAACK;MAFd,CAAd;MAIA,KAAK5D,QAAL,CAAc;QAAE2C;MAAF,CAAd,EAN0C,CAQ1C;;MACA,KAAKH,yBAAL,CAA+B,KAA/B;MAEA,MAAM;QAAEqB;MAAF,IAAc,KAAKjG,KAAzB;;MACA,IAAIiG,OAAJ,EAAa;QACXA,OAAO,CAAC;UAAElB;QAAF,CAAD,CAAP;MACD;IACF,CAfD;IAiBAG,MAAM,CAACC,gBAAP,CAAwB,UAAxB,EAAoC,MAAM;MACxC,MAAM;QAAEe;MAAF,IAAiB,KAAKlG,KAA5B;;MACA,IAAIkG,UAAJ,EAAgB;QACd,MAAMC,QAAqB,GAAG,EAA9B;;QACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGlB,MAAM,CAACiB,QAAP,CAAgBE,MAApC,EAA4CD,CAAC,EAA7C,EAAiD;UAC/CD,QAAQ,CAACG,IAAT,CAAc;YACZC,KAAK,EAAErB,MAAM,CAACiB,QAAP,CAAgBI,KAAhB,CAAsBH,CAAtB,IAA2B,GADtB;YAEZI,GAAG,EAAEtB,MAAM,CAACiB,QAAP,CAAgBK,GAAhB,CAAoBJ,CAApB,IAAyB;UAFlB,CAAd;QAID;;QACDF,UAAU,CAAC;UAAEC;QAAF,CAAD,CAAV;MACD;IACF,CAZD;IAcAjB,MAAM,CAACC,gBAAP,CAAwB,MAAxB,EAAgC,MAAM;MACpC,MAAM;QAAEsB;MAAF,IAAa,KAAKzG,KAAxB;;MACA,IAAIyG,MAAJ,EAAY;QACVA,MAAM;MACP;IACF,CALD;IAOAvB,MAAM,CAACC,gBAAP,CAAwB,SAAxB,EAAmC,MAAM;MACvC,MAAM;QAAEuB;MAAF,IAAgB,KAAK1G,KAA3B;;MACA,IAAI0G,SAAJ,EAAe;QACbA,SAAS;MACV;IACF,CALD;IAOAxB,MAAM,CAACC,gBAAP,CAAwB,OAAxB,EAAiC,MAAM;MACrC,MAAM;QAAEwB;MAAF,IAAc,KAAK3G,KAAzB;;MACA,IAAI2G,OAAJ,EAAa;QACXA,OAAO;MACR;IACF,CALD;IAOAzB,MAAM,CAACC,gBAAP,CAAwB,SAAxB,EAAmC,MAAM;MACvC,MAAM;QAAEyB;MAAF,IAAgB,KAAK5G,KAA3B;;MACA,IAAI4G,SAAJ,EAAe;QACbA,SAAS;MACV;IACF,CALD;IAOA1B,MAAM,CAACC,gBAAP,CAAwB,QAAxB,EAAkC,MAAM;MACtC,MAAM;QAAE0B;MAAF,IAAe,KAAK7G,KAA1B;;MACA,IAAI6G,QAAJ,EAAc;QACZA,QAAQ;MACT;IACF,CALD;IAOA3B,MAAM,CAACC,gBAAP,CAAwB,OAAxB,EAAiC,MAAM;MACrC,MAAM;QAAE2B;MAAF,IAAc,KAAK9G,KAAzB;;MACA,IAAI8G,OAAJ,EAAa;QACXA,OAAO;MACR;IACF,CALD;IAOA5B,MAAM,CAACC,gBAAP,CAAwB,kBAAxB,EAA6CjF,KAAD,IAAwC;MAClF;MACA,KAAK0E,yBAAL,CAA+B1E,KAAK,CAAC6G,UAAN,GAAmB,CAAlD;MAEA,MAAM;QAAEC;MAAF,IAAyB,KAAKhH,KAApC;;MACA,IAAIgH,kBAAJ,EAAwB;QACtBA,kBAAkB,CAAC;UAAED,UAAU,EAAE7G,KAAK,CAAC6G;QAApB,CAAD,CAAlB;MACD;IACF,CARD;IAUA7B,MAAM,CAACC,gBAAP,CAAwB,YAAxB,EAAsC,MAAM;MAC1C,MAAM;QAAE8B;MAAF,IAAmB,KAAKjH,KAA9B;;MACA,IAAIiH,YAAJ,EAAkB;QAAA;;QAChBA,YAAY,CAAC;UACX/E,WAAW,EAAEgD,MAAM,CAAChD,WAAP,GAAqB,GADvB;UAEXgF,sBAAsB,2BAAEhC,MAAM,CAACgC,sBAAT,0DAAE,sBAA+BC,OAA/B;QAFb,CAAD,CAAZ;MAID;IACF,CARD;IASAjC,MAAM,CAACC,gBAAP,CAAwB,gBAAxB,EAA2CjF,KAAD,IAAW;MACnD,MAAM;QAAEkH;MAAF,IAAuB,KAAKpH,KAAlC;;MACA,IAAIoH,gBAAJ,EAAsB;QACpBA,gBAAgB,CAAC;UACf3B,QAAQ,EAAEvF,KAAK,CAACuF,QAAN,GAAiB;QADZ,CAAD,CAAhB;MAGD;IACF,CAPD;IAQAP,MAAM,CAACC,gBAAP,CAAwB,iBAAxB,EAA2C,MAAM;MAC/C,MAAM;QAAEkC;MAAF,IAAwB,KAAKrH,KAAnC;;MACA,IAAIqH,iBAAJ,EAAuB;QACrBA,iBAAiB,CAAC;UAChBC,gBAAgB,EAAE,CADF;UAEhBvC,KAAK,EAAE,mBAFS;UAGhBwC,UAAU,EAAE,CAAC;QAHG,CAAD,CAAjB;MAKD;IACF,CATD;IAUArC,MAAM,CAACsC,YAAP,CAAoBrC,gBAApB,CAAqC,wBAArC,EAAgEjF,KAAD,IAAwC;MACrG,MAAM;QAAEuH;MAAF,IAAuBvH,KAA7B;MACA,MAAM;QAAEwH,4BAAF;QAAgCC;MAAhC,IAAiE,KAAK3H,KAA5E;;MACA,IAAIyH,gBAAgB,KAAK,YAAzB,EAAuC;QACrC,IAAIC,4BAAJ,EAAkC;UAChCA,4BAA4B;QAC7B;MACF,CAJD,MAIO,IAAID,gBAAgB,KAAK,QAAzB,EAAmC;QACxC,IAAIE,4BAAJ,EAAkC;UAChCA,4BAA4B;QAC7B;MACF;IACF,CAZD;IAaAzC,MAAM,CAACf,UAAP,CAAkBgB,gBAAlB,CAAmC,UAAnC,EAAgDjF,KAAD,IAA0B;MACvE,MAAM;QAAE0H;MAAF,IAA2B,KAAK5H,KAAtC;MACA,MAAMC,KAAK,GAAGC,KAAK,CAACD,KAApB;MACAA,KAAK,CAACkF,gBAAN,CAAuB,QAAvB,EAAiC,KAAK0C,iBAAL,CAAuB5H,KAAvB,CAAjC;MACAA,KAAK,CAACkF,gBAAN,CAAuB,WAAvB,EAAoC,KAAK2C,oBAAL,CAA0B7H,KAA1B,CAApC;;MAEA,IAAI2H,oBAAJ,EAA0B;QACxBA,oBAAoB,CAAC;UACnBvH,IAAI,EAAEZ,kBAAkB,CAACsI,QADN;UAEnB9H,KAAK,EAAEA;QAFY,CAAD,CAApB;MAID;IACF,CAZD;IAaAiF,MAAM,CAACf,UAAP,CAAkBgB,gBAAlB,CAAmC,aAAnC,EAAmDjF,KAAD,IAA6B;MAC7E,MAAM;QAAE0H;MAAF,IAA2B,KAAK5H,KAAtC;MACA,MAAMC,KAAK,GAAGC,KAAK,CAACD,KAApB;MACAA,KAAK,CAAC+H,mBAAN,CAA0B,QAA1B,EAAoC,KAAKH,iBAAL,CAAuB5H,KAAvB,CAApC;MACAA,KAAK,CAAC+H,mBAAN,CAA0B,WAA1B,EAAuC,KAAKF,oBAAL,CAA0B7H,KAA1B,CAAvC;;MAEA,IAAI2H,oBAAJ,EAA0B;QACxBA,oBAAoB,CAAC;UACnBvH,IAAI,EAAEZ,kBAAkB,CAACwI,WADN;UAEnBhI,KAAK,EAAEC,KAAK,CAACD;QAFM,CAAD,CAApB;MAID;IACF,CAZD;EAaD;;EAEMiI,MAAM,GAAgB;IAC3B,MAAM;MAAErH;IAAF,IAAa,KAAKb,KAAxB;IACA,MAAMkB,UAAU,GAAG,CAAAL,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAEK,UAAR,MAAuBC,SAAvB,IAAoC,CAAAN,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAEK,UAAR,MAAuB,IAA9E;IAEA,oBACE;MAAK,EAAE,EAAE;IAAT,gBACE;MAAK,SAAS,EAAEA,UAAU,GAAG,sBAAH,GAA4B;IAAtD,EADF,CADF;EAKD;;AAvX4F;;gBAAlFpB,c,kBAG2C;EACpD+E,WAAW,EAAE,KADuC;EAEpDE,KAAK,EAAE5D;AAF6C,C"}
|
|
1
|
+
{"version":3,"names":["React","PureComponent","AdEventNames","TextTrackEventType","TrackListEventType","THEOplayer","findNativeQualitiesByUid","fromNativeCue","fromNativeMediaTrack","fromNativeTextTrack","THEOplayerWebAdsAPI","THEOplayerView","constructor","props","track","event","onTextTrackEvent","cue","type","AddCue","trackUid","uid","RemoveCue","state","initialState","_adsApi","componentDidMount","config","source","abrConfig","element","document","querySelector","chromeless","undefined","_player","ChromelessPlayer","libraryLocation","Player","ui","fluid","Object","assign","abr","prepareWithUserAction","addEventListeners","componentWillUnmount","destroy","seek","time","isNaN","Error","currentTime","ads","nativePlayer","reset","setState","componentDidUpdate","prevProps","paused","volume","selectedTextTrack","selectedAudioTrack","selectedVideoTrack","targetVideoQuality","muted","playbackRate","fullscreen","wasPaused","prevSelectedTextTrack","prevSelectedAudioTrack","prevSelectedVideoTrack","prevTargetVideoQuality","prevSource","wasMuted","prevPlaybackRate","wasFullscreen","prevVolume","pause","play","Boolean","Number","onFullscreenPlayerWillPresent","onFullscreenPlayerWillDismiss","appContainer","getElementById","requestFullscreen","then","exitFullscreen","textTracks","forEach","textTrack","mode","audioTracks","audioTrack","enabled","videoTracks","videoTrack","find","targetQuality","maybeChangeBufferingState","isBuffering","wasBuffering","error","newIsBuffering","onBufferingStateChange","player","addEventListener","onSourceChange","onLoadStart","onLoadedData","onLoadedMetadata","map","duration","errorObject","errorCode","code","toString","errorMessage","message","onError","onProgress","seekable","i","length","push","start","end","onPlay","onPlaying","onPause","onSeeking","onSeeked","onEnded","readyState","onReadyStateChange","onTimeUpdate","currentProgramDateTime","getTime","onDurationChange","onSegmentNotFound","segmentStartTime","retryCount","presentation","presentationMode","onFullscreenPlayerDidPresent","onFullscreenPlayerDidDismiss","onTextTrackListEvent","onAddTextTrackCue","onRemoveTextTrackCue","AddTrack","removeEventListener","RemoveTrack","onAdEvent","render"],"sources":["THEOplayerView.web.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\n\nimport type { AdEvent, AdsAPI, PlayerError, TextTrack, THEOplayerViewProps, TimeRange } from 'react-native-theoplayer';\nimport { AdEventNames, TextTrackEventType, THEOplayerViewComponent, TrackListEventType } from 'react-native-theoplayer';\nimport type { Event, TextTrackCue as NativeTextTrackCue } from 'theoplayer';\n\nimport type {\n AddTrackEvent,\n MediaTrack as NativeMediaTrack,\n PresentationModeChangeEvent,\n ReadyStateChangeEvent as NativeReadyStateChangeEvent,\n RemoveTrackEvent,\n TextTrack as NativeTextTrack,\n} from 'theoplayer';\nimport * as THEOplayer from 'theoplayer';\nimport { findNativeQualitiesByUid, fromNativeCue, fromNativeMediaTrack, fromNativeTextTrack } from './web/TrackUtils';\nimport { THEOplayerWebAdsAPI } from './ads/THEOplayerWebAdsAPI';\n\ninterface THEOplayerRCTViewState {\n isBuffering: boolean;\n error?: PlayerError;\n}\n\nexport class THEOplayerView extends PureComponent<THEOplayerViewProps, THEOplayerRCTViewState> implements THEOplayerViewComponent {\n private _player: THEOplayer.ChromelessPlayer | null = null;\n private _adsApi: THEOplayerWebAdsAPI;\n\n private static initialState: THEOplayerRCTViewState = {\n isBuffering: false,\n error: undefined,\n };\n\n constructor(props: THEOplayerViewProps) {\n super(props);\n this.state = THEOplayerView.initialState;\n this._adsApi = new THEOplayerWebAdsAPI(this);\n }\n\n componentDidMount() {\n const { config, source, abrConfig } = this.props;\n const element = document.querySelector('.theoplayer-container') as HTMLElement;\n if (config?.chromeless === true || config?.chromeless === undefined) {\n this._player = new THEOplayer.ChromelessPlayer(element, {\n libraryLocation: 'node_modules/theoplayer',\n ...config,\n });\n } else {\n this._player = new THEOplayer.Player(element, {\n libraryLocation: 'node_modules/theoplayer',\n ...config,\n ui: {\n fluid: true,\n },\n });\n }\n\n Object.assign(this._player.abr, abrConfig);\n this._player.prepareWithUserAction();\n this._player.source = source;\n this.addEventListeners();\n }\n\n componentWillUnmount() {\n if (this._player) {\n this._player.destroy();\n }\n }\n\n public seek(time: number): void {\n if (isNaN(time)) {\n throw new Error('Specified time is not a number');\n }\n if (this._player) {\n this._player.currentTime = time / 1e3;\n }\n }\n\n public get ads(): AdsAPI {\n return this._adsApi;\n }\n\n public get nativePlayer(): THEOplayer.ChromelessPlayer | null {\n return this._player;\n }\n\n private reset() {\n this.setState(THEOplayerView.initialState);\n }\n\n componentDidUpdate(prevProps: Readonly<THEOplayerViewProps>) {\n if (!this._player) {\n return;\n }\n // track property changes\n const { paused, volume, selectedTextTrack, selectedAudioTrack, selectedVideoTrack, targetVideoQuality, source, muted, playbackRate, fullscreen } =\n this.props;\n const {\n paused: wasPaused,\n selectedTextTrack: prevSelectedTextTrack,\n selectedAudioTrack: prevSelectedAudioTrack,\n selectedVideoTrack: prevSelectedVideoTrack,\n targetVideoQuality: prevTargetVideoQuality,\n source: prevSource,\n muted: wasMuted,\n playbackRate: prevPlaybackRate,\n fullscreen: wasFullscreen,\n volume: prevVolume,\n } = prevProps;\n\n if (source !== prevSource) {\n this._player.source = source;\n }\n if (paused !== wasPaused) {\n if (paused) {\n this._player.pause();\n } else {\n this._player.play();\n }\n }\n if (muted !== wasMuted) {\n this._player.muted = Boolean(muted);\n }\n if (volume !== prevVolume) {\n this._player.volume = Number(volume);\n }\n if (fullscreen !== wasFullscreen) {\n const { onFullscreenPlayerWillPresent, onFullscreenPlayerWillDismiss } = this.props;\n const appContainer = document.getElementById('app');\n if (fullscreen) {\n if (onFullscreenPlayerWillPresent) {\n onFullscreenPlayerWillPresent();\n }\n appContainer?.requestFullscreen().then();\n } else {\n if (onFullscreenPlayerWillDismiss) {\n onFullscreenPlayerWillDismiss();\n }\n document.exitFullscreen().then();\n }\n }\n if (playbackRate && playbackRate !== prevPlaybackRate) {\n this._player.playbackRate = playbackRate;\n }\n if (selectedTextTrack !== prevSelectedTextTrack) {\n this._player.textTracks.forEach((textTrack: NativeTextTrack) => {\n textTrack.mode = textTrack.uid === selectedTextTrack ? 'showing' : 'disabled';\n });\n }\n if (selectedAudioTrack !== prevSelectedAudioTrack) {\n this._player.audioTracks.forEach((audioTrack: NativeMediaTrack) => {\n audioTrack.enabled = audioTrack.uid === selectedAudioTrack;\n });\n }\n if (selectedVideoTrack !== prevSelectedVideoTrack) {\n this._player.videoTracks.forEach((videoTrack: NativeMediaTrack) => {\n videoTrack.enabled = videoTrack.uid === selectedVideoTrack;\n });\n }\n if (targetVideoQuality != prevTargetVideoQuality) {\n const videoTrack = this._player.videoTracks.find((videoTrack: NativeMediaTrack) => videoTrack.uid === selectedVideoTrack);\n if (videoTrack) {\n videoTrack.targetQuality = findNativeQualitiesByUid(videoTrack, targetVideoQuality);\n }\n }\n }\n\n private maybeChangeBufferingState(isBuffering: boolean) {\n const { isBuffering: wasBuffering, error } = this.state;\n const { paused } = this.props;\n\n // do not change state to buffering in case of an error or if the player is paused\n const newIsBuffering = isBuffering && !error && !paused;\n this.setState({ isBuffering: newIsBuffering });\n\n // notify change in buffering state\n if (newIsBuffering !== wasBuffering && this.props.onBufferingStateChange) {\n this.props.onBufferingStateChange(newIsBuffering);\n }\n }\n\n private onAddTextTrackCue = (track: NativeTextTrack) => (event: Event<'addcue'>) => {\n const { onTextTrackEvent } = this.props;\n if (onTextTrackEvent) {\n const { cue } = event as unknown as { cue: NativeTextTrackCue };\n if (cue) {\n onTextTrackEvent({\n type: TextTrackEventType.AddCue,\n trackUid: track.uid,\n cue: fromNativeCue(cue),\n });\n }\n }\n };\n\n private onRemoveTextTrackCue = (track: NativeTextTrack) => (event: Event<'removecue'>) => {\n const { onTextTrackEvent } = this.props;\n if (onTextTrackEvent) {\n const { cue } = event as unknown as { cue: NativeTextTrackCue };\n if (cue) {\n onTextTrackEvent({\n type: TextTrackEventType.RemoveCue,\n trackUid: track.uid,\n cue: fromNativeCue(cue),\n });\n }\n }\n };\n\n private addEventListeners() {\n const player = this._player;\n if (!player) {\n return;\n }\n\n player.addEventListener('sourcechange', () => {\n const { onSourceChange, paused } = this.props;\n\n this.reset();\n if (!paused) {\n player.play();\n }\n if (onSourceChange) {\n onSourceChange();\n }\n });\n\n player.addEventListener('loadstart', () => {\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(true);\n\n const { onLoadStart } = this.props;\n if (onLoadStart) {\n onLoadStart();\n }\n });\n\n player.addEventListener('loadeddata', () => {\n const { onLoadedData } = this.props;\n if (onLoadedData) {\n onLoadedData();\n }\n });\n\n player.addEventListener('loadedmetadata', () => {\n const { onLoadedMetadata } = this.props;\n if (onLoadedMetadata) {\n onLoadedMetadata({\n textTracks: player.textTracks.map((textTrack: NativeTextTrack) => fromNativeTextTrack(textTrack)),\n audioTracks: player.audioTracks.map((audioTrack: NativeMediaTrack) => fromNativeMediaTrack(audioTrack)),\n videoTracks: player.videoTracks.map((videoTrack: NativeMediaTrack) => fromNativeMediaTrack(videoTrack)),\n duration: 1e3 * player.duration,\n selectedTextTrack: player.textTracks.find((track: NativeTextTrack) => track.mode === 'showing')?.uid,\n selectedVideoTrack: player.videoTracks.find((track: NativeMediaTrack) => track.enabled)?.uid,\n selectedAudioTrack: player.audioTracks.find((track: NativeMediaTrack) => track.enabled)?.uid,\n });\n }\n });\n\n player.addEventListener('error', (event) => {\n const { errorObject } = event;\n const error = {\n errorCode: errorObject.code.toString(),\n errorMessage: errorObject.message,\n };\n this.setState({ error });\n\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(false);\n\n const { onError } = this.props;\n if (onError) {\n onError({ error });\n }\n });\n\n player.addEventListener('progress', () => {\n const { onProgress } = this.props;\n if (onProgress) {\n const seekable: TimeRange[] = [];\n for (let i = 0; i < player.seekable.length; i++) {\n seekable.push({\n start: player.seekable.start(i) * 1e3,\n end: player.seekable.end(i) * 1e3,\n });\n }\n onProgress({ seekable });\n }\n });\n\n player.addEventListener('play', () => {\n const { onPlay } = this.props;\n if (onPlay) {\n onPlay();\n }\n });\n\n player.addEventListener('playing', () => {\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(false);\n\n const { onPlaying } = this.props;\n if (onPlaying) {\n onPlaying();\n }\n });\n\n player.addEventListener('pause', () => {\n const { onPause } = this.props;\n if (onPause) {\n onPause();\n }\n });\n\n player.addEventListener('seeking', () => {\n const { onSeeking } = this.props;\n if (onSeeking) {\n onSeeking();\n }\n });\n\n player.addEventListener('seeked', () => {\n const { onSeeked } = this.props;\n if (onSeeked) {\n onSeeked();\n }\n });\n\n player.addEventListener('ended', () => {\n const { onEnded } = this.props;\n if (onEnded) {\n onEnded();\n }\n });\n\n player.addEventListener('readystatechange', (event: NativeReadyStateChangeEvent) => {\n // potentially notify change in buffering state\n this.maybeChangeBufferingState(event.readyState < 3);\n\n const { onReadyStateChange } = this.props;\n if (onReadyStateChange) {\n onReadyStateChange({ readyState: event.readyState });\n }\n });\n\n player.addEventListener('timeupdate', () => {\n const { onTimeUpdate } = this.props;\n if (onTimeUpdate) {\n onTimeUpdate({\n currentTime: player.currentTime * 1e3,\n currentProgramDateTime: player.currentProgramDateTime?.getTime(),\n });\n }\n });\n player.addEventListener('durationchange', (event) => {\n const { onDurationChange } = this.props;\n if (onDurationChange) {\n onDurationChange({\n duration: event.duration * 1e3,\n });\n }\n });\n player.addEventListener('segmentnotfound', () => {\n const { onSegmentNotFound } = this.props;\n if (onSegmentNotFound) {\n onSegmentNotFound({\n segmentStartTime: 0,\n error: 'Segment not found',\n retryCount: -1,\n });\n }\n });\n player.presentation.addEventListener('presentationmodechange', (event: PresentationModeChangeEvent) => {\n const { presentationMode } = event;\n const { onFullscreenPlayerDidPresent, onFullscreenPlayerDidDismiss } = this.props;\n if (presentationMode === 'fullscreen') {\n if (onFullscreenPlayerDidPresent) {\n onFullscreenPlayerDidPresent();\n }\n } else if (presentationMode === 'inline') {\n if (onFullscreenPlayerDidDismiss) {\n onFullscreenPlayerDidDismiss();\n }\n }\n });\n player.textTracks.addEventListener('addtrack', (event: AddTrackEvent) => {\n const { onTextTrackListEvent } = this.props;\n const track = event.track as NativeTextTrack;\n track.addEventListener('addcue', this.onAddTextTrackCue(track));\n track.addEventListener('removecue', this.onRemoveTextTrackCue(track));\n\n if (onTextTrackListEvent) {\n onTextTrackListEvent({\n type: TrackListEventType.AddTrack,\n track: track as TextTrack,\n });\n }\n });\n player.textTracks.addEventListener('removetrack', (event: RemoveTrackEvent) => {\n const { onTextTrackListEvent } = this.props;\n const track = event.track as NativeTextTrack;\n track.removeEventListener('addcue', this.onAddTextTrackCue(track));\n track.removeEventListener('removecue', this.onRemoveTextTrackCue(track));\n\n if (onTextTrackListEvent) {\n onTextTrackListEvent({\n type: TrackListEventType.RemoveTrack,\n track: event.track as unknown as TextTrack,\n });\n }\n });\n player.ads?.addEventListener(AdEventNames, (event) => {\n const { onAdEvent } = this.props;\n if (onAdEvent) {\n onAdEvent(event as AdEvent);\n }\n });\n }\n\n public render(): JSX.Element {\n const { config } = this.props;\n const chromeless = config?.chromeless === undefined || config?.chromeless === true;\n\n return (\n <div id={'theoplayer-wrapper'}>\n <div className={chromeless ? 'theoplayer-container' : 'theoplayer-container video-js theoplayer-skin'} />\n </div>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
|
|
3
|
+
import { NativeModules } from "react-native";
|
|
4
|
+
import { THEOplayerNativeGoogleDAI } from "./THEOplayerNativeGoogleDAI";
|
|
5
|
+
export class THEOplayerNativeAdsAPI {
|
|
6
|
+
constructor(_player) {
|
|
7
|
+
this._player = _player;
|
|
8
|
+
|
|
9
|
+
_defineProperty(this, "_dai", void 0);
|
|
10
|
+
|
|
11
|
+
this._dai = new THEOplayerNativeGoogleDAI(this._player);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
playing() {
|
|
15
|
+
return NativeModules.AdsModule.playing(this._player.nativeHandle);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
skip() {
|
|
19
|
+
NativeModules.AdsModule.skip(this._player.nativeHandle);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
currentAdBreak() {
|
|
23
|
+
return NativeModules.AdsModule.currentAdBreak(this._player.nativeHandle);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
currentAds() {
|
|
27
|
+
return NativeModules.AdsModule.currentAds(this._player.nativeHandle);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
scheduledAdBreaks() {
|
|
31
|
+
return NativeModules.AdsModule.scheduledAdBreaks(this._player.nativeHandle);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
schedule(ad) {
|
|
35
|
+
NativeModules.AdsModule.schedule(this._player.nativeHandle, ad);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
get dai() {
|
|
39
|
+
return this._dai;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=THEOplayerNativeAdsAPI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NativeModules","THEOplayerNativeGoogleDAI","THEOplayerNativeAdsAPI","constructor","_player","_dai","playing","AdsModule","nativeHandle","skip","currentAdBreak","currentAds","scheduledAdBreaks","schedule","ad","dai"],"sources":["THEOplayerNativeAdsAPI.ts"],"sourcesContent":["import type { AdBreak, AdsAPI } from \"react-native-theoplayer\";\nimport { NativeModules } from \"react-native\";\nimport type { AdDescription } from \"react-native-theoplayer\";\nimport type { Ad } from \"react-native-theoplayer\";\nimport type { THEOplayerView } from \"react-native-theoplayer\";\nimport type { GoogleDAI } from \"react-native-theoplayer\";\nimport { THEOplayerNativeGoogleDAI } from \"./THEOplayerNativeGoogleDAI\";\n\nexport class THEOplayerNativeAdsAPI implements AdsAPI {\n\n private readonly _dai: GoogleDAI;\n\n constructor(private _player: THEOplayerView) {\n this._dai = new THEOplayerNativeGoogleDAI(this._player);\n }\n\n playing(): Promise<boolean> {\n return NativeModules.AdsModule.playing(this._player.nativeHandle);\n }\n\n skip(): void {\n NativeModules.AdsModule.skip(this._player.nativeHandle);\n }\n\n currentAdBreak(): Promise<AdBreak> {\n return NativeModules.AdsModule.currentAdBreak(this._player.nativeHandle);\n }\n\n currentAds(): Promise<Ad[]> {\n return NativeModules.AdsModule.currentAds(this._player.nativeHandle);\n }\n\n scheduledAdBreaks(): Promise<AdBreak[]> {\n return NativeModules.AdsModule.scheduledAdBreaks(this._player.nativeHandle);\n }\n\n schedule(ad: AdDescription): void {\n NativeModules.AdsModule.schedule(this._player.nativeHandle, ad);\n }\n\n get dai(): GoogleDAI | undefined {\n return this._dai;\n }\n}\n"],"mappings":";;AACA,SAASA,aAAT,QAA8B,cAA9B;AAKA,SAASC,yBAAT,QAA0C,6BAA1C;AAEA,OAAO,MAAMC,sBAAN,CAA+C;EAIpDC,WAAW,CAASC,OAAT,EAAkC;IAAA,KAAzBA,OAAyB,GAAzBA,OAAyB;;IAAA;;IAC3C,KAAKC,IAAL,GAAY,IAAIJ,yBAAJ,CAA8B,KAAKG,OAAnC,CAAZ;EACD;;EAEDE,OAAO,GAAqB;IAC1B,OAAON,aAAa,CAACO,SAAd,CAAwBD,OAAxB,CAAgC,KAAKF,OAAL,CAAaI,YAA7C,CAAP;EACD;;EAEDC,IAAI,GAAS;IACXT,aAAa,CAACO,SAAd,CAAwBE,IAAxB,CAA6B,KAAKL,OAAL,CAAaI,YAA1C;EACD;;EAEDE,cAAc,GAAqB;IACjC,OAAOV,aAAa,CAACO,SAAd,CAAwBG,cAAxB,CAAuC,KAAKN,OAAL,CAAaI,YAApD,CAAP;EACD;;EAEDG,UAAU,GAAkB;IAC1B,OAAOX,aAAa,CAACO,SAAd,CAAwBI,UAAxB,CAAmC,KAAKP,OAAL,CAAaI,YAAhD,CAAP;EACD;;EAEDI,iBAAiB,GAAuB;IACtC,OAAOZ,aAAa,CAACO,SAAd,CAAwBK,iBAAxB,CAA0C,KAAKR,OAAL,CAAaI,YAAvD,CAAP;EACD;;EAEDK,QAAQ,CAACC,EAAD,EAA0B;IAChCd,aAAa,CAACO,SAAd,CAAwBM,QAAxB,CAAiC,KAAKT,OAAL,CAAaI,YAA9C,EAA4DM,EAA5D;EACD;;EAEM,IAAHC,GAAG,GAA0B;IAC/B,OAAO,KAAKV,IAAZ;EACD;;AAlCmD"}
|