react-native-theoplayer 2.5.0 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/android/src/main/java/com/theoplayer/PlayerEventEmitter.kt +9 -15
- package/android/src/main/java/com/theoplayer/util/PayloadBuilder.kt +2 -1
- package/android/src/main/java/com/theoplayer/util/ViewResolver.kt +9 -1
- package/ios/THEOplayerRCTDebug.swift +3 -3
- package/ios/THEOplayerRCTMainEventHandler.swift +59 -59
- package/ios/THEOplayerRCTMediaTrackEventHandler.swift +18 -18
- package/ios/THEOplayerRCTNetworkUtils.swift +1 -1
- package/ios/THEOplayerRCTPlayerAPI.swift +14 -14
- package/ios/THEOplayerRCTPrintUtils.swift +16 -0
- package/ios/THEOplayerRCTSourceDescriptionBuilder.swift +6 -6
- package/ios/THEOplayerRCTTextTrackEventHandler.swift +21 -21
- package/ios/THEOplayerRCTView.swift +29 -29
- package/ios/ads/THEOplayerRCTAdsAPI+DAI.swift +6 -6
- package/ios/ads/THEOplayerRCTAdsAPI.swift +13 -13
- package/ios/ads/THEOplayerRCTAdsEventHandler.swift +27 -27
- package/ios/ads/THEOplayerRCTSourceDescriptionBuilder+Ads.swift +5 -5
- package/ios/backgroundAudio/THEOplayerRCTNowPlayingManager.swift +63 -37
- package/ios/backgroundAudio/THEOplayerRCTRemoteCommandsManager.swift +16 -16
- package/ios/casting/THEOplayerRCTCastAPI+Airplay.swift +6 -6
- package/ios/casting/THEOplayerRCTCastAPI+Chromecast.swift +10 -10
- package/ios/casting/THEOplayerRCTCastAPI.swift +1 -1
- package/ios/casting/THEOplayerRCTCastEventHandler.swift +11 -11
- package/ios/contentprotection/THEOplayerRCTContentProtectionAPI.swift +1 -1
- package/ios/pip/THEOplayerRCTPipControlsManager.swift +1 -1
- package/lib/commonjs/api/abr/ABRConfiguration.js +25 -0
- package/lib/commonjs/api/abr/ABRConfiguration.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/THEOplayerAdapter.js +41 -10
- package/lib/commonjs/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/THEOplayerWebAdapter.js +105 -52
- 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/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/THEOplayerAdapter.js +41 -10
- package/lib/module/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/module/internal/adapter/THEOplayerWebAdapter.js +106 -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/track/Track.d.ts +1 -0
- package/lib/typescript/internal/adapter/THEOplayerAdapter.d.ts +2 -0
- package/lib/typescript/internal/adapter/THEOplayerWebAdapter.d.ts +3 -3
- package/package.json +1 -1
- package/react-native-theoplayer.podspec +1 -1
- package/src/api/abr/ABRConfiguration.ts +5 -1
- package/src/api/track/Track.ts +5 -1
- package/src/internal/THEOplayerView.web.tsx +2 -6
- package/src/internal/adapter/THEOplayerAdapter.ts +44 -10
- package/src/internal/adapter/THEOplayerWebAdapter.ts +97 -50
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_DefaultEventDispatcher","require","_reactNativeTheoplayer","_THEOplayerWebAdsAdapter","_THEOplayerWebCastAdapter","_TrackUtils","_WebEventForwarder","_WebPresentationModeManager","_WebMediaSession","_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","aspectRatio","AspectRatio","FIT","_ratio","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 PlayerConfiguration,\n PlayerEventMap,\n PreloadType,\n TextTrack,\n TextTrackStyle,\n THEOplayer,\n} from 'react-native-theoplayer';\nimport { AspectRatio, 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';\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 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.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":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,OAAA;AAaA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,wBAAA,GAAAF,OAAA;AACA,IAAAG,yBAAA,GAAAH,OAAA;AAGA,IAAAI,WAAA,GAAAJ,OAAA;AAEA,IAAAK,kBAAA,GAAAL,OAAA;AAGA,IAAAM,2BAAA,GAAAN,OAAA;AACA,IAAAO,gBAAA,GAAAP,OAAA;AAAwD,SAAAQ,gBAAAC,GAAA,EAAAC,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAD,GAAA,IAAAI,MAAA,CAAAC,cAAA,CAAAL,GAAA,EAAAC,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAR,GAAA,CAAAC,GAAA,IAAAC,KAAA,WAAAF,GAAA;AAAA,SAAAG,eAAAM,GAAA,QAAAR,GAAA,GAAAS,YAAA,CAAAD,GAAA,2BAAAR,GAAA,gBAAAA,GAAA,GAAAU,MAAA,CAAAV,GAAA;AAAA,SAAAS,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAK,IAAA,CAAAP,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAE,SAAA,4DAAAP,IAAA,gBAAAF,MAAA,GAAAU,MAAA,EAAAT,KAAA;AAExD,MAAMU,mCAAiE,GAAG;EACxEC,OAAO,EAAE;AACX,CAAC;AAED,MAAMC,uBAAyC,GAAG;EAChDC,mBAAmB,EAAE;AACvB,CAAC;AAEM,MAAMC,oBAAoB,SAASC,8CAAsB,CAAuC;EAWrGC,WAAWA,CAACC,MAAsC,EAAEC,MAA4B,EAAE;IAAA,IAAAC,oBAAA;IAChF,KAAK,EAAE;IAAChC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,wBANoDkB,SAAS;IAAAlB,eAAA,8BACVkB,SAAS;IAAAlB,eAAA,wCACAuB,mCAAmC;IAAAvB,eAAA,4BAC3DyB,uBAAuB;IAAAzB,eAAA,6BAqO/B,MAAM;MAAA,IAAAiC,mBAAA;MAC1C,IAAIC,QAAQ,CAACC,eAAe,KAAK,SAAS,EAAE;QAC1C;QACA,IAAI,IAAI,CAACC,gBAAgB,KAAKC,uCAAgB,CAACC,GAAG,IAAI,CAAC,IAAI,CAACC,4BAA4B,CAACf,OAAO,EAAE;UAChG,IAAI,CAACgB,OAAO,CAACC,KAAK,EAAE;QACtB;MACF;MACA;MACA,CAAAR,mBAAA,OAAI,CAACS,aAAa,cAAAT,mBAAA,uBAAlBA,mBAAA,CAAoBU,oBAAoB,EAAE;IAC5C,CAAC;IA1OC,IAAI,CAACH,OAAO,GAAGV,MAAM;IACrB,IAAI,CAACc,WAAW,GAAG,IAAIC,gDAAuB,CAAC,IAAI,CAACL,OAAO,CAAC;IAC5D,IAAI,CAACM,YAAY,GAAG,IAAIC,kDAAwB,CAAC,IAAI,CAACP,OAAO,CAAC;IAC9D,IAAI,CAACQ,eAAe,GAAG,IAAIC,oCAAiB,CAAC,IAAI,CAACT,OAAO,EAAE,IAAI,CAAC;IAChE,IAAI,CAACU,wBAAwB,GAAG,IAAIC,sDAA0B,CAAC,IAAI,CAACX,OAAO,EAAE,IAAI,CAAC;IAClFN,QAAQ,CAACkB,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAACC,kBAAkB,CAAC;;IAEtE;IACA,IAAI,CAAAtB,MAAM,aAANA,MAAM,wBAAAC,oBAAA,GAAND,MAAM,CAAEuB,YAAY,cAAAtB,oBAAA,uBAApBA,oBAAA,CAAsBuB,mBAAmB,MAAK,KAAK,EAAE;MACvD,IAAI,CAACb,aAAa,GAAG,IAAIc,gCAAe,CAAC,IAAI,EAAE1B,MAAM,CAAC;IACxD;EACF;EAEA,IAAI2B,GAAGA,CAAA,EAAiC;IACtC,OAAO,IAAI,CAACjB,OAAO,CAACiB,GAAG;EACzB;EAEA,IAAIC,MAAMA,CAAA,EAAkC;IAC1C,OAAO,IAAI,CAAClB,OAAO,CAACkB,MAAM;EAC5B;EAEA,IAAIA,MAAMA,CAACA,MAAqC,EAAE;IAChD,IAAI,CAACC,mBAAmB,GAAGzC,SAAS;IACpC,IAAI,CAACsB,OAAO,CAACkB,MAAM,GAAGA,MAAM;EAC9B;EAEAE,IAAIA,CAAA,EAAS;IACX,IAAI,CAACpB,OAAO,CAACoB,IAAI,EAAE;EACrB;EAEAnB,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACD,OAAO,CAACC,KAAK,EAAE;EACtB;EAEA,IAAIoB,MAAMA,CAAA,EAAY;IACpB,OAAO,IAAI,CAACrB,OAAO,CAACqB,MAAM;EAC5B;EAEA,IAAIC,QAAQA,CAAA,EAAY;IACtB,OAAO,IAAI,CAACtB,OAAO,CAACsB,QAAQ;EAC9B;EAEA,IAAIA,QAAQA,CAACA,QAAiB,EAAE;IAC9B,IAAI,CAACtB,OAAO,CAACsB,QAAQ,GAAGA,QAAQ;EAClC;EAEA,IAAIC,OAAOA,CAACC,IAAiB,EAAE;IAC7B,IAAI,CAACxB,OAAO,CAACuB,OAAO,GAAGC,IAAI;EAC7B;EAEA,IAAID,OAAOA,CAAA,EAAgB;IACzB,OAAO,IAAI,CAACvB,OAAO,CAACuB,OAAO;EAC7B;EAEA,IAAIE,QAAQA,CAAA,EAAG;IACb,MAAMC,WAAW,GAAG,IAAI,CAAC1B,OAAO,CAACyB,QAAQ;IACzC,OAAO,CAAC,GAAGE,KAAK,CAACD,WAAW,CAACE,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAACC,CAAC,EAAEC,KAAK,MAAM;MAAEC,KAAK,EAAE,GAAG,GAAGN,WAAW,CAACM,KAAK,CAACD,KAAK,CAAC;MAAEE,GAAG,EAAE,GAAG,GAAGP,WAAW,CAACO,GAAG,CAACF,KAAK;IAAE,CAAC,CAAC,CAAC;EACzI;EAEA,IAAIG,QAAQA,CAAA,EAAG;IACb,MAAMR,WAAW,GAAG,IAAI,CAAC1B,OAAO,CAACkC,QAAQ;IACzC,OAAO,CAAC,GAAGP,KAAK,CAACD,WAAW,CAACE,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAACC,CAAC,EAAEC,KAAK,MAAM;MAAEC,KAAK,EAAE,GAAG,GAAGN,WAAW,CAACM,KAAK,CAACD,KAAK,CAAC;MAAEE,GAAG,EAAE,GAAG,GAAGP,WAAW,CAACO,GAAG,CAACF,KAAK;IAAE,CAAC,CAAC,CAAC;EACzI;EAEA,IAAII,YAAYA,CAAA,EAAW;IACzB,OAAO,IAAI,CAACnC,OAAO,CAACmC,YAAY;EAClC;EAEA,IAAIA,YAAYA,CAACA,YAAoB,EAAE;IACrC,IAAI,CAACnC,OAAO,CAACmC,YAAY,GAAGA,YAAY;EAC1C;EAEA,IAAIC,gBAAgBA,CAAA,EAAqB;IACvC,OAAO,IAAI,CAACC,iBAAiB;EAC/B;EAEA,IAAID,gBAAgBA,CAAC7C,MAAwB,EAAE;IAC7C,IAAI,CAAC8C,iBAAiB,GAAG9C,MAAM;EACjC;EAEA,IAAIQ,4BAA4BA,CAAA,EAAiC;IAC/D,OAAO,IAAI,CAACuC,6BAA6B;EAC3C;EAEA,IAAIvC,4BAA4BA,CAACR,MAAoC,EAAE;IAAA,IAAAgD,oBAAA;IACrE,IAAI,CAACD,6BAA6B,GAAG/C,MAAM;;IAE3C;IACA,CAAAgD,oBAAA,OAAI,CAACrC,aAAa,cAAAqC,oBAAA,uBAAlBA,oBAAA,CAAoBpC,oBAAoB,EAAE;EAC5C;EAEA,IAAIqC,MAAMA,CAAA,EAAW;IACnB,OAAO,IAAI,CAACxC,OAAO,CAACwC,MAAM;EAC5B;EAEA,IAAIA,MAAMA,CAACA,MAAc,EAAE;IACzB,IAAI,CAACxC,OAAO,CAACwC,MAAM,GAAGA,MAAM;EAC9B;EAEA,IAAIC,KAAKA,CAAA,EAAY;IACnB,OAAO,IAAI,CAACzC,OAAO,CAACyC,KAAK;EAC3B;EAEA,IAAIA,KAAKA,CAACA,KAAc,EAAE;IACxB,IAAI,CAACzC,OAAO,CAACyC,KAAK,GAAGA,KAAK;EAC5B;EAEA,IAAIC,OAAOA,CAAA,EAAY;IACrB,OAAO,IAAI,CAAC1C,OAAO,CAAC0C,OAAO;EAC7B;EAEA,IAAI9C,gBAAgBA,CAAA,EAAqB;IACvC,OAAO,IAAI,CAACc,wBAAwB,CAACd,gBAAgB;EACvD;EAEA,IAAIA,gBAAgBA,CAACA,gBAAkC,EAAE;IACvD,IAAI,CAACc,wBAAwB,CAACd,gBAAgB,GAAGA,gBAAgB;EACnE;EAEA,IAAI+C,WAAWA,CAAA,EAAiB;IAC9B,OAAO,IAAAC,oCAAwB,EAAC,IAAI,CAAC5C,OAAO,CAAC2C,WAAW,CAAC;EAC3D;EAEA,IAAIE,WAAWA,CAAA,EAAiB;IAC9B,OAAO,IAAAD,oCAAwB,EAAC,IAAI,CAAC5C,OAAO,CAAC6C,WAAW,CAAC;EAC3D;EAEA,IAAIC,UAAUA,CAAA,EAAgB;IAC5B,OAAO,IAAAC,mCAAuB,EAAC,IAAI,CAAC/C,OAAO,CAAC8C,UAAU,CAAC;EACzD;EAEA,IAAIE,iBAAiBA,CAAA,EAAuB;IAAA,IAAAC,qBAAA;IAC1C,QAAAA,qBAAA,GAAO,IAAI,CAACjD,OAAO,CAAC8C,UAAU,CAACI,IAAI,CAAEC,SAA0B,IAAK;MAClE,OAAOA,SAAS,CAACC,IAAI,KAAK,SAAS;IACrC,CAAC,CAAC,cAAAH,qBAAA,uBAFKA,qBAAA,CAEHI,GAAG;EACT;EAEA,IAAIL,iBAAiBA,CAACA,iBAAqC,EAAE;IAC3D,IAAI,CAAChD,OAAO,CAAC8C,UAAU,CAACQ,OAAO,CAAEH,SAA0B,IAAK;MAC9DA,SAAS,CAACC,IAAI,GAAGD,SAAS,CAACE,GAAG,KAAKL,iBAAiB,GAAG,SAAS,GAAG,UAAU;IAC/E,CAAC,CAAC;EACJ;EAEA,IAAIO,cAAcA,CAAA,EAAmB;IACnC,OAAO,IAAI,CAACvD,OAAO,CAACuD,cAAc;EACpC;EAEA,IAAIC,kBAAkBA,CAAA,EAAuB;IAAA,IAAAC,qBAAA;IAC3C,QAAAA,qBAAA,GAAO,IAAI,CAACzD,OAAO,CAAC6C,WAAW,CAACK,IAAI,CAAEQ,UAA4B,IAAKA,UAAU,CAAC1E,OAAO,CAAC,cAAAyE,qBAAA,uBAAnFA,qBAAA,CAAqFJ,GAAG;EACjG;EAEA,IAAIG,kBAAkBA,CAACA,kBAAsC,EAAE;IAC7D,IAAI,CAACrC,mBAAmB,GAAGzC,SAAS;IACpC,IAAI,CAACsB,OAAO,CAAC6C,WAAW,CAACS,OAAO,CAAEI,UAA4B,IAAK;MACjEA,UAAU,CAAC1E,OAAO,GAAG0E,UAAU,CAACL,GAAG,KAAKG,kBAAkB;IAC5D,CAAC,CAAC;EACJ;EAEA,IAAIG,kBAAkBA,CAAA,EAAuB;IAAA,IAAAC,qBAAA;IAC3C,QAAAA,qBAAA,GAAO,IAAI,CAAC5D,OAAO,CAAC2C,WAAW,CAACO,IAAI,CAAEW,UAA4B,IAAK;MACrE,OAAOA,UAAU,CAAC7E,OAAO;IAC3B,CAAC,CAAC,cAAA4E,qBAAA,uBAFKA,qBAAA,CAEHP,GAAG;EACT;EAEA,IAAIM,kBAAkBA,CAACA,kBAAsC,EAAE;IAC7D,IAAI,CAAC3D,OAAO,CAAC2C,WAAW,CAACW,OAAO,CAAEO,UAA4B,IAAK;MACjEA,UAAU,CAAC7E,OAAO,GAAG6E,UAAU,CAACR,GAAG,KAAKM,kBAAkB;IAC5D,CAAC,CAAC;EACJ;EAEA,IAAIG,kBAAkBA,CAAA,EAAkC;IACtD,OAAO,IAAI,CAAC3C,mBAAmB;EACjC;EAEA,IAAI2C,kBAAkBA,CAACA,kBAAiD,EAAE;IACxE,MAAMC,iBAAiB,GAAG,IAAI,CAAC/D,OAAO,CAAC6C,WAAW,CAACK,IAAI,CAAEQ,UAA4B,IAAKA,UAAU,CAAC1E,OAAO,CAAC;IAC7G,IAAI+E,iBAAiB,EAAE;MACrBA,iBAAiB,CAACC,aAAa,GAAG,IAAAC,oCAAwB,EAACF,iBAAiB,EAAED,kBAAkB,CAAC;IACnG;IACA,IAAI,CAAC3C,mBAAmB,GAAG2C,kBAAkB;EAC/C;EAEA,IAAII,WAAWA,CAAA,EAAW;IACxB,OAAO,GAAG,GAAG,IAAI,CAAClE,OAAO,CAACkE,WAAW;EACvC;EAEA,IAAIA,WAAWA,CAACA,WAAmB,EAAE;IACnC,IAAIC,KAAK,CAACD,WAAW,CAAC,EAAE;MACtB;IACF;IACA,IAAI,IAAI,CAAClE,OAAO,EAAE;MAChB,IAAI,CAACA,OAAO,CAACkE,WAAW,GAAGA,WAAW,GAAG,GAAG;IAC9C;EACF;EAEA,IAAIE,WAAWA,CAAA,EAAgB;IAC7B,OAAOC,kCAAW,CAACC,GAAG;EACxB;EAEA,IAAIF,WAAWA,CAACG,MAAmB,EAAE;IACnC;EAAA;EAGF,IAAIC,QAAQA,CAAA,EAAW;IACrB,OAAO,IAAI,CAACxE,OAAO,CAACwE,QAAQ,GAAG,GAAG;EACpC;EAEA,IAAWC,GAAGA,CAAA,EAAW;IACvB,OAAO,IAAI,CAACrE,WAAW;EACzB;EAEA,IAAWsE,IAAIA,CAAA,EAAY;IACzB,OAAO,IAAI,CAACpE,YAAY;EAC1B;EAEAqE,OAAOA,CAAA,EAAS;IAAA,IAAAC,oBAAA;IACd,IAAI,CAACpE,eAAe,CAACqE,MAAM,EAAE;IAC7B,CAAAD,oBAAA,OAAI,CAAC1E,aAAa,cAAA0E,oBAAA,uBAAlBA,oBAAA,CAAoBD,OAAO,EAAE;IAC7BjF,QAAQ,CAACoF,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAACjE,kBAAkB,CAAC;EAC3E;EAEA,IAAIkE,YAAYA,CAAA,EAAqB;IACnC,OAAO,IAAI,CAAC/E,OAAO;EACrB;AAYF;AAACgF,OAAA,CAAA7F,oBAAA,GAAAA,oBAAA"}
|
|
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"}
|
|
@@ -14,6 +14,9 @@ export function removeTrack(trackList, track) {
|
|
|
14
14
|
return trackList && track ? trackList.filter(t => t.uid !== track.uid) : trackList;
|
|
15
15
|
}
|
|
16
16
|
export function addTrack(trackList, track) {
|
|
17
|
-
return trackList && track && !hasTrack(trackList, track) ? [...trackList, track] : trackList;
|
|
17
|
+
return trackList && track && !hasTrack(trackList, track) ? sortTracks([...trackList, track]) : trackList;
|
|
18
|
+
}
|
|
19
|
+
export function sortTracks(trackList) {
|
|
20
|
+
return (trackList === null || trackList === void 0 ? void 0 : trackList.sort((t1, t2) => t1.uid - t2.uid)) || [];
|
|
18
21
|
}
|
|
19
22
|
//# sourceMappingURL=Track.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["hasTrack","trackList","track","find","t","uid","removeTrack","filter","addTrack"],"sources":["Track.ts"],"sourcesContent":["/**\n * Represents a track of a media resource.\n *\n * @remarks\n * <br/> - A specific track type (e.g. {@link TextTrack}) will always be used.\n *\n * @public\n */\nexport interface Track {\n /**\n * The kind of the track.\n *\n * @remarks\n * <br/> - The values for this property depend on the specific type of the track.\n */\n readonly kind: string;\n\n /**\n * The label of the track.\n */\n label: string;\n\n /**\n * The identifier of the track.\n *\n * @remarks\n * <br/> - This identifier can be used to distinguish between related tracks, e.g. tracks in the same list.\n *\n * @privateRemarks\n * <br/> - This identifier is a randomly generated string.\n */\n readonly id: string;\n\n /**\n * A unique identifier of the track.\n *\n * @remarks\n * <br/> - This identifier is unique across tracks of a THEOplayer instance and can be used to distinguish between tracks.\n * <br/> - This identifier is a randomly generated number.\n */\n readonly uid: number;\n\n /**\n * The language of the track.\n */\n readonly language: string;\n}\n\nexport function hasTrack<TTrack extends Track>(trackList: TTrack[], track: TTrack): boolean {\n return !!(trackList && track && trackList.find((t) => t.uid === track.uid));\n}\n\nexport function removeTrack<TTrack extends Track>(trackList: TTrack[], track: TTrack): TTrack[] {\n return trackList && track ? trackList.filter((t) => t.uid !== track.uid) : trackList;\n}\n\nexport function addTrack<TTrack extends Track>(trackList: TTrack[], track: TTrack): TTrack[] {\n return trackList && track && !hasTrack(trackList, track) ? [...trackList, track] : trackList;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAyCA,OAAO,SAASA,QAAQA,CAAuBC,SAAmB,EAAEC,KAAa,EAAW;EAC1F,OAAO,CAAC,EAAED,SAAS,IAAIC,KAAK,IAAID,SAAS,CAACE,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,GAAG,KAAKH,KAAK,CAACG,GAAG,CAAC,CAAC;AAC7E;AAEA,OAAO,SAASC,WAAWA,CAAuBL,SAAmB,EAAEC,KAAa,EAAY;EAC9F,OAAOD,SAAS,IAAIC,KAAK,GAAGD,SAAS,CAACM,MAAM,CAAEH,CAAC,IAAKA,CAAC,CAACC,GAAG,KAAKH,KAAK,CAACG,GAAG,CAAC,GAAGJ,SAAS;AACtF;AAEA,OAAO,SAASO,QAAQA,CAAuBP,SAAmB,EAAEC,KAAa,EAAY;EAC3F,OAAOD,SAAS,IAAIC,KAAK,IAAI,CAACF,QAAQ,CAACC,SAAS,EAAEC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"names":["hasTrack","trackList","track","find","t","uid","removeTrack","filter","addTrack","sortTracks","sort","t1","t2"],"sources":["Track.ts"],"sourcesContent":["/**\n * Represents a track of a media resource.\n *\n * @remarks\n * <br/> - A specific track type (e.g. {@link TextTrack}) will always be used.\n *\n * @public\n */\nexport interface Track {\n /**\n * The kind of the track.\n *\n * @remarks\n * <br/> - The values for this property depend on the specific type of the track.\n */\n readonly kind: string;\n\n /**\n * The label of the track.\n */\n label: string;\n\n /**\n * The identifier of the track.\n *\n * @remarks\n * <br/> - This identifier can be used to distinguish between related tracks, e.g. tracks in the same list.\n *\n * @privateRemarks\n * <br/> - This identifier is a randomly generated string.\n */\n readonly id: string;\n\n /**\n * A unique identifier of the track.\n *\n * @remarks\n * <br/> - This identifier is unique across tracks of a THEOplayer instance and can be used to distinguish between tracks.\n * <br/> - This identifier is a randomly generated number.\n */\n readonly uid: number;\n\n /**\n * The language of the track.\n */\n readonly language: string;\n}\n\nexport function hasTrack<TTrack extends Track>(trackList: TTrack[], track: TTrack): boolean {\n return !!(trackList && track && trackList.find((t) => t.uid === track.uid));\n}\n\nexport function removeTrack<TTrack extends Track>(trackList: TTrack[], track: TTrack): TTrack[] {\n return trackList && track ? trackList.filter((t) => t.uid !== track.uid) : trackList;\n}\n\nexport function addTrack<TTrack extends Track>(trackList: TTrack[], track: TTrack): TTrack[] {\n return trackList && track && !hasTrack(trackList, track) ? sortTracks([...trackList, track]) : trackList;\n}\n\nexport function sortTracks<TTrack extends Track>(trackList?: TTrack[]): TTrack[] {\n return trackList?.sort((t1: TTrack, t2: TTrack) => t1.uid - t2.uid) || [];\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAyCA,OAAO,SAASA,QAAQA,CAAuBC,SAAmB,EAAEC,KAAa,EAAW;EAC1F,OAAO,CAAC,EAAED,SAAS,IAAIC,KAAK,IAAID,SAAS,CAACE,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,GAAG,KAAKH,KAAK,CAACG,GAAG,CAAC,CAAC;AAC7E;AAEA,OAAO,SAASC,WAAWA,CAAuBL,SAAmB,EAAEC,KAAa,EAAY;EAC9F,OAAOD,SAAS,IAAIC,KAAK,GAAGD,SAAS,CAACM,MAAM,CAAEH,CAAC,IAAKA,CAAC,CAACC,GAAG,KAAKH,KAAK,CAACG,GAAG,CAAC,GAAGJ,SAAS;AACtF;AAEA,OAAO,SAASO,QAAQA,CAAuBP,SAAmB,EAAEC,KAAa,EAAY;EAC3F,OAAOD,SAAS,IAAIC,KAAK,IAAI,CAACF,QAAQ,CAACC,SAAS,EAAEC,KAAK,CAAC,GAAGO,UAAU,CAAC,CAAC,GAAGR,SAAS,EAAEC,KAAK,CAAC,CAAC,GAAGD,SAAS;AAC1G;AAEA,OAAO,SAASQ,UAAUA,CAAuBR,SAAoB,EAAY;EAC/E,OAAO,CAAAA,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAES,IAAI,CAAC,CAACC,EAAU,EAAEC,EAAU,KAAKD,EAAE,CAACN,GAAG,GAAGO,EAAE,CAACP,GAAG,CAAC,KAAI,EAAE;AAC3E"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import React, { useEffect, useRef } from 'react';
|
|
2
2
|
import * as THEOplayer from 'theoplayer';
|
|
3
3
|
import { THEOplayerWebAdapter } from './adapter/THEOplayerWebAdapter';
|
|
4
|
-
import { BaseEvent } from './adapter/event/BaseEvent';
|
|
5
|
-
import { PlayerEventType } from 'react-native-theoplayer';
|
|
6
4
|
export function THEOplayerView(props) {
|
|
7
5
|
const {
|
|
8
6
|
config,
|
|
@@ -47,7 +45,7 @@ export function THEOplayerView(props) {
|
|
|
47
45
|
|
|
48
46
|
// Clean-up
|
|
49
47
|
return () => {
|
|
50
|
-
var _adapter$current
|
|
48
|
+
var _adapter$current;
|
|
51
49
|
// Notify the player will be destroyed.
|
|
52
50
|
const {
|
|
53
51
|
onPlayerDestroy
|
|
@@ -55,9 +53,7 @@ export function THEOplayerView(props) {
|
|
|
55
53
|
if (adapter !== null && adapter !== void 0 && adapter.current && onPlayerDestroy) {
|
|
56
54
|
onPlayerDestroy(adapter === null || adapter === void 0 ? void 0 : adapter.current);
|
|
57
55
|
}
|
|
58
|
-
adapter === null || adapter === void 0 ? void 0 : (_adapter$current = adapter.current) === null || _adapter$current === void 0 ? void 0 : _adapter$current.
|
|
59
|
-
adapter === null || adapter === void 0 ? void 0 : (_adapter$current2 = adapter.current) === null || _adapter$current2 === void 0 ? void 0 : _adapter$current2.destroy();
|
|
60
|
-
player === null || player === void 0 ? void 0 : (_player$current = player.current) === null || _player$current === void 0 ? void 0 : _player$current.destroy();
|
|
56
|
+
adapter === null || adapter === void 0 ? void 0 : (_adapter$current = adapter.current) === null || _adapter$current === void 0 ? void 0 : _adapter$current.destroy();
|
|
61
57
|
};
|
|
62
58
|
}, [container]);
|
|
63
59
|
const chromeless = (config === null || config === void 0 ? void 0 : config.chromeless) === undefined || (config === null || config === void 0 ? void 0 : config.chromeless) === true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","THEOplayer","THEOplayerWebAdapter","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","THEOplayer","THEOplayerWebAdapter","THEOplayerView","props","config","children","player","adapter","container","current","_props$onPlayerReady","chromeless","undefined","updatedConfig","allowNativeFullscreen","ChromelessPlayer","Player","ui","fluid","window","nativePlayer","onPlayerReady","call","_adapter$current","onPlayerDestroy","destroy","createElement","Fragment","ref","style","styles","className","display","position","width","height","maxHeight","maxWidth","aspectRatio"],"sources":["THEOplayerView.web.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport type { THEOplayerViewProps } from 'react-native-theoplayer';\nimport * as THEOplayer from 'theoplayer';\nimport { THEOplayerWebAdapter } from './adapter/THEOplayerWebAdapter';\n\nexport function THEOplayerView(props: React.PropsWithChildren<THEOplayerViewProps>) {\n const { config, children } = props;\n const player = useRef<THEOplayer.ChromelessPlayer | null>(null);\n const adapter = useRef<THEOplayerWebAdapter | null>(null);\n const container = useRef<null | HTMLDivElement>(null);\n\n useEffect(() => {\n // Create player inside container.\n if (container.current) {\n const chromeless = config?.chromeless === true || config?.chromeless === undefined;\n const updatedConfig = { ...config, allowNativeFullscreen: true };\n if (chromeless) {\n player.current = new THEOplayer.ChromelessPlayer(container.current, updatedConfig);\n } else {\n player.current = new THEOplayer.Player(container.current, {\n ...updatedConfig,\n ui: {\n fluid: true,\n },\n } as THEOplayer.PlayerConfiguration);\n }\n\n // Adapt native player to react-native player.\n adapter.current = new THEOplayerWebAdapter(player.current, config);\n\n // Expose players for easy access\n // @ts-ignore\n window.player = adapter.current;\n\n // @ts-ignore\n window.nativePlayer = player;\n\n // Notify the player is ready\n props.onPlayerReady?.(adapter.current);\n }\n\n // Clean-up\n return () => {\n // Notify the player will be destroyed.\n const { onPlayerDestroy } = props;\n if (adapter?.current && onPlayerDestroy) {\n onPlayerDestroy(adapter?.current);\n }\n adapter?.current?.destroy();\n };\n }, [container]);\n\n const chromeless = config?.chromeless === undefined || config?.chromeless === true;\n return (\n <>\n <div\n ref={container}\n style={styles.container}\n className={chromeless ? 'theoplayer-container' : 'theoplayer-container video-js theoplayer-skin'}\n />\n {children}\n </>\n );\n}\n\nconst styles = {\n // by default stretch the video to cover the container.\n // Override using the 'theoplayer-container' class.\n container: {\n display: 'flex',\n position: 'relative',\n width: '100%',\n height: '100%',\n maxHeight: '100vh',\n maxWidth: '100vw',\n aspectRatio: '16 / 9',\n } as React.CSSProperties,\n};\n"],"mappings":"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"}
|
|
@@ -48,11 +48,7 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
48
48
|
_defineProperty(this, "_abrAdapter", void 0);
|
|
49
49
|
_defineProperty(this, "_textTrackStyleAdapter", void 0);
|
|
50
50
|
_defineProperty(this, "onSourceChange", () => {
|
|
51
|
-
|
|
52
|
-
this.play();
|
|
53
|
-
} else {
|
|
54
|
-
this.pause();
|
|
55
|
-
}
|
|
51
|
+
this.applyAutoplay();
|
|
56
52
|
});
|
|
57
53
|
_defineProperty(this, "onPause", () => {
|
|
58
54
|
this._state.paused = true;
|
|
@@ -186,15 +182,31 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
186
182
|
this.addEventListener(PlayerEventType.MEDIA_TRACK_LIST, this.onMediaTrackList);
|
|
187
183
|
this.addEventListener(PlayerEventType.PRESENTATIONMODE_CHANGE, this.onPresentationModeChange);
|
|
188
184
|
}
|
|
185
|
+
hasValidSource() {
|
|
186
|
+
return this._state.source !== undefined;
|
|
187
|
+
}
|
|
189
188
|
get abr() {
|
|
190
189
|
return Platform.OS === 'android' ? this._abrAdapter : undefined;
|
|
191
190
|
}
|
|
192
191
|
get ads() {
|
|
193
192
|
return this._adsAdapter;
|
|
194
193
|
}
|
|
194
|
+
applyAutoplay() {
|
|
195
|
+
if (!this.hasValidSource()) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
if (this._state.autoplay) {
|
|
199
|
+
this.play();
|
|
200
|
+
} else {
|
|
201
|
+
this.pause();
|
|
202
|
+
}
|
|
203
|
+
}
|
|
195
204
|
set autoplay(autoplay) {
|
|
196
205
|
this._state.autoplay = autoplay;
|
|
197
|
-
|
|
206
|
+
|
|
207
|
+
// Apply autoplay in case a source was already set.
|
|
208
|
+
// If autoplay is changed before setting a source, `onSourceChange` applies autoplay.
|
|
209
|
+
this.applyAutoplay();
|
|
198
210
|
}
|
|
199
211
|
get autoplay() {
|
|
200
212
|
return this._state.autoplay;
|
|
@@ -223,6 +235,9 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
223
235
|
return this._state.currentTime;
|
|
224
236
|
}
|
|
225
237
|
set currentTime(currentTime) {
|
|
238
|
+
if (!this.hasValidSource()) {
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
226
241
|
if (isNaN(currentTime)) {
|
|
227
242
|
return;
|
|
228
243
|
}
|
|
@@ -286,6 +301,9 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
286
301
|
return this._state.selectedAudioTrack;
|
|
287
302
|
}
|
|
288
303
|
set selectedAudioTrack(trackUid) {
|
|
304
|
+
if (!this.hasValidSource()) {
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
289
307
|
this._state.selectedAudioTrack = trackUid;
|
|
290
308
|
NativeModules.PlayerModule.setSelectedAudioTrack(this._view.nativeHandle, trackUid || -1);
|
|
291
309
|
}
|
|
@@ -296,6 +314,9 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
296
314
|
return this._state.selectedVideoTrack;
|
|
297
315
|
}
|
|
298
316
|
set selectedVideoTrack(trackUid) {
|
|
317
|
+
if (!this.hasValidSource()) {
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
299
320
|
this._state.selectedVideoTrack = trackUid;
|
|
300
321
|
this._state.targetVideoQuality = undefined;
|
|
301
322
|
NativeModules.PlayerModule.setSelectedVideoTrack(this._view.nativeHandle, trackUid || -1);
|
|
@@ -307,6 +328,9 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
307
328
|
return this._state.selectedTextTrack;
|
|
308
329
|
}
|
|
309
330
|
set selectedTextTrack(trackUid) {
|
|
331
|
+
if (!this.hasValidSource()) {
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
310
334
|
this._state.selectedTextTrack = trackUid;
|
|
311
335
|
this.textTracks.forEach(track => {
|
|
312
336
|
if (track.uid === trackUid) {
|
|
@@ -347,6 +371,9 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
347
371
|
return this._state.targetVideoQuality;
|
|
348
372
|
}
|
|
349
373
|
set targetVideoQuality(target) {
|
|
374
|
+
if (!this.hasValidSource()) {
|
|
375
|
+
return;
|
|
376
|
+
}
|
|
350
377
|
// Always pass an array for targetVideoQuality.
|
|
351
378
|
this._state.targetVideoQuality = !target ? [] : Array.isArray(target) ? target : [target];
|
|
352
379
|
|
|
@@ -375,12 +402,16 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
375
402
|
NativeModules.PlayerModule.setAspectRatio(this._view.nativeHandle, ratio);
|
|
376
403
|
}
|
|
377
404
|
pause() {
|
|
378
|
-
this.
|
|
379
|
-
|
|
405
|
+
if (this.hasValidSource()) {
|
|
406
|
+
this._state.paused = true;
|
|
407
|
+
NativeModules.PlayerModule.setPaused(this._view.nativeHandle, true);
|
|
408
|
+
}
|
|
380
409
|
}
|
|
381
410
|
play() {
|
|
382
|
-
this.
|
|
383
|
-
|
|
411
|
+
if (this.hasValidSource()) {
|
|
412
|
+
this._state.paused = false;
|
|
413
|
+
NativeModules.PlayerModule.setPaused(this._view.nativeHandle, false);
|
|
414
|
+
}
|
|
384
415
|
}
|
|
385
416
|
get nativeHandle() {
|
|
386
417
|
return this._view.nativeHandle;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DefaultEventDispatcher","addTrack","AspectRatio","findMediaTrackByUid","MediaTrackEventType","MediaTrackType","PlayerEventType","PresentationMode","removeTrack","TextTrackMode","TrackListEventType","THEOplayerNativeAdsAdapter","THEOplayerNativeCastAdapter","AbrAdapter","NativeModules","Platform","TextTrackStyleAdapter","defaultPlayerState","source","undefined","autoplay","paused","seekable","buffered","pipConfig","startsAutomatically","backgroundAudioConfig","enabled","presentationMode","inline","muted","seeking","volume","currentTime","duration","NaN","playbackRate","preload","aspectRatio","FIT","audioTracks","videoTracks","textTracks","targetVideoQuality","selectedVideoTrack","selectedAudioTrack","selectedTextTrack","THEOplayerAdapter","constructor","view","initialState","arguments","length","_defineProperty","_state","play","pause","event","_event$seekable","_event$buffered","sort","a","b","end","subType","track","ADD_TRACK","REMOVE_TRACK","CHANGE_TRACK","trackType","trackUid","tracks","VIDEO","ACTIVE_QUALITY_CHANGED","Object","assign","activeQuality","qualities","isAudio","AUDIO","_view","_adsAdapter","_castAdapter","_abrAdapter","_textTrackStyleAdapter","addEventListener","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","OS","ads","PlayerModule","setPaused","nativeHandle","type","setPreload","seekableEnd","ranges","cast","isNaN","seekTime","Infinity","setCurrentTime","pipConfiguration","setPipConfig","backgroundAudioConfiguration","setBackgroundAudioConfig","setPresentationMode","setMuted","setPlaybackRate","setSelectedAudioTrack","setSelectedVideoTrack","forEach","uid","mode","showing","disabled","setSelectedTextTrack","textTrackStyle","setSource","target","Array","isArray","targetQuality","setTargetVideoQuality","setVolume","ratio","setAspectRatio","initializeWithNativePlayerState_","state","init_"],"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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"}
|
|
1
|
+
{"version":3,"names":["DefaultEventDispatcher","addTrack","AspectRatio","findMediaTrackByUid","MediaTrackEventType","MediaTrackType","PlayerEventType","PresentationMode","removeTrack","TextTrackMode","TrackListEventType","THEOplayerNativeAdsAdapter","THEOplayerNativeCastAdapter","AbrAdapter","NativeModules","Platform","TextTrackStyleAdapter","defaultPlayerState","source","undefined","autoplay","paused","seekable","buffered","pipConfig","startsAutomatically","backgroundAudioConfig","enabled","presentationMode","inline","muted","seeking","volume","currentTime","duration","NaN","playbackRate","preload","aspectRatio","FIT","audioTracks","videoTracks","textTracks","targetVideoQuality","selectedVideoTrack","selectedAudioTrack","selectedTextTrack","THEOplayerAdapter","constructor","view","initialState","arguments","length","_defineProperty","applyAutoplay","_state","event","_event$seekable","_event$buffered","sort","a","b","end","subType","track","ADD_TRACK","REMOVE_TRACK","CHANGE_TRACK","trackType","trackUid","tracks","VIDEO","ACTIVE_QUALITY_CHANGED","Object","assign","activeQuality","qualities","isAudio","AUDIO","_view","_adsAdapter","_castAdapter","_abrAdapter","_textTrackStyleAdapter","addEventListener","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","hasValidSource","abr","OS","ads","play","pause","type","PlayerModule","setPreload","nativeHandle","seekableEnd","ranges","cast","isNaN","seekTime","Infinity","setCurrentTime","pipConfiguration","setPipConfig","backgroundAudioConfiguration","setBackgroundAudioConfig","setPresentationMode","setMuted","setPlaybackRate","setSelectedAudioTrack","setSelectedVideoTrack","forEach","uid","mode","showing","disabled","setSelectedTextTrack","textTrackStyle","setSource","target","Array","isArray","targetQuality","setTargetVideoQuality","setVolume","ratio","setAspectRatio","setPaused","initializeWithNativePlayerState_","state","init_"],"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 this.applyAutoplay();\n };\n\n private hasValidSource(): boolean {\n return this._state.source !== undefined;\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 private applyAutoplay() {\n if (!this.hasValidSource()) {\n return;\n }\n if (this._state.autoplay) {\n this.play();\n } else {\n this.pause();\n }\n }\n\n set autoplay(autoplay: boolean) {\n this._state.autoplay = autoplay;\n\n // Apply autoplay in case a source was already set.\n // If autoplay is changed before setting a source, `onSourceChange` applies autoplay.\n this.applyAutoplay();\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 (!this.hasValidSource()) {\n return;\n }\n\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 if (!this.hasValidSource()) {\n return;\n }\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 if (!this.hasValidSource()) {\n return;\n }\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 if (!this.hasValidSource()) {\n return;\n }\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 if (!this.hasValidSource()) {\n return;\n }\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 if (this.hasValidSource()) {\n this._state.paused = true;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, true);\n }\n }\n\n play(): void {\n if (this.hasValidSource()) {\n this._state.paused = false;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, false);\n }\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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"}
|