react-native-theoplayer 2.4.0 → 2.6.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 +25 -1
- package/android/src/main/java/com/theoplayer/PlayerEventEmitter.kt +9 -15
- package/android/src/main/java/com/theoplayer/player/PlayerModule.kt +12 -0
- package/android/src/main/java/com/theoplayer/util/PayloadBuilder.kt +2 -1
- package/ios/THEOplayerRCTBridge.m +3 -0
- package/ios/THEOplayerRCTMainEventHandler.swift +1 -1
- package/ios/THEOplayerRCTPlayerAPI.swift +15 -0
- package/ios/THEOplayerRCTTypeUtils.swift +26 -0
- package/ios/backgroundAudio/THEOplayerRCTNowPlayingManager.swift +49 -24
- package/lib/commonjs/api/abr/ABRConfiguration.js +25 -0
- package/lib/commonjs/api/abr/ABRConfiguration.js.map +1 -1
- package/lib/commonjs/api/player/THEOplayer.js +18 -0
- package/lib/commonjs/api/player/THEOplayer.js.map +1 -1
- package/lib/commonjs/api/track/Track.js +5 -1
- package/lib/commonjs/api/track/Track.js.map +1 -1
- package/lib/commonjs/internal/THEOplayerView.web.js +2 -6
- package/lib/commonjs/internal/THEOplayerView.web.js.map +1 -1
- package/lib/commonjs/internal/adapter/NativePlayerState.js.map +1 -1
- package/lib/commonjs/internal/adapter/THEOplayerAdapter.js +8 -0
- package/lib/commonjs/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/THEOplayerWebAdapter.js +112 -53
- package/lib/commonjs/internal/adapter/THEOplayerWebAdapter.js.map +1 -1
- package/lib/module/api/abr/ABRConfiguration.js +19 -0
- package/lib/module/api/abr/ABRConfiguration.js.map +1 -1
- package/lib/module/api/player/THEOplayer.js +16 -1
- package/lib/module/api/player/THEOplayer.js.map +1 -1
- package/lib/module/api/track/Track.js +4 -1
- package/lib/module/api/track/Track.js.map +1 -1
- package/lib/module/internal/THEOplayerView.web.js +2 -6
- package/lib/module/internal/THEOplayerView.web.js.map +1 -1
- package/lib/module/internal/adapter/NativePlayerState.js.map +1 -1
- package/lib/module/internal/adapter/THEOplayerAdapter.js +9 -1
- package/lib/module/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/module/internal/adapter/THEOplayerWebAdapter.js +112 -53
- package/lib/module/internal/adapter/THEOplayerWebAdapter.js.map +1 -1
- package/lib/typescript/api/abr/ABRConfiguration.d.ts +5 -1
- package/lib/typescript/api/player/THEOplayer.d.ts +22 -0
- package/lib/typescript/api/track/Track.d.ts +1 -0
- package/lib/typescript/internal/adapter/NativePlayerState.d.ts +2 -0
- package/lib/typescript/internal/adapter/THEOplayerAdapter.d.ts +3 -1
- package/lib/typescript/internal/adapter/THEOplayerWebAdapter.d.ts +7 -5
- package/package.json +9 -4
- package/react-native-theoplayer.podspec +1 -1
- package/src/api/abr/ABRConfiguration.ts +5 -1
- package/src/api/player/THEOplayer.ts +24 -0
- package/src/api/track/Track.ts +5 -1
- package/src/internal/THEOplayerView.web.tsx +2 -6
- package/src/internal/adapter/NativePlayerState.ts +2 -0
- package/src/internal/adapter/THEOplayerAdapter.ts +11 -0
- package/src/internal/adapter/THEOplayerWebAdapter.ts +106 -51
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_DefaultEventDispatcher","require","_reactNativeTheoplayer","_THEOplayerNativeAdsAdapter","_THEOplayerNativeCastAdapter","_AbrAdapter","_reactNative","_TextTrackStyleAdapter","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","defaultPlayerState","source","autoplay","paused","seekable","buffered","pipConfig","startsAutomatically","backgroundAudioConfig","enabled","presentationMode","PresentationMode","inline","muted","seeking","volume","currentTime","duration","NaN","playbackRate","preload","audioTracks","videoTracks","textTracks","targetVideoQuality","selectedVideoTrack","selectedAudioTrack","selectedTextTrack","THEOplayerAdapter","DefaultEventDispatcher","constructor","view","initialState","arguments","length","_state","play","pause","event","_event$seekable","_event$buffered","sort","a","b","end","subType","track","TrackListEventType","ADD_TRACK","addTrack","REMOVE_TRACK","removeTrack","CHANGE_TRACK","trackType","trackUid","tracks","MediaTrackType","VIDEO","findMediaTrackByUid","MediaTrackEventType","ACTIVE_QUALITY_CHANGED","assign","activeQuality","qualities","isAudio","AUDIO","_view","_adsAdapter","THEOplayerNativeAdsAdapter","_castAdapter","THEOplayerNativeCastAdapter","_abrAdapter","AbrAdapter","_textTrackStyleAdapter","TextTrackStyleAdapter","addEventListener","PlayerEventType","SOURCE_CHANGE","onSourceChange","LOADED_METADATA","onLoadedMetadata","PAUSE","onPause","PLAYING","onPlaying","TIME_UPDATE","onTimeupdate","DURATION_CHANGE","onDurationChange","RATE_CHANGE","onRateChange","SEEKING","onSeeking","SEEKED","onSeeked","PROGRESS","onProgress","TEXT_TRACK_LIST","onTextTrackList","MEDIA_TRACK","onMediaTrack","MEDIA_TRACK_LIST","onMediaTrackList","PRESENTATIONMODE_CHANGE","onPresentationModeChange","abr","Platform","OS","ads","NativeModules","PlayerModule","setPaused","nativeHandle","type","setPreload","seekableEnd","ranges","cast","isNaN","seekTime","Infinity","setCurrentTime","pipConfiguration","setPipConfig","backgroundAudioConfiguration","setBackgroundAudioConfig","setPresentationMode","setMuted","setPlaybackRate","setSelectedAudioTrack","setSelectedVideoTrack","forEach","uid","mode","TextTrackMode","showing","disabled","setSelectedTextTrack","textTrackStyle","setSource","target","Array","isArray","targetQuality","setTargetVideoQuality","setVolume","initializeWithNativePlayerState_","state","init_","exports"],"sources":["THEOplayerAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n ABRConfiguration,\n AdsAPI,\n CastAPI,\n DurationChangeEvent,\n LoadedMetadataEvent,\n MediaTrack,\n MediaTrackEvent,\n MediaTrackListEvent,\n NativeHandleType,\n PiPConfiguration,\n PlayerEventMap,\n PresentationModeChangeEvent,\n ProgressEvent,\n RateChangeEvent,\n SourceDescription,\n TextTrack,\n TextTrackListEvent,\n THEOplayer,\n THEOplayerView,\n TimeUpdateEvent,\n} from 'react-native-theoplayer';\nimport {\n addTrack,\n findMediaTrackByUid,\n MediaTrackEventType,\n MediaTrackType,\n PlayerEventType,\n PreloadType,\n PresentationMode,\n removeTrack,\n TextTrackMode,\n TextTrackStyle,\n TrackListEventType,\n} from 'react-native-theoplayer';\nimport { THEOplayerNativeAdsAdapter } from './ads/THEOplayerNativeAdsAdapter';\nimport { THEOplayerNativeCastAdapter } from './cast/THEOplayerNativeCastAdapter';\nimport { AbrAdapter } from './abr/AbrAdapter';\nimport { NativeModules, Platform } from 'react-native';\nimport { TextTrackStyleAdapter } from './track/TextTrackStyleAdapter';\nimport type { BackgroundAudioConfiguration } from 'src/api/backgroundAudio/BackgroundAudioConfiguration';\nimport type { NativePlayerState } from './NativePlayerState';\n\nconst defaultPlayerState: NativePlayerState = {\n source: undefined,\n autoplay: false,\n paused: false,\n seekable: [],\n buffered: [],\n pipConfig: { startsAutomatically: false },\n backgroundAudioConfig: { enabled: false },\n presentationMode: PresentationMode.inline,\n muted: false,\n seeking: false,\n volume: 1,\n currentTime: 0,\n duration: NaN,\n playbackRate: 1,\n preload: 'none',\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n targetVideoQuality: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n selectedTextTrack: undefined,\n};\n\nexport class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEventMap> implements THEOplayer {\n private readonly _view: THEOplayerView;\n private readonly _state: NativePlayerState;\n private readonly _adsAdapter: THEOplayerNativeAdsAdapter;\n private readonly _castAdapter: THEOplayerNativeCastAdapter;\n private readonly _abrAdapter: AbrAdapter;\n private readonly _textTrackStyleAdapter: TextTrackStyleAdapter;\n\n constructor(view: THEOplayerView, initialState: NativePlayerState = defaultPlayerState) {\n super();\n this._view = view;\n this._state = { ...initialState };\n this._adsAdapter = new THEOplayerNativeAdsAdapter(this._view);\n this._castAdapter = new THEOplayerNativeCastAdapter(this, this._view);\n this._abrAdapter = new AbrAdapter(this._view);\n this._textTrackStyleAdapter = new TextTrackStyleAdapter(this._view);\n\n this.addEventListener(PlayerEventType.SOURCE_CHANGE, this.onSourceChange);\n this.addEventListener(PlayerEventType.LOADED_METADATA, this.onLoadedMetadata);\n this.addEventListener(PlayerEventType.PAUSE, this.onPause);\n this.addEventListener(PlayerEventType.PLAYING, this.onPlaying);\n this.addEventListener(PlayerEventType.TIME_UPDATE, this.onTimeupdate);\n this.addEventListener(PlayerEventType.DURATION_CHANGE, this.onDurationChange);\n this.addEventListener(PlayerEventType.RATE_CHANGE, this.onRateChange);\n this.addEventListener(PlayerEventType.SEEKING, this.onSeeking);\n this.addEventListener(PlayerEventType.SEEKED, this.onSeeked);\n this.addEventListener(PlayerEventType.PROGRESS, this.onProgress);\n this.addEventListener(PlayerEventType.TEXT_TRACK_LIST, this.onTextTrackList);\n this.addEventListener(PlayerEventType.MEDIA_TRACK, this.onMediaTrack);\n this.addEventListener(PlayerEventType.MEDIA_TRACK_LIST, this.onMediaTrackList);\n this.addEventListener(PlayerEventType.PRESENTATIONMODE_CHANGE, this.onPresentationModeChange);\n }\n\n private onSourceChange = () => {\n if (this._state.autoplay) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n private onPause = () => {\n this._state.paused = true;\n };\n\n private onPlaying = () => {\n this._state.paused = false;\n };\n\n private onPresentationModeChange = (event: PresentationModeChangeEvent) => {\n this._state.presentationMode = event.presentationMode;\n };\n\n private onTimeupdate = (event: TimeUpdateEvent) => {\n this._state.currentTime = event.currentTime;\n };\n\n private onLoadedMetadata = (event: LoadedMetadataEvent) => {\n this._state.duration = event.duration;\n this._state.audioTracks = event.audioTracks;\n this._state.videoTracks = event.videoTracks;\n this._state.textTracks = event.textTracks;\n this._state.selectedAudioTrack = event.selectedAudioTrack;\n this._state.selectedVideoTrack = event.selectedVideoTrack;\n this._state.selectedTextTrack = event.selectedTextTrack;\n };\n\n private onDurationChange = (event: DurationChangeEvent) => {\n this._state.duration = event.duration;\n };\n\n private onRateChange = (event: RateChangeEvent) => {\n this._state.playbackRate = event.playbackRate;\n };\n\n private onSeeking = () => {\n this._state.seeking = true;\n };\n\n private onSeeked = () => {\n this._state.seeking = false;\n };\n\n private onProgress = (event: ProgressEvent) => {\n this._state.seekable = event.seekable?.sort((a, b) => a.end - b.end);\n this._state.buffered = event.buffered?.sort((a, b) => a.end - b.end);\n };\n\n private onTextTrackList = (event: TextTrackListEvent) => {\n const { subType, track } = event;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.REMOVE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.CHANGE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n }\n };\n\n private onMediaTrack = (event: MediaTrackEvent) => {\n const { subType, trackType, trackUid } = event;\n const tracks = trackType === MediaTrackType.VIDEO ? this._state.videoTracks : this._state.audioTracks;\n const track = findMediaTrackByUid(tracks, trackUid);\n switch (subType) {\n case MediaTrackEventType.ACTIVE_QUALITY_CHANGED:\n // Update local state\n if (track) {\n Object.assign(track, { ...track, activeQuality: event.qualities });\n }\n break;\n }\n };\n\n private onMediaTrackList = (event: MediaTrackListEvent) => {\n const { subType, trackType, track } = event;\n const isAudio = trackType === MediaTrackType.AUDIO;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n if (isAudio) {\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.REMOVE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.CHANGE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n }\n };\n\n get abr(): ABRConfiguration | undefined {\n return Platform.OS === 'android' ? this._abrAdapter : undefined;\n }\n\n get ads(): AdsAPI {\n return this._adsAdapter;\n }\n\n set autoplay(autoplay: boolean) {\n this._state.autoplay = autoplay;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, !autoplay);\n }\n\n get autoplay(): boolean {\n return this._state.autoplay;\n }\n\n set preload(type: PreloadType) {\n this._state.preload = type;\n NativeModules.PlayerModule.setPreload(this._view.nativeHandle, type);\n }\n\n get preload(): PreloadType {\n return this._state.preload;\n }\n\n get seekable() {\n return this._state.seekable;\n }\n\n private seekableEnd(): number {\n const ranges = this.seekable;\n return ranges.length === 0 ? 0 : ranges[ranges.length - 1].end;\n }\n\n get buffered() {\n return this._state.buffered;\n }\n\n get cast(): CastAPI {\n return this._castAdapter;\n }\n\n get currentTime(): number {\n return this._state.currentTime;\n }\n\n set currentTime(currentTime: number) {\n if (isNaN(currentTime)) {\n return;\n }\n\n // Sanitise currentTime\n let seekTime = currentTime;\n if (currentTime === Infinity) {\n seekTime = this.seekableEnd();\n }\n\n this._state.currentTime = seekTime;\n NativeModules.PlayerModule.setCurrentTime(this._view.nativeHandle, seekTime);\n }\n\n get duration(): number {\n return this._state.duration;\n }\n\n get pipConfiguration(): PiPConfiguration {\n return this._state.pipConfig;\n }\n\n set pipConfiguration(pipConfiguration: PiPConfiguration) {\n this._state.pipConfig = pipConfiguration;\n NativeModules.PlayerModule.setPipConfig(this._view.nativeHandle, pipConfiguration);\n }\n\n get backgroundAudioConfiguration(): BackgroundAudioConfiguration {\n return this._state.backgroundAudioConfig;\n }\n\n set backgroundAudioConfiguration(backgroundAudioConfiguration: BackgroundAudioConfiguration) {\n this._state.backgroundAudioConfig = backgroundAudioConfiguration;\n NativeModules.PlayerModule.setBackgroundAudioConfig(this._view.nativeHandle, backgroundAudioConfiguration);\n }\n\n get presentationMode(): PresentationMode {\n return this._state.presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n this._state.presentationMode = presentationMode;\n NativeModules.PlayerModule.setPresentationMode(this._view.nativeHandle, presentationMode);\n }\n\n get muted(): boolean {\n return this._state.muted;\n }\n\n set muted(muted: boolean) {\n this._state.muted = muted;\n NativeModules.PlayerModule.setMuted(this._view.nativeHandle, muted);\n }\n\n get seeking(): boolean {\n return this._state.seeking;\n }\n\n get paused(): boolean {\n return this._state.paused;\n }\n\n get playbackRate(): number {\n return this._state.playbackRate;\n }\n\n set playbackRate(playbackRate: number) {\n this._state.playbackRate = playbackRate;\n NativeModules.PlayerModule.setPlaybackRate(this._view.nativeHandle, playbackRate);\n }\n\n get audioTracks(): MediaTrack[] {\n return this._state.audioTracks;\n }\n\n get selectedAudioTrack(): number | undefined {\n return this._state.selectedAudioTrack;\n }\n\n set selectedAudioTrack(trackUid: number | undefined) {\n this._state.selectedAudioTrack = trackUid;\n NativeModules.PlayerModule.setSelectedAudioTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get videoTracks(): MediaTrack[] {\n return this._state.videoTracks;\n }\n\n get selectedVideoTrack(): number | undefined {\n return this._state.selectedVideoTrack;\n }\n\n set selectedVideoTrack(trackUid: number | undefined) {\n this._state.selectedVideoTrack = trackUid;\n this._state.targetVideoQuality = undefined;\n NativeModules.PlayerModule.setSelectedVideoTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get textTracks(): TextTrack[] {\n return this._state.textTracks;\n }\n\n get selectedTextTrack(): number | undefined {\n return this._state.selectedTextTrack;\n }\n\n set selectedTextTrack(trackUid: number | undefined) {\n this._state.selectedTextTrack = trackUid;\n this.textTracks.forEach((track) => {\n if (track.uid === trackUid) {\n track.mode = TextTrackMode.showing;\n } else if (track.mode === TextTrackMode.showing) {\n track.mode = TextTrackMode.disabled;\n }\n });\n NativeModules.PlayerModule.setSelectedTextTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._textTrackStyleAdapter;\n }\n\n get source(): SourceDescription | undefined {\n return this._state.source;\n }\n\n set source(source: SourceDescription | undefined) {\n // This is to correctly reset autoplay during a source change.\n this.pause();\n this._state.source = source;\n NativeModules.PlayerModule.setSource(this._view.nativeHandle, source);\n // Reset state for play-out of new source\n Object.assign(this._state, {\n playbackRate: 1,\n seeking: false,\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n seekable: [],\n buffered: [],\n selectedTextTrack: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n targetVideoQuality: undefined,\n });\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n return this._state.targetVideoQuality;\n }\n\n set targetVideoQuality(target: number | number[] | undefined) {\n // Always pass an array for targetVideoQuality.\n this._state.targetVideoQuality = !target ? [] : Array.isArray(target) ? target : [target];\n\n // Update local state\n const track = findMediaTrackByUid(this._state.videoTracks, this.selectedVideoTrack);\n if (track) {\n Object.assign(track, { ...track, targetQuality: this._state.targetVideoQuality });\n }\n NativeModules.PlayerModule.setTargetVideoQuality(this._view.nativeHandle, this._state.targetVideoQuality);\n }\n\n get volume(): number {\n return this._state.volume;\n }\n\n set volume(volume: number) {\n this._state.volume = volume;\n NativeModules.PlayerModule.setVolume(this._view.nativeHandle, volume);\n }\n\n pause(): void {\n this._state.paused = true;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, true);\n }\n\n play(): void {\n this._state.paused = false;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, false);\n }\n\n get nativeHandle(): NativeHandleType {\n return this._view.nativeHandle;\n }\n\n initializeWithNativePlayerState_(state: NativePlayerState) {\n Object.assign(this._state, state);\n this._castAdapter.init_();\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_DefaultEventDispatcher","require","_reactNativeTheoplayer","_THEOplayerNativeAdsAdapter","_THEOplayerNativeCastAdapter","_AbrAdapter","_reactNative","_TextTrackStyleAdapter","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","defaultPlayerState","source","autoplay","paused","seekable","buffered","pipConfig","startsAutomatically","backgroundAudioConfig","enabled","presentationMode","PresentationMode","inline","muted","seeking","volume","currentTime","duration","NaN","playbackRate","preload","aspectRatio","AspectRatio","FIT","audioTracks","videoTracks","textTracks","targetVideoQuality","selectedVideoTrack","selectedAudioTrack","selectedTextTrack","THEOplayerAdapter","DefaultEventDispatcher","constructor","view","initialState","arguments","length","_state","play","pause","event","_event$seekable","_event$buffered","sort","a","b","end","subType","track","TrackListEventType","ADD_TRACK","addTrack","REMOVE_TRACK","removeTrack","CHANGE_TRACK","trackType","trackUid","tracks","MediaTrackType","VIDEO","findMediaTrackByUid","MediaTrackEventType","ACTIVE_QUALITY_CHANGED","assign","activeQuality","qualities","isAudio","AUDIO","_view","_adsAdapter","THEOplayerNativeAdsAdapter","_castAdapter","THEOplayerNativeCastAdapter","_abrAdapter","AbrAdapter","_textTrackStyleAdapter","TextTrackStyleAdapter","addEventListener","PlayerEventType","SOURCE_CHANGE","onSourceChange","LOADED_METADATA","onLoadedMetadata","PAUSE","onPause","PLAYING","onPlaying","TIME_UPDATE","onTimeupdate","DURATION_CHANGE","onDurationChange","RATE_CHANGE","onRateChange","SEEKING","onSeeking","SEEKED","onSeeked","PROGRESS","onProgress","TEXT_TRACK_LIST","onTextTrackList","MEDIA_TRACK","onMediaTrack","MEDIA_TRACK_LIST","onMediaTrackList","PRESENTATIONMODE_CHANGE","onPresentationModeChange","abr","Platform","OS","ads","NativeModules","PlayerModule","setPaused","nativeHandle","type","setPreload","seekableEnd","ranges","cast","isNaN","seekTime","Infinity","setCurrentTime","pipConfiguration","setPipConfig","backgroundAudioConfiguration","setBackgroundAudioConfig","setPresentationMode","setMuted","setPlaybackRate","setSelectedAudioTrack","setSelectedVideoTrack","forEach","uid","mode","TextTrackMode","showing","disabled","setSelectedTextTrack","textTrackStyle","setSource","target","Array","isArray","targetQuality","setTargetVideoQuality","setVolume","ratio","setAspectRatio","initializeWithNativePlayerState_","state","init_","exports"],"sources":["THEOplayerAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n ABRConfiguration,\n AdsAPI,\n CastAPI,\n DurationChangeEvent,\n LoadedMetadataEvent,\n MediaTrack,\n MediaTrackEvent,\n MediaTrackListEvent,\n NativeHandleType,\n PiPConfiguration,\n PlayerEventMap,\n PresentationModeChangeEvent,\n ProgressEvent,\n RateChangeEvent,\n SourceDescription,\n TextTrack,\n TextTrackListEvent,\n THEOplayer,\n THEOplayerView,\n TimeUpdateEvent,\n} from 'react-native-theoplayer';\nimport {\n addTrack,\n AspectRatio,\n findMediaTrackByUid,\n MediaTrackEventType,\n MediaTrackType,\n PlayerEventType,\n PreloadType,\n PresentationMode,\n removeTrack,\n TextTrackMode,\n TextTrackStyle,\n TrackListEventType,\n} from 'react-native-theoplayer';\nimport { THEOplayerNativeAdsAdapter } from './ads/THEOplayerNativeAdsAdapter';\nimport { THEOplayerNativeCastAdapter } from './cast/THEOplayerNativeCastAdapter';\nimport { AbrAdapter } from './abr/AbrAdapter';\nimport { NativeModules, Platform } from 'react-native';\nimport { TextTrackStyleAdapter } from './track/TextTrackStyleAdapter';\nimport type { BackgroundAudioConfiguration } from 'src/api/backgroundAudio/BackgroundAudioConfiguration';\nimport type { NativePlayerState } from './NativePlayerState';\n\nconst defaultPlayerState: NativePlayerState = {\n source: undefined,\n autoplay: false,\n paused: false,\n seekable: [],\n buffered: [],\n pipConfig: { startsAutomatically: false },\n backgroundAudioConfig: { enabled: false },\n presentationMode: PresentationMode.inline,\n muted: false,\n seeking: false,\n volume: 1,\n currentTime: 0,\n duration: NaN,\n playbackRate: 1,\n preload: 'none',\n aspectRatio: AspectRatio.FIT,\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n targetVideoQuality: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n selectedTextTrack: undefined,\n};\n\nexport class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEventMap> implements THEOplayer {\n private readonly _view: THEOplayerView;\n private readonly _state: NativePlayerState;\n private readonly _adsAdapter: THEOplayerNativeAdsAdapter;\n private readonly _castAdapter: THEOplayerNativeCastAdapter;\n private readonly _abrAdapter: AbrAdapter;\n private readonly _textTrackStyleAdapter: TextTrackStyleAdapter;\n\n constructor(view: THEOplayerView, initialState: NativePlayerState = defaultPlayerState) {\n super();\n this._view = view;\n this._state = { ...initialState };\n this._adsAdapter = new THEOplayerNativeAdsAdapter(this._view);\n this._castAdapter = new THEOplayerNativeCastAdapter(this, this._view);\n this._abrAdapter = new AbrAdapter(this._view);\n this._textTrackStyleAdapter = new TextTrackStyleAdapter(this._view);\n\n this.addEventListener(PlayerEventType.SOURCE_CHANGE, this.onSourceChange);\n this.addEventListener(PlayerEventType.LOADED_METADATA, this.onLoadedMetadata);\n this.addEventListener(PlayerEventType.PAUSE, this.onPause);\n this.addEventListener(PlayerEventType.PLAYING, this.onPlaying);\n this.addEventListener(PlayerEventType.TIME_UPDATE, this.onTimeupdate);\n this.addEventListener(PlayerEventType.DURATION_CHANGE, this.onDurationChange);\n this.addEventListener(PlayerEventType.RATE_CHANGE, this.onRateChange);\n this.addEventListener(PlayerEventType.SEEKING, this.onSeeking);\n this.addEventListener(PlayerEventType.SEEKED, this.onSeeked);\n this.addEventListener(PlayerEventType.PROGRESS, this.onProgress);\n this.addEventListener(PlayerEventType.TEXT_TRACK_LIST, this.onTextTrackList);\n this.addEventListener(PlayerEventType.MEDIA_TRACK, this.onMediaTrack);\n this.addEventListener(PlayerEventType.MEDIA_TRACK_LIST, this.onMediaTrackList);\n this.addEventListener(PlayerEventType.PRESENTATIONMODE_CHANGE, this.onPresentationModeChange);\n }\n\n private onSourceChange = () => {\n if (this._state.autoplay) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n private onPause = () => {\n this._state.paused = true;\n };\n\n private onPlaying = () => {\n this._state.paused = false;\n };\n\n private onPresentationModeChange = (event: PresentationModeChangeEvent) => {\n this._state.presentationMode = event.presentationMode;\n };\n\n private onTimeupdate = (event: TimeUpdateEvent) => {\n this._state.currentTime = event.currentTime;\n };\n\n private onLoadedMetadata = (event: LoadedMetadataEvent) => {\n this._state.duration = event.duration;\n this._state.audioTracks = event.audioTracks;\n this._state.videoTracks = event.videoTracks;\n this._state.textTracks = event.textTracks;\n this._state.selectedAudioTrack = event.selectedAudioTrack;\n this._state.selectedVideoTrack = event.selectedVideoTrack;\n this._state.selectedTextTrack = event.selectedTextTrack;\n };\n\n private onDurationChange = (event: DurationChangeEvent) => {\n this._state.duration = event.duration;\n };\n\n private onRateChange = (event: RateChangeEvent) => {\n this._state.playbackRate = event.playbackRate;\n };\n\n private onSeeking = () => {\n this._state.seeking = true;\n };\n\n private onSeeked = () => {\n this._state.seeking = false;\n };\n\n private onProgress = (event: ProgressEvent) => {\n this._state.seekable = event.seekable?.sort((a, b) => a.end - b.end);\n this._state.buffered = event.buffered?.sort((a, b) => a.end - b.end);\n };\n\n private onTextTrackList = (event: TextTrackListEvent) => {\n const { subType, track } = event;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.REMOVE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.CHANGE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n }\n };\n\n private onMediaTrack = (event: MediaTrackEvent) => {\n const { subType, trackType, trackUid } = event;\n const tracks = trackType === MediaTrackType.VIDEO ? this._state.videoTracks : this._state.audioTracks;\n const track = findMediaTrackByUid(tracks, trackUid);\n switch (subType) {\n case MediaTrackEventType.ACTIVE_QUALITY_CHANGED:\n // Update local state\n if (track) {\n Object.assign(track, { ...track, activeQuality: event.qualities });\n }\n break;\n }\n };\n\n private onMediaTrackList = (event: MediaTrackListEvent) => {\n const { subType, trackType, track } = event;\n const isAudio = trackType === MediaTrackType.AUDIO;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n if (isAudio) {\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.REMOVE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.CHANGE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n }\n };\n\n get abr(): ABRConfiguration | undefined {\n return Platform.OS === 'android' ? this._abrAdapter : undefined;\n }\n\n get ads(): AdsAPI {\n return this._adsAdapter;\n }\n\n set autoplay(autoplay: boolean) {\n this._state.autoplay = autoplay;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, !autoplay);\n }\n\n get autoplay(): boolean {\n return this._state.autoplay;\n }\n\n set preload(type: PreloadType) {\n this._state.preload = type;\n NativeModules.PlayerModule.setPreload(this._view.nativeHandle, type);\n }\n\n get preload(): PreloadType {\n return this._state.preload;\n }\n\n get seekable() {\n return this._state.seekable;\n }\n\n private seekableEnd(): number {\n const ranges = this.seekable;\n return ranges.length === 0 ? 0 : ranges[ranges.length - 1].end;\n }\n\n get buffered() {\n return this._state.buffered;\n }\n\n get cast(): CastAPI {\n return this._castAdapter;\n }\n\n get currentTime(): number {\n return this._state.currentTime;\n }\n\n set currentTime(currentTime: number) {\n if (isNaN(currentTime)) {\n return;\n }\n\n // Sanitise currentTime\n let seekTime = currentTime;\n if (currentTime === Infinity) {\n seekTime = this.seekableEnd();\n }\n\n this._state.currentTime = seekTime;\n NativeModules.PlayerModule.setCurrentTime(this._view.nativeHandle, seekTime);\n }\n\n get duration(): number {\n return this._state.duration;\n }\n\n get pipConfiguration(): PiPConfiguration {\n return this._state.pipConfig;\n }\n\n set pipConfiguration(pipConfiguration: PiPConfiguration) {\n this._state.pipConfig = pipConfiguration;\n NativeModules.PlayerModule.setPipConfig(this._view.nativeHandle, pipConfiguration);\n }\n\n get backgroundAudioConfiguration(): BackgroundAudioConfiguration {\n return this._state.backgroundAudioConfig;\n }\n\n set backgroundAudioConfiguration(backgroundAudioConfiguration: BackgroundAudioConfiguration) {\n this._state.backgroundAudioConfig = backgroundAudioConfiguration;\n NativeModules.PlayerModule.setBackgroundAudioConfig(this._view.nativeHandle, backgroundAudioConfiguration);\n }\n\n get presentationMode(): PresentationMode {\n return this._state.presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n this._state.presentationMode = presentationMode;\n NativeModules.PlayerModule.setPresentationMode(this._view.nativeHandle, presentationMode);\n }\n\n get muted(): boolean {\n return this._state.muted;\n }\n\n set muted(muted: boolean) {\n this._state.muted = muted;\n NativeModules.PlayerModule.setMuted(this._view.nativeHandle, muted);\n }\n\n get seeking(): boolean {\n return this._state.seeking;\n }\n\n get paused(): boolean {\n return this._state.paused;\n }\n\n get playbackRate(): number {\n return this._state.playbackRate;\n }\n\n set playbackRate(playbackRate: number) {\n this._state.playbackRate = playbackRate;\n NativeModules.PlayerModule.setPlaybackRate(this._view.nativeHandle, playbackRate);\n }\n\n get audioTracks(): MediaTrack[] {\n return this._state.audioTracks;\n }\n\n get selectedAudioTrack(): number | undefined {\n return this._state.selectedAudioTrack;\n }\n\n set selectedAudioTrack(trackUid: number | undefined) {\n this._state.selectedAudioTrack = trackUid;\n NativeModules.PlayerModule.setSelectedAudioTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get videoTracks(): MediaTrack[] {\n return this._state.videoTracks;\n }\n\n get selectedVideoTrack(): number | undefined {\n return this._state.selectedVideoTrack;\n }\n\n set selectedVideoTrack(trackUid: number | undefined) {\n this._state.selectedVideoTrack = trackUid;\n this._state.targetVideoQuality = undefined;\n NativeModules.PlayerModule.setSelectedVideoTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get textTracks(): TextTrack[] {\n return this._state.textTracks;\n }\n\n get selectedTextTrack(): number | undefined {\n return this._state.selectedTextTrack;\n }\n\n set selectedTextTrack(trackUid: number | undefined) {\n this._state.selectedTextTrack = trackUid;\n this.textTracks.forEach((track) => {\n if (track.uid === trackUid) {\n track.mode = TextTrackMode.showing;\n } else if (track.mode === TextTrackMode.showing) {\n track.mode = TextTrackMode.disabled;\n }\n });\n NativeModules.PlayerModule.setSelectedTextTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._textTrackStyleAdapter;\n }\n\n get source(): SourceDescription | undefined {\n return this._state.source;\n }\n\n set source(source: SourceDescription | undefined) {\n // This is to correctly reset autoplay during a source change.\n this.pause();\n this._state.source = source;\n NativeModules.PlayerModule.setSource(this._view.nativeHandle, source);\n // Reset state for play-out of new source\n Object.assign(this._state, {\n playbackRate: 1,\n seeking: false,\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n seekable: [],\n buffered: [],\n selectedTextTrack: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n targetVideoQuality: undefined,\n });\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n return this._state.targetVideoQuality;\n }\n\n set targetVideoQuality(target: number | number[] | undefined) {\n // Always pass an array for targetVideoQuality.\n this._state.targetVideoQuality = !target ? [] : Array.isArray(target) ? target : [target];\n\n // Update local state\n const track = findMediaTrackByUid(this._state.videoTracks, this.selectedVideoTrack);\n if (track) {\n Object.assign(track, { ...track, targetQuality: this._state.targetVideoQuality });\n }\n NativeModules.PlayerModule.setTargetVideoQuality(this._view.nativeHandle, this._state.targetVideoQuality);\n }\n\n get volume(): number {\n return this._state.volume;\n }\n\n set volume(volume: number) {\n this._state.volume = volume;\n NativeModules.PlayerModule.setVolume(this._view.nativeHandle, volume);\n }\n\n get aspectRatio(): AspectRatio {\n return this._state.aspectRatio;\n }\n\n set aspectRatio(ratio: AspectRatio) {\n this._state.aspectRatio = ratio;\n NativeModules.PlayerModule.setAspectRatio(this._view.nativeHandle, ratio);\n }\n\n pause(): void {\n this._state.paused = true;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, true);\n }\n\n play(): void {\n this._state.paused = false;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, false);\n }\n\n get nativeHandle(): NativeHandleType {\n return this._view.nativeHandle;\n }\n\n initializeWithNativePlayerState_(state: NativePlayerState) {\n Object.assign(this._state, state);\n this._castAdapter.init_();\n }\n}\n"],"mappings":"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"}
|
|
@@ -5,13 +5,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.THEOplayerWebAdapter = void 0;
|
|
7
7
|
var _DefaultEventDispatcher = require("./event/DefaultEventDispatcher");
|
|
8
|
+
var _reactNativeTheoplayer = require("react-native-theoplayer");
|
|
8
9
|
var _THEOplayerWebAdsAdapter = require("./ads/THEOplayerWebAdsAdapter");
|
|
9
10
|
var _THEOplayerWebCastAdapter = require("./cast/THEOplayerWebCastAdapter");
|
|
10
11
|
var _TrackUtils = require("./web/TrackUtils");
|
|
11
12
|
var _WebEventForwarder = require("./WebEventForwarder");
|
|
12
13
|
var _WebPresentationModeManager = require("./web/WebPresentationModeManager");
|
|
13
14
|
var _WebMediaSession = require("./web/WebMediaSession");
|
|
14
|
-
var
|
|
15
|
+
var _BaseEvent = require("./event/BaseEvent");
|
|
15
16
|
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; }
|
|
16
17
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
17
18
|
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); }
|
|
@@ -25,17 +26,20 @@ class THEOplayerWebAdapter extends _DefaultEventDispatcher.DefaultEventDispatche
|
|
|
25
26
|
constructor(player, config) {
|
|
26
27
|
var _config$mediaControl;
|
|
27
28
|
super();
|
|
28
|
-
_defineProperty(this, "_player", void 0);
|
|
29
29
|
_defineProperty(this, "_adsAdapter", void 0);
|
|
30
30
|
_defineProperty(this, "_castAdapter", void 0);
|
|
31
|
-
_defineProperty(this, "_eventForwarder", void 0);
|
|
32
31
|
_defineProperty(this, "_presentationModeManager", void 0);
|
|
32
|
+
_defineProperty(this, "_player", void 0);
|
|
33
|
+
_defineProperty(this, "_eventForwarder", void 0);
|
|
33
34
|
_defineProperty(this, "_mediaSession", undefined);
|
|
34
35
|
_defineProperty(this, "_targetVideoQuality", undefined);
|
|
35
36
|
_defineProperty(this, "_backgroundAudioConfiguration", defaultBackgroundAudioConfiguration);
|
|
36
37
|
_defineProperty(this, "_pipConfiguration", defaultPipConfiguration);
|
|
37
38
|
_defineProperty(this, "onVisibilityChange", () => {
|
|
38
39
|
var _this$_mediaSession;
|
|
40
|
+
if (!this._player) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
39
43
|
if (document.visibilityState !== 'visible') {
|
|
40
44
|
// Apply background configuration: by default, pause when going to background, unless in pip
|
|
41
45
|
if (this.presentationMode !== _reactNativeTheoplayer.PresentationMode.pip && !this.backgroundAudioConfiguration.enabled) {
|
|
@@ -58,37 +62,51 @@ class THEOplayerWebAdapter extends _DefaultEventDispatcher.DefaultEventDispatche
|
|
|
58
62
|
}
|
|
59
63
|
}
|
|
60
64
|
get abr() {
|
|
61
|
-
|
|
65
|
+
var _this$_player;
|
|
66
|
+
return (_this$_player = this._player) === null || _this$_player === void 0 ? void 0 : _this$_player.abr;
|
|
62
67
|
}
|
|
63
68
|
get source() {
|
|
64
|
-
|
|
69
|
+
var _this$_player2;
|
|
70
|
+
return (_this$_player2 = this._player) === null || _this$_player2 === void 0 ? void 0 : _this$_player2.source;
|
|
65
71
|
}
|
|
66
72
|
set source(source) {
|
|
67
73
|
this._targetVideoQuality = undefined;
|
|
68
|
-
this._player
|
|
74
|
+
if (this._player) {
|
|
75
|
+
this._player.source = source;
|
|
76
|
+
}
|
|
69
77
|
}
|
|
70
78
|
play() {
|
|
71
|
-
|
|
79
|
+
var _this$_player3;
|
|
80
|
+
(_this$_player3 = this._player) === null || _this$_player3 === void 0 ? void 0 : _this$_player3.play();
|
|
72
81
|
}
|
|
73
82
|
pause() {
|
|
74
|
-
|
|
83
|
+
var _this$_player4;
|
|
84
|
+
(_this$_player4 = this._player) === null || _this$_player4 === void 0 ? void 0 : _this$_player4.pause();
|
|
75
85
|
}
|
|
76
86
|
get paused() {
|
|
77
|
-
return this._player.paused;
|
|
87
|
+
return this._player ? this._player.paused : true;
|
|
78
88
|
}
|
|
79
89
|
get autoplay() {
|
|
80
|
-
return this._player.autoplay;
|
|
90
|
+
return this._player ? this._player.autoplay : false;
|
|
81
91
|
}
|
|
82
92
|
set autoplay(autoplay) {
|
|
83
|
-
this._player
|
|
93
|
+
if (this._player) {
|
|
94
|
+
this._player.autoplay = autoplay;
|
|
95
|
+
}
|
|
84
96
|
}
|
|
85
97
|
set preload(type) {
|
|
86
|
-
this._player
|
|
98
|
+
if (this._player) {
|
|
99
|
+
this._player.preload = type;
|
|
100
|
+
}
|
|
87
101
|
}
|
|
88
102
|
get preload() {
|
|
89
|
-
|
|
103
|
+
var _this$_player5;
|
|
104
|
+
return ((_this$_player5 = this._player) === null || _this$_player5 === void 0 ? void 0 : _this$_player5.preload) || 'none';
|
|
90
105
|
}
|
|
91
106
|
get seekable() {
|
|
107
|
+
if (!this._player) {
|
|
108
|
+
return [];
|
|
109
|
+
}
|
|
92
110
|
const nativeRange = this._player.seekable;
|
|
93
111
|
return [...Array(nativeRange.length)].map((_, index) => ({
|
|
94
112
|
start: 1e3 * nativeRange.start(index),
|
|
@@ -96,6 +114,9 @@ class THEOplayerWebAdapter extends _DefaultEventDispatcher.DefaultEventDispatche
|
|
|
96
114
|
}));
|
|
97
115
|
}
|
|
98
116
|
get buffered() {
|
|
117
|
+
if (!this._player) {
|
|
118
|
+
return [];
|
|
119
|
+
}
|
|
99
120
|
const nativeRange = this._player.buffered;
|
|
100
121
|
return [...Array(nativeRange.length)].map((_, index) => ({
|
|
101
122
|
start: 1e3 * nativeRange.start(index),
|
|
@@ -103,10 +124,12 @@ class THEOplayerWebAdapter extends _DefaultEventDispatcher.DefaultEventDispatche
|
|
|
103
124
|
}));
|
|
104
125
|
}
|
|
105
126
|
get playbackRate() {
|
|
106
|
-
return this._player.playbackRate;
|
|
127
|
+
return this._player ? this._player.playbackRate : 1;
|
|
107
128
|
}
|
|
108
129
|
set playbackRate(playbackRate) {
|
|
109
|
-
this._player
|
|
130
|
+
if (this._player) {
|
|
131
|
+
this._player.playbackRate = playbackRate;
|
|
132
|
+
}
|
|
110
133
|
}
|
|
111
134
|
get pipConfiguration() {
|
|
112
135
|
return this._pipConfiguration;
|
|
@@ -125,19 +148,23 @@ class THEOplayerWebAdapter extends _DefaultEventDispatcher.DefaultEventDispatche
|
|
|
125
148
|
(_this$_mediaSession2 = this._mediaSession) === null || _this$_mediaSession2 === void 0 ? void 0 : _this$_mediaSession2.updateActionHandlers();
|
|
126
149
|
}
|
|
127
150
|
get volume() {
|
|
128
|
-
return this._player.volume;
|
|
151
|
+
return this._player ? this._player.volume : 1;
|
|
129
152
|
}
|
|
130
153
|
set volume(volume) {
|
|
131
|
-
this._player
|
|
154
|
+
if (this._player) {
|
|
155
|
+
this._player.volume = volume;
|
|
156
|
+
}
|
|
132
157
|
}
|
|
133
158
|
get muted() {
|
|
134
|
-
return this._player.muted;
|
|
159
|
+
return this._player ? this._player.muted : false;
|
|
135
160
|
}
|
|
136
161
|
set muted(muted) {
|
|
137
|
-
this._player
|
|
162
|
+
if (this._player) {
|
|
163
|
+
this._player.muted = muted;
|
|
164
|
+
}
|
|
138
165
|
}
|
|
139
166
|
get seeking() {
|
|
140
|
-
return this._player.seeking;
|
|
167
|
+
return this._player ? this._player.seeking : false;
|
|
141
168
|
}
|
|
142
169
|
get presentationMode() {
|
|
143
170
|
return this._presentationModeManager.presentationMode;
|
|
@@ -146,61 +173,82 @@ class THEOplayerWebAdapter extends _DefaultEventDispatcher.DefaultEventDispatche
|
|
|
146
173
|
this._presentationModeManager.presentationMode = presentationMode;
|
|
147
174
|
}
|
|
148
175
|
get audioTracks() {
|
|
149
|
-
return (0, _TrackUtils.fromNativeMediaTrackList)(this._player.audioTracks);
|
|
176
|
+
return this._player ? (0, _TrackUtils.fromNativeMediaTrackList)(this._player.audioTracks) : [];
|
|
150
177
|
}
|
|
151
178
|
get videoTracks() {
|
|
152
|
-
return (0, _TrackUtils.fromNativeMediaTrackList)(this._player.videoTracks);
|
|
179
|
+
return this._player ? (0, _TrackUtils.fromNativeMediaTrackList)(this._player.videoTracks) : [];
|
|
153
180
|
}
|
|
154
181
|
get textTracks() {
|
|
155
|
-
return (0, _TrackUtils.fromNativeTextTrackList)(this._player.textTracks);
|
|
182
|
+
return this._player ? (0, _TrackUtils.fromNativeTextTrackList)(this._player.textTracks) : [];
|
|
156
183
|
}
|
|
157
184
|
get selectedTextTrack() {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
return textTrack
|
|
161
|
-
|
|
185
|
+
if (this._player) {
|
|
186
|
+
var _this$_player$textTra;
|
|
187
|
+
return (_this$_player$textTra = this._player.textTracks.find(textTrack => {
|
|
188
|
+
return textTrack.mode === 'showing';
|
|
189
|
+
})) === null || _this$_player$textTra === void 0 ? void 0 : _this$_player$textTra.uid;
|
|
190
|
+
}
|
|
191
|
+
return undefined;
|
|
162
192
|
}
|
|
163
193
|
set selectedTextTrack(selectedTextTrack) {
|
|
164
|
-
this._player
|
|
165
|
-
|
|
166
|
-
|
|
194
|
+
if (this._player) {
|
|
195
|
+
this._player.textTracks.forEach(textTrack => {
|
|
196
|
+
textTrack.mode = textTrack.uid === selectedTextTrack ? 'showing' : 'disabled';
|
|
197
|
+
});
|
|
198
|
+
}
|
|
167
199
|
}
|
|
168
200
|
get textTrackStyle() {
|
|
169
|
-
|
|
201
|
+
var _this$_player6;
|
|
202
|
+
return (_this$_player6 = this._player) === null || _this$_player6 === void 0 ? void 0 : _this$_player6.textTrackStyle;
|
|
170
203
|
}
|
|
171
204
|
get selectedVideoTrack() {
|
|
172
|
-
|
|
173
|
-
|
|
205
|
+
if (this._player) {
|
|
206
|
+
var _this$_player$videoTr;
|
|
207
|
+
return (_this$_player$videoTr = this._player.videoTracks.find(videoTrack => videoTrack.enabled)) === null || _this$_player$videoTr === void 0 ? void 0 : _this$_player$videoTr.uid;
|
|
208
|
+
}
|
|
209
|
+
return undefined;
|
|
174
210
|
}
|
|
175
211
|
set selectedVideoTrack(selectedVideoTrack) {
|
|
176
|
-
this.
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
212
|
+
if (this._player) {
|
|
213
|
+
this._targetVideoQuality = undefined;
|
|
214
|
+
this._player.videoTracks.forEach(videoTrack => {
|
|
215
|
+
videoTrack.enabled = videoTrack.uid === selectedVideoTrack;
|
|
216
|
+
});
|
|
217
|
+
}
|
|
180
218
|
}
|
|
181
219
|
get selectedAudioTrack() {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
return audioTrack
|
|
185
|
-
|
|
220
|
+
if (this._player) {
|
|
221
|
+
var _this$_player$audioTr;
|
|
222
|
+
return (_this$_player$audioTr = this._player.audioTracks.find(audioTrack => {
|
|
223
|
+
return audioTrack.enabled;
|
|
224
|
+
})) === null || _this$_player$audioTr === void 0 ? void 0 : _this$_player$audioTr.uid;
|
|
225
|
+
}
|
|
226
|
+
return undefined;
|
|
186
227
|
}
|
|
187
228
|
set selectedAudioTrack(selectedAudioTrack) {
|
|
188
|
-
this._player
|
|
189
|
-
|
|
190
|
-
|
|
229
|
+
if (this._player) {
|
|
230
|
+
this._player.audioTracks.forEach(audioTrack => {
|
|
231
|
+
audioTrack.enabled = audioTrack.uid === selectedAudioTrack;
|
|
232
|
+
});
|
|
233
|
+
}
|
|
191
234
|
}
|
|
192
235
|
get targetVideoQuality() {
|
|
193
|
-
|
|
236
|
+
if (this._player) {
|
|
237
|
+
return this._targetVideoQuality;
|
|
238
|
+
}
|
|
239
|
+
return undefined;
|
|
194
240
|
}
|
|
195
241
|
set targetVideoQuality(targetVideoQuality) {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
242
|
+
if (this._player) {
|
|
243
|
+
const enabledVideoTrack = this._player.videoTracks.find(videoTrack => videoTrack.enabled);
|
|
244
|
+
if (enabledVideoTrack) {
|
|
245
|
+
enabledVideoTrack.targetQuality = (0, _TrackUtils.findNativeQualitiesByUid)(enabledVideoTrack, targetVideoQuality);
|
|
246
|
+
}
|
|
247
|
+
this._targetVideoQuality = targetVideoQuality;
|
|
199
248
|
}
|
|
200
|
-
this._targetVideoQuality = targetVideoQuality;
|
|
201
249
|
}
|
|
202
250
|
get currentTime() {
|
|
203
|
-
return 1e3 * this._player.currentTime;
|
|
251
|
+
return this._player ? 1e3 * this._player.currentTime : NaN;
|
|
204
252
|
}
|
|
205
253
|
set currentTime(currentTime) {
|
|
206
254
|
if (isNaN(currentTime)) {
|
|
@@ -210,8 +258,14 @@ class THEOplayerWebAdapter extends _DefaultEventDispatcher.DefaultEventDispatche
|
|
|
210
258
|
this._player.currentTime = currentTime / 1e3;
|
|
211
259
|
}
|
|
212
260
|
}
|
|
261
|
+
get aspectRatio() {
|
|
262
|
+
return _reactNativeTheoplayer.AspectRatio.FIT;
|
|
263
|
+
}
|
|
264
|
+
set aspectRatio(_ratio) {
|
|
265
|
+
// unused
|
|
266
|
+
}
|
|
213
267
|
get duration() {
|
|
214
|
-
return this._player.duration * 1e3;
|
|
268
|
+
return this._player ? this._player.duration * 1e3 : NaN;
|
|
215
269
|
}
|
|
216
270
|
get ads() {
|
|
217
271
|
return this._adsAdapter;
|
|
@@ -220,10 +274,15 @@ class THEOplayerWebAdapter extends _DefaultEventDispatcher.DefaultEventDispatche
|
|
|
220
274
|
return this._castAdapter;
|
|
221
275
|
}
|
|
222
276
|
destroy() {
|
|
223
|
-
var _this$_mediaSession3;
|
|
224
|
-
this.
|
|
277
|
+
var _this$_eventForwarder, _this$_mediaSession3, _this$_player7;
|
|
278
|
+
this.dispatchEvent(new _BaseEvent.BaseEvent(_reactNativeTheoplayer.PlayerEventType.DESTROY));
|
|
279
|
+
(_this$_eventForwarder = this._eventForwarder) === null || _this$_eventForwarder === void 0 ? void 0 : _this$_eventForwarder.unload();
|
|
225
280
|
(_this$_mediaSession3 = this._mediaSession) === null || _this$_mediaSession3 === void 0 ? void 0 : _this$_mediaSession3.destroy();
|
|
226
281
|
document.removeEventListener('visibilitychange', this.onVisibilityChange);
|
|
282
|
+
this._eventForwarder = undefined;
|
|
283
|
+
this._mediaSession = undefined;
|
|
284
|
+
(_this$_player7 = this._player) === null || _this$_player7 === void 0 ? void 0 : _this$_player7.destroy();
|
|
285
|
+
this._player = undefined;
|
|
227
286
|
}
|
|
228
287
|
get nativeHandle() {
|
|
229
288
|
return this._player;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_DefaultEventDispatcher","require","_THEOplayerWebAdsAdapter","_THEOplayerWebCastAdapter","_TrackUtils","_WebEventForwarder","_WebPresentationModeManager","_WebMediaSession","_reactNativeTheoplayer","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","defaultBackgroundAudioConfiguration","enabled","defaultPipConfiguration","startsAutomatically","THEOplayerWebAdapter","DefaultEventDispatcher","constructor","player","config","_config$mediaControl","_this$_mediaSession","document","visibilityState","presentationMode","PresentationMode","pip","backgroundAudioConfiguration","_player","pause","_mediaSession","updateActionHandlers","_adsAdapter","THEOplayerWebAdsAdapter","_castAdapter","THEOplayerWebCastAdapter","_eventForwarder","WebEventForwarder","_presentationModeManager","WebPresentationModeManager","addEventListener","onVisibilityChange","mediaControl","mediaSessionEnabled","WebMediaSession","abr","source","_targetVideoQuality","play","paused","autoplay","preload","type","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","selectedVideoTrack","_this$_player$videoTr","videoTrack","selectedAudioTrack","_this$_player$audioTr","audioTrack","targetVideoQuality","enabledVideoTrack","targetQuality","findNativeQualitiesByUid","currentTime","isNaN","duration","ads","cast","destroy","_this$_mediaSession3","unload","removeEventListener","nativeHandle","exports"],"sources":["THEOplayerWebAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n AdsAPI,\n CastAPI,\n MediaTrack,\n NativeHandleType,\n PlayerEventMap,\n PreloadType,\n TextTrack,\n TextTrackStyle,\n THEOplayer,\n PlayerConfiguration,\n} from 'react-native-theoplayer';\nimport { THEOplayerWebAdsAdapter } from './ads/THEOplayerWebAdsAdapter';\nimport { THEOplayerWebCastAdapter } from './cast/THEOplayerWebCastAdapter';\nimport type * 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 { PresentationMode } from 'react-native-theoplayer';\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 _player: THEOplayerWeb.ChromelessPlayer;\n private readonly _adsAdapter: THEOplayerWebAdsAdapter;\n private readonly _castAdapter: THEOplayerWebCastAdapter;\n private readonly _eventForwarder: WebEventForwarder;\n private readonly _presentationModeManager: WebPresentationModeManager;\n private readonly _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;\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 this._player.source = source;\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.paused;\n }\n\n get autoplay(): boolean {\n return this._player.autoplay;\n }\n\n set autoplay(autoplay: boolean) {\n this._player.autoplay = autoplay;\n }\n\n set preload(type: PreloadType) {\n this._player.preload = type;\n }\n\n get preload(): PreloadType {\n return this._player.preload;\n }\n\n get seekable() {\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 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.playbackRate;\n }\n\n set playbackRate(playbackRate: number) {\n this._player.playbackRate = playbackRate;\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.volume;\n }\n\n set volume(volume: number) {\n this._player.volume = volume;\n }\n\n get muted(): boolean {\n return this._player.muted;\n }\n\n set muted(muted: boolean) {\n this._player.muted = muted;\n }\n\n get seeking(): boolean {\n return this._player.seeking;\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 fromNativeMediaTrackList(this._player.audioTracks);\n }\n\n get videoTracks(): MediaTrack[] {\n return fromNativeMediaTrackList(this._player.videoTracks);\n }\n\n get textTracks(): TextTrack[] {\n return fromNativeTextTrackList(this._player.textTracks);\n }\n\n get selectedTextTrack(): number | undefined {\n return this._player.textTracks.find((textTrack: NativeTextTrack) => {\n return textTrack.mode === 'showing';\n })?.uid;\n }\n\n set selectedTextTrack(selectedTextTrack: number | undefined) {\n this._player.textTracks.forEach((textTrack: NativeTextTrack) => {\n textTrack.mode = textTrack.uid === selectedTextTrack ? 'showing' : 'disabled';\n });\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._player.textTrackStyle as TextTrackStyle;\n }\n\n get selectedVideoTrack(): number | undefined {\n return this._player.videoTracks.find((videoTrack: NativeMediaTrack) => videoTrack.enabled)?.uid;\n }\n\n set selectedVideoTrack(selectedVideoTrack: number | undefined) {\n this._targetVideoQuality = undefined;\n this._player.videoTracks.forEach((videoTrack: NativeMediaTrack) => {\n videoTrack.enabled = videoTrack.uid === selectedVideoTrack;\n });\n }\n\n get selectedAudioTrack(): number | undefined {\n return this._player.audioTracks.find((audioTrack: NativeMediaTrack) => {\n return audioTrack.enabled;\n })?.uid;\n }\n\n set selectedAudioTrack(selectedAudioTrack: number | undefined) {\n this._player.audioTracks.forEach((audioTrack: NativeMediaTrack) => {\n audioTrack.enabled = audioTrack.uid === selectedAudioTrack;\n });\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n return this._targetVideoQuality;\n }\n\n set targetVideoQuality(targetVideoQuality: number | number[] | undefined) {\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 get currentTime(): number {\n return 1e3 * this._player.currentTime;\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 duration(): number {\n return this._player.duration * 1e3;\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 destroy(): void {\n this._eventForwarder.unload();\n this._mediaSession?.destroy();\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n }\n\n get nativeHandle(): NativeHandleType {\n return this._player;\n }\n\n private readonly onVisibilityChange = () => {\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","_TrackUtils","_WebEventForwarder","_WebPresentationModeManager","_WebMediaSession","_BaseEvent","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","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","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 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 type * 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 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,2 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The adaptive bitrate strategy of the first segment, represented by a value from the following list:
|
|
3
|
+
* <br/> - `'performance'`: The player will optimize ABR behavior to focus on the performance of the player. This strategy initiates playback with the lowest quality suitable for the device which means faster start-up time.
|
|
4
|
+
* <br/> - `'quality'`: The player will optimize ABR behavior to focus displaying the best visual quality to the end-user. This strategy initiates playback with the highest bit rate suitable for the device.
|
|
5
|
+
* <br/> - `'bandwidth'`: The player will optimize the ABR behavior to focus on displaying the most optimal quality based on historic data of available bandwidth and knowledge of the network conditions.
|
|
6
|
+
*
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export let ABRStrategyType;
|
|
1
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Describes the metadata of the adaptive bitrate strategy.
|
|
13
|
+
*
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
(function (ABRStrategyType) {
|
|
17
|
+
ABRStrategyType["performance"] = "performance";
|
|
18
|
+
ABRStrategyType["quality"] = "quality";
|
|
19
|
+
ABRStrategyType["bandwidth"] = "bandwidth";
|
|
20
|
+
})(ABRStrategyType || (ABRStrategyType = {}));
|
|
2
21
|
//# sourceMappingURL=ABRConfiguration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["ABRConfiguration.ts"],"sourcesContent":["/**\n * The adaptive bitrate strategy of the first segment, represented by a value from the following list:\n * <br/> - `'performance'`: The player will optimize ABR behavior to focus on the performance of the player. This strategy initiates playback with the lowest quality suitable for the device which means faster start-up time.\n * <br/> - `'quality'`: The player will optimize ABR behavior to focus displaying the best visual quality to the end-user. This strategy initiates playback with the highest bit rate suitable for the device.\n * <br/> - `'bandwidth'`: The player will optimize the ABR behavior to focus on displaying the most optimal quality based on historic data of available bandwidth and knowledge of the network conditions.\n *\n * @public\n */\nexport
|
|
1
|
+
{"version":3,"names":["ABRStrategyType"],"sources":["ABRConfiguration.ts"],"sourcesContent":["/**\n * The adaptive bitrate strategy of the first segment, represented by a value from the following list:\n * <br/> - `'performance'`: The player will optimize ABR behavior to focus on the performance of the player. This strategy initiates playback with the lowest quality suitable for the device which means faster start-up time.\n * <br/> - `'quality'`: The player will optimize ABR behavior to focus displaying the best visual quality to the end-user. This strategy initiates playback with the highest bit rate suitable for the device.\n * <br/> - `'bandwidth'`: The player will optimize the ABR behavior to focus on displaying the most optimal quality based on historic data of available bandwidth and knowledge of the network conditions.\n *\n * @public\n */\nexport enum ABRStrategyType {\n performance = 'performance',\n quality = 'quality',\n bandwidth = 'bandwidth',\n}\n\n/**\n * Describes the metadata of the adaptive bitrate strategy.\n *\n * @public\n */\nexport interface ABRMetadata {\n /**\n * The initial bitrate, in bits per second.\n *\n * @defaultValue Bitrate available to the browser.\n */\n bitrate?: number;\n}\n\n/**\n * Describes the configuration of the adaptive bitrate strategy.\n *\n * @public\n */\nexport interface ABRStrategyConfiguration {\n /**\n * The strategy for initial playback.\n */\n type: ABRStrategyType;\n\n /**\n * The metadata for the initial playback strategy.\n *\n * @defaultValue A {@link ABRMetadata} object with default values.\n */\n metadata?: ABRMetadata;\n}\n\n/**\n * The adaptive bitrate stratey.\n *\n * @public\n */\nexport type ABRStrategy = ABRStrategyConfiguration | ABRStrategyType;\n\n/**\n * Describes the adaptive bitrate configuration.\n *\n * @public\n */\nexport interface ABRConfiguration {\n /**\n * The adaptive bitrate strategy.\n *\n * @defaultValue `'bandwidth'`\n */\n strategy?: ABRStrategy;\n\n /**\n * The amount which the player should buffer ahead of the current playback position, in seconds.\n *\n * @remarks\n * <br/> - Before v4.3.0: This duration has a maximum of 60 seconds.\n * <br/> - After v4.3.0: This duration has no maximum.\n * <br/> - The player might reduce or ignore the configured amount because of device or performance constraints.\n *\n * @defaultValue `20`\n */\n targetBuffer?: number;\n\n /**\n * The amount of data which the player should keep in its buffer before the current playback position, in seconds.\n * This configuration option can be used to reduce the memory footprint on memory restricted devices or on devices\n * which don't automatically prune decoder buffers.\n *\n * Note that the player can decide to keep less data in the decoder buffer in case memory is running low.\n * A value of 0 or lower is not accepted and will be treated as default.\n *\n * @defaultValue `30`\n *\n * @remarks\n * <br/> - This property is currently supported on Web platforms only.\n */\n bufferLookbackWindow?: number;\n\n /**\n * The maximum length of the player's buffer, in seconds.\n *\n * The player will initially buffer up to {@link ABRConfiguration.targetBuffer} seconds of media data.\n * If the player detects that the decoder is unable to hold so much data,\n * it will reduce `maxBufferLength` and restrict `targetBuffer` to be less than\n * this maximum.\n *\n * @remarks\n * <br/> - This property is currently supported on Web platforms only.\n */\n readonly maxBufferLength?: number;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAYA,eAAe;;AAM3B;AACA;AACA;AACA;AACA;AAJA,WANYA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;AAAA,GAAfA,eAAe,KAAfA,eAAe"}
|
|
@@ -1,2 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Specifies an aspect ratio for the player.
|
|
3
|
+
*
|
|
4
|
+
* <br/> - `FIT` (default): Scales the player so that all content fits inside its bounding box, keeping the original aspect ratio of the content..
|
|
5
|
+
* <br/> - `FILL`: Scales the player so that all content fits inside the bounding box, which will be stretched to fill it entirely.
|
|
6
|
+
* <br/> - `ASPECT_FILL`: Scales the player so that the content fills up the entire bounding box, keeping the original aspect ratio of the content.
|
|
7
|
+
*
|
|
8
|
+
* @public
|
|
9
|
+
* @defaultValue `'FIT'`
|
|
10
|
+
*/
|
|
11
|
+
export let AspectRatio;
|
|
12
|
+
(function (AspectRatio) {
|
|
13
|
+
AspectRatio["FIT"] = "fit";
|
|
14
|
+
AspectRatio["FILL"] = "fill";
|
|
15
|
+
AspectRatio["ASPECT_FILL"] = "aspectFill";
|
|
16
|
+
})(AspectRatio || (AspectRatio = {}));
|
|
2
17
|
//# sourceMappingURL=THEOplayer.js.map
|