react-native-theoplayer 2.10.0 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -1
- package/README.md +12 -9
- package/android/src/main/java/com/theoplayer/PlayerEventEmitter.kt +1 -1
- package/android/src/main/java/com/theoplayer/ReactTHEOplayerContext.kt +14 -0
- package/android/src/main/java/com/theoplayer/ReactTHEOplayerView.kt +1 -3
- package/android/src/main/java/com/theoplayer/audio/AudioFocusManager.kt +145 -0
- package/android/src/main/java/com/theoplayer/drm/ContentProtectionModule.kt +1 -1
- package/android/src/main/java/com/theoplayer/player/PlayerModule.kt +10 -0
- package/android/src/main/java/com/theoplayer/presentation/PipUtils.kt +16 -9
- package/android/src/main/java/com/theoplayer/track/TextTrackStyleAdapter.kt +79 -0
- package/android/src/main/java/com/theoplayer/util/ViewResolver.kt +6 -0
- package/ios/THEOplayerRCTBridge.m +3 -0
- package/ios/THEOplayerRCTPlayerAPI.swift +66 -2
- package/ios/THEOplayerRCTSourceDescriptionBuilder.swift +2 -0
- package/ios/THEOplayerRCTTextTrackEventHandler.swift +32 -4
- package/ios/THEOplayerRCTTypeUtils.swift +15 -0
- package/ios/ads/THEOplayerRCTAdsAPI+DAI.swift +1 -1
- package/ios/ads/THEOplayerRCTSourceDescriptionBuilder+Ads.swift +1 -1
- package/ios/ads/THEOplayerRCTView+AdsConfig.swift +1 -1
- package/ios/backgroundAudio/THEOplayerRCTNowPlayingManager.swift +3 -3
- package/ios/backgroundAudio/THEOplayerRCTRemoteCommandsManager.swift +51 -36
- package/lib/commonjs/api/source/SourceDescription.js.map +1 -1
- package/lib/commonjs/api/source/analytics/AnalyticsDescription.js +2 -0
- package/lib/commonjs/api/source/analytics/AnalyticsDescription.js.map +1 -0
- package/lib/commonjs/api/source/analytics/barrel.js +17 -0
- package/lib/commonjs/api/source/analytics/barrel.js.map +1 -0
- package/lib/commonjs/api/source/barrel.js +15 -4
- package/lib/commonjs/api/source/barrel.js.map +1 -1
- package/lib/commonjs/api/track/TextTrack.js +1 -1
- package/lib/commonjs/api/track/TextTrack.js.map +1 -1
- package/lib/commonjs/api/track/TextTrackStyle.js +29 -0
- package/lib/commonjs/api/track/TextTrackStyle.js.map +1 -1
- package/lib/commonjs/internal/adapter/THEOplayerWebAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/track/NamedColors.json +143 -0
- package/lib/commonjs/internal/adapter/track/TextTrackStyleAdapter.js +118 -22
- package/lib/commonjs/internal/adapter/track/TextTrackStyleAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/web/WebMediaSession.js +1 -1
- package/lib/commonjs/internal/adapter/web/WebMediaSession.js.map +1 -1
- package/lib/module/api/source/SourceDescription.js.map +1 -1
- package/lib/module/api/source/analytics/AnalyticsDescription.js +2 -0
- package/lib/module/api/source/analytics/AnalyticsDescription.js.map +1 -0
- package/lib/module/api/source/analytics/barrel.js +2 -0
- package/lib/module/api/source/analytics/barrel.js.map +1 -0
- package/lib/module/api/source/barrel.js +1 -0
- package/lib/module/api/source/barrel.js.map +1 -1
- package/lib/module/api/track/TextTrack.js +1 -1
- package/lib/module/api/track/TextTrack.js.map +1 -1
- package/lib/module/api/track/TextTrackStyle.js +23 -0
- package/lib/module/api/track/TextTrackStyle.js.map +1 -1
- package/lib/module/internal/adapter/THEOplayerWebAdapter.js.map +1 -1
- package/lib/module/internal/adapter/track/NamedColors.json +143 -0
- package/lib/module/internal/adapter/track/TextTrackStyleAdapter.js +117 -22
- package/lib/module/internal/adapter/track/TextTrackStyleAdapter.js.map +1 -1
- package/lib/module/internal/adapter/web/WebMediaSession.js +1 -1
- package/lib/module/internal/adapter/web/WebMediaSession.js.map +1 -1
- package/lib/typescript/api/source/SourceDescription.d.ts +5 -0
- package/lib/typescript/api/source/analytics/AnalyticsDescription.d.ts +15 -0
- package/lib/typescript/api/source/analytics/barrel.d.ts +1 -0
- package/lib/typescript/api/source/barrel.d.ts +1 -0
- package/lib/typescript/api/track/TextTrack.d.ts +1 -1
- package/lib/typescript/api/track/TextTrackStyle.d.ts +43 -5
- package/lib/typescript/internal/adapter/track/TextTrackStyleAdapter.d.ts +26 -8
- package/package.json +1 -1
- package/react-native-theoplayer.json +2 -1
- package/react-native-theoplayer.podspec +5 -1
- package/src/api/source/SourceDescription.ts +6 -0
- package/src/api/source/analytics/AnalyticsDescription.ts +16 -0
- package/src/api/source/analytics/barrel.ts +1 -0
- package/src/api/source/barrel.ts +1 -0
- package/src/api/track/TextTrack.ts +2 -2
- package/src/api/track/TextTrackStyle.ts +45 -5
- package/src/internal/adapter/THEOplayerWebAdapter.ts +1 -1
- package/src/internal/adapter/track/NamedColors.json +143 -0
- package/src/internal/adapter/track/TextTrackStyleAdapter.ts +132 -21
- package/src/internal/adapter/web/WebMediaSession.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_DefaultEventDispatcher","require","_reactNativeTheoplayer","_THEOplayerWebAdsAdapter","_THEOplayerWebCastAdapter","THEOplayerWeb","_interopRequireWildcard","_TrackUtils","_WebEventForwarder","_WebPresentationModeManager","_WebMediaSession","_BaseEvent","_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","defaultBackgroundAudioConfiguration","enabled","defaultPipConfiguration","startsAutomatically","THEOplayerWebAdapter","DefaultEventDispatcher","constructor","player","config","_config$mediaControl","_this$_mediaSession","_player","document","visibilityState","presentationMode","PresentationMode","pip","backgroundAudioConfiguration","pause","_mediaSession","updateActionHandlers","_adsAdapter","THEOplayerWebAdsAdapter","_castAdapter","THEOplayerWebCastAdapter","_eventForwarder","WebEventForwarder","_presentationModeManager","WebPresentationModeManager","addEventListener","onVisibilityChange","mediaControl","mediaSessionEnabled","WebMediaSession","abr","_this$_player","source","_this$_player2","_targetVideoQuality","play","_this$_player3","_this$_player4","paused","autoplay","preload","type","_this$_player5","seekable","nativeRange","Array","length","map","_","index","start","end","buffered","playbackRate","pipConfiguration","_pipConfiguration","_backgroundAudioConfiguration","_this$_mediaSession2","volume","muted","seeking","audioTracks","fromNativeMediaTrackList","videoTracks","textTracks","fromNativeTextTrackList","selectedTextTrack","_this$_player$textTra","find","textTrack","mode","uid","forEach","textTrackStyle","_this$_player6","selectedVideoTrack","_this$_player$videoTr","videoTrack","selectedAudioTrack","_this$_player$audioTr","audioTrack","targetVideoQuality","enabledVideoTrack","targetQuality","findNativeQualitiesByUid","currentTime","NaN","isNaN","aspectRatio","AspectRatio","FIT","_ratio","duration","ads","cast","version","playerSuiteVersion","destroy","_this$_eventForwarder","_this$_mediaSession3","_this$_player7","dispatchEvent","BaseEvent","PlayerEventType","DESTROY","unload","removeEventListener","nativeHandle","exports"],"sources":["THEOplayerWebAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n AdsAPI,\n CastAPI,\n MediaTrack,\n NativeHandleType,\n PlayerConfiguration,\n PlayerEventMap,\n PlayerVersion,\n PreloadType,\n TextTrack,\n TextTrackStyle,\n THEOplayer,\n} from 'react-native-theoplayer';\nimport { AspectRatio, PlayerEventType, PresentationMode } from 'react-native-theoplayer';\nimport { THEOplayerWebAdsAdapter } from './ads/THEOplayerWebAdsAdapter';\nimport { THEOplayerWebCastAdapter } from './cast/THEOplayerWebCastAdapter';\nimport * as THEOplayerWeb from 'theoplayer';\nimport type { MediaTrack as NativeMediaTrack, TextTrack as NativeTextTrack } from 'theoplayer';\nimport { findNativeQualitiesByUid, fromNativeMediaTrackList, fromNativeTextTrackList } from './web/TrackUtils';\nimport type { ABRConfiguration, SourceDescription } from 'src/api/barrel';\nimport { WebEventForwarder } from './WebEventForwarder';\nimport type { PiPConfiguration } from 'src/api/pip/PiPConfiguration';\nimport type { BackgroundAudioConfiguration } from 'src/api/backgroundAudio/BackgroundAudioConfiguration';\nimport { WebPresentationModeManager } from './web/WebPresentationModeManager';\nimport { WebMediaSession } from './web/WebMediaSession';\nimport { BaseEvent } from './event/BaseEvent';\n\nconst defaultBackgroundAudioConfiguration: BackgroundAudioConfiguration = {\n enabled: false,\n};\n\nconst defaultPipConfiguration: PiPConfiguration = {\n startsAutomatically: false,\n};\n\nexport class THEOplayerWebAdapter extends DefaultEventDispatcher<PlayerEventMap> implements THEOplayer {\n private readonly _adsAdapter: THEOplayerWebAdsAdapter;\n private readonly _castAdapter: THEOplayerWebCastAdapter;\n private readonly _presentationModeManager: WebPresentationModeManager;\n private _player: THEOplayerWeb.ChromelessPlayer | undefined;\n private _eventForwarder: WebEventForwarder | undefined;\n private _mediaSession: WebMediaSession | undefined = undefined;\n private _targetVideoQuality: number | number[] | undefined = undefined;\n private _backgroundAudioConfiguration: BackgroundAudioConfiguration = defaultBackgroundAudioConfiguration;\n private _pipConfiguration: PiPConfiguration = defaultPipConfiguration;\n\n constructor(player: THEOplayerWeb.ChromelessPlayer, config?: PlayerConfiguration) {\n super();\n this._player = player;\n this._adsAdapter = new THEOplayerWebAdsAdapter(this._player);\n this._castAdapter = new THEOplayerWebCastAdapter(this._player);\n this._eventForwarder = new WebEventForwarder(this._player, this);\n this._presentationModeManager = new WebPresentationModeManager(this._player, this);\n document.addEventListener('visibilitychange', this.onVisibilityChange);\n\n // Optionally create a media session connector\n if (config?.mediaControl?.mediaSessionEnabled !== false) {\n this._mediaSession = new WebMediaSession(this, player);\n }\n }\n\n get abr(): ABRConfiguration | undefined {\n return this._player?.abr as ABRConfiguration | undefined;\n }\n\n get source(): SourceDescription | undefined {\n return this._player?.source as SourceDescription;\n }\n\n set source(source: SourceDescription | undefined) {\n this._targetVideoQuality = undefined;\n if (this._player) {\n this._player.source = source;\n }\n }\n\n play(): void {\n this._player?.play();\n }\n\n pause(): void {\n this._player?.pause();\n }\n\n get paused(): boolean {\n return this._player ? this._player.paused : true;\n }\n\n get autoplay(): boolean {\n return this._player ? this._player.autoplay : false;\n }\n\n set autoplay(autoplay: boolean) {\n if (this._player) {\n this._player.autoplay = autoplay;\n }\n }\n\n set preload(type: PreloadType) {\n if (this._player) {\n this._player.preload = type;\n }\n }\n\n get preload(): PreloadType {\n return this._player?.preload || 'none';\n }\n\n get seekable() {\n if (!this._player) {\n return [];\n }\n const nativeRange = this._player.seekable;\n return [...Array(nativeRange.length)].map((_, index) => ({ start: 1e3 * nativeRange.start(index), end: 1e3 * nativeRange.end(index) }));\n }\n\n get buffered() {\n if (!this._player) {\n return [];\n }\n const nativeRange = this._player.buffered;\n return [...Array(nativeRange.length)].map((_, index) => ({ start: 1e3 * nativeRange.start(index), end: 1e3 * nativeRange.end(index) }));\n }\n\n get playbackRate(): number {\n return this._player ? this._player.playbackRate : 1;\n }\n\n set playbackRate(playbackRate: number) {\n if (this._player) {\n this._player.playbackRate = playbackRate;\n }\n }\n\n get pipConfiguration(): PiPConfiguration {\n return this._pipConfiguration;\n }\n\n set pipConfiguration(config: PiPConfiguration) {\n this._pipConfiguration = config;\n }\n\n get backgroundAudioConfiguration(): BackgroundAudioConfiguration {\n return this._backgroundAudioConfiguration;\n }\n\n set backgroundAudioConfiguration(config: BackgroundAudioConfiguration) {\n this._backgroundAudioConfiguration = config;\n\n // Notify media session\n this._mediaSession?.updateActionHandlers();\n }\n\n get volume(): number {\n return this._player ? this._player.volume : 1;\n }\n\n set volume(volume: number) {\n if (this._player) {\n this._player.volume = volume;\n }\n }\n\n get muted(): boolean {\n return this._player ? this._player.muted : false;\n }\n\n set muted(muted: boolean) {\n if (this._player) {\n this._player.muted = muted;\n }\n }\n\n get seeking(): boolean {\n return this._player ? this._player.seeking : false;\n }\n\n get presentationMode(): PresentationMode {\n return this._presentationModeManager.presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n this._presentationModeManager.presentationMode = presentationMode;\n }\n\n get audioTracks(): MediaTrack[] {\n return this._player ? fromNativeMediaTrackList(this._player.audioTracks) : [];\n }\n\n get videoTracks(): MediaTrack[] {\n return this._player ? fromNativeMediaTrackList(this._player.videoTracks) : [];\n }\n\n get textTracks(): TextTrack[] {\n return this._player ? fromNativeTextTrackList(this._player.textTracks) : [];\n }\n\n get selectedTextTrack(): number | undefined {\n if (this._player) {\n return this._player.textTracks.find((textTrack: NativeTextTrack) => {\n return textTrack.mode === 'showing';\n })?.uid;\n }\n return undefined;\n }\n\n set selectedTextTrack(selectedTextTrack: number | undefined) {\n if (this._player) {\n this._player.textTracks.forEach((textTrack: NativeTextTrack) => {\n textTrack.mode = textTrack.uid === selectedTextTrack ? 'showing' : 'disabled';\n });\n }\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._player?.textTrackStyle as TextTrackStyle;\n }\n\n get selectedVideoTrack(): number | undefined {\n if (this._player) {\n return this._player.videoTracks.find((videoTrack: NativeMediaTrack) => videoTrack.enabled)?.uid;\n }\n return undefined;\n }\n\n set selectedVideoTrack(selectedVideoTrack: number | undefined) {\n if (this._player) {\n this._targetVideoQuality = undefined;\n this._player.videoTracks.forEach((videoTrack: NativeMediaTrack) => {\n videoTrack.enabled = videoTrack.uid === selectedVideoTrack;\n });\n }\n }\n\n get selectedAudioTrack(): number | undefined {\n if (this._player) {\n return this._player.audioTracks.find((audioTrack: NativeMediaTrack) => {\n return audioTrack.enabled;\n })?.uid;\n }\n return undefined;\n }\n\n set selectedAudioTrack(selectedAudioTrack: number | undefined) {\n if (this._player) {\n this._player.audioTracks.forEach((audioTrack: NativeMediaTrack) => {\n audioTrack.enabled = audioTrack.uid === selectedAudioTrack;\n });\n }\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n if (this._player) {\n return this._targetVideoQuality;\n }\n return undefined;\n }\n\n set targetVideoQuality(targetVideoQuality: number | number[] | undefined) {\n if (this._player) {\n const enabledVideoTrack = this._player.videoTracks.find((videoTrack: NativeMediaTrack) => videoTrack.enabled);\n if (enabledVideoTrack) {\n enabledVideoTrack.targetQuality = findNativeQualitiesByUid(enabledVideoTrack, targetVideoQuality);\n }\n this._targetVideoQuality = targetVideoQuality;\n }\n }\n\n get currentTime(): number {\n return this._player ? 1e3 * this._player.currentTime : NaN;\n }\n\n set currentTime(currentTime: number) {\n if (isNaN(currentTime)) {\n return;\n }\n if (this._player) {\n this._player.currentTime = currentTime / 1e3;\n }\n }\n\n get aspectRatio(): AspectRatio {\n return AspectRatio.FIT;\n }\n\n set aspectRatio(_ratio: AspectRatio) {\n // unused\n }\n\n get duration(): number {\n return this._player ? this._player.duration * 1e3 : NaN;\n }\n\n public get ads(): AdsAPI {\n return this._adsAdapter;\n }\n\n public get cast(): CastAPI {\n return this._castAdapter;\n }\n\n public get version(): PlayerVersion {\n return {\n version: THEOplayerWeb.version,\n playerSuiteVersion: THEOplayerWeb.playerSuiteVersion,\n };\n }\n\n destroy(): void {\n this.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));\n this._eventForwarder?.unload();\n this._mediaSession?.destroy();\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n this._eventForwarder = undefined;\n this._mediaSession = undefined;\n this._player?.destroy();\n this._player = undefined;\n }\n\n get nativeHandle(): NativeHandleType {\n return this._player;\n }\n\n private readonly onVisibilityChange = () => {\n if (!this._player) {\n return;\n }\n if (document.visibilityState !== 'visible') {\n // Apply background configuration: by default, pause when going to background, unless in pip\n if (this.presentationMode !== PresentationMode.pip && !this.backgroundAudioConfiguration.enabled) {\n this._player.pause();\n }\n }\n // Apply media session controls\n this._mediaSession?.updateActionHandlers();\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_DefaultEventDispatcher","require","_reactNativeTheoplayer","_THEOplayerWebAdsAdapter","_THEOplayerWebCastAdapter","THEOplayerWeb","_interopRequireWildcard","_TrackUtils","_WebEventForwarder","_WebPresentationModeManager","_WebMediaSession","_BaseEvent","_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","defaultBackgroundAudioConfiguration","enabled","defaultPipConfiguration","startsAutomatically","THEOplayerWebAdapter","DefaultEventDispatcher","constructor","player","config","_config$mediaControl","_this$_mediaSession","_player","document","visibilityState","presentationMode","PresentationMode","pip","backgroundAudioConfiguration","pause","_mediaSession","updateActionHandlers","_adsAdapter","THEOplayerWebAdsAdapter","_castAdapter","THEOplayerWebCastAdapter","_eventForwarder","WebEventForwarder","_presentationModeManager","WebPresentationModeManager","addEventListener","onVisibilityChange","mediaControl","mediaSessionEnabled","WebMediaSession","abr","_this$_player","source","_this$_player2","_targetVideoQuality","play","_this$_player3","_this$_player4","paused","autoplay","preload","type","_this$_player5","seekable","nativeRange","Array","length","map","_","index","start","end","buffered","playbackRate","pipConfiguration","_pipConfiguration","_backgroundAudioConfiguration","_this$_mediaSession2","volume","muted","seeking","audioTracks","fromNativeMediaTrackList","videoTracks","textTracks","fromNativeTextTrackList","selectedTextTrack","_this$_player$textTra","find","textTrack","mode","uid","forEach","textTrackStyle","_this$_player6","selectedVideoTrack","_this$_player$videoTr","videoTrack","selectedAudioTrack","_this$_player$audioTr","audioTrack","targetVideoQuality","enabledVideoTrack","targetQuality","findNativeQualitiesByUid","currentTime","NaN","isNaN","aspectRatio","AspectRatio","FIT","_ratio","duration","ads","cast","version","playerSuiteVersion","destroy","_this$_eventForwarder","_this$_mediaSession3","_this$_player7","dispatchEvent","BaseEvent","PlayerEventType","DESTROY","unload","removeEventListener","nativeHandle","exports"],"sources":["THEOplayerWebAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n AdsAPI,\n CastAPI,\n MediaTrack,\n NativeHandleType,\n PlayerConfiguration,\n PlayerEventMap,\n PlayerVersion,\n PreloadType,\n TextTrack,\n TextTrackStyle,\n THEOplayer,\n} from 'react-native-theoplayer';\nimport { AspectRatio, PlayerEventType, PresentationMode } from 'react-native-theoplayer';\nimport { THEOplayerWebAdsAdapter } from './ads/THEOplayerWebAdsAdapter';\nimport { THEOplayerWebCastAdapter } from './cast/THEOplayerWebCastAdapter';\nimport * as THEOplayerWeb from 'theoplayer';\nimport type { MediaTrack as NativeMediaTrack, TextTrack as NativeTextTrack } from 'theoplayer';\nimport { findNativeQualitiesByUid, fromNativeMediaTrackList, fromNativeTextTrackList } from './web/TrackUtils';\nimport type { ABRConfiguration, SourceDescription } from 'src/api/barrel';\nimport { WebEventForwarder } from './WebEventForwarder';\nimport type { PiPConfiguration } from 'src/api/pip/PiPConfiguration';\nimport type { BackgroundAudioConfiguration } from 'src/api/backgroundAudio/BackgroundAudioConfiguration';\nimport { WebPresentationModeManager } from './web/WebPresentationModeManager';\nimport { WebMediaSession } from './web/WebMediaSession';\nimport { BaseEvent } from './event/BaseEvent';\n\nconst defaultBackgroundAudioConfiguration: BackgroundAudioConfiguration = {\n enabled: false,\n};\n\nconst defaultPipConfiguration: PiPConfiguration = {\n startsAutomatically: false,\n};\n\nexport class THEOplayerWebAdapter extends DefaultEventDispatcher<PlayerEventMap> implements THEOplayer {\n private readonly _adsAdapter: THEOplayerWebAdsAdapter;\n private readonly _castAdapter: THEOplayerWebCastAdapter;\n private readonly _presentationModeManager: WebPresentationModeManager;\n private _player: THEOplayerWeb.ChromelessPlayer | undefined;\n private _eventForwarder: WebEventForwarder | undefined;\n private _mediaSession: WebMediaSession | undefined = undefined;\n private _targetVideoQuality: number | number[] | undefined = undefined;\n private _backgroundAudioConfiguration: BackgroundAudioConfiguration = defaultBackgroundAudioConfiguration;\n private _pipConfiguration: PiPConfiguration = defaultPipConfiguration;\n\n constructor(player: THEOplayerWeb.ChromelessPlayer, config?: PlayerConfiguration) {\n super();\n this._player = player;\n this._adsAdapter = new THEOplayerWebAdsAdapter(this._player);\n this._castAdapter = new THEOplayerWebCastAdapter(this._player);\n this._eventForwarder = new WebEventForwarder(this._player, this);\n this._presentationModeManager = new WebPresentationModeManager(this._player, this);\n document.addEventListener('visibilitychange', this.onVisibilityChange);\n\n // Optionally create a media session connector\n if (config?.mediaControl?.mediaSessionEnabled !== false) {\n this._mediaSession = new WebMediaSession(this, player);\n }\n }\n\n get abr(): ABRConfiguration | undefined {\n return this._player?.abr as ABRConfiguration | undefined;\n }\n\n get source(): SourceDescription | undefined {\n return this._player?.source as SourceDescription;\n }\n\n set source(source: SourceDescription | undefined) {\n this._targetVideoQuality = undefined;\n if (this._player) {\n this._player.source = source as THEOplayerWeb.SourceDescription;\n }\n }\n\n play(): void {\n this._player?.play();\n }\n\n pause(): void {\n this._player?.pause();\n }\n\n get paused(): boolean {\n return this._player ? this._player.paused : true;\n }\n\n get autoplay(): boolean {\n return this._player ? this._player.autoplay : false;\n }\n\n set autoplay(autoplay: boolean) {\n if (this._player) {\n this._player.autoplay = autoplay;\n }\n }\n\n set preload(type: PreloadType) {\n if (this._player) {\n this._player.preload = type;\n }\n }\n\n get preload(): PreloadType {\n return this._player?.preload || 'none';\n }\n\n get seekable() {\n if (!this._player) {\n return [];\n }\n const nativeRange = this._player.seekable;\n return [...Array(nativeRange.length)].map((_, index) => ({ start: 1e3 * nativeRange.start(index), end: 1e3 * nativeRange.end(index) }));\n }\n\n get buffered() {\n if (!this._player) {\n return [];\n }\n const nativeRange = this._player.buffered;\n return [...Array(nativeRange.length)].map((_, index) => ({ start: 1e3 * nativeRange.start(index), end: 1e3 * nativeRange.end(index) }));\n }\n\n get playbackRate(): number {\n return this._player ? this._player.playbackRate : 1;\n }\n\n set playbackRate(playbackRate: number) {\n if (this._player) {\n this._player.playbackRate = playbackRate;\n }\n }\n\n get pipConfiguration(): PiPConfiguration {\n return this._pipConfiguration;\n }\n\n set pipConfiguration(config: PiPConfiguration) {\n this._pipConfiguration = config;\n }\n\n get backgroundAudioConfiguration(): BackgroundAudioConfiguration {\n return this._backgroundAudioConfiguration;\n }\n\n set backgroundAudioConfiguration(config: BackgroundAudioConfiguration) {\n this._backgroundAudioConfiguration = config;\n\n // Notify media session\n this._mediaSession?.updateActionHandlers();\n }\n\n get volume(): number {\n return this._player ? this._player.volume : 1;\n }\n\n set volume(volume: number) {\n if (this._player) {\n this._player.volume = volume;\n }\n }\n\n get muted(): boolean {\n return this._player ? this._player.muted : false;\n }\n\n set muted(muted: boolean) {\n if (this._player) {\n this._player.muted = muted;\n }\n }\n\n get seeking(): boolean {\n return this._player ? this._player.seeking : false;\n }\n\n get presentationMode(): PresentationMode {\n return this._presentationModeManager.presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n this._presentationModeManager.presentationMode = presentationMode;\n }\n\n get audioTracks(): MediaTrack[] {\n return this._player ? fromNativeMediaTrackList(this._player.audioTracks) : [];\n }\n\n get videoTracks(): MediaTrack[] {\n return this._player ? fromNativeMediaTrackList(this._player.videoTracks) : [];\n }\n\n get textTracks(): TextTrack[] {\n return this._player ? fromNativeTextTrackList(this._player.textTracks) : [];\n }\n\n get selectedTextTrack(): number | undefined {\n if (this._player) {\n return this._player.textTracks.find((textTrack: NativeTextTrack) => {\n return textTrack.mode === 'showing';\n })?.uid;\n }\n return undefined;\n }\n\n set selectedTextTrack(selectedTextTrack: number | undefined) {\n if (this._player) {\n this._player.textTracks.forEach((textTrack: NativeTextTrack) => {\n textTrack.mode = textTrack.uid === selectedTextTrack ? 'showing' : 'disabled';\n });\n }\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._player?.textTrackStyle as TextTrackStyle;\n }\n\n get selectedVideoTrack(): number | undefined {\n if (this._player) {\n return this._player.videoTracks.find((videoTrack: NativeMediaTrack) => videoTrack.enabled)?.uid;\n }\n return undefined;\n }\n\n set selectedVideoTrack(selectedVideoTrack: number | undefined) {\n if (this._player) {\n this._targetVideoQuality = undefined;\n this._player.videoTracks.forEach((videoTrack: NativeMediaTrack) => {\n videoTrack.enabled = videoTrack.uid === selectedVideoTrack;\n });\n }\n }\n\n get selectedAudioTrack(): number | undefined {\n if (this._player) {\n return this._player.audioTracks.find((audioTrack: NativeMediaTrack) => {\n return audioTrack.enabled;\n })?.uid;\n }\n return undefined;\n }\n\n set selectedAudioTrack(selectedAudioTrack: number | undefined) {\n if (this._player) {\n this._player.audioTracks.forEach((audioTrack: NativeMediaTrack) => {\n audioTrack.enabled = audioTrack.uid === selectedAudioTrack;\n });\n }\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n if (this._player) {\n return this._targetVideoQuality;\n }\n return undefined;\n }\n\n set targetVideoQuality(targetVideoQuality: number | number[] | undefined) {\n if (this._player) {\n const enabledVideoTrack = this._player.videoTracks.find((videoTrack: NativeMediaTrack) => videoTrack.enabled);\n if (enabledVideoTrack) {\n enabledVideoTrack.targetQuality = findNativeQualitiesByUid(enabledVideoTrack, targetVideoQuality);\n }\n this._targetVideoQuality = targetVideoQuality;\n }\n }\n\n get currentTime(): number {\n return this._player ? 1e3 * this._player.currentTime : NaN;\n }\n\n set currentTime(currentTime: number) {\n if (isNaN(currentTime)) {\n return;\n }\n if (this._player) {\n this._player.currentTime = currentTime / 1e3;\n }\n }\n\n get aspectRatio(): AspectRatio {\n return AspectRatio.FIT;\n }\n\n set aspectRatio(_ratio: AspectRatio) {\n // unused\n }\n\n get duration(): number {\n return this._player ? this._player.duration * 1e3 : NaN;\n }\n\n public get ads(): AdsAPI {\n return this._adsAdapter;\n }\n\n public get cast(): CastAPI {\n return this._castAdapter;\n }\n\n public get version(): PlayerVersion {\n return {\n version: THEOplayerWeb.version,\n playerSuiteVersion: THEOplayerWeb.playerSuiteVersion,\n };\n }\n\n destroy(): void {\n this.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));\n this._eventForwarder?.unload();\n this._mediaSession?.destroy();\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n this._eventForwarder = undefined;\n this._mediaSession = undefined;\n this._player?.destroy();\n this._player = undefined;\n }\n\n get nativeHandle(): NativeHandleType {\n return this._player;\n }\n\n private readonly onVisibilityChange = () => {\n if (!this._player) {\n return;\n }\n if (document.visibilityState !== 'visible') {\n // Apply background configuration: by default, pause when going to background, unless in pip\n if (this.presentationMode !== PresentationMode.pip && !this.backgroundAudioConfiguration.enabled) {\n this._player.pause();\n }\n }\n // Apply media session controls\n this._mediaSession?.updateActionHandlers();\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
{
|
|
2
|
+
"aliceblue": "f0f8ff",
|
|
3
|
+
"antiquewhite": "faebd7",
|
|
4
|
+
"aqua": "00ffff",
|
|
5
|
+
"aquamarine": "7fffd4",
|
|
6
|
+
"azure": "f0ffff",
|
|
7
|
+
"beige": "f5f5dc",
|
|
8
|
+
"bisque": "ffe4c4",
|
|
9
|
+
"black": "000000",
|
|
10
|
+
"blanchedalmond": "ffebcd",
|
|
11
|
+
"blue": "0000ff",
|
|
12
|
+
"blueviolet": "8a2be2",
|
|
13
|
+
"brown": "a52a2a",
|
|
14
|
+
"burlywood": "deb887",
|
|
15
|
+
"cadetblue": "5f9ea0",
|
|
16
|
+
"chartreuse": "7fff00",
|
|
17
|
+
"chocolate": "d2691e",
|
|
18
|
+
"coral": "ff7f50",
|
|
19
|
+
"cornflowerblue": "6495ed",
|
|
20
|
+
"cornsilk": "fff8dc",
|
|
21
|
+
"crimson": "dc143c",
|
|
22
|
+
"cyan": "00ffff",
|
|
23
|
+
"darkblue": "00008b",
|
|
24
|
+
"darkcyan": "008b8b",
|
|
25
|
+
"darkgoldenrod": "b8860b",
|
|
26
|
+
"darkgray": "a9a9a9",
|
|
27
|
+
"darkgreen": "006400",
|
|
28
|
+
"darkkhaki": "bdb76b",
|
|
29
|
+
"darkmagenta": "8b008b",
|
|
30
|
+
"darkolivegreen": "556b2f",
|
|
31
|
+
"darkorange": "ff8c00",
|
|
32
|
+
"darkorchid": "9932cc",
|
|
33
|
+
"darkred": "8b0000",
|
|
34
|
+
"darksalmon": "e9967a",
|
|
35
|
+
"darkseagreen": "8fbc8f",
|
|
36
|
+
"darkslateblue": "483d8b",
|
|
37
|
+
"darkslategray": "2f4f4f",
|
|
38
|
+
"darkturquoise": "00ced1",
|
|
39
|
+
"darkviolet": "9400d3",
|
|
40
|
+
"deeppink": "ff1493",
|
|
41
|
+
"deepskyblue": "00bfff",
|
|
42
|
+
"dimgray": "696969",
|
|
43
|
+
"dodgerblue": "1e90ff",
|
|
44
|
+
"firebrick": "b22222",
|
|
45
|
+
"floralwhite": "fffaf0",
|
|
46
|
+
"forestgreen": "228b22",
|
|
47
|
+
"fuchsia": "ff00ff",
|
|
48
|
+
"gainsboro": "dcdcdc",
|
|
49
|
+
"ghostwhite": "f8f8ff",
|
|
50
|
+
"gold": "ffd700",
|
|
51
|
+
"goldenrod": "daa520",
|
|
52
|
+
"gray": "808080",
|
|
53
|
+
"green": "008000",
|
|
54
|
+
"greenyellow": "adff2f",
|
|
55
|
+
"honeydew": "f0fff0",
|
|
56
|
+
"hotpink": "ff69b4",
|
|
57
|
+
"indianred": "cd5c5c",
|
|
58
|
+
"indigo": "4b0082",
|
|
59
|
+
"ivory": "fffff0",
|
|
60
|
+
"khaki": "f0e68c",
|
|
61
|
+
"lavender": "e6e6fa",
|
|
62
|
+
"lavenderblush": "fff0f5",
|
|
63
|
+
"lawngreen": "7cfc00",
|
|
64
|
+
"lemonchiffon": "fffacd",
|
|
65
|
+
"lightblue": "add8e6",
|
|
66
|
+
"lightcoral": "f08080",
|
|
67
|
+
"lightcyan": "e0ffff",
|
|
68
|
+
"lightgoldenrodyellow": "fafad2",
|
|
69
|
+
"lightgray": "d3d3d3",
|
|
70
|
+
"lightgreen": "90ee90",
|
|
71
|
+
"lightpink": "ffb6c1",
|
|
72
|
+
"lightsalmon": "ffa07a",
|
|
73
|
+
"lightseagreen": "20b2aa",
|
|
74
|
+
"lightskyblue": "87cefa",
|
|
75
|
+
"lightslategray": "778899",
|
|
76
|
+
"lightsteelblue": "b0c4de",
|
|
77
|
+
"lightyellow": "ffffe0",
|
|
78
|
+
"lime": "00ff00",
|
|
79
|
+
"limegreen": "32cd32",
|
|
80
|
+
"linen": "faf0e6",
|
|
81
|
+
"magenta": "ff00ff",
|
|
82
|
+
"maroon": "800000",
|
|
83
|
+
"mediumaquamarine": "66cdaa",
|
|
84
|
+
"mediumblue": "0000cd",
|
|
85
|
+
"mediumorchid": "ba55d3",
|
|
86
|
+
"mediumpurple": "9370db",
|
|
87
|
+
"mediumseagreen": "3cb371",
|
|
88
|
+
"mediumslateblue": "7b68ee",
|
|
89
|
+
"mediumspringgreen": "00fa9a",
|
|
90
|
+
"mediumturquoise": "48d1cc",
|
|
91
|
+
"mediumvioletred": "c71585",
|
|
92
|
+
"midnightblue": "191970",
|
|
93
|
+
"mintcream": "f5fffa",
|
|
94
|
+
"mistyrose": "ffe4e1",
|
|
95
|
+
"moccasin": "ffe4b5",
|
|
96
|
+
"navajowhite": "ffdead",
|
|
97
|
+
"navy": "000080",
|
|
98
|
+
"oldlace": "fdf5e6",
|
|
99
|
+
"olive": "808000",
|
|
100
|
+
"olivedrab": "6b8e23",
|
|
101
|
+
"orange": "ffa500",
|
|
102
|
+
"orangered": "ff4500",
|
|
103
|
+
"orchid": "da70d6",
|
|
104
|
+
"palegoldenrod": "eee8aa",
|
|
105
|
+
"palegreen": "98fb98",
|
|
106
|
+
"paleturquoise": "afeeee",
|
|
107
|
+
"palevioletred": "db7093",
|
|
108
|
+
"papayawhip": "ffefd5",
|
|
109
|
+
"peachpuff": "ffdab9",
|
|
110
|
+
"peru": "cd853f",
|
|
111
|
+
"pink": "ffc0cb",
|
|
112
|
+
"plum": "dda0dd",
|
|
113
|
+
"powderblue": "b0e0e6",
|
|
114
|
+
"purple": "800080",
|
|
115
|
+
"rebeccapurple": "663399",
|
|
116
|
+
"red": "ff0000",
|
|
117
|
+
"rosybrown": "bc8f8f",
|
|
118
|
+
"royalblue": "4169e1",
|
|
119
|
+
"saddlebrown": "8b4513",
|
|
120
|
+
"salmon": "fa8072",
|
|
121
|
+
"sandybrown": "f4a460",
|
|
122
|
+
"seagreen": "2e8b57",
|
|
123
|
+
"seashell": "fff5ee",
|
|
124
|
+
"sienna": "a0522d",
|
|
125
|
+
"silver": "c0c0c0",
|
|
126
|
+
"skyblue": "87ceeb",
|
|
127
|
+
"slateblue": "6a5acd",
|
|
128
|
+
"slategray": "708090",
|
|
129
|
+
"snow": "fffafa",
|
|
130
|
+
"springgreen": "00ff7f",
|
|
131
|
+
"steelblue": "4682b4",
|
|
132
|
+
"tan": "d2b48c",
|
|
133
|
+
"teal": "008080",
|
|
134
|
+
"thistle": "d8bfd8",
|
|
135
|
+
"tomato": "ff6347",
|
|
136
|
+
"turquoise": "40e0d0",
|
|
137
|
+
"violet": "ee82ee",
|
|
138
|
+
"wheat": "f5deb3",
|
|
139
|
+
"white": "ffffff",
|
|
140
|
+
"whitesmoke": "f5f5f5",
|
|
141
|
+
"yellow": "ffff00",
|
|
142
|
+
"yellowgreen": "9acd32"
|
|
143
|
+
}
|
|
@@ -4,48 +4,144 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.TextTrackStyleAdapter = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
var _NamedColors = _interopRequireDefault(require("./NamedColors.json"));
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
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; }
|
|
11
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
12
|
+
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); }
|
|
13
|
+
const namedColorsMap = _NamedColors.default;
|
|
7
14
|
class TextTrackStyleAdapter {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
this
|
|
15
|
+
constructor(_view) {
|
|
16
|
+
this._view = _view;
|
|
17
|
+
_defineProperty(this, "_backgroundColor", undefined);
|
|
18
|
+
_defineProperty(this, "_edgeStyle", undefined);
|
|
19
|
+
_defineProperty(this, "_fontColor", undefined);
|
|
20
|
+
_defineProperty(this, "_fontFamily", undefined);
|
|
21
|
+
_defineProperty(this, "_fontSize", undefined);
|
|
22
|
+
_defineProperty(this, "_windowColor", undefined);
|
|
23
|
+
_defineProperty(this, "_marginBottom", undefined);
|
|
24
|
+
_defineProperty(this, "_marginTop", undefined);
|
|
25
|
+
_defineProperty(this, "_marginLeft", undefined);
|
|
26
|
+
_defineProperty(this, "_marginRight", undefined);
|
|
11
27
|
}
|
|
12
28
|
get backgroundColor() {
|
|
13
|
-
|
|
14
|
-
return undefined;
|
|
29
|
+
return this._backgroundColor;
|
|
15
30
|
}
|
|
16
|
-
set backgroundColor(
|
|
17
|
-
|
|
31
|
+
set backgroundColor(color) {
|
|
32
|
+
this._backgroundColor = color;
|
|
33
|
+
_reactNative.NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {
|
|
34
|
+
backgroundColor: convertColorToRGBA(color)
|
|
35
|
+
});
|
|
18
36
|
}
|
|
19
37
|
get edgeStyle() {
|
|
20
|
-
return
|
|
38
|
+
return this._edgeStyle;
|
|
21
39
|
}
|
|
22
|
-
set edgeStyle(
|
|
23
|
-
|
|
40
|
+
set edgeStyle(style) {
|
|
41
|
+
this._edgeStyle = style;
|
|
42
|
+
_reactNative.NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {
|
|
43
|
+
edgeStyle: style
|
|
44
|
+
});
|
|
24
45
|
}
|
|
25
46
|
get fontColor() {
|
|
26
|
-
return
|
|
47
|
+
return this._fontColor;
|
|
27
48
|
}
|
|
28
|
-
set fontColor(
|
|
29
|
-
|
|
49
|
+
set fontColor(color) {
|
|
50
|
+
this._fontColor = color;
|
|
51
|
+
_reactNative.NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {
|
|
52
|
+
fontColor: convertColorToRGBA(color)
|
|
53
|
+
});
|
|
30
54
|
}
|
|
31
55
|
get fontFamily() {
|
|
32
|
-
return
|
|
56
|
+
return this._fontFamily;
|
|
33
57
|
}
|
|
34
|
-
set fontFamily(
|
|
35
|
-
|
|
58
|
+
set fontFamily(family) {
|
|
59
|
+
this._fontFamily = family;
|
|
60
|
+
_reactNative.NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {
|
|
61
|
+
fontFamily: family
|
|
62
|
+
});
|
|
36
63
|
}
|
|
37
64
|
get fontSize() {
|
|
38
|
-
return
|
|
65
|
+
return this._fontSize;
|
|
39
66
|
}
|
|
40
|
-
set fontSize(
|
|
41
|
-
|
|
67
|
+
set fontSize(size) {
|
|
68
|
+
this._fontSize = size;
|
|
69
|
+
_reactNative.NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {
|
|
70
|
+
fontSize: fromPercentage(size)
|
|
71
|
+
});
|
|
42
72
|
}
|
|
43
73
|
get windowColor() {
|
|
44
|
-
return
|
|
74
|
+
return this._windowColor;
|
|
45
75
|
}
|
|
46
|
-
set windowColor(
|
|
47
|
-
|
|
76
|
+
set windowColor(color) {
|
|
77
|
+
this._windowColor = color;
|
|
78
|
+
_reactNative.NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {
|
|
79
|
+
windowColor: convertColorToRGBA(color)
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
get marginBottom() {
|
|
83
|
+
return this._marginBottom;
|
|
84
|
+
}
|
|
85
|
+
set marginBottom(margin) {
|
|
86
|
+
this._marginBottom = margin;
|
|
87
|
+
_reactNative.NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {
|
|
88
|
+
marginBottom: margin
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
get marginLeft() {
|
|
92
|
+
return this._marginLeft;
|
|
93
|
+
}
|
|
94
|
+
set marginLeft(margin) {
|
|
95
|
+
this._marginLeft = margin;
|
|
96
|
+
_reactNative.NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {
|
|
97
|
+
marginLeft: margin
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
get marginRight() {
|
|
101
|
+
return this._marginRight;
|
|
102
|
+
}
|
|
103
|
+
set marginRight(margin) {
|
|
104
|
+
this._marginRight = margin;
|
|
105
|
+
_reactNative.NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {
|
|
106
|
+
marginRight: margin
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
get marginTop() {
|
|
110
|
+
return this._marginTop;
|
|
111
|
+
}
|
|
112
|
+
set marginTop(margin) {
|
|
113
|
+
this._marginTop = margin;
|
|
114
|
+
_reactNative.NativeModules.PlayerModule.setTextTrackStyle(this._view.nativeHandle, {
|
|
115
|
+
marginTop: margin
|
|
116
|
+
});
|
|
48
117
|
}
|
|
49
118
|
}
|
|
50
119
|
exports.TextTrackStyleAdapter = TextTrackStyleAdapter;
|
|
120
|
+
function convertColorToRGBA(color) {
|
|
121
|
+
if (!color) {
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
color = color.replace('#', '');
|
|
125
|
+
if (namedColorsMap[color.toLowerCase()]) {
|
|
126
|
+
color = namedColorsMap[color.toLowerCase()];
|
|
127
|
+
}
|
|
128
|
+
const colorPattern = /^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i;
|
|
129
|
+
const match = color.match(colorPattern);
|
|
130
|
+
if (!match) {
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
const r = parseInt(match[1], 16);
|
|
134
|
+
const g = parseInt(match[2], 16);
|
|
135
|
+
const b = parseInt(match[3], 16);
|
|
136
|
+
const a = match[4] ? parseInt(match[4], 16) : 255;
|
|
137
|
+
return {
|
|
138
|
+
r,
|
|
139
|
+
g,
|
|
140
|
+
b,
|
|
141
|
+
a
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
function fromPercentage(pct) {
|
|
145
|
+
return pct ? parseFloat(pct) : 100;
|
|
146
|
+
}
|
|
51
147
|
//# sourceMappingURL=TextTrackStyleAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TextTrackStyleAdapter","constructor","_player","backgroundColor","undefined","_","edgeStyle","fontColor","fontFamily","fontSize","windowColor","exports"],"sources":["TextTrackStyleAdapter.ts"],"sourcesContent":["import type { EdgeStyle, TextTrackStyle, THEOplayerView } from 'react-native-theoplayer';\n\nexport class TextTrackStyleAdapter implements TextTrackStyle {\n // @ts-ignore\n constructor(private readonly _player: THEOplayerView) {}\n\n get backgroundColor(): string | undefined {\n // NYI\n return undefined;\n }\n\n set backgroundColor(_: string | undefined) {\n // NYI\n }\n\n get edgeStyle(): EdgeStyle | undefined {\n return undefined;\n }\n\n set edgeStyle(_: EdgeStyle | undefined) {\n // NYI\n }\n\n get fontColor(): string | undefined {\n return undefined;\n }\n\n set fontColor(_: string | undefined) {\n // NYI\n }\n\n get fontFamily(): string | undefined {\n return undefined;\n }\n\n set fontFamily(_: string | undefined) {\n // NYI\n }\n\n get fontSize(): string | undefined {\n return undefined;\n }\n\n set fontSize(_: string | undefined) {\n // NYI\n }\n\n get windowColor(): string | undefined {\n return undefined;\n }\n\n set windowColor(_: string | undefined) {\n // NYI\n }\n}\n"],"mappings":";;;;;;AAEO,MAAMA,qBAAqB,CAA2B;EAC3D;EACAC,WAAWA,CAAkBC,OAAuB,EAAE;IAAA,KAAzBA,OAAuB,GAAvBA,OAAuB;EAAG;EAEvD,IAAIC,eAAeA,CAAA,EAAuB;IACxC;IACA,OAAOC,SAAS;EAClB;EAEA,IAAID,eAAeA,CAACE,CAAqB,EAAE;IACzC;EAAA;EAGF,IAAIC,SAASA,CAAA,EAA0B;IACrC,OAAOF,SAAS;EAClB;EAEA,IAAIE,SAASA,CAACD,CAAwB,EAAE;IACtC;EAAA;EAGF,IAAIE,SAASA,CAAA,EAAuB;IAClC,OAAOH,SAAS;EAClB;EAEA,IAAIG,SAASA,CAACF,CAAqB,EAAE;IACnC;EAAA;EAGF,IAAIG,UAAUA,CAAA,EAAuB;IACnC,OAAOJ,SAAS;EAClB;EAEA,IAAII,UAAUA,CAACH,CAAqB,EAAE;IACpC;EAAA;EAGF,IAAII,QAAQA,CAAA,EAAuB;IACjC,OAAOL,SAAS;EAClB;EAEA,IAAIK,QAAQA,CAACJ,CAAqB,EAAE;IAClC;EAAA;EAGF,IAAIK,WAAWA,CAAA,EAAuB;IACpC,OAAON,SAAS;EAClB;EAEA,IAAIM,WAAWA,CAACL,CAAqB,EAAE;IACrC;EAAA;AAEJ;AAACM,OAAA,CAAAX,qBAAA,GAAAA,qBAAA"}
|
|
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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"}
|
|
@@ -52,7 +52,7 @@ class WebMediaSession {
|
|
|
52
52
|
_defineProperty(this, "updateMetadata", () => {
|
|
53
53
|
const source = this._player.source;
|
|
54
54
|
const metadata = source === null || source === void 0 ? void 0 : source.metadata;
|
|
55
|
-
const artwork = [
|
|
55
|
+
const artwork = [metadata === null || metadata === void 0 ? void 0 : metadata.displayIconUri, source === null || source === void 0 ? void 0 : source.poster, ...(metadata !== null && metadata !== void 0 && metadata.images ? metadata === null || metadata === void 0 ? void 0 : metadata.images : [])].filter(image => image !== undefined).map(image => {
|
|
56
56
|
if (typeof image === 'string') {
|
|
57
57
|
return {
|
|
58
58
|
src: image
|
|
@@ -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","poster","displayIconUri","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 = [source?.poster, metadata?.displayIconUri, ...(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","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 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["SourceDescription.ts"],"sourcesContent":["/**\n * Represents a media resource.\n *\n * @remarks\n * <br/> - Can be a string value representing the URL of a media resource, a {@link TypedSource}.\n *\n * @public\n */\nimport type { DashPlaybackConfiguration } from './dash/DashPlaybackConfiguration';\nimport type { DRMConfiguration } from './drm/DRMConfiguration';\nimport type { HlsPlaybackConfiguration } from './hls/HlsPlaybackConfiguration';\nimport type { AdDescription } from './ads/Ads';\nimport type { MetadataDescription } from './metadata/MetadataDescription';\nimport type { ServerSideAdInsertionConfiguration } from \"./ads/ssai/ServerSideAdInsertionConfiguration\";\n\nexport type Source = TypedSource;\n\n/**\n * A media resource or list of media resources.\n *\n * @remarks\n * <br/> - The order of sources when using a list determines their priority when attempting playback.\n *\n * @public\n */\nexport type Sources = Source | Source[];\n\n/**\n * The cross-origin setting of a source, represented by a value from the following list:\n * <br/> - `'anonymous'`: CORS requests will have the credentials flag set to 'same-origin'.\n * <br/> - `'use-credentials'`: CORS requests will have the credentials flag set to 'include'.\n * <br/> - `''`: Setting the empty string is the same as `'anonymous'`\n *\n * @remarks\n * <br/> - See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes | The crossorigin attribute: Requesting CORS access to content}\n *\n * @public\n */\nexport type CrossOriginSetting = '' | 'anonymous' | 'use-credentials';\n\n/**\n * Describes the configuration of a player's source.\n *\n * @public\n */\nexport interface SourceConfiguration {\n /**\n * List of {@link AdDescription}s to be queued for playback.\n */\n ads?: AdDescription[];\n\n /**\n * Content protection configuration.\n */\n contentProtection?: DRMConfiguration;\n\n /**\n * The poster of the media source.\n *\n * @remarks\n * <br/> - An empty string (`''`) clears the current poster.\n * <br/> - This poster has priority over {@link ChromelessPlayer.poster}.\n */\n poster?: string;\n\n /**\n * List of text tracks to be side-loaded with the media source.\n *\n * @remarks\n * <br/> - A source change will reset side-loaded text tracks.\n */\n textTracks?: TextTrackDescription[];\n\n /**\n * The URL of a time server used by the player to synchronise the time in DASH sources.\n *\n * @remarks\n * <br/> - The time server should return time in ISO-8601 format.\n * <br/> - Overrides the time server provided the DASH manifest's `<UTCTiming>`.\n * <br/> - All sources will use the time server. Alternatively, for one source use {@link BaseSource.timeServer}.\n */\n timeServer?: string;\n\n /**\n * Describes the metadata of a source.\n *\n * @public\n */\n metadata?: MetadataDescription;\n}\n\n/**\n * Describes the configuration of a player's source.\n *\n * @public\n */\nexport interface SourceDescription extends SourceConfiguration {\n /**\n * One or more media resources for playback.\n *\n * @remarks\n * <br/> - Multiple media sources should be used to increase platform compatibility. See examples below for important use cases.\n * <br/> - The player will try each source in the provided order.\n *\n * @example\n * In this example, the player will first try to play the DASH source.\n * This might fail if the browser does not support the {@link https://www.widevine.com/ | Widevine} or {@link https://www.microsoft.com/playready/ | PlayReady} CDM, for example on Safari.\n * In that case, the player will try to play the HLS source instead.\n *\n * ```\n * [{\n * src: 'dash-source-with-drm.mpd'\n * contentProtection: {\n * widevine: {\n * licenseAcquisitionURL: 'https://license.company.com/wv'\n * },\n * playready: {\n * licenseAcquisitionURL: 'https://license.company.com/pr'\n * }\n * }\n * },{\n * src: 'hls-source-with-drm.m3u8',\n * contentProtection: {\n * fairplay: {\n * certificateURL: 'https://license.company.com/fp'\n * }\n * }\n * }]\n * ```\n *\n * @example\n * In this example, the player will first try to play the DASH source.\n * This might fail if the browser does not support the {@link https://developer.mozilla.org/en-US/docs/Web/API/Media_Source_Extensions_API | Media Source Extensions API}.\n * In that case, the player will try to play the MP4 source instead, though without features such as adaptive bitrate switching.\n *\n * ```\n * [{\n * src: 'source.mpd'\n * },{\n * src: 'source.mp4'\n * }]\n * ```\n */\n sources?: Sources;\n}\n\n/**\n * Describes the configuration of a side-loaded text track.\n *\n * @public\n */\nexport interface TextTrackDescription {\n /**\n * Whether the text track should be enabled by default.\n *\n * @remarks\n * <br/> - Only one text track per {@link TextTrack.kind} may be marked as default.\n *\n * @defaultValue `false`\n */\n default?: boolean;\n\n /**\n * The kind of the text track, represented by a value from the following list:\n * <br/> - `'subtitles'`: The track provides subtitles, used to display subtitles in a video.\n * <br/> - `'captions'`: The track provides a translation of dialogue and sound effects (suitable for users with a hearing impairment).\n * <br/> - `'descriptions'`: The track provides a textual description of the video (suitable for users with a vision impairment).\n * <br/> - `'chapters'`: The track provides chapter titles (suitable for navigating the media resource).\n * <br/> - `'metadata'`: The track provides content used by scripts and is not visible for users.\n *\n * @remarks\n * <br/> - If an unrecognized value is provided, the player will interpret it as `'metadata'`.\n *\n * @defaultValue `'subtitles'`\n */\n kind?: string;\n\n /**\n * The format of the track, represented by a value from the following list:\n * <br/> - `'srt'`\n * <br/> - `'ttml'`\n * <br/> - `'webvtt'`\n * <br/> - `'emsg'`\n * <br/> - `'eventstream'`\n * <br/> - `'id3'`\n * <br/> - `'cea608'`\n * <br/> - `'daterange'`\n *\n * @defaultValue `''`\n */\n format?: string;\n\n /**\n * The source URL of the text track.\n */\n src: string;\n\n /**\n * The language of the text track.\n */\n srclang?: string;\n\n /**\n * A label for the text track.\n *\n * @remarks\n * <br/> - This will be used as an identifier on the player API and in the UI.\n */\n label?: string;\n\n /**\n * The identifier of this text track.\n *\n * @internal\n */\n // Note: This works for HLS, but not for DASH.\n id?: string;\n}\n\n/**\n * Represents the common properties of a media resource.\n *\n * @public\n */\nexport interface BaseSource {\n\n /**\n * The cross-origin setting of the source.\n *\n * @defaultValue `''`\n */\n crossOrigin?: CrossOriginSetting;\n\n /**\n * The URL of a time server used by the player to synchronise the time in DASH sources.\n *\n * @remarks\n * <br/> - Available since v2.47.0.\n * <br/> - The time server should return time in ISO-8601 format.\n * <br/> - Overrides the time server provided the DASH manifest's `<UTCTiming>`.\n * <br/> - Only this source will use the time server. Alternatively, for all source use {@link SourceConfiguration.timeServer}.\n */\n timeServer?: string;\n\n /**\n * Whether the source should be played in the low-latency-mode of the player.\n *\n * @defaultValue `false`\n *\n * @remarks\n * <br/> - This setting must be `true` when using Low-Latency CMAF with ABR.\n * <br/> - Available since v2.62.0.\n */\n lowLatency?: boolean;\n\n /**\n * The configuration for controlling playback of an MPEG-DASH stream.\n *\n * @remarks\n * <br/> - Available since v2.79.0.\n * <br/> - Ignored for non-DASH streams.\n */\n dash?: DashPlaybackConfiguration;\n\n /**\n * The configuration for controlling playback of an HLS stream.\n *\n * @remarks\n * <br/> - Available since v2.82.0.\n * <br/> - Ignored for non-HLS streams.\n */\n hls?: HlsPlaybackConfiguration;\n}\n\n/**\n * Represents a media resource characterized by a URL to the resource and optionally information about the resource.\n *\n * @public\n */\nexport interface TypedSource extends BaseSource {\n /**\n * The source URL of the media resource.\n *\n * @remarks\n * <br/> - Required if the `ssai` property is absent.\n * <br/> - Available since v2.4.0.\n */\n src?: string;\n\n /**\n * The content type (MIME type) of the media resource, represented by a value from the following list:\n * <br/> - `'application/dash+xml'`: The media resource is an MPEG-DASH stream.\n * <br/> - `'application/x-mpegURL'` or `'application/vnd.apple.mpegurl'`: The media resource is an HLS stream.\n * <br/> - `'video/mp4'`, `'video/webm'` and other formats: The media resource should use native HTML5 playback if supported by the browser.\n * <br/> - `'application/vnd.theo.hesp+json'`: The media resource is an HESP stream.\n *\n * @remarks\n * <br/> - Available since v2.4.0.\n */\n type?: string;\n\n /**\n * The content protection parameters for the media resource.\n *\n * @remarks\n * <br/> - Available since v2.15.0.\n */\n contentProtection?: DRMConfiguration;\n\n /**\n * The Server-side Ad Insertion parameters for the media resource.\n *\n * @remarks\n * <br/> - Available since v2.12.0.\n */\n ssai?: ServerSideAdInsertionConfiguration;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"names":[],"sources":["SourceDescription.ts"],"sourcesContent":["/**\n * Represents a media resource.\n *\n * @remarks\n * <br/> - Can be a string value representing the URL of a media resource, a {@link TypedSource}.\n *\n * @public\n */\nimport type { DashPlaybackConfiguration } from './dash/DashPlaybackConfiguration';\nimport type { DRMConfiguration } from './drm/DRMConfiguration';\nimport type { HlsPlaybackConfiguration } from './hls/HlsPlaybackConfiguration';\nimport type { AdDescription } from './ads/Ads';\nimport type { MetadataDescription } from './metadata/MetadataDescription';\nimport type { ServerSideAdInsertionConfiguration } from \"./ads/ssai/ServerSideAdInsertionConfiguration\";\nimport type { AnalyticsDescription } from \"./analytics/AnalyticsDescription\";\n\nexport type Source = TypedSource;\n\n/**\n * A media resource or list of media resources.\n *\n * @remarks\n * <br/> - The order of sources when using a list determines their priority when attempting playback.\n *\n * @public\n */\nexport type Sources = Source | Source[];\n\n/**\n * The cross-origin setting of a source, represented by a value from the following list:\n * <br/> - `'anonymous'`: CORS requests will have the credentials flag set to 'same-origin'.\n * <br/> - `'use-credentials'`: CORS requests will have the credentials flag set to 'include'.\n * <br/> - `''`: Setting the empty string is the same as `'anonymous'`\n *\n * @remarks\n * <br/> - See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes | The crossorigin attribute: Requesting CORS access to content}\n *\n * @public\n */\nexport type CrossOriginSetting = '' | 'anonymous' | 'use-credentials';\n\n/**\n * Describes the configuration of a player's source.\n *\n * @public\n */\nexport interface SourceConfiguration {\n /**\n * List of {@link AdDescription}s to be queued for playback.\n */\n ads?: AdDescription[];\n\n /**\n * Content protection configuration.\n */\n contentProtection?: DRMConfiguration;\n\n /**\n * The poster of the media source.\n *\n * @remarks\n * <br/> - An empty string (`''`) clears the current poster.\n * <br/> - This poster has priority over {@link ChromelessPlayer.poster}.\n */\n poster?: string;\n\n /**\n * List of text tracks to be side-loaded with the media source.\n *\n * @remarks\n * <br/> - A source change will reset side-loaded text tracks.\n */\n textTracks?: TextTrackDescription[];\n\n /**\n * The URL of a time server used by the player to synchronise the time in DASH sources.\n *\n * @remarks\n * <br/> - The time server should return time in ISO-8601 format.\n * <br/> - Overrides the time server provided the DASH manifest's `<UTCTiming>`.\n * <br/> - All sources will use the time server. Alternatively, for one source use {@link BaseSource.timeServer}.\n */\n timeServer?: string;\n\n /**\n * Describes the metadata of a source.\n *\n * @public\n */\n metadata?: MetadataDescription;\n\n /**\n * List of {@link AnalyticsDescription}s to configure source-related properties for analytics connectors.\n */\n analytics?: AnalyticsDescription[];\n}\n\n/**\n * Describes the configuration of a player's source.\n *\n * @public\n */\nexport interface SourceDescription extends SourceConfiguration {\n /**\n * One or more media resources for playback.\n *\n * @remarks\n * <br/> - Multiple media sources should be used to increase platform compatibility. See examples below for important use cases.\n * <br/> - The player will try each source in the provided order.\n *\n * @example\n * In this example, the player will first try to play the DASH source.\n * This might fail if the browser does not support the {@link https://www.widevine.com/ | Widevine} or {@link https://www.microsoft.com/playready/ | PlayReady} CDM, for example on Safari.\n * In that case, the player will try to play the HLS source instead.\n *\n * ```\n * [{\n * src: 'dash-source-with-drm.mpd'\n * contentProtection: {\n * widevine: {\n * licenseAcquisitionURL: 'https://license.company.com/wv'\n * },\n * playready: {\n * licenseAcquisitionURL: 'https://license.company.com/pr'\n * }\n * }\n * },{\n * src: 'hls-source-with-drm.m3u8',\n * contentProtection: {\n * fairplay: {\n * certificateURL: 'https://license.company.com/fp'\n * }\n * }\n * }]\n * ```\n *\n * @example\n * In this example, the player will first try to play the DASH source.\n * This might fail if the browser does not support the {@link https://developer.mozilla.org/en-US/docs/Web/API/Media_Source_Extensions_API | Media Source Extensions API}.\n * In that case, the player will try to play the MP4 source instead, though without features such as adaptive bitrate switching.\n *\n * ```\n * [{\n * src: 'source.mpd'\n * },{\n * src: 'source.mp4'\n * }]\n * ```\n */\n sources?: Sources;\n}\n\n/**\n * Describes the configuration of a side-loaded text track.\n *\n * @public\n */\nexport interface TextTrackDescription {\n /**\n * Whether the text track should be enabled by default.\n *\n * @remarks\n * <br/> - Only one text track per {@link TextTrack.kind} may be marked as default.\n *\n * @defaultValue `false`\n */\n default?: boolean;\n\n /**\n * The kind of the text track, represented by a value from the following list:\n * <br/> - `'subtitles'`: The track provides subtitles, used to display subtitles in a video.\n * <br/> - `'captions'`: The track provides a translation of dialogue and sound effects (suitable for users with a hearing impairment).\n * <br/> - `'descriptions'`: The track provides a textual description of the video (suitable for users with a vision impairment).\n * <br/> - `'chapters'`: The track provides chapter titles (suitable for navigating the media resource).\n * <br/> - `'metadata'`: The track provides content used by scripts and is not visible for users.\n *\n * @remarks\n * <br/> - If an unrecognized value is provided, the player will interpret it as `'metadata'`.\n *\n * @defaultValue `'subtitles'`\n */\n kind?: string;\n\n /**\n * The format of the track, represented by a value from the following list:\n * <br/> - `'srt'`\n * <br/> - `'ttml'`\n * <br/> - `'webvtt'`\n * <br/> - `'emsg'`\n * <br/> - `'eventstream'`\n * <br/> - `'id3'`\n * <br/> - `'cea608'`\n * <br/> - `'daterange'`\n *\n * @defaultValue `''`\n */\n format?: string;\n\n /**\n * The source URL of the text track.\n */\n src: string;\n\n /**\n * The language of the text track.\n */\n srclang?: string;\n\n /**\n * A label for the text track.\n *\n * @remarks\n * <br/> - This will be used as an identifier on the player API and in the UI.\n */\n label?: string;\n\n /**\n * The identifier of this text track.\n *\n * @internal\n */\n // Note: This works for HLS, but not for DASH.\n id?: string;\n}\n\n/**\n * Represents the common properties of a media resource.\n *\n * @public\n */\nexport interface BaseSource {\n\n /**\n * The cross-origin setting of the source.\n *\n * @defaultValue `''`\n */\n crossOrigin?: CrossOriginSetting;\n\n /**\n * The URL of a time server used by the player to synchronise the time in DASH sources.\n *\n * @remarks\n * <br/> - Available since v2.47.0.\n * <br/> - The time server should return time in ISO-8601 format.\n * <br/> - Overrides the time server provided the DASH manifest's `<UTCTiming>`.\n * <br/> - Only this source will use the time server. Alternatively, for all source use {@link SourceConfiguration.timeServer}.\n */\n timeServer?: string;\n\n /**\n * Whether the source should be played in the low-latency-mode of the player.\n *\n * @defaultValue `false`\n *\n * @remarks\n * <br/> - This setting must be `true` when using Low-Latency CMAF with ABR.\n * <br/> - Available since v2.62.0.\n */\n lowLatency?: boolean;\n\n /**\n * The configuration for controlling playback of an MPEG-DASH stream.\n *\n * @remarks\n * <br/> - Available since v2.79.0.\n * <br/> - Ignored for non-DASH streams.\n */\n dash?: DashPlaybackConfiguration;\n\n /**\n * The configuration for controlling playback of an HLS stream.\n *\n * @remarks\n * <br/> - Available since v2.82.0.\n * <br/> - Ignored for non-HLS streams.\n */\n hls?: HlsPlaybackConfiguration;\n}\n\n/**\n * Represents a media resource characterized by a URL to the resource and optionally information about the resource.\n *\n * @public\n */\nexport interface TypedSource extends BaseSource {\n /**\n * The source URL of the media resource.\n *\n * @remarks\n * <br/> - Required if the `ssai` property is absent.\n * <br/> - Available since v2.4.0.\n */\n src?: string;\n\n /**\n * The content type (MIME type) of the media resource, represented by a value from the following list:\n * <br/> - `'application/dash+xml'`: The media resource is an MPEG-DASH stream.\n * <br/> - `'application/x-mpegURL'` or `'application/vnd.apple.mpegurl'`: The media resource is an HLS stream.\n * <br/> - `'video/mp4'`, `'video/webm'` and other formats: The media resource should use native HTML5 playback if supported by the browser.\n * <br/> - `'application/vnd.theo.hesp+json'`: The media resource is an HESP stream.\n *\n * @remarks\n * <br/> - Available since v2.4.0.\n */\n type?: string;\n\n /**\n * The content protection parameters for the media resource.\n *\n * @remarks\n * <br/> - Available since v2.15.0.\n */\n contentProtection?: DRMConfiguration;\n\n /**\n * The Server-side Ad Insertion parameters for the media resource.\n *\n * @remarks\n * <br/> - Available since v2.12.0.\n */\n ssai?: ServerSideAdInsertionConfiguration;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["AnalyticsDescription.ts"],"sourcesContent":["/**\n * Describes the configuration of an analytics integration as part of the SourceDescription.\n *\n * @public\n */\nexport interface AnalyticsDescription {\n /**\n * The identifier of the analytics integration.\n */\n integration: string;\n\n /**\n * Analytics extensions can define any custom set of fields.\n */\n [key: string]: unknown;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["barrel.ts"],"sourcesContent":["export * from './AnalyticsDescription';\n"],"mappings":"AAAA,cAAc,wBAAwB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["barrel.ts"],"sourcesContent":["export * from './ads/barrel';\nexport * from './drm/barrel';\nexport * from './dash/barrel';\nexport * from './hls/barrel';\nexport * from './metadata/barrel';\nexport * from './SourceDescription';\n"],"mappings":"AAAA,cAAc,cAAc;AAC5B,cAAc,cAAc;AAC5B,cAAc,eAAe;AAC7B,cAAc,cAAc;AAC5B,cAAc,mBAAmB;AACjC,cAAc,qBAAqB"}
|
|
1
|
+
{"version":3,"names":[],"sources":["barrel.ts"],"sourcesContent":["export * from './ads/barrel';\nexport * from './analytics/barrel';\nexport * from './drm/barrel';\nexport * from './dash/barrel';\nexport * from './hls/barrel';\nexport * from './metadata/barrel';\nexport * from './SourceDescription';\n"],"mappings":"AAAA,cAAc,cAAc;AAC5B,cAAc,oBAAoB;AAClC,cAAc,cAAc;AAC5B,cAAc,eAAe;AAC7B,cAAc,cAAc;AAC5B,cAAc,mBAAmB;AACjC,cAAc,qBAAqB"}
|