react-native-theoplayer 2.16.1 → 3.0.0-pre1
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/CHANGELOG.md +10 -0
- package/README.md +1 -0
- package/android/build.gradle +19 -22
- package/android/src/main/java/com/theoplayer/PlayerConfigAdapter.kt +87 -101
- package/android/src/main/java/com/theoplayer/ReactTHEOplayerContext.kt +30 -30
- package/android/src/main/java/com/theoplayer/ReactTHEOplayerPackage.kt +3 -1
- package/android/src/main/java/com/theoplayer/ReactTHEOplayerView.kt +1 -1
- package/android/src/main/java/com/theoplayer/cache/CacheAdapter.kt +127 -0
- package/android/src/main/java/com/theoplayer/cache/CacheModule.kt +238 -0
- package/android/src/main/java/com/theoplayer/player/PlayerModule.kt +27 -12
- package/android/src/main/java/com/theoplayer/source/SourceAdapter.kt +16 -37
- package/android/src/main/java/com/theoplayer/util/BridgeUtils.kt +60 -0
- package/android/src/main/java/com/theoplayer/util/PayloadBuilder.kt +10 -10
- package/ios/THEOplayerRCTBridge.m +22 -0
- package/ios/THEOplayerRCTDebug.swift +7 -1
- package/ios/THEOplayerRCTMainEventHandler.swift +25 -27
- package/ios/THEOplayerRCTSourceDescriptionAggregator.swift +41 -0
- package/ios/THEOplayerRCTSourceDescriptionBuilder.swift +3 -2
- package/ios/THEOplayerRCTTypeUtils.swift +37 -0
- package/ios/THEOplayerRCTView.swift +1 -2
- package/ios/ads/THEOplayerRCTAdsAPI+DAI.swift +3 -13
- package/ios/ads/THEOplayerRCTAdsAPI.swift +14 -48
- package/ios/ads/THEOplayerRCTView+AdsConfig.swift +0 -13
- package/ios/backgroundAudio/THEOplayerRCTNowPlayingManager.swift +24 -36
- package/ios/backgroundAudio/THEOplayerRCTRemoteCommandsManager.swift +2 -10
- package/ios/cache/THEOplayerRCTCacheAPI.swift +202 -0
- package/ios/cache/THEOplayerRCTCacheAggregator.swift +87 -0
- package/ios/cache/THEOplayerRCTCachingParametersBuilder.swift +27 -0
- package/ios/pip/THEOplayerRCTPipControlsManager.swift +2 -4
- package/lib/commonjs/api/abr/ABRConfiguration.js +21 -7
- package/lib/commonjs/api/abr/ABRConfiguration.js.map +1 -1
- package/lib/commonjs/api/ads/GoogleImaConfiguration.js.map +1 -1
- package/lib/commonjs/api/barrel.js +30 -19
- package/lib/commonjs/api/barrel.js.map +1 -1
- package/lib/commonjs/api/cache/CachingPreferredTrackSelection.js +2 -0
- package/lib/commonjs/api/cache/CachingPreferredTrackSelection.js.map +1 -0
- package/lib/commonjs/api/cache/CachingTask.js +30 -0
- package/lib/commonjs/api/cache/CachingTask.js.map +1 -0
- package/lib/commonjs/api/cache/CachingTaskLicense.js +6 -0
- package/lib/commonjs/api/cache/CachingTaskLicense.js.map +1 -0
- package/lib/commonjs/api/cache/CachingTaskList.js +6 -0
- package/lib/commonjs/api/cache/CachingTaskList.js.map +1 -0
- package/lib/commonjs/api/cache/CachingTaskParameters.js +6 -0
- package/lib/commonjs/api/cache/CachingTaskParameters.js.map +1 -0
- package/lib/commonjs/api/cache/MediaCacheAPI.js +24 -0
- package/lib/commonjs/api/cache/MediaCacheAPI.js.map +1 -0
- package/lib/commonjs/api/cache/barrel.js +83 -0
- package/lib/commonjs/api/cache/barrel.js.map +1 -0
- package/lib/commonjs/api/cache/events/CacheEvent.js +28 -0
- package/lib/commonjs/api/cache/events/CacheEvent.js.map +1 -0
- package/lib/commonjs/api/cache/events/CachingTaskEvent.js +17 -0
- package/lib/commonjs/api/cache/events/CachingTaskEvent.js.map +1 -0
- package/lib/commonjs/api/cache/events/barrel.js +28 -0
- package/lib/commonjs/api/cache/events/barrel.js.map +1 -0
- package/lib/commonjs/api/cache/hooks/barrel.js +39 -0
- package/lib/commonjs/api/cache/hooks/barrel.js.map +1 -0
- package/lib/commonjs/api/cache/hooks/useCachingTaskList.js +31 -0
- package/lib/commonjs/api/cache/hooks/useCachingTaskList.js.map +1 -0
- package/lib/commonjs/api/cache/hooks/useCachingTaskProgress.js +28 -0
- package/lib/commonjs/api/cache/hooks/useCachingTaskProgress.js.map +1 -0
- package/lib/commonjs/api/cache/hooks/useCachingTaskStatus.js +28 -0
- package/lib/commonjs/api/cache/hooks/useCachingTaskStatus.js.map +1 -0
- package/lib/commonjs/api/cast/CastState.js +3 -4
- package/lib/commonjs/api/cast/CastState.js.map +1 -1
- package/lib/commonjs/api/config/PlayerConfiguration.js.map +1 -1
- package/lib/commonjs/api/event/AdEvent.js +3 -4
- package/lib/commonjs/api/event/AdEvent.js.map +1 -1
- package/lib/commonjs/api/event/CastEvent.js +3 -4
- package/lib/commonjs/api/event/CastEvent.js.map +1 -1
- package/lib/commonjs/api/event/PlayerEvent.js +3 -4
- package/lib/commonjs/api/event/PlayerEvent.js.map +1 -1
- package/lib/commonjs/api/event/TrackEvent.js +12 -16
- package/lib/commonjs/api/event/TrackEvent.js.map +1 -1
- package/lib/commonjs/api/player/PlayerEventMap.js +7 -8
- package/lib/commonjs/api/player/PlayerEventMap.js.map +1 -1
- package/lib/commonjs/api/player/THEOplayer.js +6 -4
- package/lib/commonjs/api/player/THEOplayer.js.map +1 -1
- package/lib/commonjs/api/presentation/PresentationMode.js +3 -4
- package/lib/commonjs/api/presentation/PresentationMode.js.map +1 -1
- package/lib/commonjs/api/source/ads/Ads.js +3 -4
- package/lib/commonjs/api/source/ads/Ads.js.map +1 -1
- package/lib/commonjs/api/track/TextTrack.js +9 -12
- package/lib/commonjs/api/track/TextTrack.js.map +1 -1
- package/lib/commonjs/api/track/TextTrackStyle.js +3 -4
- package/lib/commonjs/api/track/TextTrackStyle.js.map +1 -1
- package/lib/commonjs/index.js +9 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/internal/THEOplayerView.js +1 -1
- package/lib/commonjs/internal/THEOplayerView.js.map +1 -1
- package/lib/commonjs/internal/THEOplayerView.style.js +1 -2
- package/lib/commonjs/internal/THEOplayerView.style.js.map +1 -1
- package/lib/commonjs/internal/THEOplayerView.web.js +5 -5
- package/lib/commonjs/internal/THEOplayerView.web.js.map +1 -1
- package/lib/commonjs/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/THEOplayerWebAdapter.js +12 -13
- package/lib/commonjs/internal/adapter/THEOplayerWebAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/WebEventForwarder.js +10 -10
- package/lib/commonjs/internal/adapter/WebEventForwarder.js.map +1 -1
- package/lib/commonjs/internal/adapter/abr/AbrAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/ads/THEOplayerWebAdsAdapter.js +2 -2
- package/lib/commonjs/internal/adapter/ads/THEOplayerWebAdsAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/cast/THEOplayerNativeCastAdapter.js +1 -1
- package/lib/commonjs/internal/adapter/cast/THEOplayerNativeCastAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/cast/THEOplayerWebCastAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/event/BaseEvent.js.map +1 -1
- package/lib/commonjs/internal/adapter/event/DefaultEventDispatcher.js +1 -1
- package/lib/commonjs/internal/adapter/event/DefaultEventDispatcher.js.map +1 -1
- package/lib/commonjs/internal/adapter/event/native/NativeTrackEvent.js +12 -16
- package/lib/commonjs/internal/adapter/event/native/NativeTrackEvent.js.map +1 -1
- package/lib/commonjs/internal/adapter/track/TextTrackStyleAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/web/FullscreenAPI.js +1 -2
- package/lib/commonjs/internal/adapter/web/FullscreenAPI.js.map +1 -1
- package/lib/commonjs/internal/adapter/web/WebMediaSession.js +9 -11
- package/lib/commonjs/internal/adapter/web/WebMediaSession.js.map +1 -1
- package/lib/commonjs/internal/adapter/web/WebPresentationModeManager.js +4 -4
- package/lib/commonjs/internal/adapter/web/WebPresentationModeManager.js.map +1 -1
- package/lib/commonjs/internal/cache/MediaCache.js +117 -0
- package/lib/commonjs/internal/cache/MediaCache.js.map +1 -0
- package/lib/commonjs/internal/cache/MediaCache.web.js +54 -0
- package/lib/commonjs/internal/cache/MediaCache.web.js.map +1 -0
- package/lib/commonjs/internal/cache/NativeCachingTaskAdapter.js +59 -0
- package/lib/commonjs/internal/cache/NativeCachingTaskAdapter.js.map +1 -0
- package/lib/commonjs/internal/cache/NativeCachingTaskParametersAdapter.js +27 -0
- package/lib/commonjs/internal/cache/NativeCachingTaskParametersAdapter.js.map +1 -0
- package/lib/commonjs/internal/cache/WebCachingTaskAdapter.js +71 -0
- package/lib/commonjs/internal/cache/WebCachingTaskAdapter.js.map +1 -0
- package/lib/commonjs/internal/drm/ContentProtectionRegistry.js +1 -2
- package/lib/commonjs/internal/drm/ContentProtectionRegistry.js.map +1 -1
- package/lib/commonjs/internal/drm/ContentProtectionRegistry.web.js +1 -2
- package/lib/commonjs/internal/drm/ContentProtectionRegistry.web.js.map +1 -1
- package/lib/commonjs/internal/drm/NativeCertificateResponse.js.map +1 -1
- package/lib/commonjs/internal/drm/NativeLicenseResponse.js.map +1 -1
- package/lib/commonjs/internal/utils/TypeUtils.js +2 -4
- package/lib/commonjs/internal/utils/TypeUtils.js.map +1 -1
- package/lib/module/api/abr/ABRConfiguration.js +24 -6
- package/lib/module/api/abr/ABRConfiguration.js.map +1 -1
- package/lib/module/api/ads/GoogleImaConfiguration.js.map +1 -1
- package/lib/module/api/barrel.js +1 -0
- package/lib/module/api/barrel.js.map +1 -1
- package/lib/module/api/cache/CachingPreferredTrackSelection.js +2 -0
- package/lib/module/api/cache/CachingPreferredTrackSelection.js.map +1 -0
- package/lib/module/api/cache/CachingTask.js +25 -0
- package/lib/module/api/cache/CachingTask.js.map +1 -0
- package/lib/module/api/cache/CachingTaskLicense.js +2 -0
- package/lib/module/api/cache/CachingTaskLicense.js.map +1 -0
- package/lib/module/api/cache/CachingTaskList.js +2 -0
- package/lib/module/api/cache/CachingTaskList.js.map +1 -0
- package/lib/module/api/cache/CachingTaskParameters.js +2 -0
- package/lib/module/api/cache/CachingTaskParameters.js.map +1 -0
- package/lib/module/api/cache/MediaCacheAPI.js +19 -0
- package/lib/module/api/cache/MediaCacheAPI.js.map +1 -0
- package/lib/module/api/cache/barrel.js +8 -0
- package/lib/module/api/cache/barrel.js.map +1 -0
- package/lib/module/api/cache/events/CacheEvent.js +25 -0
- package/lib/module/api/cache/events/CacheEvent.js.map +1 -0
- package/lib/module/api/cache/events/CachingTaskEvent.js +12 -0
- package/lib/module/api/cache/events/CachingTaskEvent.js.map +1 -0
- package/lib/module/api/cache/events/barrel.js +3 -0
- package/lib/module/api/cache/events/barrel.js.map +1 -0
- package/lib/module/api/cache/hooks/barrel.js +4 -0
- package/lib/module/api/cache/hooks/barrel.js.map +1 -0
- package/lib/module/api/cache/hooks/useCachingTaskList.js +24 -0
- package/lib/module/api/cache/hooks/useCachingTaskList.js.map +1 -0
- package/lib/module/api/cache/hooks/useCachingTaskProgress.js +21 -0
- package/lib/module/api/cache/hooks/useCachingTaskProgress.js.map +1 -0
- package/lib/module/api/cache/hooks/useCachingTaskStatus.js +21 -0
- package/lib/module/api/cache/hooks/useCachingTaskStatus.js.map +1 -0
- package/lib/module/api/cast/CastState.js +3 -3
- package/lib/module/api/cast/CastState.js.map +1 -1
- package/lib/module/api/config/PlayerConfiguration.js.map +1 -1
- package/lib/module/api/event/AdEvent.js +3 -3
- package/lib/module/api/event/AdEvent.js.map +1 -1
- package/lib/module/api/event/CastEvent.js +3 -3
- package/lib/module/api/event/CastEvent.js.map +1 -1
- package/lib/module/api/event/PlayerEvent.js +3 -3
- package/lib/module/api/event/PlayerEvent.js.map +1 -1
- package/lib/module/api/event/TrackEvent.js +12 -12
- package/lib/module/api/event/TrackEvent.js.map +1 -1
- package/lib/module/api/player/PlayerEventMap.js +8 -8
- package/lib/module/api/player/PlayerEventMap.js.map +1 -1
- package/lib/module/api/player/THEOplayer.js +7 -3
- package/lib/module/api/player/THEOplayer.js.map +1 -1
- package/lib/module/api/presentation/PresentationMode.js +3 -3
- package/lib/module/api/presentation/PresentationMode.js.map +1 -1
- package/lib/module/api/source/ads/Ads.js +3 -3
- package/lib/module/api/source/ads/Ads.js.map +1 -1
- package/lib/module/api/track/TextTrack.js +9 -9
- package/lib/module/api/track/TextTrack.js.map +1 -1
- package/lib/module/api/track/TextTrackStyle.js +3 -3
- package/lib/module/api/track/TextTrackStyle.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/internal/THEOplayerView.js +1 -1
- package/lib/module/internal/THEOplayerView.js.map +1 -1
- package/lib/module/internal/THEOplayerView.web.js +5 -5
- package/lib/module/internal/THEOplayerView.web.js.map +1 -1
- package/lib/module/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/module/internal/adapter/THEOplayerWebAdapter.js +12 -11
- package/lib/module/internal/adapter/THEOplayerWebAdapter.js.map +1 -1
- package/lib/module/internal/adapter/WebEventForwarder.js +10 -10
- package/lib/module/internal/adapter/WebEventForwarder.js.map +1 -1
- package/lib/module/internal/adapter/abr/AbrAdapter.js.map +1 -1
- package/lib/module/internal/adapter/ads/THEOplayerWebAdsAdapter.js +2 -2
- package/lib/module/internal/adapter/ads/THEOplayerWebAdsAdapter.js.map +1 -1
- package/lib/module/internal/adapter/cast/THEOplayerNativeCastAdapter.js +1 -1
- package/lib/module/internal/adapter/cast/THEOplayerNativeCastAdapter.js.map +1 -1
- package/lib/module/internal/adapter/cast/THEOplayerWebCastAdapter.js.map +1 -1
- package/lib/module/internal/adapter/event/BaseEvent.js.map +1 -1
- package/lib/module/internal/adapter/event/DefaultEventDispatcher.js +1 -1
- package/lib/module/internal/adapter/event/DefaultEventDispatcher.js.map +1 -1
- package/lib/module/internal/adapter/event/native/NativeTrackEvent.js +12 -12
- package/lib/module/internal/adapter/event/native/NativeTrackEvent.js.map +1 -1
- package/lib/module/internal/adapter/track/TextTrackStyleAdapter.js.map +1 -1
- package/lib/module/internal/adapter/web/FullscreenAPI.js.map +1 -1
- package/lib/module/internal/adapter/web/WebMediaSession.js +8 -9
- package/lib/module/internal/adapter/web/WebMediaSession.js.map +1 -1
- package/lib/module/internal/adapter/web/WebPresentationModeManager.js +4 -4
- package/lib/module/internal/adapter/web/WebPresentationModeManager.js.map +1 -1
- package/lib/module/internal/cache/MediaCache.js +110 -0
- package/lib/module/internal/cache/MediaCache.js.map +1 -0
- package/lib/module/internal/cache/MediaCache.web.js +45 -0
- package/lib/module/internal/cache/MediaCache.web.js.map +1 -0
- package/lib/module/internal/cache/NativeCachingTaskAdapter.js +52 -0
- package/lib/module/internal/cache/NativeCachingTaskAdapter.js.map +1 -0
- package/lib/module/internal/cache/NativeCachingTaskParametersAdapter.js +20 -0
- package/lib/module/internal/cache/NativeCachingTaskParametersAdapter.js.map +1 -0
- package/lib/module/internal/cache/WebCachingTaskAdapter.js +64 -0
- package/lib/module/internal/cache/WebCachingTaskAdapter.js.map +1 -0
- package/lib/module/internal/drm/ContentProtectionRegistry.js.map +1 -1
- package/lib/module/internal/drm/ContentProtectionRegistry.web.js.map +1 -1
- package/lib/module/internal/drm/NativeCertificateResponse.js.map +1 -1
- package/lib/module/internal/drm/NativeLicenseResponse.js.map +1 -1
- package/lib/typescript/api/abr/ABRConfiguration.d.ts +1 -1
- package/lib/typescript/api/ads/Ad.d.ts +2 -2
- package/lib/typescript/api/ads/AdsConfiguration.d.ts +2 -2
- package/lib/typescript/api/ads/GoogleImaConfiguration.d.ts +1 -0
- package/lib/typescript/api/barrel.d.ts +1 -0
- package/lib/typescript/api/cache/CachingPreferredTrackSelection.d.ts +23 -0
- package/lib/typescript/api/cache/CachingTask.d.ts +93 -0
- package/lib/typescript/api/cache/CachingTaskLicense.d.ts +14 -0
- package/lib/typescript/api/cache/CachingTaskList.d.ts +7 -0
- package/lib/typescript/api/cache/CachingTaskParameters.d.ts +57 -0
- package/lib/typescript/api/cache/MediaCacheAPI.d.ts +39 -0
- package/lib/typescript/api/cache/barrel.d.ts +7 -0
- package/lib/typescript/api/cache/events/CacheEvent.d.ts +55 -0
- package/lib/typescript/api/cache/events/CachingTaskEvent.d.ts +22 -0
- package/lib/typescript/api/cache/events/barrel.d.ts +2 -0
- package/lib/typescript/api/cache/hooks/barrel.d.ts +3 -0
- package/lib/typescript/api/cache/hooks/useCachingTaskList.d.ts +1 -0
- package/lib/typescript/api/cache/hooks/useCachingTaskProgress.d.ts +2 -0
- package/lib/typescript/api/cache/hooks/useCachingTaskStatus.d.ts +2 -0
- package/lib/typescript/api/cast/CastConfiguration.d.ts +1 -1
- package/lib/typescript/api/config/PlayerConfiguration.d.ts +4 -1
- package/lib/typescript/api/drm/ContentProtectionIntegration.d.ts +2 -2
- package/lib/typescript/api/drm/ContentProtectionRequest.d.ts +1 -1
- package/lib/typescript/api/error/ChromecastError.d.ts +1 -1
- package/lib/typescript/api/event/CastEvent.d.ts +1 -1
- package/lib/typescript/api/event/EventDispatcher.d.ts +2 -2
- package/lib/typescript/api/event/EventListener.d.ts +1 -1
- package/lib/typescript/api/player/THEOplayer.d.ts +2 -2
- package/lib/typescript/api/source/SourceDescription.d.ts +3 -3
- package/lib/typescript/api/source/ads/Ads.d.ts +1 -1
- package/lib/typescript/api/source/ads/FreeWheelAdDescription.d.ts +1 -1
- package/lib/typescript/api/source/ads/ssai/GoogleDAIConfiguration.d.ts +2 -2
- package/lib/typescript/api/source/ads/ssai/ImagineServerSideAdInsertionConfiguration.d.ts +1 -1
- package/lib/typescript/api/source/ads/ssai/ServerSideAdInsertionConfiguration.d.ts +1 -1
- package/lib/typescript/api/source/ads/ssai/YospaceServerSideAdInsertionConfiguration.d.ts +2 -2
- package/lib/typescript/api/source/dash/DashPlaybackConfiguration.d.ts +1 -1
- package/lib/typescript/api/source/drm/DRMConfiguration.d.ts +3 -3
- package/lib/typescript/api/source/hls/HlsPlaybackConfiguration.d.ts +1 -1
- package/lib/typescript/api/track/MediaTrack.d.ts +1 -1
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/internal/THEOplayerView.web.d.ts +1 -1
- package/lib/typescript/internal/adapter/THEOplayerWebAdapter.d.ts +2 -2
- package/lib/typescript/internal/adapter/WebEventForwarder.d.ts +2 -2
- package/lib/typescript/internal/adapter/ads/THEOplayerWebAdsAdapter.d.ts +2 -2
- package/lib/typescript/internal/adapter/cast/THEOplayerWebCastAdapter.d.ts +2 -2
- package/lib/typescript/internal/adapter/event/native/NativeCastEvent.d.ts +1 -1
- package/lib/typescript/internal/adapter/web/WebPresentationModeManager.d.ts +2 -2
- package/lib/typescript/internal/cache/MediaCache.d.ts +25 -0
- package/lib/typescript/internal/cache/MediaCache.web.d.ts +16 -0
- package/lib/typescript/internal/cache/NativeCachingTaskAdapter.d.ts +33 -0
- package/lib/typescript/internal/cache/NativeCachingTaskParametersAdapter.d.ts +11 -0
- package/lib/typescript/internal/cache/WebCachingTaskAdapter.d.ts +25 -0
- package/package.json +16 -15
- package/react-native-theoplayer.podspec +4 -4
- package/src/api/ads/GoogleImaConfiguration.ts +1 -0
- package/src/api/barrel.ts +1 -0
- package/src/api/cache/CachingPreferredTrackSelection.ts +24 -0
- package/src/api/cache/CachingTask.ts +107 -0
- package/src/api/cache/CachingTaskLicense.ts +15 -0
- package/src/api/cache/CachingTaskList.ts +8 -0
- package/src/api/cache/CachingTaskParameters.ts +62 -0
- package/src/api/cache/MediaCacheAPI.ts +43 -0
- package/src/api/cache/barrel.ts +7 -0
- package/src/api/cache/events/CacheEvent.ts +62 -0
- package/src/api/cache/events/CachingTaskEvent.ts +27 -0
- package/src/api/cache/events/barrel.ts +2 -0
- package/src/api/cache/hooks/barrel.ts +3 -0
- package/src/api/cache/hooks/useCachingTaskList.ts +23 -0
- package/src/api/cache/hooks/useCachingTaskProgress.ts +20 -0
- package/src/api/cache/hooks/useCachingTaskStatus.ts +20 -0
- package/src/api/config/PlayerConfiguration.ts +3 -0
- package/src/index.tsx +1 -0
- package/src/internal/THEOplayerView.web.tsx +5 -5
- package/src/internal/adapter/THEOplayerWebAdapter.ts +6 -6
- package/src/internal/adapter/WebEventForwarder.ts +3 -3
- package/src/internal/adapter/ads/THEOplayerWebAdsAdapter.ts +3 -3
- package/src/internal/adapter/cast/THEOplayerWebCastAdapter.ts +3 -3
- package/src/internal/adapter/web/WebPresentationModeManager.ts +3 -3
- package/src/internal/cache/MediaCache.ts +151 -0
- package/src/internal/cache/MediaCache.web.ts +54 -0
- package/src/internal/cache/NativeCachingTaskAdapter.ts +81 -0
- package/src/internal/cache/NativeCachingTaskParametersAdapter.ts +32 -0
- package/src/internal/cache/WebCachingTaskAdapter.ts +95 -0
- package/android/src/main/java/com/theoplayer/track/QualityListFilter.kt +0 -28
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeTheoplayer","require","NativeTrackListEventType","exports","NativeTextTrackEventType","NativeMediaTrackType","NativeMediaTrackEventType","toTrackListEventType","type","AddTrack","TrackListEventType","ADD_TRACK","ChangeTrack","CHANGE_TRACK","RemoveTrack","REMOVE_TRACK","toTextTrackEventType","AddCue","TextTrackEventType","ADD_CUE","RemoveCue","REMOVE_CUE","EnterCue","ENTER_CUE","ExitCue","EXIT_CUE","toMediaTrackType","Audio","MediaTrackType","AUDIO","Video","VIDEO","toMediaTrackTypeEventType","ActiveQualityChanged","MediaTrackEventType","ACTIVE_QUALITY_CHANGED"],"sources":["NativeTrackEvent.ts"],"sourcesContent":["import type { MediaTrack, Quality, TextTrack, TextTrackCue } from 'react-native-theoplayer';\nimport { MediaTrackEventType, MediaTrackType, TextTrackEventType, TrackListEventType } from 'react-native-theoplayer';\n\nexport enum NativeTrackListEventType {\n /**\n * Dispatched when track has been added to the track list.\n */\n AddTrack,\n\n /**\n * Dispatched when track has been removed from the track list.\n */\n RemoveTrack,\n\n /**\n * Fired when a track has been changed.\n */\n ChangeTrack,\n}\n\nexport interface NativeTrackListEvent {\n /**\n * The type of track list event.\n */\n readonly type: NativeTrackListEventType;\n}\n\nexport interface NativeTextTrackListEvent extends NativeTrackListEvent {\n /**\n * The relevant text track.\n */\n readonly track: TextTrack;\n}\n\nexport enum NativeTextTrackEventType {\n /**\n * Dispatched when cue has been added to the text track.\n */\n AddCue,\n\n /**\n * Dispatched when cue has been removed from the text track.\n */\n RemoveCue,\n\n /**\n * Dispatched when a cue of the track enters.\n */\n EnterCue,\n\n /**\n * Dispatched when a cue of the track exits.\n */\n ExitCue,\n}\n\nexport interface NativeTextTrackEvent {\n /**\n * The type of text track event.\n */\n readonly type: NativeTextTrackEventType;\n\n /**\n * The text track's uid to which this cue belongs.\n */\n readonly trackUid: number;\n\n /**\n * The text track's cue.\n */\n readonly cue: TextTrackCue;\n}\n\nexport enum NativeMediaTrackType {\n Audio,\n\n Video,\n}\n\nexport interface NativeMediaTrackListEvent extends NativeTrackListEvent {\n /**\n * The relevant media track type, either {@link NativeMediaTrackType.Audio} or {@link NativeMediaTrackType.Video}.\n */\n readonly trackType: NativeMediaTrackType;\n\n /**\n * The relevant media track.\n */\n readonly track: MediaTrack;\n}\n\nexport enum NativeMediaTrackEventType {\n /**\n * Dispatched when the media track's active quality changes.\n */\n ActiveQualityChanged,\n}\n\nexport interface NativeMediaTrackEvent {\n /**\n * The type of media track event.\n */\n readonly type: NativeMediaTrackEventType;\n\n /**\n * The media track's type to which event belongs, either {@link MediaTrackType.Audio} or {@link MediaTrackType.Video}.\n */\n readonly trackType: NativeMediaTrackType;\n\n /**\n * The media track's uid to which event belongs.\n */\n readonly trackUid: number;\n\n /**\n * The affected media track's qualities.\n */\n readonly qualities?: Quality | Quality[];\n}\n\nexport function toTrackListEventType(type: NativeTrackListEventType): TrackListEventType {\n switch (type) {\n case NativeTrackListEventType.AddTrack:\n return TrackListEventType.ADD_TRACK;\n case NativeTrackListEventType.ChangeTrack:\n return TrackListEventType.CHANGE_TRACK;\n case NativeTrackListEventType.RemoveTrack:\n return TrackListEventType.REMOVE_TRACK;\n }\n}\n\nexport function toTextTrackEventType(type: NativeTextTrackEventType): TextTrackEventType {\n switch (type) {\n case NativeTextTrackEventType.AddCue:\n return TextTrackEventType.ADD_CUE;\n case NativeTextTrackEventType.RemoveCue:\n return TextTrackEventType.REMOVE_CUE;\n case NativeTextTrackEventType.EnterCue:\n return TextTrackEventType.ENTER_CUE;\n case NativeTextTrackEventType.ExitCue:\n return TextTrackEventType.EXIT_CUE;\n }\n}\n\nexport function toMediaTrackType(type: NativeMediaTrackType): MediaTrackType {\n switch (type) {\n case NativeMediaTrackType.Audio:\n return MediaTrackType.AUDIO;\n case NativeMediaTrackType.Video:\n return MediaTrackType.VIDEO;\n }\n}\n\nexport function toMediaTrackTypeEventType(type: NativeMediaTrackEventType): MediaTrackEventType {\n switch (type) {\n case NativeMediaTrackEventType.ActiveQualityChanged:\n return MediaTrackEventType.ACTIVE_QUALITY_CHANGED;\n }\n}\n"],"mappings":";;;;;;;;;;AACA,IAAAA,sBAAA,GAAAC,OAAA;AAAsH,IAE1GC,wBAAwB
|
|
1
|
+
{"version":3,"names":["_reactNativeTheoplayer","require","NativeTrackListEventType","exports","NativeTextTrackEventType","NativeMediaTrackType","NativeMediaTrackEventType","toTrackListEventType","type","AddTrack","TrackListEventType","ADD_TRACK","ChangeTrack","CHANGE_TRACK","RemoveTrack","REMOVE_TRACK","toTextTrackEventType","AddCue","TextTrackEventType","ADD_CUE","RemoveCue","REMOVE_CUE","EnterCue","ENTER_CUE","ExitCue","EXIT_CUE","toMediaTrackType","Audio","MediaTrackType","AUDIO","Video","VIDEO","toMediaTrackTypeEventType","ActiveQualityChanged","MediaTrackEventType","ACTIVE_QUALITY_CHANGED"],"sources":["NativeTrackEvent.ts"],"sourcesContent":["import type { MediaTrack, Quality, TextTrack, TextTrackCue } from 'react-native-theoplayer';\nimport { MediaTrackEventType, MediaTrackType, TextTrackEventType, TrackListEventType } from 'react-native-theoplayer';\n\nexport enum NativeTrackListEventType {\n /**\n * Dispatched when track has been added to the track list.\n */\n AddTrack,\n\n /**\n * Dispatched when track has been removed from the track list.\n */\n RemoveTrack,\n\n /**\n * Fired when a track has been changed.\n */\n ChangeTrack,\n}\n\nexport interface NativeTrackListEvent {\n /**\n * The type of track list event.\n */\n readonly type: NativeTrackListEventType;\n}\n\nexport interface NativeTextTrackListEvent extends NativeTrackListEvent {\n /**\n * The relevant text track.\n */\n readonly track: TextTrack;\n}\n\nexport enum NativeTextTrackEventType {\n /**\n * Dispatched when cue has been added to the text track.\n */\n AddCue,\n\n /**\n * Dispatched when cue has been removed from the text track.\n */\n RemoveCue,\n\n /**\n * Dispatched when a cue of the track enters.\n */\n EnterCue,\n\n /**\n * Dispatched when a cue of the track exits.\n */\n ExitCue,\n}\n\nexport interface NativeTextTrackEvent {\n /**\n * The type of text track event.\n */\n readonly type: NativeTextTrackEventType;\n\n /**\n * The text track's uid to which this cue belongs.\n */\n readonly trackUid: number;\n\n /**\n * The text track's cue.\n */\n readonly cue: TextTrackCue;\n}\n\nexport enum NativeMediaTrackType {\n Audio,\n\n Video,\n}\n\nexport interface NativeMediaTrackListEvent extends NativeTrackListEvent {\n /**\n * The relevant media track type, either {@link NativeMediaTrackType.Audio} or {@link NativeMediaTrackType.Video}.\n */\n readonly trackType: NativeMediaTrackType;\n\n /**\n * The relevant media track.\n */\n readonly track: MediaTrack;\n}\n\nexport enum NativeMediaTrackEventType {\n /**\n * Dispatched when the media track's active quality changes.\n */\n ActiveQualityChanged,\n}\n\nexport interface NativeMediaTrackEvent {\n /**\n * The type of media track event.\n */\n readonly type: NativeMediaTrackEventType;\n\n /**\n * The media track's type to which event belongs, either {@link MediaTrackType.Audio} or {@link MediaTrackType.Video}.\n */\n readonly trackType: NativeMediaTrackType;\n\n /**\n * The media track's uid to which event belongs.\n */\n readonly trackUid: number;\n\n /**\n * The affected media track's qualities.\n */\n readonly qualities?: Quality | Quality[];\n}\n\nexport function toTrackListEventType(type: NativeTrackListEventType): TrackListEventType {\n switch (type) {\n case NativeTrackListEventType.AddTrack:\n return TrackListEventType.ADD_TRACK;\n case NativeTrackListEventType.ChangeTrack:\n return TrackListEventType.CHANGE_TRACK;\n case NativeTrackListEventType.RemoveTrack:\n return TrackListEventType.REMOVE_TRACK;\n }\n}\n\nexport function toTextTrackEventType(type: NativeTextTrackEventType): TextTrackEventType {\n switch (type) {\n case NativeTextTrackEventType.AddCue:\n return TextTrackEventType.ADD_CUE;\n case NativeTextTrackEventType.RemoveCue:\n return TextTrackEventType.REMOVE_CUE;\n case NativeTextTrackEventType.EnterCue:\n return TextTrackEventType.ENTER_CUE;\n case NativeTextTrackEventType.ExitCue:\n return TextTrackEventType.EXIT_CUE;\n }\n}\n\nexport function toMediaTrackType(type: NativeMediaTrackType): MediaTrackType {\n switch (type) {\n case NativeMediaTrackType.Audio:\n return MediaTrackType.AUDIO;\n case NativeMediaTrackType.Video:\n return MediaTrackType.VIDEO;\n }\n}\n\nexport function toMediaTrackTypeEventType(type: NativeMediaTrackEventType): MediaTrackEventType {\n switch (type) {\n case NativeMediaTrackEventType.ActiveQualityChanged:\n return MediaTrackEventType.ACTIVE_QUALITY_CHANGED;\n }\n}\n"],"mappings":";;;;;;;;;;AACA,IAAAA,sBAAA,GAAAC,OAAA;AAAsH,IAE1GC,wBAAwB,GAAAC,OAAA,CAAAD,wBAAA,0BAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAA,OAAxBA,wBAAwB;AAAA;AAAA,IA+BxBE,wBAAwB,GAAAD,OAAA,CAAAC,wBAAA,0BAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAA,OAAxBA,wBAAwB;AAAA;AAAA,IAuCxBC,oBAAoB,GAAAF,OAAA,CAAAE,oBAAA,0BAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;AAAA,IAkBpBC,yBAAyB,GAAAH,OAAA,CAAAG,yBAAA,0BAAzBA,yBAAyB;EAAzBA,yBAAyB,CAAzBA,yBAAyB;EAAA,OAAzBA,yBAAyB;AAAA;AA6B9B,SAASC,oBAAoBA,CAACC,IAA8B,EAAsB;EACvF,QAAQA,IAAI;IACV,KAAKN,wBAAwB,CAACO,QAAQ;MACpC,OAAOC,yCAAkB,CAACC,SAAS;IACrC,KAAKT,wBAAwB,CAACU,WAAW;MACvC,OAAOF,yCAAkB,CAACG,YAAY;IACxC,KAAKX,wBAAwB,CAACY,WAAW;MACvC,OAAOJ,yCAAkB,CAACK,YAAY;EAC1C;AACF;AAEO,SAASC,oBAAoBA,CAACR,IAA8B,EAAsB;EACvF,QAAQA,IAAI;IACV,KAAKJ,wBAAwB,CAACa,MAAM;MAClC,OAAOC,yCAAkB,CAACC,OAAO;IACnC,KAAKf,wBAAwB,CAACgB,SAAS;MACrC,OAAOF,yCAAkB,CAACG,UAAU;IACtC,KAAKjB,wBAAwB,CAACkB,QAAQ;MACpC,OAAOJ,yCAAkB,CAACK,SAAS;IACrC,KAAKnB,wBAAwB,CAACoB,OAAO;MACnC,OAAON,yCAAkB,CAACO,QAAQ;EACtC;AACF;AAEO,SAASC,gBAAgBA,CAAClB,IAA0B,EAAkB;EAC3E,QAAQA,IAAI;IACV,KAAKH,oBAAoB,CAACsB,KAAK;MAC7B,OAAOC,qCAAc,CAACC,KAAK;IAC7B,KAAKxB,oBAAoB,CAACyB,KAAK;MAC7B,OAAOF,qCAAc,CAACG,KAAK;EAC/B;AACF;AAEO,SAASC,yBAAyBA,CAACxB,IAA+B,EAAuB;EAC9F,QAAQA,IAAI;IACV,KAAKF,yBAAyB,CAAC2B,oBAAoB;MACjD,OAAOC,0CAAmB,CAACC,sBAAsB;EACrD;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_NamedColors","_interopRequireDefault","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","namedColorsMap","NamedColors","TextTrackStyleAdapter","constructor","_view","backgroundColor","_backgroundColor","color","NativeModules","PlayerModule","setTextTrackStyle","nativeHandle","convertColorToRGBA","edgeStyle","_edgeStyle","style","fontColor","_fontColor","fontFamily","_fontFamily","family","fontSize","_fontSize","size","fromPercentage","windowColor","_windowColor","marginBottom","_marginBottom","margin","marginLeft","_marginLeft","marginRight","_marginRight","marginTop","_marginTop","exports","replace","toLowerCase","colorPattern","match","r","parseInt","g","b","a","pct","parseFloat"],"sources":["TextTrackStyleAdapter.ts"],"sourcesContent":["import type { EdgeStyle, TextTrackStyle, THEOplayerView } from 'react-native-theoplayer';\nimport { NativeModules } from 'react-native';\nimport NamedColors from './NamedColors.json';\n\nconst namedColorsMap = NamedColors as { [name: string]: string };\n\nexport class TextTrackStyleAdapter implements TextTrackStyle {\n private _backgroundColor: string | undefined = undefined;\n private _edgeStyle: EdgeStyle | undefined = undefined;\n private _fontColor: string | undefined = undefined;\n private _fontFamily: string | undefined = undefined;\n private _fontSize: string | undefined = undefined;\n private _windowColor: string | undefined = undefined;\n private _marginBottom: number | undefined = undefined;\n private _marginTop: number | undefined = undefined;\n private _marginLeft: number | undefined = undefined;\n private _marginRight: number | undefined = undefined;\n\n constructor(private readonly _view: THEOplayerView) {}\n\n get backgroundColor(): string | undefined {\n return this._backgroundColor;\n }\n\n set backgroundColor(color: string | undefined) {\n this._backgroundColor = color;\n NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {\n backgroundColor: convertColorToRGBA(color),\n });\n }\n\n get edgeStyle(): EdgeStyle | undefined {\n return this._edgeStyle;\n }\n\n set edgeStyle(style: EdgeStyle | undefined) {\n this._edgeStyle = style;\n NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {\n edgeStyle: style,\n });\n }\n\n get fontColor(): string | undefined {\n return this._fontColor;\n }\n\n set fontColor(color: string | undefined) {\n this._fontColor = color;\n NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {\n fontColor: convertColorToRGBA(color),\n });\n }\n\n get fontFamily(): string | undefined {\n return this._fontFamily;\n }\n\n set fontFamily(family: string | undefined) {\n this._fontFamily = family;\n NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {\n fontFamily: family,\n });\n }\n\n get fontSize(): string | undefined {\n return this._fontSize;\n }\n\n set fontSize(size: string | undefined) {\n this._fontSize = size;\n NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {\n fontSize: fromPercentage(size),\n });\n }\n\n get windowColor(): string | undefined {\n return this._windowColor;\n }\n\n set windowColor(color: string | undefined) {\n this._windowColor = color;\n NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {\n windowColor: convertColorToRGBA(color),\n });\n }\n\n get marginBottom(): number | undefined {\n return this._marginBottom;\n }\n\n set marginBottom(margin: number | undefined) {\n this._marginBottom = margin;\n NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {\n marginBottom: margin,\n });\n }\n\n get marginLeft(): number | undefined {\n return this._marginLeft;\n }\n\n set marginLeft(margin: number | undefined) {\n this._marginLeft = margin;\n NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {\n marginLeft: margin,\n });\n }\n\n get marginRight(): number | undefined {\n return this._marginRight;\n }\n\n set marginRight(margin: number | undefined) {\n this._marginRight = margin;\n NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {\n marginRight: margin,\n });\n }\n\n get marginTop(): number | undefined {\n return this._marginTop;\n }\n\n set marginTop(margin: number | undefined) {\n this._marginTop = margin;\n NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {\n marginTop: margin,\n });\n }\n}\n\ninterface BridgeColor {\n r: number;\n g: number;\n b: number;\n a: number;\n}\n\nfunction convertColorToRGBA(color: string | undefined): BridgeColor | null {\n if (!color) {\n return null;\n }\n\n color = color.replace('#', '');\n\n if (namedColorsMap[color.toLowerCase()]) {\n color = namedColorsMap[color.toLowerCase()];\n }\n\n const colorPattern = /^(?:#|0x)?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i;\n const match = color.match(colorPattern);\n\n if (!match) {\n return null;\n }\n\n const r = parseInt(match[1], 16);\n const g = parseInt(match[2], 16);\n const b = parseInt(match[3], 16);\n const a = match[4] ? parseInt(match[4], 16) : 255;\n return { r, g, b, a };\n}\n\nfunction fromPercentage(pct: string | undefined): number {\n return pct ? parseFloat(pct) : 100;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_NamedColors","_interopRequireDefault","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","namedColorsMap","NamedColors","TextTrackStyleAdapter","constructor","_view","backgroundColor","_backgroundColor","color","NativeModules","PlayerModule","setTextTrackStyle","nativeHandle","convertColorToRGBA","edgeStyle","_edgeStyle","style","fontColor","_fontColor","fontFamily","_fontFamily","family","fontSize","_fontSize","size","fromPercentage","windowColor","_windowColor","marginBottom","_marginBottom","margin","marginLeft","_marginLeft","marginRight","_marginRight","marginTop","_marginTop","exports","replace","toLowerCase","colorPattern","match","r","parseInt","g","b","a","pct","parseFloat"],"sources":["TextTrackStyleAdapter.ts"],"sourcesContent":["import type { EdgeStyle, TextTrackStyle, THEOplayerView } from 'react-native-theoplayer';\nimport { NativeModules } from 'react-native';\nimport NamedColors from './NamedColors.json';\n\nconst namedColorsMap = NamedColors as { [name: string]: string };\n\nexport class TextTrackStyleAdapter implements TextTrackStyle {\n private _backgroundColor: string | undefined = undefined;\n private _edgeStyle: EdgeStyle | undefined = undefined;\n private _fontColor: string | undefined = undefined;\n private _fontFamily: string | undefined = undefined;\n private _fontSize: string | undefined = undefined;\n private _windowColor: string | undefined = undefined;\n private _marginBottom: number | undefined = undefined;\n private _marginTop: number | undefined = undefined;\n private _marginLeft: number | undefined = undefined;\n private _marginRight: number | undefined = undefined;\n\n constructor(private readonly _view: THEOplayerView) {}\n\n get backgroundColor(): string | undefined {\n return this._backgroundColor;\n }\n\n set backgroundColor(color: string | undefined) {\n this._backgroundColor = color;\n NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {\n backgroundColor: convertColorToRGBA(color),\n });\n }\n\n get edgeStyle(): EdgeStyle | undefined {\n return this._edgeStyle;\n }\n\n set edgeStyle(style: EdgeStyle | undefined) {\n this._edgeStyle = style;\n NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {\n edgeStyle: style,\n });\n }\n\n get fontColor(): string | undefined {\n return this._fontColor;\n }\n\n set fontColor(color: string | undefined) {\n this._fontColor = color;\n NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {\n fontColor: convertColorToRGBA(color),\n });\n }\n\n get fontFamily(): string | undefined {\n return this._fontFamily;\n }\n\n set fontFamily(family: string | undefined) {\n this._fontFamily = family;\n NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {\n fontFamily: family,\n });\n }\n\n get fontSize(): string | undefined {\n return this._fontSize;\n }\n\n set fontSize(size: string | undefined) {\n this._fontSize = size;\n NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {\n fontSize: fromPercentage(size),\n });\n }\n\n get windowColor(): string | undefined {\n return this._windowColor;\n }\n\n set windowColor(color: string | undefined) {\n this._windowColor = color;\n NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {\n windowColor: convertColorToRGBA(color),\n });\n }\n\n get marginBottom(): number | undefined {\n return this._marginBottom;\n }\n\n set marginBottom(margin: number | undefined) {\n this._marginBottom = margin;\n NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {\n marginBottom: margin,\n });\n }\n\n get marginLeft(): number | undefined {\n return this._marginLeft;\n }\n\n set marginLeft(margin: number | undefined) {\n this._marginLeft = margin;\n NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {\n marginLeft: margin,\n });\n }\n\n get marginRight(): number | undefined {\n return this._marginRight;\n }\n\n set marginRight(margin: number | undefined) {\n this._marginRight = margin;\n NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {\n marginRight: margin,\n });\n }\n\n get marginTop(): number | undefined {\n return this._marginTop;\n }\n\n set marginTop(margin: number | undefined) {\n this._marginTop = margin;\n NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {\n marginTop: margin,\n });\n }\n}\n\ninterface BridgeColor {\n r: number;\n g: number;\n b: number;\n a: number;\n}\n\nfunction convertColorToRGBA(color: string | undefined): BridgeColor | null {\n if (!color) {\n return null;\n }\n\n color = color.replace('#', '');\n\n if (namedColorsMap[color.toLowerCase()]) {\n color = namedColorsMap[color.toLowerCase()];\n }\n\n const colorPattern = /^(?:#|0x)?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i;\n const match = color.match(colorPattern);\n\n if (!match) {\n return null;\n }\n\n const r = parseInt(match[1], 16);\n const g = parseInt(match[2], 16);\n const b = parseInt(match[3], 16);\n const a = match[4] ? parseInt(match[4], 16) : 255;\n return { r, g, b, a };\n}\n\nfunction fromPercentage(pct: string | undefined): number {\n return pct ? parseFloat(pct) : 100;\n}\n"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.fullscreenAPI = void 0;
|
|
7
|
-
const fullscreenAPI = (() => {
|
|
7
|
+
const fullscreenAPI = exports.fullscreenAPI = (() => {
|
|
8
8
|
if (!document) {
|
|
9
9
|
return;
|
|
10
10
|
}
|
|
@@ -37,5 +37,4 @@ const fullscreenAPI = (() => {
|
|
|
37
37
|
}
|
|
38
38
|
return undefined;
|
|
39
39
|
})();
|
|
40
|
-
exports.fullscreenAPI = fullscreenAPI;
|
|
41
40
|
//# sourceMappingURL=FullscreenAPI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["fullscreenAPI","document","apiMap","browserMap","requestFullscreen_","exitFullscreen_","fullscreenElement_","fullscreenEnabled_","fullscreenchange_","fullscreenerror_","undefined"
|
|
1
|
+
{"version":3,"names":["fullscreenAPI","exports","document","apiMap","browserMap","requestFullscreen_","exitFullscreen_","fullscreenElement_","fullscreenEnabled_","fullscreenchange_","fullscreenerror_","undefined"],"sources":["FullscreenAPI.ts"],"sourcesContent":["export interface FullscreenAPIMap {\n requestFullscreen_: 'requestFullscreen';\n exitFullscreen_: 'exitFullscreen';\n fullscreenElement_: 'fullscreenElement';\n fullscreenEnabled_: 'fullscreenEnabled';\n fullscreenchange_: 'fullscreenchange';\n fullscreenerror_: 'fullscreenerror';\n}\n\nexport const fullscreenAPI: FullscreenAPIMap | undefined = (() => {\n if (!document) {\n return;\n }\n\n // browser API methods\n // map approach from Screenful.js - https://github.com/sindresorhus/screenfull.js\n const apiMap: string[][] = [\n // Spec: https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html\n ['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror'],\n // WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Old WebKit (Safari 5.1)\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Mozilla\n ['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozFullScreenEnabled', 'mozfullscreenchange', 'mozfullscreenerror'],\n // Microsoft\n ['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'msFullscreenEnabled', 'MSFullscreenChange', 'MSFullscreenError']\n ];\n\n for (const browserMap of apiMap) {\n // check for exitFullscreen function\n if (browserMap[1] in document) {\n return {\n requestFullscreen_: browserMap[0],\n exitFullscreen_: browserMap[1],\n fullscreenElement_: browserMap[2],\n fullscreenEnabled_: browserMap[3],\n fullscreenchange_: browserMap[4],\n fullscreenerror_: browserMap[5]\n } as FullscreenAPIMap;\n }\n }\n\n return undefined;\n})();\n"],"mappings":";;;;;;AASO,MAAMA,aAA2C,GAAAC,OAAA,CAAAD,aAAA,GAAG,CAAC,MAAM;EAChE,IAAI,CAACE,QAAQ,EAAE;IACb;EACF;;EAEA;EACA;EACA,MAAMC,MAAkB,GAAG;EACzB;EACA,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;EACxH;EACA,CACE,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,CACxB;EACD;EACA,CACE,yBAAyB,EACzB,wBAAwB,EACxB,gCAAgC,EAChC,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,CACxB;EACD;EACA,CAAC,sBAAsB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,oBAAoB,CAAC;EAC5I;EACA,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,mBAAmB,CAAC,CACrI;EAED,KAAK,MAAMC,UAAU,IAAID,MAAM,EAAE;IAC/B;IACA,IAAIC,UAAU,CAAC,CAAC,CAAC,IAAIF,QAAQ,EAAE;MAC7B,OAAO;QACLG,kBAAkB,EAAED,UAAU,CAAC,CAAC,CAAC;QACjCE,eAAe,EAAEF,UAAU,CAAC,CAAC,CAAC;QAC9BG,kBAAkB,EAAEH,UAAU,CAAC,CAAC,CAAC;QACjCI,kBAAkB,EAAEJ,UAAU,CAAC,CAAC,CAAC;QACjCK,iBAAiB,EAAEL,UAAU,CAAC,CAAC,CAAC;QAChCM,gBAAgB,EAAEN,UAAU,CAAC,CAAC;MAChC,CAAC;IACH;EACF;EAEA,OAAOO,SAAS;AAClB,CAAC,EAAE,CAAC"}
|
|
@@ -9,15 +9,13 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typ
|
|
|
9
9
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
10
10
|
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
11
11
|
|
|
12
|
-
const defaultWebMediaSessionConfig = {
|
|
12
|
+
const defaultWebMediaSessionConfig = exports.defaultWebMediaSessionConfig = {
|
|
13
13
|
skipTime: 15
|
|
14
14
|
};
|
|
15
|
-
exports.defaultWebMediaSessionConfig = defaultWebMediaSessionConfig;
|
|
16
15
|
const NoOp = () => {};
|
|
17
16
|
|
|
18
17
|
// This prevents unnecessary errors when Media Session API is not available.
|
|
19
|
-
const mediaSession = function () {
|
|
20
|
-
var _navigator$mediaSessi, _navigator$mediaSessi2;
|
|
18
|
+
const mediaSession = function (_navigator$mediaSessi, _navigator$mediaSessi2) {
|
|
21
19
|
const mediaSession = navigator.mediaSession || {};
|
|
22
20
|
mediaSession.setActionHandler = ((_navigator$mediaSessi = navigator.mediaSession) === null || _navigator$mediaSessi === void 0 ? void 0 : _navigator$mediaSessi.setActionHandler) || function () {};
|
|
23
21
|
mediaSession.setPositionState = ((_navigator$mediaSessi2 = navigator.mediaSession) === null || _navigator$mediaSessi2 === void 0 ? void 0 : _navigator$mediaSessi2.setPositionState) || function () {};
|
|
@@ -100,8 +98,8 @@ class WebMediaSession {
|
|
|
100
98
|
this._player.addEventListener('sourcechange', this.onSourceChange);
|
|
101
99
|
this._player.addEventListener('loadedmetadata', this.onLoadedMetadata);
|
|
102
100
|
this._player.addEventListener('durationchange', this.onDurationChange);
|
|
103
|
-
(_this$_player$ads = this._player.ads) === null || _this$_player$ads === void 0
|
|
104
|
-
(_this$_player$ads2 = this._player.ads) === null || _this$_player$ads2 === void 0
|
|
101
|
+
(_this$_player$ads = this._player.ads) === null || _this$_player$ads === void 0 || _this$_player$ads.addEventListener('adbreakbegin', this.onAdbreakBegin);
|
|
102
|
+
(_this$_player$ads2 = this._player.ads) === null || _this$_player$ads2 === void 0 || _this$_player$ads2.addEventListener('adbreakend', this.onAdbreakEnd);
|
|
105
103
|
this.updateActionHandlers();
|
|
106
104
|
}
|
|
107
105
|
updateActionHandlers() {
|
|
@@ -121,11 +119,11 @@ class WebMediaSession {
|
|
|
121
119
|
if (this.isPlayPauseEnabled()) {
|
|
122
120
|
mediaSession.setActionHandler('play', () => {
|
|
123
121
|
var _this$_player;
|
|
124
|
-
(_this$_player = this._player) === null || _this$_player === void 0
|
|
122
|
+
(_this$_player = this._player) === null || _this$_player === void 0 || _this$_player.play();
|
|
125
123
|
});
|
|
126
|
-
mediaSession === null || mediaSession === void 0
|
|
124
|
+
mediaSession === null || mediaSession === void 0 || mediaSession.setActionHandler('pause', () => {
|
|
127
125
|
var _this$_player2;
|
|
128
|
-
(_this$_player2 = this._player) === null || _this$_player2 === void 0
|
|
126
|
+
(_this$_player2 = this._player) === null || _this$_player2 === void 0 || _this$_player2.pause();
|
|
129
127
|
});
|
|
130
128
|
} else {
|
|
131
129
|
mediaSession.setActionHandler('play', NoOp);
|
|
@@ -137,8 +135,8 @@ class WebMediaSession {
|
|
|
137
135
|
this._player.removeEventListener('sourcechange', this.onSourceChange);
|
|
138
136
|
this._player.removeEventListener('loadedmetadata', this.onLoadedMetadata);
|
|
139
137
|
this._player.removeEventListener('durationchange', this.onDurationChange);
|
|
140
|
-
(_this$_player$ads3 = this._player.ads) === null || _this$_player$ads3 === void 0
|
|
141
|
-
(_this$_player$ads4 = this._player.ads) === null || _this$_player$ads4 === void 0
|
|
138
|
+
(_this$_player$ads3 = this._player.ads) === null || _this$_player$ads3 === void 0 || _this$_player$ads3.removeEventListener('adbreakbegin', this.onAdbreakBegin);
|
|
139
|
+
(_this$_player$ads4 = this._player.ads) === null || _this$_player$ads4 === void 0 || _this$_player$ads4.removeEventListener('adbreakend', this.onAdbreakEnd);
|
|
142
140
|
mediaSession.setActionHandler('play', NoOp);
|
|
143
141
|
mediaSession.setActionHandler('pause', NoOp);
|
|
144
142
|
mediaSession.setActionHandler('seekbackward', NoOp);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["defaultWebMediaSessionConfig","skipTime","exports","NoOp","mediaSession","_navigator$mediaSessi","_navigator$mediaSessi2","navigator","setActionHandler","setPositionState","window","MediaMetadata","WebMediaSession","constructor","adapter","player","_this$_player$ads","_this$_player$ads2","config","arguments","length","undefined","_defineProperty","updateMetadata","updatePositionState","updateActionHandlers","source","_player","metadata","artwork","displayIconUri","poster","images","filter","image","map","src","title","artist","subtitle","album","duration","playbackRate","currentTime","isLive","isFinite","isNaN","position","_webAdapter","_config","addEventListener","onSourceChange","onLoadedMetadata","onDurationChange","ads","onAdbreakBegin","onAdbreakEnd","isTrickplayEnabled","event","seekOffset","Math","max","min","isPlayPauseEnabled","_this$_player","play","_this$_player2","pause","destroy","_this$_player$ads3","_this$_player$ads4","removeEventListener","isInAd","_this$_player$ads5","playing","isInBackground","document","visibilityState","isBackgroundAudioEnabled","backgroundAudioConfiguration","enabled"],"sources":["WebMediaSession.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\nimport type { ChromelessPlayer } from 'theoplayer';\nimport type { THEOplayerWebAdapter } from '../THEOplayerWebAdapter';\n\ninterface WebMediaSessionConfig {\n skipTime: number;\n}\n\nexport const defaultWebMediaSessionConfig: WebMediaSessionConfig = {\n skipTime: 15,\n};\n\nconst NoOp = () => {};\n\n// This prevents unnecessary errors when Media Session API is not available.\nconst mediaSession = (function () {\n const mediaSession = navigator.mediaSession || {};\n mediaSession.setActionHandler = navigator.mediaSession?.setActionHandler || function () {};\n mediaSession.setPositionState = navigator.mediaSession?.setPositionState || function () {};\n window.MediaMetadata = window.MediaMetadata || function () {};\n return mediaSession;\n})();\n\n/**\n * The MediaSession interface of the Media Session API allows a web page to provide custom behaviors for standard media playback interactions, and\n * to report metadata that can be sent by the user agent to the device or operating system for presentation in standardized user interface elements.\n *\n * @link https://w3c.github.io/mediasession\n */\nexport class WebMediaSession {\n private readonly _config: WebMediaSessionConfig;\n private readonly _player: ChromelessPlayer;\n private readonly _webAdapter: THEOplayerWebAdapter;\n\n constructor(adapter: THEOplayerWebAdapter, player: ChromelessPlayer, config: WebMediaSessionConfig = defaultWebMediaSessionConfig) {\n this._player = player;\n this._webAdapter = adapter;\n this._config = config;\n\n this._player.addEventListener('sourcechange', this.onSourceChange);\n this._player.addEventListener('loadedmetadata', this.onLoadedMetadata);\n this._player.addEventListener('durationchange', this.onDurationChange);\n this._player.ads?.addEventListener('adbreakbegin', this.onAdbreakBegin);\n this._player.ads?.addEventListener('adbreakend', this.onAdbreakEnd);\n this.updateActionHandlers();\n }\n\n updateActionHandlers() {\n if (this.isTrickplayEnabled()) {\n mediaSession.setActionHandler('seekbackward', (event) => {\n const skipTime = event.seekOffset || this._config.skipTime;\n this._player.currentTime = Math.max(this._player.currentTime - skipTime, 0);\n });\n mediaSession.setActionHandler('seekforward', (event) => {\n const skipTime = event.seekOffset || this._config.skipTime;\n this._player.currentTime = Math.min(this._player.currentTime + skipTime, this._player.duration);\n });\n } else {\n mediaSession.setActionHandler('seekbackward', NoOp);\n mediaSession.setActionHandler('seekforward', NoOp);\n }\n\n if (this.isPlayPauseEnabled()) {\n mediaSession.setActionHandler('play', () => {\n this._player?.play();\n });\n mediaSession?.setActionHandler('pause', () => {\n this._player?.pause();\n });\n } else {\n mediaSession.setActionHandler('play', NoOp);\n mediaSession.setActionHandler('pause', NoOp);\n }\n }\n\n destroy() {\n this._player.removeEventListener('sourcechange', this.onSourceChange);\n this._player.removeEventListener('loadedmetadata', this.onLoadedMetadata);\n this._player.removeEventListener('durationchange', this.onDurationChange);\n this._player.ads?.removeEventListener('adbreakbegin', this.onAdbreakBegin);\n this._player.ads?.removeEventListener('adbreakend', this.onAdbreakEnd);\n mediaSession.setActionHandler('play', NoOp);\n mediaSession.setActionHandler('pause', NoOp);\n mediaSession.setActionHandler('seekbackward', NoOp);\n mediaSession.setActionHandler('seekforward', NoOp);\n }\n\n private onSourceChange = () => {\n this.updateMetadata();\n this.updatePositionState();\n this.updateActionHandlers();\n };\n\n private onLoadedMetadata = () => {\n this.updateActionHandlers();\n };\n\n private onDurationChange = () => {\n this.updateActionHandlers();\n };\n\n private updateMetadata = () => {\n const source = this._player.source;\n const metadata = source?.metadata;\n const artwork = [metadata?.displayIconUri, source?.poster, ...(metadata?.images ? metadata?.images : [])]\n .filter((image) => image !== undefined)\n .map((image) => {\n if (typeof image === 'string') {\n return { src: image };\n }\n return image;\n });\n mediaSession.metadata = new MediaMetadata({\n title: metadata?.title,\n artist: metadata?.artist || metadata?.subtitle,\n album: metadata?.album,\n artwork,\n });\n };\n\n private updatePositionState = () => {\n const { duration, playbackRate, currentTime } = this._player;\n const isLive = !isFinite(duration);\n if (!isLive) {\n mediaSession.setPositionState({\n // The duration is used to specify the duration in seconds.\n // It should always be positive and positive infinity can be used to indicate media without a defined end such as live playback.\n // NOTE: passing Infinite causes an exception to be thrown.\n duration: isNaN(duration) || duration < 0 ? 0 : duration,\n\n // The playbackRate is used to specify the playback rate.\n // It can be positive to represent forward playback or negative to represent backwards playback. It should not be zero.\n playbackRate,\n\n // The position is used to specify the last reported playback position in seconds. It should always be positive.\n position: currentTime,\n });\n }\n };\n\n private onAdbreakBegin = () => {\n this.updateActionHandlers();\n };\n\n private onAdbreakEnd = () => {\n this.updateActionHandlers();\n };\n\n private isLive(): boolean {\n return !isFinite(this._player.duration);\n }\n\n private isInAd(): boolean {\n return this._player.ads?.playing === true;\n }\n\n private isInBackground(): boolean {\n return document.visibilityState !== 'visible';\n }\n\n // By default, only show trick-play buttons if:\n // - backgroundAudio is enabled, or the player is in foreground;\n // - and, the current asset is neither a live stream, nor an ad.\n private isTrickplayEnabled(): boolean {\n return (this.isBackgroundAudioEnabled() || !this.isInBackground()) && !this.isLive() && !this.isInAd();\n }\n\n // By default, only show a play/pause button if:\n // - backgroundAudio is enabled, or the player is in foreground;\n // - and, the current asset is not an ad.\n private isPlayPauseEnabled(): boolean {\n return (this.isBackgroundAudioEnabled() || !this.isInBackground()) && !this.isInAd();\n }\n\n private isBackgroundAudioEnabled(): boolean {\n return this._webAdapter.backgroundAudioConfiguration.enabled === true;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["defaultWebMediaSessionConfig","exports","skipTime","NoOp","mediaSession","_navigator$mediaSessi","_navigator$mediaSessi2","navigator","setActionHandler","setPositionState","window","MediaMetadata","WebMediaSession","constructor","adapter","player","_this$_player$ads","_this$_player$ads2","config","arguments","length","undefined","_defineProperty","updateMetadata","updatePositionState","updateActionHandlers","source","_player","metadata","artwork","displayIconUri","poster","images","filter","image","map","src","title","artist","subtitle","album","duration","playbackRate","currentTime","isLive","isFinite","isNaN","position","_webAdapter","_config","addEventListener","onSourceChange","onLoadedMetadata","onDurationChange","ads","onAdbreakBegin","onAdbreakEnd","isTrickplayEnabled","event","seekOffset","Math","max","min","isPlayPauseEnabled","_this$_player","play","_this$_player2","pause","destroy","_this$_player$ads3","_this$_player$ads4","removeEventListener","isInAd","_this$_player$ads5","playing","isInBackground","document","visibilityState","isBackgroundAudioEnabled","backgroundAudioConfiguration","enabled"],"sources":["WebMediaSession.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\nimport type { ChromelessPlayer } from 'theoplayer';\nimport type { THEOplayerWebAdapter } from '../THEOplayerWebAdapter';\n\ninterface WebMediaSessionConfig {\n skipTime: number;\n}\n\nexport const defaultWebMediaSessionConfig: WebMediaSessionConfig = {\n skipTime: 15,\n};\n\nconst NoOp = () => {};\n\n// This prevents unnecessary errors when Media Session API is not available.\nconst mediaSession = (function () {\n const mediaSession = navigator.mediaSession || {};\n mediaSession.setActionHandler = navigator.mediaSession?.setActionHandler || function () {};\n mediaSession.setPositionState = navigator.mediaSession?.setPositionState || function () {};\n window.MediaMetadata = window.MediaMetadata || function () {};\n return mediaSession;\n})();\n\n/**\n * The MediaSession interface of the Media Session API allows a web page to provide custom behaviors for standard media playback interactions, and\n * to report metadata that can be sent by the user agent to the device or operating system for presentation in standardized user interface elements.\n *\n * @link https://w3c.github.io/mediasession\n */\nexport class WebMediaSession {\n private readonly _config: WebMediaSessionConfig;\n private readonly _player: ChromelessPlayer;\n private readonly _webAdapter: THEOplayerWebAdapter;\n\n constructor(adapter: THEOplayerWebAdapter, player: ChromelessPlayer, config: WebMediaSessionConfig = defaultWebMediaSessionConfig) {\n this._player = player;\n this._webAdapter = adapter;\n this._config = config;\n\n this._player.addEventListener('sourcechange', this.onSourceChange);\n this._player.addEventListener('loadedmetadata', this.onLoadedMetadata);\n this._player.addEventListener('durationchange', this.onDurationChange);\n this._player.ads?.addEventListener('adbreakbegin', this.onAdbreakBegin);\n this._player.ads?.addEventListener('adbreakend', this.onAdbreakEnd);\n this.updateActionHandlers();\n }\n\n updateActionHandlers() {\n if (this.isTrickplayEnabled()) {\n mediaSession.setActionHandler('seekbackward', (event) => {\n const skipTime = event.seekOffset || this._config.skipTime;\n this._player.currentTime = Math.max(this._player.currentTime - skipTime, 0);\n });\n mediaSession.setActionHandler('seekforward', (event) => {\n const skipTime = event.seekOffset || this._config.skipTime;\n this._player.currentTime = Math.min(this._player.currentTime + skipTime, this._player.duration);\n });\n } else {\n mediaSession.setActionHandler('seekbackward', NoOp);\n mediaSession.setActionHandler('seekforward', NoOp);\n }\n\n if (this.isPlayPauseEnabled()) {\n mediaSession.setActionHandler('play', () => {\n this._player?.play();\n });\n mediaSession?.setActionHandler('pause', () => {\n this._player?.pause();\n });\n } else {\n mediaSession.setActionHandler('play', NoOp);\n mediaSession.setActionHandler('pause', NoOp);\n }\n }\n\n destroy() {\n this._player.removeEventListener('sourcechange', this.onSourceChange);\n this._player.removeEventListener('loadedmetadata', this.onLoadedMetadata);\n this._player.removeEventListener('durationchange', this.onDurationChange);\n this._player.ads?.removeEventListener('adbreakbegin', this.onAdbreakBegin);\n this._player.ads?.removeEventListener('adbreakend', this.onAdbreakEnd);\n mediaSession.setActionHandler('play', NoOp);\n mediaSession.setActionHandler('pause', NoOp);\n mediaSession.setActionHandler('seekbackward', NoOp);\n mediaSession.setActionHandler('seekforward', NoOp);\n }\n\n private onSourceChange = () => {\n this.updateMetadata();\n this.updatePositionState();\n this.updateActionHandlers();\n };\n\n private onLoadedMetadata = () => {\n this.updateActionHandlers();\n };\n\n private onDurationChange = () => {\n this.updateActionHandlers();\n };\n\n private updateMetadata = () => {\n const source = this._player.source;\n const metadata = source?.metadata;\n const artwork = [metadata?.displayIconUri, source?.poster, ...(metadata?.images ? metadata?.images : [])]\n .filter((image) => image !== undefined)\n .map((image) => {\n if (typeof image === 'string') {\n return { src: image };\n }\n return image;\n });\n mediaSession.metadata = new MediaMetadata({\n title: metadata?.title,\n artist: metadata?.artist || metadata?.subtitle,\n album: metadata?.album,\n artwork,\n });\n };\n\n private updatePositionState = () => {\n const { duration, playbackRate, currentTime } = this._player;\n const isLive = !isFinite(duration);\n if (!isLive) {\n mediaSession.setPositionState({\n // The duration is used to specify the duration in seconds.\n // It should always be positive and positive infinity can be used to indicate media without a defined end such as live playback.\n // NOTE: passing Infinite causes an exception to be thrown.\n duration: isNaN(duration) || duration < 0 ? 0 : duration,\n\n // The playbackRate is used to specify the playback rate.\n // It can be positive to represent forward playback or negative to represent backwards playback. It should not be zero.\n playbackRate,\n\n // The position is used to specify the last reported playback position in seconds. It should always be positive.\n position: currentTime,\n });\n }\n };\n\n private onAdbreakBegin = () => {\n this.updateActionHandlers();\n };\n\n private onAdbreakEnd = () => {\n this.updateActionHandlers();\n };\n\n private isLive(): boolean {\n return !isFinite(this._player.duration);\n }\n\n private isInAd(): boolean {\n return this._player.ads?.playing === true;\n }\n\n private isInBackground(): boolean {\n return document.visibilityState !== 'visible';\n }\n\n // By default, only show trick-play buttons if:\n // - backgroundAudio is enabled, or the player is in foreground;\n // - and, the current asset is neither a live stream, nor an ad.\n private isTrickplayEnabled(): boolean {\n return (this.isBackgroundAudioEnabled() || !this.isInBackground()) && !this.isLive() && !this.isInAd();\n }\n\n // By default, only show a play/pause button if:\n // - backgroundAudio is enabled, or the player is in foreground;\n // - and, the current asset is not an ad.\n private isPlayPauseEnabled(): boolean {\n return (this.isBackgroundAudioEnabled() || !this.isInBackground()) && !this.isInAd();\n }\n\n private isBackgroundAudioEnabled(): boolean {\n return this._webAdapter.backgroundAudioConfiguration.enabled === true;\n }\n}\n"],"mappings":"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"}
|
|
@@ -54,7 +54,7 @@ class WebPresentationModeManager {
|
|
|
54
54
|
}
|
|
55
55
|
} else if (presentationMode === _reactNativeTheoplayer.PresentationMode.pip) {
|
|
56
56
|
var _this$_element, _this$_element$reques;
|
|
57
|
-
void ((_this$_element = this._element) === null || _this$_element === void 0
|
|
57
|
+
void ((_this$_element = this._element) === null || _this$_element === void 0 || (_this$_element$reques = _this$_element.requestPictureInPicture) === null || _this$_element$reques === void 0 ? void 0 : _this$_element$reques.call(_this$_element));
|
|
58
58
|
} else {
|
|
59
59
|
if (this._presentationMode === _reactNativeTheoplayer.PresentationMode.fullscreen) {
|
|
60
60
|
const promise = document[_FullscreenAPI.fullscreenAPI.exitFullscreen_]();
|
|
@@ -70,13 +70,13 @@ class WebPresentationModeManager {
|
|
|
70
70
|
// iOS Safari doesn't properly support fullscreen, use native fullscreen instead
|
|
71
71
|
if (presentationMode === _reactNativeTheoplayer.PresentationMode.fullscreen) {
|
|
72
72
|
var _this$_element2, _this$_element2$webki;
|
|
73
|
-
(_this$_element2 = this._element) === null || _this$_element2 === void 0
|
|
73
|
+
(_this$_element2 = this._element) === null || _this$_element2 === void 0 || (_this$_element2$webki = _this$_element2.webkitEnterFullscreen) === null || _this$_element2$webki === void 0 || _this$_element2$webki.call(_this$_element2);
|
|
74
74
|
} else if (presentationMode === _reactNativeTheoplayer.PresentationMode.pip) {
|
|
75
75
|
var _this$_element3, _this$_element3$webki;
|
|
76
|
-
(_this$_element3 = this._element) === null || _this$_element3 === void 0
|
|
76
|
+
(_this$_element3 = this._element) === null || _this$_element3 === void 0 || (_this$_element3$webki = _this$_element3.webkitSetPresentationMode) === null || _this$_element3$webki === void 0 || _this$_element3$webki.call(_this$_element3, _reactNativeTheoplayer.PresentationMode.pip);
|
|
77
77
|
} else {
|
|
78
78
|
var _this$_element4, _this$_element4$webki;
|
|
79
|
-
(_this$_element4 = this._element) === null || _this$_element4 === void 0
|
|
79
|
+
(_this$_element4 = this._element) === null || _this$_element4 === void 0 || (_this$_element4$webki = _this$_element4.webkitSetPresentationMode) === null || _this$_element4$webki === void 0 || _this$_element4$webki.call(_this$_element4, _reactNativeTheoplayer.PresentationMode.inline);
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeTheoplayer","require","_PlayerEvents","_FullscreenAPI","_CommonUtils","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","WebPresentationModeManager","constructor","player","eventForwarder","PresentationMode","inline","newPresentationMode","fullscreenAPI","document","fullscreenElement_","fullscreen","pictureInPictureElement","pip","previousPresentationMode","_presentationMode","_eventForwarder","dispatchEvent","DefaultPresentationModeChangeEvent","_player","presentationMode","prepareForPresentationModeChanges","appElement","getElementById","promise","requestFullscreen_","then","noOp","_this$_element","_this$_element$reques","_element","requestPictureInPicture","exitFullscreen_","exitPictureInPicture","_this$_element2","_this$_element2$webki","webkitEnterFullscreen","_this$_element3","_this$_element3$webki","webkitSetPresentationMode","_this$_element4","_this$_element4$webki","elements","element","children","Array","from","tagName","attributes","getNamedItem","onenterpictureinpicture","updatePresentationMode","onleavepictureinpicture","addEventListener","fullscreenchange_","fullscreenerror_","exports"],"sources":["WebPresentationModeManager.ts"],"sourcesContent":["import type { PlayerEventMap } from 'react-native-theoplayer';\nimport { PresentationMode } from 'react-native-theoplayer';\nimport type
|
|
1
|
+
{"version":3,"names":["_reactNativeTheoplayer","require","_PlayerEvents","_FullscreenAPI","_CommonUtils","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","WebPresentationModeManager","constructor","player","eventForwarder","PresentationMode","inline","newPresentationMode","fullscreenAPI","document","fullscreenElement_","fullscreen","pictureInPictureElement","pip","previousPresentationMode","_presentationMode","_eventForwarder","dispatchEvent","DefaultPresentationModeChangeEvent","_player","presentationMode","prepareForPresentationModeChanges","appElement","getElementById","promise","requestFullscreen_","then","noOp","_this$_element","_this$_element$reques","_element","requestPictureInPicture","exitFullscreen_","exitPictureInPicture","_this$_element2","_this$_element2$webki","webkitEnterFullscreen","_this$_element3","_this$_element3$webki","webkitSetPresentationMode","_this$_element4","_this$_element4$webki","elements","element","children","Array","from","tagName","attributes","getNamedItem","onenterpictureinpicture","updatePresentationMode","onleavepictureinpicture","addEventListener","fullscreenchange_","fullscreenerror_","exports"],"sources":["WebPresentationModeManager.ts"],"sourcesContent":["import type { PlayerEventMap } from 'react-native-theoplayer';\nimport { PresentationMode } from 'react-native-theoplayer';\nimport type { ChromelessPlayer } from 'theoplayer';\nimport { DefaultPresentationModeChangeEvent } from '../event/PlayerEvents';\nimport type { DefaultEventDispatcher } from '../event/DefaultEventDispatcher';\nimport { fullscreenAPI } from './FullscreenAPI';\nimport { noOp } from '../../utils/CommonUtils';\n\nexport class WebPresentationModeManager {\n private readonly _player: ChromelessPlayer;\n private _presentationMode: PresentationMode = PresentationMode.inline;\n private _element: HTMLVideoElement | undefined = undefined;\n private _eventForwarder: DefaultEventDispatcher<PlayerEventMap>;\n\n constructor(player: ChromelessPlayer, eventForwarder: DefaultEventDispatcher<PlayerEventMap>) {\n this._player = player;\n this._eventForwarder = eventForwarder;\n }\n\n get presentationMode(): PresentationMode {\n return this._presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n if (presentationMode === this._presentationMode) {\n return;\n }\n\n this.prepareForPresentationModeChanges();\n\n if (fullscreenAPI !== undefined) {\n // All other browsers\n if (presentationMode === PresentationMode.fullscreen) {\n const appElement = document.getElementById('app')!;\n const promise = appElement[fullscreenAPI.requestFullscreen_]();\n if (promise && promise.then) {\n promise.then(noOp, noOp);\n }\n } else if (presentationMode === PresentationMode.pip) {\n void this._element?.requestPictureInPicture?.();\n } else {\n if (this._presentationMode === PresentationMode.fullscreen) {\n const promise = document[fullscreenAPI.exitFullscreen_]();\n if (promise && promise.then) {\n promise.then(noOp, noOp);\n }\n }\n if (this._presentationMode === PresentationMode.pip) {\n void document.exitPictureInPicture();\n }\n }\n } else {\n // iOS Safari doesn't properly support fullscreen, use native fullscreen instead\n if (presentationMode === PresentationMode.fullscreen) {\n this._element?.webkitEnterFullscreen?.();\n } else if (presentationMode === PresentationMode.pip) {\n this._element?.webkitSetPresentationMode?.(PresentationMode.pip);\n } else {\n this._element?.webkitSetPresentationMode?.(PresentationMode.inline);\n }\n }\n }\n\n private prepareForPresentationModeChanges() {\n const elements = this._player.element.children;\n for (const element of Array.from(elements)) {\n if (element.tagName === 'VIDEO' && element.attributes.getNamedItem('src') !== null) {\n this._element = element as HTMLVideoElement;\n }\n }\n // listen for pip updates on element\n if (this._element !== undefined) {\n this._element.onenterpictureinpicture = () => {\n this.updatePresentationMode();\n };\n this._element.onleavepictureinpicture = () => {\n this.updatePresentationMode();\n };\n }\n // listen for fullscreen updates on document\n if (fullscreenAPI !== undefined) {\n document.addEventListener(fullscreenAPI.fullscreenchange_, this.updatePresentationMode);\n document.addEventListener(fullscreenAPI.fullscreenerror_, this.updatePresentationMode);\n }\n }\n\n private updatePresentationMode = () => {\n // detect new presentation mode\n let newPresentationMode: PresentationMode = PresentationMode.inline;\n if (fullscreenAPI !== undefined && document[fullscreenAPI.fullscreenElement_] !== null) {\n newPresentationMode = PresentationMode.fullscreen;\n } else if (document.pictureInPictureElement !== null) {\n newPresentationMode = PresentationMode.pip;\n }\n\n // when changed, notify by dispatching presentationModeChange event\n const previousPresentationMode = this._presentationMode;\n if (newPresentationMode !== previousPresentationMode) {\n this._presentationMode = newPresentationMode;\n this._eventForwarder.dispatchEvent(new DefaultPresentationModeChangeEvent(this._presentationMode, previousPresentationMode));\n }\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.NativeMediaCache = exports.MediaCache = void 0;
|
|
7
|
+
var _MediaCacheAPI = require("../../api/cache/MediaCacheAPI");
|
|
8
|
+
var _DefaultEventDispatcher = require("../adapter/event/DefaultEventDispatcher");
|
|
9
|
+
var _CacheEvent = require("../../api/cache/events/CacheEvent");
|
|
10
|
+
var _reactNativeTheoplayer = require("react-native-theoplayer");
|
|
11
|
+
var _reactNative = require("react-native");
|
|
12
|
+
var _NativeCachingTaskAdapter = require("./NativeCachingTaskAdapter");
|
|
13
|
+
var _NativeCachingTaskParametersAdapter = require("./NativeCachingTaskParametersAdapter");
|
|
14
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
16
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
17
|
+
const TAG = "NativeMediaCache";
|
|
18
|
+
class NativeMediaCache extends _DefaultEventDispatcher.DefaultEventDispatcher {
|
|
19
|
+
constructor() {
|
|
20
|
+
super();
|
|
21
|
+
_defineProperty(this, "_emitter", new _reactNative.NativeEventEmitter(_reactNative.NativeModules.CacheModule));
|
|
22
|
+
_defineProperty(this, "_status", _MediaCacheAPI.CacheStatus.uninitialised);
|
|
23
|
+
_defineProperty(this, "_tasks", []);
|
|
24
|
+
_defineProperty(this, "onCacheStatusChange", async event => {
|
|
25
|
+
if (this._status === _MediaCacheAPI.CacheStatus.uninitialised) {
|
|
26
|
+
await this.getInitialState();
|
|
27
|
+
}
|
|
28
|
+
this._status = event.status;
|
|
29
|
+
this.dispatchEvent({
|
|
30
|
+
type: _CacheEvent.CacheEventType.statechange,
|
|
31
|
+
date: new Date()
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
_defineProperty(this, "onAddCachingTaskEvent", event => {
|
|
35
|
+
const task = new _NativeCachingTaskAdapter.NativeCachingTaskAdapter(event.task);
|
|
36
|
+
this._tasks.push(task);
|
|
37
|
+
this.dispatchEvent({
|
|
38
|
+
type: _CacheEvent.CacheEventType.addtask,
|
|
39
|
+
task,
|
|
40
|
+
date: new Date()
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
_defineProperty(this, "onRemoveCachingTaskEvent", event => {
|
|
44
|
+
const task = this.taskById(event.task.id);
|
|
45
|
+
if (task) {
|
|
46
|
+
this._tasks = this._tasks.filter(task => task.id !== event.task.id);
|
|
47
|
+
this.dispatchEvent({
|
|
48
|
+
type: _CacheEvent.CacheEventType.removetask,
|
|
49
|
+
task,
|
|
50
|
+
date: new Date()
|
|
51
|
+
});
|
|
52
|
+
} else {
|
|
53
|
+
console.warn(TAG, `onRemoveCachingTaskEvent: CachingTask with id ${event.task.id} not found.`);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
_defineProperty(this, "onCachingTaskProgressEvent", event => {
|
|
57
|
+
const task = this.taskById(event.id);
|
|
58
|
+
if (task) {
|
|
59
|
+
Object.assign(task, {
|
|
60
|
+
...event.progress
|
|
61
|
+
});
|
|
62
|
+
task.dispatchEvent({
|
|
63
|
+
type: _reactNativeTheoplayer.CachingTaskEventType.progress,
|
|
64
|
+
date: new Date()
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
_defineProperty(this, "onCachingTaskStatusChangeEvent", event => {
|
|
69
|
+
const task = this.taskById(event.id);
|
|
70
|
+
if (task) {
|
|
71
|
+
Object.assign(task, {
|
|
72
|
+
...event
|
|
73
|
+
});
|
|
74
|
+
task.dispatchEvent({
|
|
75
|
+
type: _reactNativeTheoplayer.CachingTaskEventType.statechange,
|
|
76
|
+
date: new Date()
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
this._emitter.addListener('onCacheStatusChange', this.onCacheStatusChange);
|
|
81
|
+
this._emitter.addListener('onAddCachingTaskEvent', this.onAddCachingTaskEvent);
|
|
82
|
+
this._emitter.addListener('onRemoveCachingTaskEvent', this.onRemoveCachingTaskEvent);
|
|
83
|
+
this._emitter.addListener('onCachingTaskProgressEvent', this.onCachingTaskProgressEvent);
|
|
84
|
+
this._emitter.addListener('onCachingTaskStatusChangeEvent', this.onCachingTaskStatusChangeEvent);
|
|
85
|
+
void this.initialize();
|
|
86
|
+
}
|
|
87
|
+
async createTask(source, parameters) {
|
|
88
|
+
return _reactNative.NativeModules.CacheModule.createTask(source, (0, _NativeCachingTaskParametersAdapter.toNativeCachingTaskParameters)(parameters));
|
|
89
|
+
}
|
|
90
|
+
get status() {
|
|
91
|
+
return this._status;
|
|
92
|
+
}
|
|
93
|
+
get tasks() {
|
|
94
|
+
return this._tasks;
|
|
95
|
+
}
|
|
96
|
+
async initialize() {
|
|
97
|
+
await this.getInitialState();
|
|
98
|
+
|
|
99
|
+
// Dispatch status change event here
|
|
100
|
+
if (this._status === _MediaCacheAPI.CacheStatus.initialised) {
|
|
101
|
+
await this.onCacheStatusChange({
|
|
102
|
+
status: this._status
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
async getInitialState() {
|
|
107
|
+
const initialState = await _reactNative.NativeModules.CacheModule.getInitialState();
|
|
108
|
+
this._status = initialState.status;
|
|
109
|
+
this._tasks = initialState.tasks.map(task => new _NativeCachingTaskAdapter.NativeCachingTaskAdapter(task));
|
|
110
|
+
}
|
|
111
|
+
taskById(id) {
|
|
112
|
+
return this._tasks.find(task => task.id === id);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.NativeMediaCache = NativeMediaCache;
|
|
116
|
+
const MediaCache = exports.MediaCache = new NativeMediaCache();
|
|
117
|
+
//# sourceMappingURL=MediaCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_MediaCacheAPI","require","_DefaultEventDispatcher","_CacheEvent","_reactNativeTheoplayer","_reactNative","_NativeCachingTaskAdapter","_NativeCachingTaskParametersAdapter","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","TAG","NativeMediaCache","DefaultEventDispatcher","constructor","NativeEventEmitter","NativeModules","CacheModule","CacheStatus","uninitialised","event","_status","getInitialState","status","dispatchEvent","type","CacheEventType","statechange","date","Date","task","NativeCachingTaskAdapter","_tasks","push","addtask","taskById","id","filter","removetask","console","warn","assign","progress","CachingTaskEventType","_emitter","addListener","onCacheStatusChange","onAddCachingTaskEvent","onRemoveCachingTaskEvent","onCachingTaskProgressEvent","onCachingTaskStatusChangeEvent","initialize","createTask","source","parameters","toNativeCachingTaskParameters","tasks","initialised","initialState","map","find","exports","MediaCache"],"sources":["MediaCache.ts"],"sourcesContent":["import { CacheStatus, MediaCacheAPI } from '../../api/cache/MediaCacheAPI';\nimport type { CachingTaskList } from '../../api/cache/CachingTaskList';\nimport { DefaultEventDispatcher } from '../adapter/event/DefaultEventDispatcher';\nimport type { CacheEventMap } from '../../api/cache/events/CacheEvent';\nimport { CacheEventType } from '../../api/cache/events/CacheEvent';\nimport type { CachingTaskProgressEvent, CachingTaskStatusChangeEvent, SourceDescription } from 'react-native-theoplayer';\nimport { CacheTaskStatus, CachingTaskEventType, TimeRange } from 'react-native-theoplayer';\nimport type { CachingTaskParameters } from '../../api/cache/CachingTaskParameters';\nimport type { CachingTask } from '../../api/cache/CachingTask';\nimport { NativeEventEmitter, NativeModules } from 'react-native';\nimport { NativeCachingTask, NativeCachingTaskAdapter } from './NativeCachingTaskAdapter';\nimport { toNativeCachingTaskParameters } from \"./NativeCachingTaskParametersAdapter\";\n\nconst TAG = \"NativeMediaCache\";\n\ninterface NativeCachingStatusChangeEvent {\n readonly id: string;\n readonly status: CacheTaskStatus;\n}\n\ninterface NativeCacheStatusChangeEvent {\n readonly status: CacheStatus;\n}\n\ninterface NativeAddCachingTaskEvent {\n readonly task: NativeCachingTask;\n}\n\ninterface NativeRemoveCachingTaskEvent {\n readonly task: NativeCachingTask;\n}\n\ninterface NativeCachingTaskProgressEvent {\n id: string;\n progress: {\n readonly duration: number;\n readonly cached: TimeRange[];\n readonly secondsCached: number;\n readonly percentageCached: number;\n readonly bytes: number;\n readonly bytesCached: number;\n };\n}\n\nexport class NativeMediaCache extends DefaultEventDispatcher<CacheEventMap> implements MediaCacheAPI {\n private _emitter: NativeEventEmitter = new NativeEventEmitter(NativeModules.CacheModule);\n private _status: CacheStatus = CacheStatus.uninitialised;\n private _tasks: NativeCachingTaskAdapter[] = [];\n\n constructor() {\n super();\n this._emitter.addListener('onCacheStatusChange', this.onCacheStatusChange);\n this._emitter.addListener('onAddCachingTaskEvent', this.onAddCachingTaskEvent);\n this._emitter.addListener('onRemoveCachingTaskEvent', this.onRemoveCachingTaskEvent);\n this._emitter.addListener('onCachingTaskProgressEvent', this.onCachingTaskProgressEvent);\n this._emitter.addListener('onCachingTaskStatusChangeEvent', this.onCachingTaskStatusChangeEvent);\n void this.initialize();\n }\n\n async createTask(source: SourceDescription, parameters: CachingTaskParameters): Promise<CachingTask> {\n return NativeModules.CacheModule.createTask(source, toNativeCachingTaskParameters(parameters));\n }\n\n get status(): CacheStatus {\n return this._status;\n }\n\n get tasks(): CachingTaskList {\n return this._tasks;\n }\n\n private async initialize(): Promise<void> {\n await this.getInitialState();\n\n // Dispatch status change event here\n if (this._status === CacheStatus.initialised) {\n await this.onCacheStatusChange({\n status: this._status,\n });\n }\n }\n\n private async getInitialState(): Promise<void> {\n const initialState = await NativeModules.CacheModule.getInitialState();\n this._status = initialState.status;\n this._tasks = initialState.tasks.map((task: NativeCachingTask) => new NativeCachingTaskAdapter(task));\n }\n\n private onCacheStatusChange = async (event: NativeCacheStatusChangeEvent) => {\n if (this._status === CacheStatus.uninitialised) {\n await this.getInitialState();\n }\n this._status = event.status;\n this.dispatchEvent({\n type: CacheEventType.statechange,\n date: new Date()\n });\n };\n\n private onAddCachingTaskEvent = (event: NativeAddCachingTaskEvent) => {\n const task= new NativeCachingTaskAdapter(event.task);\n this._tasks.push(task);\n this.dispatchEvent({\n type: CacheEventType.addtask,\n task,\n date: new Date(),\n });\n };\n\n private onRemoveCachingTaskEvent = (event: NativeRemoveCachingTaskEvent) => {\n const task = this.taskById(event.task.id);\n if (task) {\n this._tasks = this._tasks.filter((task) => task.id !== event.task.id);\n this.dispatchEvent({\n type: CacheEventType.removetask,\n task,\n date: new Date(),\n });\n } else {\n console.warn(TAG, `onRemoveCachingTaskEvent: CachingTask with id ${event.task.id} not found.`)\n }\n };\n\n private onCachingTaskProgressEvent = (event: NativeCachingTaskProgressEvent) => {\n const task = this.taskById(event.id);\n if (task) {\n Object.assign(task, { ...event.progress });\n task.dispatchEvent({\n type: CachingTaskEventType.progress,\n date: new Date(),\n } as CachingTaskProgressEvent);\n }\n };\n\n private onCachingTaskStatusChangeEvent = (event: NativeCachingStatusChangeEvent) => {\n const task = this.taskById(event.id);\n if (task) {\n Object.assign(task, { ...event });\n task.dispatchEvent({\n type: CachingTaskEventType.statechange,\n date: new Date(),\n } as CachingTaskStatusChangeEvent);\n }\n };\n\n private taskById(id: string): NativeCachingTaskAdapter | undefined {\n return this._tasks.find((task) => task.id === id);\n }\n}\n\nexport const MediaCache = new NativeMediaCache();\n"],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.WebMediaCache = exports.MediaCache = void 0;
|
|
7
|
+
var _DefaultEventDispatcher = require("../adapter/event/DefaultEventDispatcher");
|
|
8
|
+
var THEOplayerWeb = _interopRequireWildcard(require("theoplayer"));
|
|
9
|
+
var _WebCachingTaskAdapter = require("./WebCachingTaskAdapter");
|
|
10
|
+
var _reactNativeTheoplayer = require("react-native-theoplayer");
|
|
11
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
14
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
15
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
16
|
+
class WebMediaCache extends _DefaultEventDispatcher.DefaultEventDispatcher {
|
|
17
|
+
constructor() {
|
|
18
|
+
super();
|
|
19
|
+
_defineProperty(this, "onAddTask", event => {
|
|
20
|
+
this.dispatchEvent({
|
|
21
|
+
type: _reactNativeTheoplayer.CacheEventType.addtask,
|
|
22
|
+
task: new _WebCachingTaskAdapter.WebCachingTaskAdapter(event.task),
|
|
23
|
+
date: event.date
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
_defineProperty(this, "onRemoveTask", event => {
|
|
27
|
+
this.dispatchEvent({
|
|
28
|
+
type: _reactNativeTheoplayer.CacheEventType.removetask,
|
|
29
|
+
task: new _WebCachingTaskAdapter.WebCachingTaskAdapter(event.task),
|
|
30
|
+
date: event.date
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
THEOplayerWeb.cache.tasks.addEventListener('addtask', this.onAddTask);
|
|
34
|
+
THEOplayerWeb.cache.tasks.addEventListener('removetask', this.onRemoveTask);
|
|
35
|
+
}
|
|
36
|
+
createTask(source, parameters) {
|
|
37
|
+
return Promise.resolve(new _WebCachingTaskAdapter.WebCachingTaskAdapter(THEOplayerWeb.cache.createTask(source, parameters)));
|
|
38
|
+
}
|
|
39
|
+
get status() {
|
|
40
|
+
return THEOplayerWeb.cache.status;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// @ts-ignore
|
|
44
|
+
get tasks() {
|
|
45
|
+
return THEOplayerWeb.cache.tasks.map(task => new _WebCachingTaskAdapter.WebCachingTaskAdapter(task));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.WebMediaCache = WebMediaCache;
|
|
49
|
+
const MediaCache = exports.MediaCache = new WebMediaCache();
|
|
50
|
+
|
|
51
|
+
// Expose cache for easy access
|
|
52
|
+
// @ts-ignore
|
|
53
|
+
window.MediaCache = MediaCache;
|
|
54
|
+
//# sourceMappingURL=MediaCache.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_DefaultEventDispatcher","require","THEOplayerWeb","_interopRequireWildcard","_WebCachingTaskAdapter","_reactNativeTheoplayer","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_defineProperty","value","_toPropertyKey","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","WebMediaCache","DefaultEventDispatcher","constructor","event","dispatchEvent","type","CacheEventType","addtask","task","WebCachingTaskAdapter","date","removetask","tasks","addEventListener","onAddTask","onRemoveTask","createTask","source","parameters","Promise","resolve","status","map","exports","MediaCache","window"],"sources":["MediaCache.web.ts"],"sourcesContent":["import type { CacheStatus, MediaCacheAPI } from 'react-native-theoplayer';\nimport type { CachingTaskList } from 'react-native-theoplayer';\nimport { DefaultEventDispatcher } from '../adapter/event/DefaultEventDispatcher';\nimport type { CacheEventMap } from 'react-native-theoplayer';\nimport type { SourceDescription } from 'react-native-theoplayer';\nimport type { CachingTaskParameters } from 'react-native-theoplayer';\nimport type { CachingTask } from 'react-native-theoplayer';\nimport * as THEOplayerWeb from 'theoplayer';\nimport { WebCachingTaskAdapter } from './WebCachingTaskAdapter';\nimport type { AddCachingTaskEvent, RemoveCachingTaskEvent, SourceDescription as NativeSourceDescription } from 'theoplayer';\nimport { CacheEventType } from 'react-native-theoplayer';\n\nexport class WebMediaCache extends DefaultEventDispatcher<CacheEventMap> implements MediaCacheAPI {\n constructor() {\n super();\n THEOplayerWeb.cache.tasks.addEventListener('addtask', this.onAddTask);\n THEOplayerWeb.cache.tasks.addEventListener('removetask', this.onRemoveTask);\n }\n\n private onAddTask = (event: AddCachingTaskEvent) => {\n this.dispatchEvent({\n type: CacheEventType.addtask,\n task: new WebCachingTaskAdapter(event.task),\n date: event.date,\n });\n };\n\n private onRemoveTask = (event: RemoveCachingTaskEvent) => {\n this.dispatchEvent({\n type: CacheEventType.removetask,\n task: new WebCachingTaskAdapter(event.task),\n date: event.date,\n });\n };\n\n createTask(source: SourceDescription, parameters: CachingTaskParameters): Promise<CachingTask> {\n return Promise.resolve(new WebCachingTaskAdapter(THEOplayerWeb.cache.createTask(source as NativeSourceDescription, parameters)));\n }\n\n get status(): CacheStatus {\n return THEOplayerWeb.cache.status as CacheStatus;\n }\n\n // @ts-ignore\n get tasks(): CachingTaskList {\n return THEOplayerWeb.cache.tasks.map((task) => new WebCachingTaskAdapter(task)) as CachingTaskList;\n }\n}\n\nexport const MediaCache = new WebMediaCache();\n\n// Expose cache for easy access\n// @ts-ignore\nwindow.MediaCache = MediaCache;\n"],"mappings":"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"}
|