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":["_react","_interopRequireWildcard","require","THEOplayer","_THEOplayerWebAdapter","
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
385
|
-
|
|
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.
|
|
389
|
-
|
|
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
|
-
|
|
65
|
+
var _this$_player;
|
|
66
|
+
return (_this$_player = this._player) === null || _this$_player === void 0 ? void 0 : _this$_player.abr;
|
|
62
67
|
}
|
|
63
68
|
get source() {
|
|
64
|
-
|
|
69
|
+
var _this$_player2;
|
|
70
|
+
return (_this$_player2 = this._player) === null || _this$_player2 === void 0 ? void 0 : _this$_player2.source;
|
|
65
71
|
}
|
|
66
72
|
set source(source) {
|
|
67
73
|
this._targetVideoQuality = undefined;
|
|
68
|
-
this._player
|
|
74
|
+
if (this._player) {
|
|
75
|
+
this._player.source = source;
|
|
76
|
+
}
|
|
69
77
|
}
|
|
70
78
|
play() {
|
|
71
|
-
|
|
79
|
+
var _this$_player3;
|
|
80
|
+
(_this$_player3 = this._player) === null || _this$_player3 === void 0 ? void 0 : _this$_player3.play();
|
|
72
81
|
}
|
|
73
82
|
pause() {
|
|
74
|
-
|
|
83
|
+
var _this$_player4;
|
|
84
|
+
(_this$_player4 = this._player) === null || _this$_player4 === void 0 ? void 0 : _this$_player4.pause();
|
|
75
85
|
}
|
|
76
86
|
get paused() {
|
|
77
|
-
return this._player.paused;
|
|
87
|
+
return this._player ? this._player.paused : true;
|
|
78
88
|
}
|
|
79
89
|
get autoplay() {
|
|
80
|
-
return this._player.autoplay;
|
|
90
|
+
return this._player ? this._player.autoplay : false;
|
|
81
91
|
}
|
|
82
92
|
set autoplay(autoplay) {
|
|
83
|
-
this._player
|
|
93
|
+
if (this._player) {
|
|
94
|
+
this._player.autoplay = autoplay;
|
|
95
|
+
}
|
|
84
96
|
}
|
|
85
97
|
set preload(type) {
|
|
86
|
-
this._player
|
|
98
|
+
if (this._player) {
|
|
99
|
+
this._player.preload = type;
|
|
100
|
+
}
|
|
87
101
|
}
|
|
88
102
|
get preload() {
|
|
89
|
-
|
|
103
|
+
var _this$_player5;
|
|
104
|
+
return ((_this$_player5 = this._player) === null || _this$_player5 === void 0 ? void 0 : _this$_player5.preload) || 'none';
|
|
90
105
|
}
|
|
91
106
|
get seekable() {
|
|
107
|
+
if (!this._player) {
|
|
108
|
+
return [];
|
|
109
|
+
}
|
|
92
110
|
const nativeRange = this._player.seekable;
|
|
93
111
|
return [...Array(nativeRange.length)].map((_, index) => ({
|
|
94
112
|
start: 1e3 * nativeRange.start(index),
|
|
@@ -96,6 +114,9 @@ class THEOplayerWebAdapter extends _DefaultEventDispatcher.DefaultEventDispatche
|
|
|
96
114
|
}));
|
|
97
115
|
}
|
|
98
116
|
get buffered() {
|
|
117
|
+
if (!this._player) {
|
|
118
|
+
return [];
|
|
119
|
+
}
|
|
99
120
|
const nativeRange = this._player.buffered;
|
|
100
121
|
return [...Array(nativeRange.length)].map((_, index) => ({
|
|
101
122
|
start: 1e3 * nativeRange.start(index),
|
|
@@ -103,10 +124,12 @@ class THEOplayerWebAdapter extends _DefaultEventDispatcher.DefaultEventDispatche
|
|
|
103
124
|
}));
|
|
104
125
|
}
|
|
105
126
|
get playbackRate() {
|
|
106
|
-
return this._player.playbackRate;
|
|
127
|
+
return this._player ? this._player.playbackRate : 1;
|
|
107
128
|
}
|
|
108
129
|
set playbackRate(playbackRate) {
|
|
109
|
-
this._player
|
|
130
|
+
if (this._player) {
|
|
131
|
+
this._player.playbackRate = playbackRate;
|
|
132
|
+
}
|
|
110
133
|
}
|
|
111
134
|
get pipConfiguration() {
|
|
112
135
|
return this._pipConfiguration;
|
|
@@ -125,19 +148,23 @@ class THEOplayerWebAdapter extends _DefaultEventDispatcher.DefaultEventDispatche
|
|
|
125
148
|
(_this$_mediaSession2 = this._mediaSession) === null || _this$_mediaSession2 === void 0 ? void 0 : _this$_mediaSession2.updateActionHandlers();
|
|
126
149
|
}
|
|
127
150
|
get volume() {
|
|
128
|
-
return this._player.volume;
|
|
151
|
+
return this._player ? this._player.volume : 1;
|
|
129
152
|
}
|
|
130
153
|
set volume(volume) {
|
|
131
|
-
this._player
|
|
154
|
+
if (this._player) {
|
|
155
|
+
this._player.volume = volume;
|
|
156
|
+
}
|
|
132
157
|
}
|
|
133
158
|
get muted() {
|
|
134
|
-
return this._player.muted;
|
|
159
|
+
return this._player ? this._player.muted : false;
|
|
135
160
|
}
|
|
136
161
|
set muted(muted) {
|
|
137
|
-
this._player
|
|
162
|
+
if (this._player) {
|
|
163
|
+
this._player.muted = muted;
|
|
164
|
+
}
|
|
138
165
|
}
|
|
139
166
|
get seeking() {
|
|
140
|
-
return this._player.seeking;
|
|
167
|
+
return this._player ? this._player.seeking : false;
|
|
141
168
|
}
|
|
142
169
|
get presentationMode() {
|
|
143
170
|
return this._presentationModeManager.presentationMode;
|
|
@@ -146,61 +173,82 @@ class THEOplayerWebAdapter extends _DefaultEventDispatcher.DefaultEventDispatche
|
|
|
146
173
|
this._presentationModeManager.presentationMode = presentationMode;
|
|
147
174
|
}
|
|
148
175
|
get audioTracks() {
|
|
149
|
-
return (0, _TrackUtils.fromNativeMediaTrackList)(this._player.audioTracks);
|
|
176
|
+
return this._player ? (0, _TrackUtils.fromNativeMediaTrackList)(this._player.audioTracks) : [];
|
|
150
177
|
}
|
|
151
178
|
get videoTracks() {
|
|
152
|
-
return (0, _TrackUtils.fromNativeMediaTrackList)(this._player.videoTracks);
|
|
179
|
+
return this._player ? (0, _TrackUtils.fromNativeMediaTrackList)(this._player.videoTracks) : [];
|
|
153
180
|
}
|
|
154
181
|
get textTracks() {
|
|
155
|
-
return (0, _TrackUtils.fromNativeTextTrackList)(this._player.textTracks);
|
|
182
|
+
return this._player ? (0, _TrackUtils.fromNativeTextTrackList)(this._player.textTracks) : [];
|
|
156
183
|
}
|
|
157
184
|
get selectedTextTrack() {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
return textTrack
|
|
161
|
-
|
|
185
|
+
if (this._player) {
|
|
186
|
+
var _this$_player$textTra;
|
|
187
|
+
return (_this$_player$textTra = this._player.textTracks.find(textTrack => {
|
|
188
|
+
return textTrack.mode === 'showing';
|
|
189
|
+
})) === null || _this$_player$textTra === void 0 ? void 0 : _this$_player$textTra.uid;
|
|
190
|
+
}
|
|
191
|
+
return undefined;
|
|
162
192
|
}
|
|
163
193
|
set selectedTextTrack(selectedTextTrack) {
|
|
164
|
-
this._player
|
|
165
|
-
|
|
166
|
-
|
|
194
|
+
if (this._player) {
|
|
195
|
+
this._player.textTracks.forEach(textTrack => {
|
|
196
|
+
textTrack.mode = textTrack.uid === selectedTextTrack ? 'showing' : 'disabled';
|
|
197
|
+
});
|
|
198
|
+
}
|
|
167
199
|
}
|
|
168
200
|
get textTrackStyle() {
|
|
169
|
-
|
|
201
|
+
var _this$_player6;
|
|
202
|
+
return (_this$_player6 = this._player) === null || _this$_player6 === void 0 ? void 0 : _this$_player6.textTrackStyle;
|
|
170
203
|
}
|
|
171
204
|
get selectedVideoTrack() {
|
|
172
|
-
|
|
173
|
-
|
|
205
|
+
if (this._player) {
|
|
206
|
+
var _this$_player$videoTr;
|
|
207
|
+
return (_this$_player$videoTr = this._player.videoTracks.find(videoTrack => videoTrack.enabled)) === null || _this$_player$videoTr === void 0 ? void 0 : _this$_player$videoTr.uid;
|
|
208
|
+
}
|
|
209
|
+
return undefined;
|
|
174
210
|
}
|
|
175
211
|
set selectedVideoTrack(selectedVideoTrack) {
|
|
176
|
-
this.
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
212
|
+
if (this._player) {
|
|
213
|
+
this._targetVideoQuality = undefined;
|
|
214
|
+
this._player.videoTracks.forEach(videoTrack => {
|
|
215
|
+
videoTrack.enabled = videoTrack.uid === selectedVideoTrack;
|
|
216
|
+
});
|
|
217
|
+
}
|
|
180
218
|
}
|
|
181
219
|
get selectedAudioTrack() {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
return audioTrack
|
|
185
|
-
|
|
220
|
+
if (this._player) {
|
|
221
|
+
var _this$_player$audioTr;
|
|
222
|
+
return (_this$_player$audioTr = this._player.audioTracks.find(audioTrack => {
|
|
223
|
+
return audioTrack.enabled;
|
|
224
|
+
})) === null || _this$_player$audioTr === void 0 ? void 0 : _this$_player$audioTr.uid;
|
|
225
|
+
}
|
|
226
|
+
return undefined;
|
|
186
227
|
}
|
|
187
228
|
set selectedAudioTrack(selectedAudioTrack) {
|
|
188
|
-
this._player
|
|
189
|
-
|
|
190
|
-
|
|
229
|
+
if (this._player) {
|
|
230
|
+
this._player.audioTracks.forEach(audioTrack => {
|
|
231
|
+
audioTrack.enabled = audioTrack.uid === selectedAudioTrack;
|
|
232
|
+
});
|
|
233
|
+
}
|
|
191
234
|
}
|
|
192
235
|
get targetVideoQuality() {
|
|
193
|
-
|
|
236
|
+
if (this._player) {
|
|
237
|
+
return this._targetVideoQuality;
|
|
238
|
+
}
|
|
239
|
+
return undefined;
|
|
194
240
|
}
|
|
195
241
|
set targetVideoQuality(targetVideoQuality) {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
242
|
+
if (this._player) {
|
|
243
|
+
const enabledVideoTrack = this._player.videoTracks.find(videoTrack => videoTrack.enabled);
|
|
244
|
+
if (enabledVideoTrack) {
|
|
245
|
+
enabledVideoTrack.targetQuality = (0, _TrackUtils.findNativeQualitiesByUid)(enabledVideoTrack, targetVideoQuality);
|
|
246
|
+
}
|
|
247
|
+
this._targetVideoQuality = targetVideoQuality;
|
|
199
248
|
}
|
|
200
|
-
this._targetVideoQuality = targetVideoQuality;
|
|
201
249
|
}
|
|
202
250
|
get currentTime() {
|
|
203
|
-
return 1e3 * this._player.currentTime;
|
|
251
|
+
return this._player ? 1e3 * this._player.currentTime : NaN;
|
|
204
252
|
}
|
|
205
253
|
set currentTime(currentTime) {
|
|
206
254
|
if (isNaN(currentTime)) {
|
|
@@ -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.
|
|
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;
|