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.
Files changed (56) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/android/src/main/java/com/theoplayer/PlayerEventEmitter.kt +9 -15
  3. package/android/src/main/java/com/theoplayer/util/PayloadBuilder.kt +2 -1
  4. package/android/src/main/java/com/theoplayer/util/ViewResolver.kt +9 -1
  5. package/ios/THEOplayerRCTDebug.swift +3 -3
  6. package/ios/THEOplayerRCTMainEventHandler.swift +59 -59
  7. package/ios/THEOplayerRCTMediaTrackEventHandler.swift +18 -18
  8. package/ios/THEOplayerRCTNetworkUtils.swift +1 -1
  9. package/ios/THEOplayerRCTPlayerAPI.swift +14 -14
  10. package/ios/THEOplayerRCTPrintUtils.swift +16 -0
  11. package/ios/THEOplayerRCTSourceDescriptionBuilder.swift +6 -6
  12. package/ios/THEOplayerRCTTextTrackEventHandler.swift +21 -21
  13. package/ios/THEOplayerRCTView.swift +29 -29
  14. package/ios/ads/THEOplayerRCTAdsAPI+DAI.swift +6 -6
  15. package/ios/ads/THEOplayerRCTAdsAPI.swift +13 -13
  16. package/ios/ads/THEOplayerRCTAdsEventHandler.swift +27 -27
  17. package/ios/ads/THEOplayerRCTSourceDescriptionBuilder+Ads.swift +5 -5
  18. package/ios/backgroundAudio/THEOplayerRCTNowPlayingManager.swift +63 -37
  19. package/ios/backgroundAudio/THEOplayerRCTRemoteCommandsManager.swift +16 -16
  20. package/ios/casting/THEOplayerRCTCastAPI+Airplay.swift +6 -6
  21. package/ios/casting/THEOplayerRCTCastAPI+Chromecast.swift +10 -10
  22. package/ios/casting/THEOplayerRCTCastAPI.swift +1 -1
  23. package/ios/casting/THEOplayerRCTCastEventHandler.swift +11 -11
  24. package/ios/contentprotection/THEOplayerRCTContentProtectionAPI.swift +1 -1
  25. package/ios/pip/THEOplayerRCTPipControlsManager.swift +1 -1
  26. package/lib/commonjs/api/abr/ABRConfiguration.js +25 -0
  27. package/lib/commonjs/api/abr/ABRConfiguration.js.map +1 -1
  28. package/lib/commonjs/api/track/Track.js +5 -1
  29. package/lib/commonjs/api/track/Track.js.map +1 -1
  30. package/lib/commonjs/internal/THEOplayerView.web.js +2 -6
  31. package/lib/commonjs/internal/THEOplayerView.web.js.map +1 -1
  32. package/lib/commonjs/internal/adapter/THEOplayerAdapter.js +41 -10
  33. package/lib/commonjs/internal/adapter/THEOplayerAdapter.js.map +1 -1
  34. package/lib/commonjs/internal/adapter/THEOplayerWebAdapter.js +105 -52
  35. package/lib/commonjs/internal/adapter/THEOplayerWebAdapter.js.map +1 -1
  36. package/lib/module/api/abr/ABRConfiguration.js +19 -0
  37. package/lib/module/api/abr/ABRConfiguration.js.map +1 -1
  38. package/lib/module/api/track/Track.js +4 -1
  39. package/lib/module/api/track/Track.js.map +1 -1
  40. package/lib/module/internal/THEOplayerView.web.js +2 -6
  41. package/lib/module/internal/THEOplayerView.web.js.map +1 -1
  42. package/lib/module/internal/adapter/THEOplayerAdapter.js +41 -10
  43. package/lib/module/internal/adapter/THEOplayerAdapter.js.map +1 -1
  44. package/lib/module/internal/adapter/THEOplayerWebAdapter.js +106 -53
  45. package/lib/module/internal/adapter/THEOplayerWebAdapter.js.map +1 -1
  46. package/lib/typescript/api/abr/ABRConfiguration.d.ts +5 -1
  47. package/lib/typescript/api/track/Track.d.ts +1 -0
  48. package/lib/typescript/internal/adapter/THEOplayerAdapter.d.ts +2 -0
  49. package/lib/typescript/internal/adapter/THEOplayerWebAdapter.d.ts +3 -3
  50. package/package.json +1 -1
  51. package/react-native-theoplayer.podspec +1 -1
  52. package/src/api/abr/ABRConfiguration.ts +5 -1
  53. package/src/api/track/Track.ts +5 -1
  54. package/src/internal/THEOplayerView.web.tsx +2 -6
  55. package/src/internal/adapter/THEOplayerAdapter.ts +44 -10
  56. package/src/internal/adapter/THEOplayerWebAdapter.ts +97 -50
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","THEOplayer","_THEOplayerWebAdapter","_BaseEvent","_reactNativeTheoplayer","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","THEOplayerView","props","config","children","player","useRef","adapter","container","useEffect","current","_props$onPlayerReady","chromeless","undefined","updatedConfig","allowNativeFullscreen","ChromelessPlayer","Player","ui","fluid","THEOplayerWebAdapter","window","nativePlayer","onPlayerReady","_adapter$current","_adapter$current2","_player$current","onPlayerDestroy","dispatchEvent","BaseEvent","PlayerEventType","DESTROY","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';\nimport { BaseEvent } from './adapter/event/BaseEvent';\nimport { PlayerEventType } from 'react-native-theoplayer';\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?.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));\n adapter?.current?.destroy();\n player?.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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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","THEOplayer","_THEOplayerWebAdapter","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","THEOplayerView","props","config","children","player","useRef","adapter","container","useEffect","current","_props$onPlayerReady","chromeless","undefined","updatedConfig","allowNativeFullscreen","ChromelessPlayer","Player","ui","fluid","THEOplayerWebAdapter","window","nativePlayer","onPlayerReady","_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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"}
@@ -54,11 +54,7 @@ class THEOplayerAdapter extends _DefaultEventDispatcher.DefaultEventDispatcher {
54
54
  _defineProperty(this, "_abrAdapter", void 0);
55
55
  _defineProperty(this, "_textTrackStyleAdapter", void 0);
56
56
  _defineProperty(this, "onSourceChange", () => {
57
- if (this._state.autoplay) {
58
- this.play();
59
- } else {
60
- this.pause();
61
- }
57
+ this.applyAutoplay();
62
58
  });
63
59
  _defineProperty(this, "onPause", () => {
64
60
  this._state.paused = true;
@@ -192,15 +188,31 @@ class THEOplayerAdapter extends _DefaultEventDispatcher.DefaultEventDispatcher {
192
188
  this.addEventListener(_reactNativeTheoplayer.PlayerEventType.MEDIA_TRACK_LIST, this.onMediaTrackList);
193
189
  this.addEventListener(_reactNativeTheoplayer.PlayerEventType.PRESENTATIONMODE_CHANGE, this.onPresentationModeChange);
194
190
  }
191
+ hasValidSource() {
192
+ return this._state.source !== undefined;
193
+ }
195
194
  get abr() {
196
195
  return _reactNative.Platform.OS === 'android' ? this._abrAdapter : undefined;
197
196
  }
198
197
  get ads() {
199
198
  return this._adsAdapter;
200
199
  }
200
+ applyAutoplay() {
201
+ if (!this.hasValidSource()) {
202
+ return;
203
+ }
204
+ if (this._state.autoplay) {
205
+ this.play();
206
+ } else {
207
+ this.pause();
208
+ }
209
+ }
201
210
  set autoplay(autoplay) {
202
211
  this._state.autoplay = autoplay;
203
- _reactNative.NativeModules.PlayerModule.setPaused(this._view.nativeHandle, !autoplay);
212
+
213
+ // Apply autoplay in case a source was already set.
214
+ // If autoplay is changed before setting a source, `onSourceChange` applies autoplay.
215
+ this.applyAutoplay();
204
216
  }
205
217
  get autoplay() {
206
218
  return this._state.autoplay;
@@ -229,6 +241,9 @@ class THEOplayerAdapter extends _DefaultEventDispatcher.DefaultEventDispatcher {
229
241
  return this._state.currentTime;
230
242
  }
231
243
  set currentTime(currentTime) {
244
+ if (!this.hasValidSource()) {
245
+ return;
246
+ }
232
247
  if (isNaN(currentTime)) {
233
248
  return;
234
249
  }
@@ -292,6 +307,9 @@ class THEOplayerAdapter extends _DefaultEventDispatcher.DefaultEventDispatcher {
292
307
  return this._state.selectedAudioTrack;
293
308
  }
294
309
  set selectedAudioTrack(trackUid) {
310
+ if (!this.hasValidSource()) {
311
+ return;
312
+ }
295
313
  this._state.selectedAudioTrack = trackUid;
296
314
  _reactNative.NativeModules.PlayerModule.setSelectedAudioTrack(this._view.nativeHandle, trackUid || -1);
297
315
  }
@@ -302,6 +320,9 @@ class THEOplayerAdapter extends _DefaultEventDispatcher.DefaultEventDispatcher {
302
320
  return this._state.selectedVideoTrack;
303
321
  }
304
322
  set selectedVideoTrack(trackUid) {
323
+ if (!this.hasValidSource()) {
324
+ return;
325
+ }
305
326
  this._state.selectedVideoTrack = trackUid;
306
327
  this._state.targetVideoQuality = undefined;
307
328
  _reactNative.NativeModules.PlayerModule.setSelectedVideoTrack(this._view.nativeHandle, trackUid || -1);
@@ -313,6 +334,9 @@ class THEOplayerAdapter extends _DefaultEventDispatcher.DefaultEventDispatcher {
313
334
  return this._state.selectedTextTrack;
314
335
  }
315
336
  set selectedTextTrack(trackUid) {
337
+ if (!this.hasValidSource()) {
338
+ return;
339
+ }
316
340
  this._state.selectedTextTrack = trackUid;
317
341
  this.textTracks.forEach(track => {
318
342
  if (track.uid === trackUid) {
@@ -353,6 +377,9 @@ class THEOplayerAdapter extends _DefaultEventDispatcher.DefaultEventDispatcher {
353
377
  return this._state.targetVideoQuality;
354
378
  }
355
379
  set targetVideoQuality(target) {
380
+ if (!this.hasValidSource()) {
381
+ return;
382
+ }
356
383
  // Always pass an array for targetVideoQuality.
357
384
  this._state.targetVideoQuality = !target ? [] : Array.isArray(target) ? target : [target];
358
385
 
@@ -381,12 +408,16 @@ class THEOplayerAdapter extends _DefaultEventDispatcher.DefaultEventDispatcher {
381
408
  _reactNative.NativeModules.PlayerModule.setAspectRatio(this._view.nativeHandle, ratio);
382
409
  }
383
410
  pause() {
384
- this._state.paused = true;
385
- _reactNative.NativeModules.PlayerModule.setPaused(this._view.nativeHandle, true);
411
+ if (this.hasValidSource()) {
412
+ this._state.paused = true;
413
+ _reactNative.NativeModules.PlayerModule.setPaused(this._view.nativeHandle, true);
414
+ }
386
415
  }
387
416
  play() {
388
- this._state.paused = false;
389
- _reactNative.NativeModules.PlayerModule.setPaused(this._view.nativeHandle, false);
417
+ if (this.hasValidSource()) {
418
+ this._state.paused = false;
419
+ _reactNative.NativeModules.PlayerModule.setPaused(this._view.nativeHandle, false);
420
+ }
390
421
  }
391
422
  get nativeHandle() {
392
423
  return this._view.nativeHandle;
@@ -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","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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"}
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","applyAutoplay","_state","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","hasValidSource","abr","Platform","OS","ads","play","pause","type","NativeModules","PlayerModule","setPreload","nativeHandle","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","setPaused","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 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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"}
@@ -12,6 +12,7 @@ var _TrackUtils = require("./web/TrackUtils");
12
12
  var _WebEventForwarder = require("./WebEventForwarder");
13
13
  var _WebPresentationModeManager = require("./web/WebPresentationModeManager");
14
14
  var _WebMediaSession = require("./web/WebMediaSession");
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
- return this._player.abr;
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
- return this._player.source;
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.source = source;
74
+ if (this._player) {
75
+ this._player.source = source;
76
+ }
69
77
  }
70
78
  play() {
71
- this._player.play();
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
- this._player.pause();
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.autoplay = autoplay;
93
+ if (this._player) {
94
+ this._player.autoplay = autoplay;
95
+ }
84
96
  }
85
97
  set preload(type) {
86
- this._player.preload = type;
98
+ if (this._player) {
99
+ this._player.preload = type;
100
+ }
87
101
  }
88
102
  get preload() {
89
- return this._player.preload;
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.playbackRate = playbackRate;
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.volume = volume;
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.muted = muted;
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
- var _this$_player$textTra;
159
- return (_this$_player$textTra = this._player.textTracks.find(textTrack => {
160
- return textTrack.mode === 'showing';
161
- })) === null || _this$_player$textTra === void 0 ? void 0 : _this$_player$textTra.uid;
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.textTracks.forEach(textTrack => {
165
- textTrack.mode = textTrack.uid === selectedTextTrack ? 'showing' : 'disabled';
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
- return this._player.textTrackStyle;
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
- var _this$_player$videoTr;
173
- return (_this$_player$videoTr = this._player.videoTracks.find(videoTrack => videoTrack.enabled)) === null || _this$_player$videoTr === void 0 ? void 0 : _this$_player$videoTr.uid;
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._targetVideoQuality = undefined;
177
- this._player.videoTracks.forEach(videoTrack => {
178
- videoTrack.enabled = videoTrack.uid === selectedVideoTrack;
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
- var _this$_player$audioTr;
183
- return (_this$_player$audioTr = this._player.audioTracks.find(audioTrack => {
184
- return audioTrack.enabled;
185
- })) === null || _this$_player$audioTr === void 0 ? void 0 : _this$_player$audioTr.uid;
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.audioTracks.forEach(audioTrack => {
189
- audioTrack.enabled = audioTrack.uid === selectedAudioTrack;
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
- return this._targetVideoQuality;
236
+ if (this._player) {
237
+ return this._targetVideoQuality;
238
+ }
239
+ return undefined;
194
240
  }
195
241
  set targetVideoQuality(targetVideoQuality) {
196
- const enabledVideoTrack = this._player.videoTracks.find(videoTrack => videoTrack.enabled);
197
- if (enabledVideoTrack) {
198
- enabledVideoTrack.targetQuality = (0, _TrackUtils.findNativeQualitiesByUid)(enabledVideoTrack, targetVideoQuality);
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)) {
@@ -217,7 +265,7 @@ class THEOplayerWebAdapter extends _DefaultEventDispatcher.DefaultEventDispatche
217
265
  // unused
218
266
  }
219
267
  get duration() {
220
- return this._player.duration * 1e3;
268
+ return this._player ? this._player.duration * 1e3 : NaN;
221
269
  }
222
270
  get ads() {
223
271
  return this._adsAdapter;
@@ -226,10 +274,15 @@ class THEOplayerWebAdapter extends _DefaultEventDispatcher.DefaultEventDispatche
226
274
  return this._castAdapter;
227
275
  }
228
276
  destroy() {
229
- var _this$_mediaSession3;
230
- this._eventForwarder.unload();
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();
231
280
  (_this$_mediaSession3 = this._mediaSession) === null || _this$_mediaSession3 === void 0 ? void 0 : _this$_mediaSession3.destroy();
232
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;
233
286
  }
234
287
  get nativeHandle() {
235
288
  return this._player;