react-native-theoplayer 2.3.0 → 2.4.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 +19 -0
- package/android/src/main/java/com/theoplayer/presentation/PipUtils.kt +5 -1
- package/android/src/main/java/com/theoplayer/track/TrackListAdapter.kt +3 -2
- package/android/src/main/java/com/theoplayer/util/TypeUtils.kt +6 -6
- package/ios/THEOplayerRCTMainEventHandler.swift +15 -12
- package/ios/THEOplayerRCTTrackMetadataAggregator.swift +2 -2
- package/ios/THEOplayerRCTView.swift +3 -1
- package/ios/backgroundAudio/THEOplayerRCTNowPlayingManager.swift +7 -5
- package/ios/backgroundAudio/THEOplayerRCTView+BackgroundAudioConfig.swift +12 -0
- package/lib/commonjs/api/source/SourceDescription.js.map +1 -1
- package/lib/commonjs/internal/THEOplayerView.js +6 -1
- package/lib/commonjs/internal/THEOplayerView.js.map +1 -1
- package/lib/commonjs/internal/THEOplayerView.web.js +7 -7
- package/lib/commonjs/internal/THEOplayerView.web.js.map +1 -1
- package/lib/commonjs/internal/adapter/THEOplayerAdapter.js +1 -1
- package/lib/commonjs/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/web/TrackUtils.js +3 -2
- package/lib/commonjs/internal/adapter/web/TrackUtils.js.map +1 -1
- package/lib/commonjs/internal/adapter/web/WebMediaSession.js +17 -29
- package/lib/commonjs/internal/adapter/web/WebMediaSession.js.map +1 -1
- package/lib/commonjs/internal/adapter/web/WebPresentationModeManager.js +1 -1
- package/lib/commonjs/internal/adapter/web/WebPresentationModeManager.js.map +1 -1
- package/lib/module/api/source/SourceDescription.js.map +1 -1
- package/lib/module/internal/THEOplayerView.js +6 -1
- package/lib/module/internal/THEOplayerView.js.map +1 -1
- package/lib/module/internal/THEOplayerView.web.js +7 -7
- package/lib/module/internal/THEOplayerView.web.js.map +1 -1
- package/lib/module/internal/adapter/THEOplayerAdapter.js +1 -1
- package/lib/module/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/module/internal/adapter/web/TrackUtils.js +3 -2
- package/lib/module/internal/adapter/web/TrackUtils.js.map +1 -1
- package/lib/module/internal/adapter/web/WebMediaSession.js +15 -29
- package/lib/module/internal/adapter/web/WebMediaSession.js.map +1 -1
- package/lib/module/internal/adapter/web/WebPresentationModeManager.js +1 -1
- package/lib/module/internal/adapter/web/WebPresentationModeManager.js.map +1 -1
- package/lib/typescript/api/source/SourceDescription.d.ts +6 -0
- package/lib/typescript/internal/adapter/web/WebMediaSession.d.ts +2 -1
- package/package.json +1 -1
- package/src/api/source/SourceDescription.ts +8 -0
- package/src/internal/THEOplayerView.tsx +6 -1
- package/src/internal/THEOplayerView.web.tsx +4 -7
- package/src/internal/adapter/THEOplayerAdapter.ts +1 -1
- package/src/internal/adapter/web/TrackUtils.ts +3 -2
- package/src/internal/adapter/web/WebMediaSession.ts +14 -29
- package/src/internal/adapter/web/WebPresentationModeManager.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","PureComponent","findNodeHandle","Platform","requireNativeComponent","StyleSheet","UIManager","View","CastEventType","PlayerEventType","styles","decodeNanInf","BaseEvent","DefaultAdEvent","DefaultAirplayStateChangeEvent","DefaultChromecastChangeEvent","DefaultChromecastErrorEvent","DefaultDurationChangeEvent","DefaultErrorEvent","DefaultLoadedMetadataEvent","DefaultMediaTrackEvent","DefaultMediaTrackListEvent","DefaultPresentationModeChangeEvent","DefaultProgressEvent","DefaultRateChangeEvent","DefaultReadyStateChangeEvent","DefaultSegmentNotFoundEvent","DefaultTextTrackEvent","DefaultTextTrackListEvent","DefaultVolumeChangeEvent","DefaultTimeupdateEvent","toMediaTrackType","toMediaTrackTypeEventType","toTextTrackEventType","toTrackListEventType","THEOplayerAdapter","INVALID_HANDLE","THEOplayerView","constructor","props","_defineProperty","event","_this$props$onPlayerR","_this$props","state","nativeEvent","_facade","initializeWithNativePlayerState_","onPlayerReady","call","reset","dispatchEvent","SOURCE_CHANGE","LOAD_START","LOADED_DATA","textTracks","audioTracks","videoTracks","duration","selectedTextTrack","selectedVideoTrack","selectedAudioTrack","volume","muted","error","setState","seekable","buffered","CANPLAY","PLAY","PLAYING","PAUSE","SEEKING","SEEKED","WAITING","ENDED","readyState","currentTime","currentProgramDateTime","playbackRate","segmentStartTime","retryCount","type","track","trackUid","cue","trackType","qualities","ad","CHROMECAST_STATE_CHANGE","AIRPLAY_STATE_CHANGE","CHROMECAST_ERROR","presentationMode","previousPresentationMode","context","_root","createRef","initialState","componentWillUnmount","onPlayerDestroy","DESTROY","OS","command","Commands","destroy","dispatchViewManagerCommand","current","clearEventListeners","nativeHandle","render","config","style","children","createElement","base","THEOplayerRCTView","ref","absoluteFill","onNativePlayerReady","_onNativePlayerReady","onNativeSourceChange","_onSourceChange","onNativeLoadStart","_onLoadStart","onNativeLoadedData","_onLoadedData","onNativeLoadedMetadata","_onLoadedMetadata","onNativeVolumeChange","_onVolumeChange","onNativeError","_onError","onNativeProgress","_onProgress","onNativeCanPlay","_onCanPlay","onNativePlay","_onPlay","onNativePlaying","_onPlaying","onNativePause","_onPause","onNativeSeeking","_onSeeking","onNativeSeeked","_onSeeked","onNativeWaiting","_onWaiting","onNativeEnded","_onEnded","onNativeReadyStateChange","_onReadStateChange","onNativeTimeUpdate","_onTimeUpdate","onNativeDurationChange","_onDurationChange","onNativeRateChange","_onRateChange","onNativeSegmentNotFound","_onSegmentNotFound","onNativeTextTrackListEvent","_onTextTrackListEvent","onNativeTextTrackEvent","_onTextTrackEvent","onNativeMediaTrackListEvent","_onMediaTrackListEvent","onNativeMediaTrackEvent","_onMediaTrackEvent","onNativeAdEvent","_onAdEvent","onNativeCastEvent","_onCastEvent","onNativePresentationModeChange","_onPresentationModeChange","undefined","LINKING_ERROR","select","ios","default","ComponentName","getViewManagerConfig","Error"],"sources":["THEOplayerView.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport {\n findNodeHandle,\n HostComponent,\n NativeSyntheticEvent,\n Platform,\n requireNativeComponent,\n StyleProp,\n StyleSheet,\n UIManager,\n View,\n ViewStyle,\n} from 'react-native';\nimport type { PlayerConfiguration, PlayerError, THEOplayerViewProps } from 'react-native-theoplayer';\nimport { CastEventType, PlayerEventType } from 'react-native-theoplayer';\n\nimport styles from './THEOplayerView.style';\nimport { decodeNanInf } from './utils/TypeUtils';\nimport { BaseEvent } from './adapter/event/BaseEvent';\nimport {\n DefaultAdEvent,\n DefaultAirplayStateChangeEvent,\n DefaultChromecastChangeEvent,\n DefaultChromecastErrorEvent,\n DefaultDurationChangeEvent,\n DefaultErrorEvent,\n DefaultLoadedMetadataEvent,\n DefaultMediaTrackEvent,\n DefaultMediaTrackListEvent,\n DefaultPresentationModeChangeEvent,\n DefaultProgressEvent,\n DefaultRateChangeEvent,\n DefaultReadyStateChangeEvent,\n DefaultSegmentNotFoundEvent,\n DefaultTextTrackEvent,\n DefaultTextTrackListEvent,\n DefaultVolumeChangeEvent,\n DefaultTimeupdateEvent,\n} from './adapter/event/PlayerEvents';\nimport type { NativeCastEvent } from './adapter/event/native/NativeCastEvent';\nimport type {\n NativeMediaTrackEvent,\n NativeMediaTrackListEvent,\n NativeTextTrackEvent,\n NativeTextTrackListEvent,\n} from './adapter/event/native/NativeTrackEvent';\nimport { toMediaTrackType, toMediaTrackTypeEventType, toTextTrackEventType, toTrackListEventType } from './adapter/event/native/NativeTrackEvent';\nimport type {\n NativeDurationChangeEvent,\n NativeErrorEvent,\n NativeLoadedMetadataEvent,\n NativePlayerStateEvent,\n NativePresentationModeChangeEvent,\n NativeProgressEvent,\n NativeRateChangeEvent,\n NativeReadyStateChangeEvent,\n NativeSegmentNotFoundEvent,\n NativeTimeUpdateEvent,\n NativeVolumeChangeEvent,\n} from './adapter/event/native/NativePlayerEvent';\nimport type { NativeAdEvent } from './adapter/event/native/NativeAdEvent';\nimport { THEOplayerAdapter } from './adapter/THEOplayerAdapter';\n\nconst INVALID_HANDLE = -1;\n\ninterface THEOplayerRCTViewProps {\n ref: React.RefObject<THEOplayerViewNativeComponent>;\n style?: StyleProp<ViewStyle>;\n config?: PlayerConfiguration;\n onNativePlayerReady: (event: NativeSyntheticEvent<NativePlayerStateEvent>) => void;\n onNativeSourceChange: () => void;\n onNativeLoadStart: () => void;\n onNativeLoadedData: () => void;\n onNativeLoadedMetadata: (event: NativeSyntheticEvent<NativeLoadedMetadataEvent>) => void;\n onNativeReadyStateChange?: (event: NativeSyntheticEvent<NativeReadyStateChangeEvent>) => void;\n onNativeError: (event: NativeSyntheticEvent<NativeErrorEvent>) => void;\n onNativeProgress: (event: NativeSyntheticEvent<NativeProgressEvent>) => void;\n onNativeVolumeChange: (event: NativeSyntheticEvent<NativeVolumeChangeEvent>) => void;\n onNativeCanPlay: () => void;\n onNativePlay: () => void;\n onNativePlaying: () => void;\n onNativePause: () => void;\n onNativeSeeking: () => void;\n onNativeSeeked: () => void;\n onNativeEnded: () => void;\n onNativeWaiting: () => void;\n onNativeTimeUpdate: (event: NativeSyntheticEvent<NativeTimeUpdateEvent>) => void;\n onNativeDurationChange: (event: NativeSyntheticEvent<NativeDurationChangeEvent>) => void;\n onNativeRateChange: (event: NativeSyntheticEvent<NativeRateChangeEvent>) => void;\n onNativeSegmentNotFound: (event: NativeSyntheticEvent<NativeSegmentNotFoundEvent>) => void;\n onNativeTextTrackListEvent: (event: NativeSyntheticEvent<NativeTextTrackListEvent>) => void;\n onNativeTextTrackEvent: (event: NativeSyntheticEvent<NativeTextTrackEvent>) => void;\n onNativeMediaTrackListEvent: (event: NativeSyntheticEvent<NativeMediaTrackListEvent>) => void;\n onNativeMediaTrackEvent: (event: NativeSyntheticEvent<NativeMediaTrackEvent>) => void;\n onNativeAdEvent: (event: NativeSyntheticEvent<NativeAdEvent>) => void;\n onNativeCastEvent: (event: NativeSyntheticEvent<NativeCastEvent>) => void;\n onNativePresentationModeChange: (event: NativeSyntheticEvent<NativePresentationModeChangeEvent>) => void;\n}\n\ninterface THEOplayerRCTViewState {\n error?: PlayerError;\n}\n\ntype THEOplayerViewNativeComponent = HostComponent<THEOplayerRCTViewProps>;\n\nexport class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOplayerViewProps>, THEOplayerRCTViewState> {\n private readonly _root: React.RefObject<THEOplayerViewNativeComponent>;\n private readonly _facade: THEOplayerAdapter;\n\n private static initialState: THEOplayerRCTViewState = {\n error: undefined,\n };\n\n constructor(props: THEOplayerViewProps) {\n super(props);\n this._root = React.createRef();\n this.state = THEOplayerView.initialState;\n this._facade = new THEOplayerAdapter(this);\n }\n\n componentWillUnmount() {\n // Notify the player will be destroyed.\n const { onPlayerDestroy } = this.props;\n if (onPlayerDestroy) {\n onPlayerDestroy(this._facade);\n }\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));\n\n if (Platform.OS === 'ios') {\n // TODO: move to native module\n // on iOS, we trigger an explicit 'destroy' to clean up the underlying THEOplayer\n const command = (UIManager as { [index: string]: any })['THEOplayerRCTView'].Commands.destroy;\n UIManager.dispatchViewManagerCommand(findNodeHandle(this._root.current), command, []);\n }\n this._facade.clearEventListeners();\n }\n\n public get nativeHandle(): number {\n return findNodeHandle(this._root.current) || INVALID_HANDLE;\n }\n\n private reset() {\n this.setState(THEOplayerView.initialState);\n }\n\n private _onNativePlayerReady = (event: NativeSyntheticEvent<NativePlayerStateEvent>) => {\n // Optionally apply an initial player state\n const { state } = event?.nativeEvent;\n if (state) {\n this._facade.initializeWithNativePlayerState_(state);\n }\n this.props.onPlayerReady?.(this._facade);\n };\n\n private _onSourceChange = () => {\n this.reset();\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SOURCE_CHANGE));\n };\n\n private _onLoadStart = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.LOAD_START));\n };\n\n private _onLoadedData = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.LOADED_DATA));\n };\n\n private _onLoadedMetadata = (event: NativeSyntheticEvent<NativeLoadedMetadataEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(\n new DefaultLoadedMetadataEvent(\n nativeEvent.textTracks,\n nativeEvent.audioTracks,\n nativeEvent.videoTracks,\n decodeNanInf(nativeEvent.duration),\n nativeEvent.selectedTextTrack,\n nativeEvent.selectedVideoTrack,\n nativeEvent.selectedAudioTrack,\n ),\n );\n };\n\n private _onVolumeChange = (event: NativeSyntheticEvent<NativeVolumeChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultVolumeChangeEvent(event.nativeEvent.volume, event.nativeEvent.muted));\n };\n\n private _onError = (event: NativeSyntheticEvent<NativeErrorEvent>) => {\n const { error } = event.nativeEvent;\n this.setState({ error });\n this._facade.dispatchEvent(new DefaultErrorEvent(event.nativeEvent.error));\n };\n\n private _onProgress = (event: NativeSyntheticEvent<NativeProgressEvent>) => {\n this._facade.dispatchEvent(new DefaultProgressEvent(event.nativeEvent.seekable, event.nativeEvent.buffered));\n };\n\n private _onCanPlay = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.CANPLAY));\n };\n\n private _onPlay = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PLAY));\n };\n\n private _onPlaying = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PLAYING));\n };\n\n private _onPause = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PAUSE));\n };\n\n private _onSeeking = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SEEKING));\n };\n\n private _onSeeked = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SEEKED));\n };\n\n private _onWaiting = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.WAITING));\n };\n\n private _onEnded = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.ENDED));\n };\n\n private _onReadStateChange = (event: NativeSyntheticEvent<NativeReadyStateChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultReadyStateChangeEvent(event.nativeEvent.readyState));\n };\n\n private _onTimeUpdate = (event: NativeSyntheticEvent<NativeTimeUpdateEvent>) => {\n this._facade.dispatchEvent(new DefaultTimeupdateEvent(event.nativeEvent.currentTime, event.nativeEvent.currentProgramDateTime));\n };\n\n private _onDurationChange = (event: NativeSyntheticEvent<NativeDurationChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultDurationChangeEvent(decodeNanInf(event.nativeEvent.duration)));\n };\n\n private _onRateChange = (event: NativeSyntheticEvent<NativeRateChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultRateChangeEvent(event.nativeEvent.playbackRate));\n };\n\n private _onSegmentNotFound = (event: NativeSyntheticEvent<NativeSegmentNotFoundEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(new DefaultSegmentNotFoundEvent(nativeEvent.segmentStartTime, nativeEvent.error, nativeEvent.retryCount));\n };\n\n private _onTextTrackListEvent = (event: NativeSyntheticEvent<NativeTextTrackListEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(new DefaultTextTrackListEvent(toTrackListEventType(nativeEvent.type), nativeEvent.track));\n };\n\n private _onTextTrackEvent = (event: NativeSyntheticEvent<NativeTextTrackEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(new DefaultTextTrackEvent(toTextTrackEventType(nativeEvent.type), nativeEvent.trackUid, nativeEvent.cue));\n };\n\n private _onMediaTrackListEvent = (event: NativeSyntheticEvent<NativeMediaTrackListEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(\n new DefaultMediaTrackListEvent(toTrackListEventType(nativeEvent.type), toMediaTrackType(nativeEvent.trackType), nativeEvent.track),\n );\n };\n\n private _onMediaTrackEvent = (event: NativeSyntheticEvent<NativeMediaTrackEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(\n new DefaultMediaTrackEvent(\n toMediaTrackTypeEventType(nativeEvent.type),\n toMediaTrackType(nativeEvent.trackType),\n nativeEvent.trackUid,\n nativeEvent.qualities,\n ),\n );\n };\n\n private _onAdEvent = (event: NativeSyntheticEvent<NativeAdEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(new DefaultAdEvent(nativeEvent.type, nativeEvent.ad));\n };\n\n private _onCastEvent = (event: NativeSyntheticEvent<NativeCastEvent>) => {\n switch (event.nativeEvent.type) {\n case CastEventType.CHROMECAST_STATE_CHANGE:\n this._facade.dispatchEvent(new DefaultChromecastChangeEvent(event.nativeEvent.state));\n break;\n case CastEventType.AIRPLAY_STATE_CHANGE:\n this._facade.dispatchEvent(new DefaultAirplayStateChangeEvent(event.nativeEvent.state));\n break;\n case CastEventType.CHROMECAST_ERROR:\n this._facade.dispatchEvent(new DefaultChromecastErrorEvent(event.nativeEvent.error));\n break;\n }\n };\n\n private _onPresentationModeChange = (event: NativeSyntheticEvent<NativePresentationModeChangeEvent>) => {\n this._facade.dispatchEvent(\n new DefaultPresentationModeChangeEvent(\n event.nativeEvent.presentationMode,\n event.nativeEvent.previousPresentationMode,\n event.nativeEvent.context,\n ),\n );\n };\n\n public render(): JSX.Element {\n const { config, style, children } = this.props;\n return (\n <View style={[styles.base, style]}>\n <THEOplayerRCTView\n ref={this._root}\n style={StyleSheet.absoluteFill}\n config={config || {}}\n onNativePlayerReady={this._onNativePlayerReady}\n onNativeSourceChange={this._onSourceChange}\n onNativeLoadStart={this._onLoadStart}\n onNativeLoadedData={this._onLoadedData}\n onNativeLoadedMetadata={this._onLoadedMetadata}\n onNativeVolumeChange={this._onVolumeChange}\n onNativeError={this._onError}\n onNativeProgress={this._onProgress}\n onNativeCanPlay={this._onCanPlay}\n onNativePlay={this._onPlay}\n onNativePlaying={this._onPlaying}\n onNativePause={this._onPause}\n onNativeSeeking={this._onSeeking}\n onNativeSeeked={this._onSeeked}\n onNativeWaiting={this._onWaiting}\n onNativeEnded={this._onEnded}\n onNativeReadyStateChange={this._onReadStateChange}\n onNativeTimeUpdate={this._onTimeUpdate}\n onNativeDurationChange={this._onDurationChange}\n onNativeRateChange={this._onRateChange}\n onNativeSegmentNotFound={this._onSegmentNotFound}\n onNativeTextTrackListEvent={this._onTextTrackListEvent}\n onNativeTextTrackEvent={this._onTextTrackEvent}\n onNativeMediaTrackListEvent={this._onMediaTrackListEvent}\n onNativeMediaTrackEvent={this._onMediaTrackEvent}\n onNativeAdEvent={this._onAdEvent}\n onNativeCastEvent={this._onCastEvent}\n onNativePresentationModeChange={this._onPresentationModeChange}\n />\n {children}\n </View>\n );\n }\n}\n\nconst LINKING_ERROR =\n `The package 'react-native-theoplayer' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst ComponentName = 'THEOplayerRCTView';\n\nconst THEOplayerRCTView =\n UIManager.getViewManagerConfig(ComponentName) != null\n ? requireNativeComponent<THEOplayerRCTViewProps>(ComponentName)\n : () => {\n throw new Error(LINKING_ERROR);\n };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","PureComponent","findNodeHandle","Platform","requireNativeComponent","StyleSheet","UIManager","View","CastEventType","PlayerEventType","styles","decodeNanInf","BaseEvent","DefaultAdEvent","DefaultAirplayStateChangeEvent","DefaultChromecastChangeEvent","DefaultChromecastErrorEvent","DefaultDurationChangeEvent","DefaultErrorEvent","DefaultLoadedMetadataEvent","DefaultMediaTrackEvent","DefaultMediaTrackListEvent","DefaultPresentationModeChangeEvent","DefaultProgressEvent","DefaultRateChangeEvent","DefaultReadyStateChangeEvent","DefaultSegmentNotFoundEvent","DefaultTextTrackEvent","DefaultTextTrackListEvent","DefaultVolumeChangeEvent","DefaultTimeupdateEvent","toMediaTrackType","toMediaTrackTypeEventType","toTextTrackEventType","toTrackListEventType","THEOplayerAdapter","INVALID_HANDLE","THEOplayerView","constructor","props","_defineProperty","event","_this$props$onPlayerR","_this$props","state","nativeEvent","_facade","initializeWithNativePlayerState_","onPlayerReady","call","reset","dispatchEvent","SOURCE_CHANGE","LOAD_START","LOADED_DATA","textTracks","audioTracks","videoTracks","duration","selectedTextTrack","selectedVideoTrack","selectedAudioTrack","volume","muted","error","setState","seekable","buffered","CANPLAY","PLAY","PLAYING","PAUSE","SEEKING","SEEKED","WAITING","ENDED","readyState","currentTime","currentProgramDateTime","playbackRate","segmentStartTime","retryCount","type","track","cue","startTime","endTime","trackUid","trackType","qualities","ad","CHROMECAST_STATE_CHANGE","AIRPLAY_STATE_CHANGE","CHROMECAST_ERROR","presentationMode","previousPresentationMode","context","_root","createRef","initialState","componentWillUnmount","onPlayerDestroy","DESTROY","OS","command","Commands","destroy","dispatchViewManagerCommand","current","clearEventListeners","nativeHandle","render","config","style","children","createElement","base","THEOplayerRCTView","ref","absoluteFill","onNativePlayerReady","_onNativePlayerReady","onNativeSourceChange","_onSourceChange","onNativeLoadStart","_onLoadStart","onNativeLoadedData","_onLoadedData","onNativeLoadedMetadata","_onLoadedMetadata","onNativeVolumeChange","_onVolumeChange","onNativeError","_onError","onNativeProgress","_onProgress","onNativeCanPlay","_onCanPlay","onNativePlay","_onPlay","onNativePlaying","_onPlaying","onNativePause","_onPause","onNativeSeeking","_onSeeking","onNativeSeeked","_onSeeked","onNativeWaiting","_onWaiting","onNativeEnded","_onEnded","onNativeReadyStateChange","_onReadStateChange","onNativeTimeUpdate","_onTimeUpdate","onNativeDurationChange","_onDurationChange","onNativeRateChange","_onRateChange","onNativeSegmentNotFound","_onSegmentNotFound","onNativeTextTrackListEvent","_onTextTrackListEvent","onNativeTextTrackEvent","_onTextTrackEvent","onNativeMediaTrackListEvent","_onMediaTrackListEvent","onNativeMediaTrackEvent","_onMediaTrackEvent","onNativeAdEvent","_onAdEvent","onNativeCastEvent","_onCastEvent","onNativePresentationModeChange","_onPresentationModeChange","undefined","LINKING_ERROR","select","ios","default","ComponentName","getViewManagerConfig","Error"],"sources":["THEOplayerView.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport {\n findNodeHandle,\n HostComponent,\n NativeSyntheticEvent,\n Platform,\n requireNativeComponent,\n StyleProp,\n StyleSheet,\n UIManager,\n View,\n ViewStyle,\n} from 'react-native';\nimport type { PlayerConfiguration, PlayerError, THEOplayerViewProps } from 'react-native-theoplayer';\nimport { CastEventType, PlayerEventType } from 'react-native-theoplayer';\n\nimport styles from './THEOplayerView.style';\nimport { decodeNanInf } from './utils/TypeUtils';\nimport { BaseEvent } from './adapter/event/BaseEvent';\nimport {\n DefaultAdEvent,\n DefaultAirplayStateChangeEvent,\n DefaultChromecastChangeEvent,\n DefaultChromecastErrorEvent,\n DefaultDurationChangeEvent,\n DefaultErrorEvent,\n DefaultLoadedMetadataEvent,\n DefaultMediaTrackEvent,\n DefaultMediaTrackListEvent,\n DefaultPresentationModeChangeEvent,\n DefaultProgressEvent,\n DefaultRateChangeEvent,\n DefaultReadyStateChangeEvent,\n DefaultSegmentNotFoundEvent,\n DefaultTextTrackEvent,\n DefaultTextTrackListEvent,\n DefaultVolumeChangeEvent,\n DefaultTimeupdateEvent,\n} from './adapter/event/PlayerEvents';\nimport type { NativeCastEvent } from './adapter/event/native/NativeCastEvent';\nimport type {\n NativeMediaTrackEvent,\n NativeMediaTrackListEvent,\n NativeTextTrackEvent,\n NativeTextTrackListEvent,\n} from './adapter/event/native/NativeTrackEvent';\nimport { toMediaTrackType, toMediaTrackTypeEventType, toTextTrackEventType, toTrackListEventType } from './adapter/event/native/NativeTrackEvent';\nimport type {\n NativeDurationChangeEvent,\n NativeErrorEvent,\n NativeLoadedMetadataEvent,\n NativePlayerStateEvent,\n NativePresentationModeChangeEvent,\n NativeProgressEvent,\n NativeRateChangeEvent,\n NativeReadyStateChangeEvent,\n NativeSegmentNotFoundEvent,\n NativeTimeUpdateEvent,\n NativeVolumeChangeEvent,\n} from './adapter/event/native/NativePlayerEvent';\nimport type { NativeAdEvent } from './adapter/event/native/NativeAdEvent';\nimport { THEOplayerAdapter } from './adapter/THEOplayerAdapter';\n\nconst INVALID_HANDLE = -1;\n\ninterface THEOplayerRCTViewProps {\n ref: React.RefObject<THEOplayerViewNativeComponent>;\n style?: StyleProp<ViewStyle>;\n config?: PlayerConfiguration;\n onNativePlayerReady: (event: NativeSyntheticEvent<NativePlayerStateEvent>) => void;\n onNativeSourceChange: () => void;\n onNativeLoadStart: () => void;\n onNativeLoadedData: () => void;\n onNativeLoadedMetadata: (event: NativeSyntheticEvent<NativeLoadedMetadataEvent>) => void;\n onNativeReadyStateChange?: (event: NativeSyntheticEvent<NativeReadyStateChangeEvent>) => void;\n onNativeError: (event: NativeSyntheticEvent<NativeErrorEvent>) => void;\n onNativeProgress: (event: NativeSyntheticEvent<NativeProgressEvent>) => void;\n onNativeVolumeChange: (event: NativeSyntheticEvent<NativeVolumeChangeEvent>) => void;\n onNativeCanPlay: () => void;\n onNativePlay: () => void;\n onNativePlaying: () => void;\n onNativePause: () => void;\n onNativeSeeking: () => void;\n onNativeSeeked: () => void;\n onNativeEnded: () => void;\n onNativeWaiting: () => void;\n onNativeTimeUpdate: (event: NativeSyntheticEvent<NativeTimeUpdateEvent>) => void;\n onNativeDurationChange: (event: NativeSyntheticEvent<NativeDurationChangeEvent>) => void;\n onNativeRateChange: (event: NativeSyntheticEvent<NativeRateChangeEvent>) => void;\n onNativeSegmentNotFound: (event: NativeSyntheticEvent<NativeSegmentNotFoundEvent>) => void;\n onNativeTextTrackListEvent: (event: NativeSyntheticEvent<NativeTextTrackListEvent>) => void;\n onNativeTextTrackEvent: (event: NativeSyntheticEvent<NativeTextTrackEvent>) => void;\n onNativeMediaTrackListEvent: (event: NativeSyntheticEvent<NativeMediaTrackListEvent>) => void;\n onNativeMediaTrackEvent: (event: NativeSyntheticEvent<NativeMediaTrackEvent>) => void;\n onNativeAdEvent: (event: NativeSyntheticEvent<NativeAdEvent>) => void;\n onNativeCastEvent: (event: NativeSyntheticEvent<NativeCastEvent>) => void;\n onNativePresentationModeChange: (event: NativeSyntheticEvent<NativePresentationModeChangeEvent>) => void;\n}\n\ninterface THEOplayerRCTViewState {\n error?: PlayerError;\n}\n\ntype THEOplayerViewNativeComponent = HostComponent<THEOplayerRCTViewProps>;\n\nexport class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOplayerViewProps>, THEOplayerRCTViewState> {\n private readonly _root: React.RefObject<THEOplayerViewNativeComponent>;\n private readonly _facade: THEOplayerAdapter;\n\n private static initialState: THEOplayerRCTViewState = {\n error: undefined,\n };\n\n constructor(props: THEOplayerViewProps) {\n super(props);\n this._root = React.createRef();\n this.state = THEOplayerView.initialState;\n this._facade = new THEOplayerAdapter(this);\n }\n\n componentWillUnmount() {\n // Notify the player will be destroyed.\n const { onPlayerDestroy } = this.props;\n if (onPlayerDestroy) {\n onPlayerDestroy(this._facade);\n }\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));\n\n if (Platform.OS === 'ios') {\n // TODO: move to native module\n // on iOS, we trigger an explicit 'destroy' to clean up the underlying THEOplayer\n const command = (UIManager as { [index: string]: any })['THEOplayerRCTView'].Commands.destroy;\n UIManager.dispatchViewManagerCommand(findNodeHandle(this._root.current), command, []);\n }\n this._facade.clearEventListeners();\n }\n\n public get nativeHandle(): number {\n return findNodeHandle(this._root.current) || INVALID_HANDLE;\n }\n\n private reset() {\n this.setState(THEOplayerView.initialState);\n }\n\n private _onNativePlayerReady = (event: NativeSyntheticEvent<NativePlayerStateEvent>) => {\n // Optionally apply an initial player state\n const { state } = event?.nativeEvent;\n if (state) {\n this._facade.initializeWithNativePlayerState_(state);\n }\n this.props.onPlayerReady?.(this._facade);\n };\n\n private _onSourceChange = () => {\n this.reset();\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SOURCE_CHANGE));\n };\n\n private _onLoadStart = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.LOAD_START));\n };\n\n private _onLoadedData = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.LOADED_DATA));\n };\n\n private _onLoadedMetadata = (event: NativeSyntheticEvent<NativeLoadedMetadataEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(\n new DefaultLoadedMetadataEvent(\n nativeEvent.textTracks,\n nativeEvent.audioTracks,\n nativeEvent.videoTracks,\n decodeNanInf(nativeEvent.duration),\n nativeEvent.selectedTextTrack,\n nativeEvent.selectedVideoTrack,\n nativeEvent.selectedAudioTrack,\n ),\n );\n };\n\n private _onVolumeChange = (event: NativeSyntheticEvent<NativeVolumeChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultVolumeChangeEvent(event.nativeEvent.volume, event.nativeEvent.muted));\n };\n\n private _onError = (event: NativeSyntheticEvent<NativeErrorEvent>) => {\n const { error } = event.nativeEvent;\n this.setState({ error });\n this._facade.dispatchEvent(new DefaultErrorEvent(event.nativeEvent.error));\n };\n\n private _onProgress = (event: NativeSyntheticEvent<NativeProgressEvent>) => {\n this._facade.dispatchEvent(new DefaultProgressEvent(event.nativeEvent.seekable, event.nativeEvent.buffered));\n };\n\n private _onCanPlay = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.CANPLAY));\n };\n\n private _onPlay = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PLAY));\n };\n\n private _onPlaying = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PLAYING));\n };\n\n private _onPause = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PAUSE));\n };\n\n private _onSeeking = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SEEKING));\n };\n\n private _onSeeked = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SEEKED));\n };\n\n private _onWaiting = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.WAITING));\n };\n\n private _onEnded = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.ENDED));\n };\n\n private _onReadStateChange = (event: NativeSyntheticEvent<NativeReadyStateChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultReadyStateChangeEvent(event.nativeEvent.readyState));\n };\n\n private _onTimeUpdate = (event: NativeSyntheticEvent<NativeTimeUpdateEvent>) => {\n this._facade.dispatchEvent(new DefaultTimeupdateEvent(event.nativeEvent.currentTime, event.nativeEvent.currentProgramDateTime));\n };\n\n private _onDurationChange = (event: NativeSyntheticEvent<NativeDurationChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultDurationChangeEvent(decodeNanInf(event.nativeEvent.duration)));\n };\n\n private _onRateChange = (event: NativeSyntheticEvent<NativeRateChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultRateChangeEvent(event.nativeEvent.playbackRate));\n };\n\n private _onSegmentNotFound = (event: NativeSyntheticEvent<NativeSegmentNotFoundEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(new DefaultSegmentNotFoundEvent(nativeEvent.segmentStartTime, nativeEvent.error, nativeEvent.retryCount));\n };\n\n private _onTextTrackListEvent = (event: NativeSyntheticEvent<NativeTextTrackListEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(new DefaultTextTrackListEvent(toTrackListEventType(nativeEvent.type), nativeEvent.track));\n };\n\n private _onTextTrackEvent = (event: NativeSyntheticEvent<NativeTextTrackEvent>) => {\n const nativeEvent = event.nativeEvent;\n const cue = nativeEvent.cue;\n if (cue) {\n cue.startTime = decodeNanInf(cue.startTime);\n cue.endTime = decodeNanInf(cue.endTime);\n }\n this._facade.dispatchEvent(new DefaultTextTrackEvent(toTextTrackEventType(nativeEvent.type), nativeEvent.trackUid, cue));\n };\n\n private _onMediaTrackListEvent = (event: NativeSyntheticEvent<NativeMediaTrackListEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(\n new DefaultMediaTrackListEvent(toTrackListEventType(nativeEvent.type), toMediaTrackType(nativeEvent.trackType), nativeEvent.track),\n );\n };\n\n private _onMediaTrackEvent = (event: NativeSyntheticEvent<NativeMediaTrackEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(\n new DefaultMediaTrackEvent(\n toMediaTrackTypeEventType(nativeEvent.type),\n toMediaTrackType(nativeEvent.trackType),\n nativeEvent.trackUid,\n nativeEvent.qualities,\n ),\n );\n };\n\n private _onAdEvent = (event: NativeSyntheticEvent<NativeAdEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(new DefaultAdEvent(nativeEvent.type, nativeEvent.ad));\n };\n\n private _onCastEvent = (event: NativeSyntheticEvent<NativeCastEvent>) => {\n switch (event.nativeEvent.type) {\n case CastEventType.CHROMECAST_STATE_CHANGE:\n this._facade.dispatchEvent(new DefaultChromecastChangeEvent(event.nativeEvent.state));\n break;\n case CastEventType.AIRPLAY_STATE_CHANGE:\n this._facade.dispatchEvent(new DefaultAirplayStateChangeEvent(event.nativeEvent.state));\n break;\n case CastEventType.CHROMECAST_ERROR:\n this._facade.dispatchEvent(new DefaultChromecastErrorEvent(event.nativeEvent.error));\n break;\n }\n };\n\n private _onPresentationModeChange = (event: NativeSyntheticEvent<NativePresentationModeChangeEvent>) => {\n this._facade.dispatchEvent(\n new DefaultPresentationModeChangeEvent(\n event.nativeEvent.presentationMode,\n event.nativeEvent.previousPresentationMode,\n event.nativeEvent.context,\n ),\n );\n };\n\n public render(): JSX.Element {\n const { config, style, children } = this.props;\n return (\n <View style={[styles.base, style]}>\n <THEOplayerRCTView\n ref={this._root}\n style={StyleSheet.absoluteFill}\n config={config || {}}\n onNativePlayerReady={this._onNativePlayerReady}\n onNativeSourceChange={this._onSourceChange}\n onNativeLoadStart={this._onLoadStart}\n onNativeLoadedData={this._onLoadedData}\n onNativeLoadedMetadata={this._onLoadedMetadata}\n onNativeVolumeChange={this._onVolumeChange}\n onNativeError={this._onError}\n onNativeProgress={this._onProgress}\n onNativeCanPlay={this._onCanPlay}\n onNativePlay={this._onPlay}\n onNativePlaying={this._onPlaying}\n onNativePause={this._onPause}\n onNativeSeeking={this._onSeeking}\n onNativeSeeked={this._onSeeked}\n onNativeWaiting={this._onWaiting}\n onNativeEnded={this._onEnded}\n onNativeReadyStateChange={this._onReadStateChange}\n onNativeTimeUpdate={this._onTimeUpdate}\n onNativeDurationChange={this._onDurationChange}\n onNativeRateChange={this._onRateChange}\n onNativeSegmentNotFound={this._onSegmentNotFound}\n onNativeTextTrackListEvent={this._onTextTrackListEvent}\n onNativeTextTrackEvent={this._onTextTrackEvent}\n onNativeMediaTrackListEvent={this._onMediaTrackListEvent}\n onNativeMediaTrackEvent={this._onMediaTrackEvent}\n onNativeAdEvent={this._onAdEvent}\n onNativeCastEvent={this._onCastEvent}\n onNativePresentationModeChange={this._onPresentationModeChange}\n />\n {children}\n </View>\n );\n }\n}\n\nconst LINKING_ERROR =\n `The package 'react-native-theoplayer' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst ComponentName = 'THEOplayerRCTView';\n\nconst THEOplayerRCTView =\n UIManager.getViewManagerConfig(ComponentName) != null\n ? requireNativeComponent<THEOplayerRCTViewProps>(ComponentName)\n : () => {\n throw new Error(LINKING_ERROR);\n };\n"],"mappings":"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"}
|
|
@@ -16,21 +16,21 @@ export function THEOplayerView(props) {
|
|
|
16
16
|
if (container.current) {
|
|
17
17
|
var _props$onPlayerReady;
|
|
18
18
|
const chromeless = (config === null || config === void 0 ? void 0 : config.chromeless) === true || (config === null || config === void 0 ? void 0 : config.chromeless) === undefined;
|
|
19
|
+
const updatedConfig = {
|
|
20
|
+
...config,
|
|
21
|
+
allowNativeFullscreen: true
|
|
22
|
+
};
|
|
19
23
|
if (chromeless) {
|
|
20
|
-
player.current = new THEOplayer.ChromelessPlayer(container.current,
|
|
24
|
+
player.current = new THEOplayer.ChromelessPlayer(container.current, updatedConfig);
|
|
21
25
|
} else {
|
|
22
26
|
player.current = new THEOplayer.Player(container.current, {
|
|
23
|
-
...
|
|
27
|
+
...updatedConfig,
|
|
24
28
|
ui: {
|
|
25
29
|
fluid: true
|
|
26
|
-
}
|
|
27
|
-
allowNativeFullscreen: true
|
|
30
|
+
}
|
|
28
31
|
});
|
|
29
32
|
}
|
|
30
33
|
|
|
31
|
-
// Prepare the player to ChromelessPlayer.autoplay on platforms where autoplay is restricted without user action.
|
|
32
|
-
player.current.prepareWithUserAction();
|
|
33
|
-
|
|
34
34
|
// Adapt native player to react-native player.
|
|
35
35
|
adapter.current = new THEOplayerWebAdapter(player.current, config);
|
|
36
36
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","THEOplayer","THEOplayerWebAdapter","BaseEvent","PlayerEventType","THEOplayerView","props","config","children","player","adapter","container","current","_props$onPlayerReady","chromeless","undefined","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","THEOplayer","THEOplayerWebAdapter","BaseEvent","PlayerEventType","THEOplayerView","props","config","children","player","adapter","container","current","_props$onPlayerReady","chromeless","undefined","updatedConfig","allowNativeFullscreen","ChromelessPlayer","Player","ui","fluid","window","nativePlayer","onPlayerReady","call","_adapter$current","_adapter$current2","_player$current","onPlayerDestroy","dispatchEvent","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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"}
|
|
@@ -308,7 +308,7 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
|
|
|
308
308
|
set selectedTextTrack(trackUid) {
|
|
309
309
|
this._state.selectedTextTrack = trackUid;
|
|
310
310
|
this.textTracks.forEach(track => {
|
|
311
|
-
if (track.uid
|
|
311
|
+
if (track.uid === trackUid) {
|
|
312
312
|
track.mode = TextTrackMode.showing;
|
|
313
313
|
} else if (track.mode === TextTrackMode.showing) {
|
|
314
314
|
track.mode = TextTrackMode.disabled;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DefaultEventDispatcher","addTrack","findMediaTrackByUid","MediaTrackEventType","MediaTrackType","PlayerEventType","PresentationMode","removeTrack","TextTrackMode","TrackListEventType","THEOplayerNativeAdsAdapter","THEOplayerNativeCastAdapter","AbrAdapter","NativeModules","Platform","TextTrackStyleAdapter","defaultPlayerState","source","undefined","autoplay","paused","seekable","buffered","pipConfig","startsAutomatically","backgroundAudioConfig","enabled","presentationMode","inline","muted","seeking","volume","currentTime","duration","NaN","playbackRate","preload","audioTracks","videoTracks","textTracks","targetVideoQuality","selectedVideoTrack","selectedAudioTrack","selectedTextTrack","THEOplayerAdapter","constructor","view","initialState","arguments","length","_defineProperty","_state","play","pause","event","_event$seekable","_event$buffered","sort","a","b","end","subType","track","ADD_TRACK","REMOVE_TRACK","CHANGE_TRACK","trackType","trackUid","tracks","VIDEO","ACTIVE_QUALITY_CHANGED","Object","assign","activeQuality","qualities","isAudio","AUDIO","_view","_adsAdapter","_castAdapter","_abrAdapter","_textTrackStyleAdapter","addEventListener","SOURCE_CHANGE","onSourceChange","LOADED_METADATA","onLoadedMetadata","PAUSE","onPause","PLAYING","onPlaying","TIME_UPDATE","onTimeupdate","DURATION_CHANGE","onDurationChange","RATE_CHANGE","onRateChange","SEEKING","onSeeking","SEEKED","onSeeked","PROGRESS","onProgress","TEXT_TRACK_LIST","onTextTrackList","MEDIA_TRACK","onMediaTrack","MEDIA_TRACK_LIST","onMediaTrackList","PRESENTATIONMODE_CHANGE","onPresentationModeChange","abr","OS","ads","PlayerModule","setPaused","nativeHandle","type","setPreload","seekableEnd","ranges","cast","isNaN","seekTime","Infinity","setCurrentTime","pipConfiguration","setPipConfig","backgroundAudioConfiguration","setBackgroundAudioConfig","setPresentationMode","setMuted","setPlaybackRate","setSelectedAudioTrack","setSelectedVideoTrack","forEach","uid","mode","showing","disabled","setSelectedTextTrack","textTrackStyle","setSource","target","Array","isArray","targetQuality","setTargetVideoQuality","setVolume","initializeWithNativePlayerState_","state","init_"],"sources":["THEOplayerAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n ABRConfiguration,\n AdsAPI,\n CastAPI,\n DurationChangeEvent,\n LoadedMetadataEvent,\n MediaTrack,\n MediaTrackEvent,\n MediaTrackListEvent,\n NativeHandleType,\n PiPConfiguration,\n PlayerEventMap,\n PresentationModeChangeEvent,\n ProgressEvent,\n RateChangeEvent,\n SourceDescription,\n TextTrack,\n TextTrackListEvent,\n THEOplayer,\n THEOplayerView,\n TimeUpdateEvent,\n} from 'react-native-theoplayer';\nimport {\n addTrack,\n findMediaTrackByUid,\n MediaTrackEventType,\n MediaTrackType,\n PlayerEventType,\n PreloadType,\n PresentationMode,\n removeTrack,\n TextTrackMode,\n TextTrackStyle,\n TrackListEventType,\n} from 'react-native-theoplayer';\nimport { THEOplayerNativeAdsAdapter } from './ads/THEOplayerNativeAdsAdapter';\nimport { THEOplayerNativeCastAdapter } from './cast/THEOplayerNativeCastAdapter';\nimport { AbrAdapter } from './abr/AbrAdapter';\nimport { NativeModules, Platform } from 'react-native';\nimport { TextTrackStyleAdapter } from './track/TextTrackStyleAdapter';\nimport type { BackgroundAudioConfiguration } from 'src/api/backgroundAudio/BackgroundAudioConfiguration';\nimport type { NativePlayerState } from './NativePlayerState';\n\nconst defaultPlayerState: NativePlayerState = {\n source: undefined,\n autoplay: false,\n paused: false,\n seekable: [],\n buffered: [],\n pipConfig: { startsAutomatically: false },\n backgroundAudioConfig: { enabled: false },\n presentationMode: PresentationMode.inline,\n muted: false,\n seeking: false,\n volume: 1,\n currentTime: 0,\n duration: NaN,\n playbackRate: 1,\n preload: 'none',\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n targetVideoQuality: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n selectedTextTrack: undefined,\n};\n\nexport class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEventMap> implements THEOplayer {\n private readonly _view: THEOplayerView;\n private readonly _state: NativePlayerState;\n private readonly _adsAdapter: THEOplayerNativeAdsAdapter;\n private readonly _castAdapter: THEOplayerNativeCastAdapter;\n private readonly _abrAdapter: AbrAdapter;\n private readonly _textTrackStyleAdapter: TextTrackStyleAdapter;\n\n constructor(view: THEOplayerView, initialState: NativePlayerState = defaultPlayerState) {\n super();\n this._view = view;\n this._state = { ...initialState };\n this._adsAdapter = new THEOplayerNativeAdsAdapter(this._view);\n this._castAdapter = new THEOplayerNativeCastAdapter(this, this._view);\n this._abrAdapter = new AbrAdapter(this._view);\n this._textTrackStyleAdapter = new TextTrackStyleAdapter(this._view);\n\n this.addEventListener(PlayerEventType.SOURCE_CHANGE, this.onSourceChange);\n this.addEventListener(PlayerEventType.LOADED_METADATA, this.onLoadedMetadata);\n this.addEventListener(PlayerEventType.PAUSE, this.onPause);\n this.addEventListener(PlayerEventType.PLAYING, this.onPlaying);\n this.addEventListener(PlayerEventType.TIME_UPDATE, this.onTimeupdate);\n this.addEventListener(PlayerEventType.DURATION_CHANGE, this.onDurationChange);\n this.addEventListener(PlayerEventType.RATE_CHANGE, this.onRateChange);\n this.addEventListener(PlayerEventType.SEEKING, this.onSeeking);\n this.addEventListener(PlayerEventType.SEEKED, this.onSeeked);\n this.addEventListener(PlayerEventType.PROGRESS, this.onProgress);\n this.addEventListener(PlayerEventType.TEXT_TRACK_LIST, this.onTextTrackList);\n this.addEventListener(PlayerEventType.MEDIA_TRACK, this.onMediaTrack);\n this.addEventListener(PlayerEventType.MEDIA_TRACK_LIST, this.onMediaTrackList);\n this.addEventListener(PlayerEventType.PRESENTATIONMODE_CHANGE, this.onPresentationModeChange);\n }\n\n private onSourceChange = () => {\n if (this._state.autoplay) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n private onPause = () => {\n this._state.paused = true;\n };\n\n private onPlaying = () => {\n this._state.paused = false;\n };\n\n private onPresentationModeChange = (event: PresentationModeChangeEvent) => {\n this._state.presentationMode = event.presentationMode;\n };\n\n private onTimeupdate = (event: TimeUpdateEvent) => {\n this._state.currentTime = event.currentTime;\n };\n\n private onLoadedMetadata = (event: LoadedMetadataEvent) => {\n this._state.duration = event.duration;\n this._state.audioTracks = event.audioTracks;\n this._state.videoTracks = event.videoTracks;\n this._state.textTracks = event.textTracks;\n this._state.selectedAudioTrack = event.selectedAudioTrack;\n this._state.selectedVideoTrack = event.selectedVideoTrack;\n this._state.selectedTextTrack = event.selectedTextTrack;\n };\n\n private onDurationChange = (event: DurationChangeEvent) => {\n this._state.duration = event.duration;\n };\n\n private onRateChange = (event: RateChangeEvent) => {\n this._state.playbackRate = event.playbackRate;\n };\n\n private onSeeking = () => {\n this._state.seeking = true;\n };\n\n private onSeeked = () => {\n this._state.seeking = false;\n };\n\n private onProgress = (event: ProgressEvent) => {\n this._state.seekable = event.seekable?.sort((a, b) => a.end - b.end);\n this._state.buffered = event.buffered?.sort((a, b) => a.end - b.end);\n };\n\n private onTextTrackList = (event: TextTrackListEvent) => {\n const { subType, track } = event;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.REMOVE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.CHANGE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n }\n };\n\n private onMediaTrack = (event: MediaTrackEvent) => {\n const { subType, trackType, trackUid } = event;\n const tracks = trackType === MediaTrackType.VIDEO ? this._state.videoTracks : this._state.audioTracks;\n const track = findMediaTrackByUid(tracks, trackUid);\n switch (subType) {\n case MediaTrackEventType.ACTIVE_QUALITY_CHANGED:\n // Update local state\n if (track) {\n Object.assign(track, { ...track, activeQuality: event.qualities });\n }\n break;\n }\n };\n\n private onMediaTrackList = (event: MediaTrackListEvent) => {\n const { subType, trackType, track } = event;\n const isAudio = trackType === MediaTrackType.AUDIO;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n if (isAudio) {\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.REMOVE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.CHANGE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n }\n };\n\n get abr(): ABRConfiguration | undefined {\n return Platform.OS === 'android' ? this._abrAdapter : undefined;\n }\n\n get ads(): AdsAPI {\n return this._adsAdapter;\n }\n\n set autoplay(autoplay: boolean) {\n this._state.autoplay = autoplay;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, !autoplay);\n }\n\n get autoplay(): boolean {\n return this._state.autoplay;\n }\n\n set preload(type: PreloadType) {\n this._state.preload = type;\n NativeModules.PlayerModule.setPreload(this._view.nativeHandle, type);\n }\n\n get preload(): PreloadType {\n return this._state.preload;\n }\n\n get seekable() {\n return this._state.seekable;\n }\n\n private seekableEnd(): number {\n const ranges = this.seekable;\n return ranges.length === 0 ? 0 : ranges[ranges.length - 1].end;\n }\n\n get buffered() {\n return this._state.buffered;\n }\n\n get cast(): CastAPI {\n return this._castAdapter;\n }\n\n get currentTime(): number {\n return this._state.currentTime;\n }\n\n set currentTime(currentTime: number) {\n if (isNaN(currentTime)) {\n return;\n }\n\n // Sanitise currentTime\n let seekTime = currentTime;\n if (currentTime === Infinity) {\n seekTime = this.seekableEnd();\n }\n\n this._state.currentTime = seekTime;\n NativeModules.PlayerModule.setCurrentTime(this._view.nativeHandle, seekTime);\n }\n\n get duration(): number {\n return this._state.duration;\n }\n\n get pipConfiguration(): PiPConfiguration {\n return this._state.pipConfig;\n }\n\n set pipConfiguration(pipConfiguration: PiPConfiguration) {\n this._state.pipConfig = pipConfiguration;\n NativeModules.PlayerModule.setPipConfig(this._view.nativeHandle, pipConfiguration);\n }\n\n get backgroundAudioConfiguration(): BackgroundAudioConfiguration {\n return this._state.backgroundAudioConfig;\n }\n\n set backgroundAudioConfiguration(backgroundAudioConfiguration: BackgroundAudioConfiguration) {\n this._state.backgroundAudioConfig = backgroundAudioConfiguration;\n NativeModules.PlayerModule.setBackgroundAudioConfig(this._view.nativeHandle, backgroundAudioConfiguration);\n }\n\n get presentationMode(): PresentationMode {\n return this._state.presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n this._state.presentationMode = presentationMode;\n NativeModules.PlayerModule.setPresentationMode(this._view.nativeHandle, presentationMode);\n }\n\n get muted(): boolean {\n return this._state.muted;\n }\n\n set muted(muted: boolean) {\n this._state.muted = muted;\n NativeModules.PlayerModule.setMuted(this._view.nativeHandle, muted);\n }\n\n get seeking(): boolean {\n return this._state.seeking;\n }\n\n get paused(): boolean {\n return this._state.paused;\n }\n\n get playbackRate(): number {\n return this._state.playbackRate;\n }\n\n set playbackRate(playbackRate: number) {\n this._state.playbackRate = playbackRate;\n NativeModules.PlayerModule.setPlaybackRate(this._view.nativeHandle, playbackRate);\n }\n\n get audioTracks(): MediaTrack[] {\n return this._state.audioTracks;\n }\n\n get selectedAudioTrack(): number | undefined {\n return this._state.selectedAudioTrack;\n }\n\n set selectedAudioTrack(trackUid: number | undefined) {\n this._state.selectedAudioTrack = trackUid;\n NativeModules.PlayerModule.setSelectedAudioTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get videoTracks(): MediaTrack[] {\n return this._state.videoTracks;\n }\n\n get selectedVideoTrack(): number | undefined {\n return this._state.selectedVideoTrack;\n }\n\n set selectedVideoTrack(trackUid: number | undefined) {\n this._state.selectedVideoTrack = trackUid;\n this._state.targetVideoQuality = undefined;\n NativeModules.PlayerModule.setSelectedVideoTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get textTracks(): TextTrack[] {\n return this._state.textTracks;\n }\n\n get selectedTextTrack(): number | undefined {\n return this._state.selectedTextTrack;\n }\n\n set selectedTextTrack(trackUid: number | undefined) {\n this._state.selectedTextTrack = trackUid;\n this.textTracks.forEach((track) => {\n if (track.uid == trackUid) {\n track.mode = TextTrackMode.showing;\n } else if (track.mode === TextTrackMode.showing) {\n track.mode = TextTrackMode.disabled;\n }\n });\n NativeModules.PlayerModule.setSelectedTextTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._textTrackStyleAdapter;\n }\n\n get source(): SourceDescription | undefined {\n return this._state.source;\n }\n\n set source(source: SourceDescription | undefined) {\n // This is to correctly reset autoplay during a source change.\n this.pause();\n this._state.source = source;\n NativeModules.PlayerModule.setSource(this._view.nativeHandle, source);\n // Reset state for play-out of new source\n Object.assign(this._state, {\n playbackRate: 1,\n seeking: false,\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n seekable: [],\n buffered: [],\n selectedTextTrack: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n targetVideoQuality: undefined,\n });\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n return this._state.targetVideoQuality;\n }\n\n set targetVideoQuality(target: number | number[] | undefined) {\n // Always pass an array for targetVideoQuality.\n this._state.targetVideoQuality = !target ? [] : Array.isArray(target) ? target : [target];\n\n // Update local state\n const track = findMediaTrackByUid(this._state.videoTracks, this.selectedVideoTrack);\n if (track) {\n Object.assign(track, { ...track, targetQuality: this._state.targetVideoQuality });\n }\n NativeModules.PlayerModule.setTargetVideoQuality(this._view.nativeHandle, this._state.targetVideoQuality);\n }\n\n get volume(): number {\n return this._state.volume;\n }\n\n set volume(volume: number) {\n this._state.volume = volume;\n NativeModules.PlayerModule.setVolume(this._view.nativeHandle, volume);\n }\n\n pause(): void {\n this._state.paused = true;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, true);\n }\n\n play(): void {\n this._state.paused = false;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, false);\n }\n\n get nativeHandle(): NativeHandleType {\n return this._view.nativeHandle;\n }\n\n initializeWithNativePlayerState_(state: NativePlayerState) {\n Object.assign(this._state, state);\n this._castAdapter.init_();\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["DefaultEventDispatcher","addTrack","findMediaTrackByUid","MediaTrackEventType","MediaTrackType","PlayerEventType","PresentationMode","removeTrack","TextTrackMode","TrackListEventType","THEOplayerNativeAdsAdapter","THEOplayerNativeCastAdapter","AbrAdapter","NativeModules","Platform","TextTrackStyleAdapter","defaultPlayerState","source","undefined","autoplay","paused","seekable","buffered","pipConfig","startsAutomatically","backgroundAudioConfig","enabled","presentationMode","inline","muted","seeking","volume","currentTime","duration","NaN","playbackRate","preload","audioTracks","videoTracks","textTracks","targetVideoQuality","selectedVideoTrack","selectedAudioTrack","selectedTextTrack","THEOplayerAdapter","constructor","view","initialState","arguments","length","_defineProperty","_state","play","pause","event","_event$seekable","_event$buffered","sort","a","b","end","subType","track","ADD_TRACK","REMOVE_TRACK","CHANGE_TRACK","trackType","trackUid","tracks","VIDEO","ACTIVE_QUALITY_CHANGED","Object","assign","activeQuality","qualities","isAudio","AUDIO","_view","_adsAdapter","_castAdapter","_abrAdapter","_textTrackStyleAdapter","addEventListener","SOURCE_CHANGE","onSourceChange","LOADED_METADATA","onLoadedMetadata","PAUSE","onPause","PLAYING","onPlaying","TIME_UPDATE","onTimeupdate","DURATION_CHANGE","onDurationChange","RATE_CHANGE","onRateChange","SEEKING","onSeeking","SEEKED","onSeeked","PROGRESS","onProgress","TEXT_TRACK_LIST","onTextTrackList","MEDIA_TRACK","onMediaTrack","MEDIA_TRACK_LIST","onMediaTrackList","PRESENTATIONMODE_CHANGE","onPresentationModeChange","abr","OS","ads","PlayerModule","setPaused","nativeHandle","type","setPreload","seekableEnd","ranges","cast","isNaN","seekTime","Infinity","setCurrentTime","pipConfiguration","setPipConfig","backgroundAudioConfiguration","setBackgroundAudioConfig","setPresentationMode","setMuted","setPlaybackRate","setSelectedAudioTrack","setSelectedVideoTrack","forEach","uid","mode","showing","disabled","setSelectedTextTrack","textTrackStyle","setSource","target","Array","isArray","targetQuality","setTargetVideoQuality","setVolume","initializeWithNativePlayerState_","state","init_"],"sources":["THEOplayerAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n ABRConfiguration,\n AdsAPI,\n CastAPI,\n DurationChangeEvent,\n LoadedMetadataEvent,\n MediaTrack,\n MediaTrackEvent,\n MediaTrackListEvent,\n NativeHandleType,\n PiPConfiguration,\n PlayerEventMap,\n PresentationModeChangeEvent,\n ProgressEvent,\n RateChangeEvent,\n SourceDescription,\n TextTrack,\n TextTrackListEvent,\n THEOplayer,\n THEOplayerView,\n TimeUpdateEvent,\n} from 'react-native-theoplayer';\nimport {\n addTrack,\n findMediaTrackByUid,\n MediaTrackEventType,\n MediaTrackType,\n PlayerEventType,\n PreloadType,\n PresentationMode,\n removeTrack,\n TextTrackMode,\n TextTrackStyle,\n TrackListEventType,\n} from 'react-native-theoplayer';\nimport { THEOplayerNativeAdsAdapter } from './ads/THEOplayerNativeAdsAdapter';\nimport { THEOplayerNativeCastAdapter } from './cast/THEOplayerNativeCastAdapter';\nimport { AbrAdapter } from './abr/AbrAdapter';\nimport { NativeModules, Platform } from 'react-native';\nimport { TextTrackStyleAdapter } from './track/TextTrackStyleAdapter';\nimport type { BackgroundAudioConfiguration } from 'src/api/backgroundAudio/BackgroundAudioConfiguration';\nimport type { NativePlayerState } from './NativePlayerState';\n\nconst defaultPlayerState: NativePlayerState = {\n source: undefined,\n autoplay: false,\n paused: false,\n seekable: [],\n buffered: [],\n pipConfig: { startsAutomatically: false },\n backgroundAudioConfig: { enabled: false },\n presentationMode: PresentationMode.inline,\n muted: false,\n seeking: false,\n volume: 1,\n currentTime: 0,\n duration: NaN,\n playbackRate: 1,\n preload: 'none',\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n targetVideoQuality: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n selectedTextTrack: undefined,\n};\n\nexport class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEventMap> implements THEOplayer {\n private readonly _view: THEOplayerView;\n private readonly _state: NativePlayerState;\n private readonly _adsAdapter: THEOplayerNativeAdsAdapter;\n private readonly _castAdapter: THEOplayerNativeCastAdapter;\n private readonly _abrAdapter: AbrAdapter;\n private readonly _textTrackStyleAdapter: TextTrackStyleAdapter;\n\n constructor(view: THEOplayerView, initialState: NativePlayerState = defaultPlayerState) {\n super();\n this._view = view;\n this._state = { ...initialState };\n this._adsAdapter = new THEOplayerNativeAdsAdapter(this._view);\n this._castAdapter = new THEOplayerNativeCastAdapter(this, this._view);\n this._abrAdapter = new AbrAdapter(this._view);\n this._textTrackStyleAdapter = new TextTrackStyleAdapter(this._view);\n\n this.addEventListener(PlayerEventType.SOURCE_CHANGE, this.onSourceChange);\n this.addEventListener(PlayerEventType.LOADED_METADATA, this.onLoadedMetadata);\n this.addEventListener(PlayerEventType.PAUSE, this.onPause);\n this.addEventListener(PlayerEventType.PLAYING, this.onPlaying);\n this.addEventListener(PlayerEventType.TIME_UPDATE, this.onTimeupdate);\n this.addEventListener(PlayerEventType.DURATION_CHANGE, this.onDurationChange);\n this.addEventListener(PlayerEventType.RATE_CHANGE, this.onRateChange);\n this.addEventListener(PlayerEventType.SEEKING, this.onSeeking);\n this.addEventListener(PlayerEventType.SEEKED, this.onSeeked);\n this.addEventListener(PlayerEventType.PROGRESS, this.onProgress);\n this.addEventListener(PlayerEventType.TEXT_TRACK_LIST, this.onTextTrackList);\n this.addEventListener(PlayerEventType.MEDIA_TRACK, this.onMediaTrack);\n this.addEventListener(PlayerEventType.MEDIA_TRACK_LIST, this.onMediaTrackList);\n this.addEventListener(PlayerEventType.PRESENTATIONMODE_CHANGE, this.onPresentationModeChange);\n }\n\n private onSourceChange = () => {\n if (this._state.autoplay) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n private onPause = () => {\n this._state.paused = true;\n };\n\n private onPlaying = () => {\n this._state.paused = false;\n };\n\n private onPresentationModeChange = (event: PresentationModeChangeEvent) => {\n this._state.presentationMode = event.presentationMode;\n };\n\n private onTimeupdate = (event: TimeUpdateEvent) => {\n this._state.currentTime = event.currentTime;\n };\n\n private onLoadedMetadata = (event: LoadedMetadataEvent) => {\n this._state.duration = event.duration;\n this._state.audioTracks = event.audioTracks;\n this._state.videoTracks = event.videoTracks;\n this._state.textTracks = event.textTracks;\n this._state.selectedAudioTrack = event.selectedAudioTrack;\n this._state.selectedVideoTrack = event.selectedVideoTrack;\n this._state.selectedTextTrack = event.selectedTextTrack;\n };\n\n private onDurationChange = (event: DurationChangeEvent) => {\n this._state.duration = event.duration;\n };\n\n private onRateChange = (event: RateChangeEvent) => {\n this._state.playbackRate = event.playbackRate;\n };\n\n private onSeeking = () => {\n this._state.seeking = true;\n };\n\n private onSeeked = () => {\n this._state.seeking = false;\n };\n\n private onProgress = (event: ProgressEvent) => {\n this._state.seekable = event.seekable?.sort((a, b) => a.end - b.end);\n this._state.buffered = event.buffered?.sort((a, b) => a.end - b.end);\n };\n\n private onTextTrackList = (event: TextTrackListEvent) => {\n const { subType, track } = event;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.REMOVE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.CHANGE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n }\n };\n\n private onMediaTrack = (event: MediaTrackEvent) => {\n const { subType, trackType, trackUid } = event;\n const tracks = trackType === MediaTrackType.VIDEO ? this._state.videoTracks : this._state.audioTracks;\n const track = findMediaTrackByUid(tracks, trackUid);\n switch (subType) {\n case MediaTrackEventType.ACTIVE_QUALITY_CHANGED:\n // Update local state\n if (track) {\n Object.assign(track, { ...track, activeQuality: event.qualities });\n }\n break;\n }\n };\n\n private onMediaTrackList = (event: MediaTrackListEvent) => {\n const { subType, trackType, track } = event;\n const isAudio = trackType === MediaTrackType.AUDIO;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n if (isAudio) {\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.REMOVE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.CHANGE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n }\n };\n\n get abr(): ABRConfiguration | undefined {\n return Platform.OS === 'android' ? this._abrAdapter : undefined;\n }\n\n get ads(): AdsAPI {\n return this._adsAdapter;\n }\n\n set autoplay(autoplay: boolean) {\n this._state.autoplay = autoplay;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, !autoplay);\n }\n\n get autoplay(): boolean {\n return this._state.autoplay;\n }\n\n set preload(type: PreloadType) {\n this._state.preload = type;\n NativeModules.PlayerModule.setPreload(this._view.nativeHandle, type);\n }\n\n get preload(): PreloadType {\n return this._state.preload;\n }\n\n get seekable() {\n return this._state.seekable;\n }\n\n private seekableEnd(): number {\n const ranges = this.seekable;\n return ranges.length === 0 ? 0 : ranges[ranges.length - 1].end;\n }\n\n get buffered() {\n return this._state.buffered;\n }\n\n get cast(): CastAPI {\n return this._castAdapter;\n }\n\n get currentTime(): number {\n return this._state.currentTime;\n }\n\n set currentTime(currentTime: number) {\n if (isNaN(currentTime)) {\n return;\n }\n\n // Sanitise currentTime\n let seekTime = currentTime;\n if (currentTime === Infinity) {\n seekTime = this.seekableEnd();\n }\n\n this._state.currentTime = seekTime;\n NativeModules.PlayerModule.setCurrentTime(this._view.nativeHandle, seekTime);\n }\n\n get duration(): number {\n return this._state.duration;\n }\n\n get pipConfiguration(): PiPConfiguration {\n return this._state.pipConfig;\n }\n\n set pipConfiguration(pipConfiguration: PiPConfiguration) {\n this._state.pipConfig = pipConfiguration;\n NativeModules.PlayerModule.setPipConfig(this._view.nativeHandle, pipConfiguration);\n }\n\n get backgroundAudioConfiguration(): BackgroundAudioConfiguration {\n return this._state.backgroundAudioConfig;\n }\n\n set backgroundAudioConfiguration(backgroundAudioConfiguration: BackgroundAudioConfiguration) {\n this._state.backgroundAudioConfig = backgroundAudioConfiguration;\n NativeModules.PlayerModule.setBackgroundAudioConfig(this._view.nativeHandle, backgroundAudioConfiguration);\n }\n\n get presentationMode(): PresentationMode {\n return this._state.presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n this._state.presentationMode = presentationMode;\n NativeModules.PlayerModule.setPresentationMode(this._view.nativeHandle, presentationMode);\n }\n\n get muted(): boolean {\n return this._state.muted;\n }\n\n set muted(muted: boolean) {\n this._state.muted = muted;\n NativeModules.PlayerModule.setMuted(this._view.nativeHandle, muted);\n }\n\n get seeking(): boolean {\n return this._state.seeking;\n }\n\n get paused(): boolean {\n return this._state.paused;\n }\n\n get playbackRate(): number {\n return this._state.playbackRate;\n }\n\n set playbackRate(playbackRate: number) {\n this._state.playbackRate = playbackRate;\n NativeModules.PlayerModule.setPlaybackRate(this._view.nativeHandle, playbackRate);\n }\n\n get audioTracks(): MediaTrack[] {\n return this._state.audioTracks;\n }\n\n get selectedAudioTrack(): number | undefined {\n return this._state.selectedAudioTrack;\n }\n\n set selectedAudioTrack(trackUid: number | undefined) {\n this._state.selectedAudioTrack = trackUid;\n NativeModules.PlayerModule.setSelectedAudioTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get videoTracks(): MediaTrack[] {\n return this._state.videoTracks;\n }\n\n get selectedVideoTrack(): number | undefined {\n return this._state.selectedVideoTrack;\n }\n\n set selectedVideoTrack(trackUid: number | undefined) {\n this._state.selectedVideoTrack = trackUid;\n this._state.targetVideoQuality = undefined;\n NativeModules.PlayerModule.setSelectedVideoTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get textTracks(): TextTrack[] {\n return this._state.textTracks;\n }\n\n get selectedTextTrack(): number | undefined {\n return this._state.selectedTextTrack;\n }\n\n set selectedTextTrack(trackUid: number | undefined) {\n this._state.selectedTextTrack = trackUid;\n this.textTracks.forEach((track) => {\n if (track.uid === trackUid) {\n track.mode = TextTrackMode.showing;\n } else if (track.mode === TextTrackMode.showing) {\n track.mode = TextTrackMode.disabled;\n }\n });\n NativeModules.PlayerModule.setSelectedTextTrack(this._view.nativeHandle, trackUid || -1);\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._textTrackStyleAdapter;\n }\n\n get source(): SourceDescription | undefined {\n return this._state.source;\n }\n\n set source(source: SourceDescription | undefined) {\n // This is to correctly reset autoplay during a source change.\n this.pause();\n this._state.source = source;\n NativeModules.PlayerModule.setSource(this._view.nativeHandle, source);\n // Reset state for play-out of new source\n Object.assign(this._state, {\n playbackRate: 1,\n seeking: false,\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n seekable: [],\n buffered: [],\n selectedTextTrack: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n targetVideoQuality: undefined,\n });\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n return this._state.targetVideoQuality;\n }\n\n set targetVideoQuality(target: number | number[] | undefined) {\n // Always pass an array for targetVideoQuality.\n this._state.targetVideoQuality = !target ? [] : Array.isArray(target) ? target : [target];\n\n // Update local state\n const track = findMediaTrackByUid(this._state.videoTracks, this.selectedVideoTrack);\n if (track) {\n Object.assign(track, { ...track, targetQuality: this._state.targetVideoQuality });\n }\n NativeModules.PlayerModule.setTargetVideoQuality(this._view.nativeHandle, this._state.targetVideoQuality);\n }\n\n get volume(): number {\n return this._state.volume;\n }\n\n set volume(volume: number) {\n this._state.volume = volume;\n NativeModules.PlayerModule.setVolume(this._view.nativeHandle, volume);\n }\n\n pause(): void {\n this._state.paused = true;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, true);\n }\n\n play(): void {\n this._state.paused = false;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, false);\n }\n\n get nativeHandle(): NativeHandleType {\n return this._view.nativeHandle;\n }\n\n initializeWithNativePlayerState_(state: NativePlayerState) {\n Object.assign(this._state, state);\n this._castAdapter.init_();\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { decodeNanInf } from '../../utils/TypeUtils';
|
|
1
2
|
export function fromNativeCue(cue) {
|
|
2
3
|
return {
|
|
3
4
|
id: cue.id,
|
|
4
5
|
uid: cue.uid,
|
|
5
|
-
startTime: 1e3 * cue.startTime,
|
|
6
|
-
endTime: 1e3 * cue.endTime,
|
|
6
|
+
startTime: decodeNanInf(1e3 * cue.startTime),
|
|
7
|
+
endTime: decodeNanInf(1e3 * cue.endTime),
|
|
7
8
|
content: cue.content
|
|
8
9
|
};
|
|
9
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["fromNativeCue","cue","id","uid","startTime","endTime","content","fromNativeTextTrackList","tracks","map","track","fromNativeTextTrack","kind","label","language","mode","type","src","forced","cues","fromNativeMediaTrackList","fromNativeMediaTrack","activeQuality","qualities","findNativeQualityByUid","mediaTrack","find","quality","findNativeQualitiesByUid","undefined","Array","isArray","filter","includes"],"sources":["TrackUtils.ts"],"sourcesContent":["import type {\n MediaTrack as NativeMediaTrack,\n MediaTrackList as NativeMediaTrackList,\n Quality as NativeQuality,\n TextTrack as NativeTextTrack,\n TextTrackCue as NativeTextTrackCue,\n TextTracksList as NativeTextTrackList,\n} from 'theoplayer';\nimport type { MediaTrack, TextTrack, TextTrackCue } from 'react-native-theoplayer';\n\nexport function fromNativeCue(cue: NativeTextTrackCue): TextTrackCue {\n return {\n id: cue.id,\n uid: cue.uid,\n startTime: 1e3 * cue.startTime,\n endTime: 1e3 * cue.endTime,\n content: cue.content,\n } as TextTrackCue;\n}\n\nexport function fromNativeTextTrackList(tracks: NativeTextTrackList): TextTrack[] {\n return tracks.map((track) => fromNativeTextTrack(track));\n}\n\nexport function fromNativeTextTrack(track: NativeTextTrack): TextTrack {\n const { id, uid, kind, label, language, mode, type, src, forced } = track;\n\n return {\n id,\n uid,\n kind,\n label,\n language,\n mode,\n type,\n src,\n forced,\n cues: track.cues ? track.cues.map((cue) => fromNativeCue(cue)) : [],\n } as TextTrack;\n}\n\nexport function fromNativeMediaTrackList(tracks: NativeMediaTrackList): MediaTrack[] {\n return tracks.map((track) => fromNativeMediaTrack(track));\n}\n\nexport function fromNativeMediaTrack(track: NativeMediaTrack): MediaTrack {\n const { id, uid, kind, label, language, activeQuality, qualities } = track;\n return {\n kind,\n label,\n language,\n id,\n uid,\n activeQuality,\n qualities,\n } as MediaTrack;\n}\n\nexport function findNativeQualityByUid(mediaTrack: NativeMediaTrack, uid: number | undefined): NativeQuality | undefined {\n return mediaTrack.qualities.find((quality) => quality.uid === uid);\n}\n\nexport function findNativeQualitiesByUid(mediaTrack: NativeMediaTrack | undefined, uid: number | number[] | undefined): NativeQuality[] | undefined {\n if (uid !== undefined && mediaTrack) {\n if (Array.isArray(uid)) {\n return mediaTrack.qualities.filter((quality) => uid.includes(quality.uid));\n } else {\n const quality = findNativeQualityByUid(mediaTrack, uid);\n return quality ? [quality] : undefined;\n }\n }\n return undefined;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["decodeNanInf","fromNativeCue","cue","id","uid","startTime","endTime","content","fromNativeTextTrackList","tracks","map","track","fromNativeTextTrack","kind","label","language","mode","type","src","forced","cues","fromNativeMediaTrackList","fromNativeMediaTrack","activeQuality","qualities","findNativeQualityByUid","mediaTrack","find","quality","findNativeQualitiesByUid","undefined","Array","isArray","filter","includes"],"sources":["TrackUtils.ts"],"sourcesContent":["import type {\n MediaTrack as NativeMediaTrack,\n MediaTrackList as NativeMediaTrackList,\n Quality as NativeQuality,\n TextTrack as NativeTextTrack,\n TextTrackCue as NativeTextTrackCue,\n TextTracksList as NativeTextTrackList,\n} from 'theoplayer';\nimport type { MediaTrack, TextTrack, TextTrackCue } from 'react-native-theoplayer';\nimport { decodeNanInf } from '../../utils/TypeUtils';\n\nexport function fromNativeCue(cue: NativeTextTrackCue): TextTrackCue {\n return {\n id: cue.id,\n uid: cue.uid,\n startTime: decodeNanInf(1e3 * cue.startTime),\n endTime: decodeNanInf(1e3 * cue.endTime),\n content: cue.content,\n } as TextTrackCue;\n}\n\nexport function fromNativeTextTrackList(tracks: NativeTextTrackList): TextTrack[] {\n return tracks.map((track) => fromNativeTextTrack(track));\n}\n\nexport function fromNativeTextTrack(track: NativeTextTrack): TextTrack {\n const { id, uid, kind, label, language, mode, type, src, forced } = track;\n\n return {\n id,\n uid,\n kind,\n label,\n language,\n mode,\n type,\n src,\n forced,\n cues: track.cues ? track.cues.map((cue) => fromNativeCue(cue)) : [],\n } as TextTrack;\n}\n\nexport function fromNativeMediaTrackList(tracks: NativeMediaTrackList): MediaTrack[] {\n return tracks.map((track) => fromNativeMediaTrack(track));\n}\n\nexport function fromNativeMediaTrack(track: NativeMediaTrack): MediaTrack {\n const { id, uid, kind, label, language, activeQuality, qualities } = track;\n return {\n kind,\n label,\n language,\n id,\n uid,\n activeQuality,\n qualities,\n } as MediaTrack;\n}\n\nexport function findNativeQualityByUid(mediaTrack: NativeMediaTrack, uid: number | undefined): NativeQuality | undefined {\n return mediaTrack.qualities.find((quality) => quality.uid === uid);\n}\n\nexport function findNativeQualitiesByUid(mediaTrack: NativeMediaTrack | undefined, uid: number | number[] | undefined): NativeQuality[] | undefined {\n if (uid !== undefined && mediaTrack) {\n if (Array.isArray(uid)) {\n return mediaTrack.qualities.filter((quality) => uid.includes(quality.uid));\n } else {\n const quality = findNativeQualityByUid(mediaTrack, uid);\n return quality ? [quality] : undefined;\n }\n }\n return undefined;\n}\n"],"mappings":"AASA,SAASA,YAAY,QAAQ,uBAAuB;AAEpD,OAAO,SAASC,aAAaA,CAACC,GAAuB,EAAgB;EACnE,OAAO;IACLC,EAAE,EAAED,GAAG,CAACC,EAAE;IACVC,GAAG,EAAEF,GAAG,CAACE,GAAG;IACZC,SAAS,EAAEL,YAAY,CAAC,GAAG,GAAGE,GAAG,CAACG,SAAS,CAAC;IAC5CC,OAAO,EAAEN,YAAY,CAAC,GAAG,GAAGE,GAAG,CAACI,OAAO,CAAC;IACxCC,OAAO,EAAEL,GAAG,CAACK;EACf,CAAC;AACH;AAEA,OAAO,SAASC,uBAAuBA,CAACC,MAA2B,EAAe;EAChF,OAAOA,MAAM,CAACC,GAAG,CAAEC,KAAK,IAAKC,mBAAmB,CAACD,KAAK,CAAC,CAAC;AAC1D;AAEA,OAAO,SAASC,mBAAmBA,CAACD,KAAsB,EAAa;EACrE,MAAM;IAAER,EAAE;IAAEC,GAAG;IAAES,IAAI;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,IAAI;IAAEC,IAAI;IAAEC,GAAG;IAAEC;EAAO,CAAC,GAAGR,KAAK;EAEzE,OAAO;IACLR,EAAE;IACFC,GAAG;IACHS,IAAI;IACJC,KAAK;IACLC,QAAQ;IACRC,IAAI;IACJC,IAAI;IACJC,GAAG;IACHC,MAAM;IACNC,IAAI,EAAET,KAAK,CAACS,IAAI,GAAGT,KAAK,CAACS,IAAI,CAACV,GAAG,CAAER,GAAG,IAAKD,aAAa,CAACC,GAAG,CAAC,CAAC,GAAG;EACnE,CAAC;AACH;AAEA,OAAO,SAASmB,wBAAwBA,CAACZ,MAA4B,EAAgB;EACnF,OAAOA,MAAM,CAACC,GAAG,CAAEC,KAAK,IAAKW,oBAAoB,CAACX,KAAK,CAAC,CAAC;AAC3D;AAEA,OAAO,SAASW,oBAAoBA,CAACX,KAAuB,EAAc;EACxE,MAAM;IAAER,EAAE;IAAEC,GAAG;IAAES,IAAI;IAAEC,KAAK;IAAEC,QAAQ;IAAEQ,aAAa;IAAEC;EAAU,CAAC,GAAGb,KAAK;EAC1E,OAAO;IACLE,IAAI;IACJC,KAAK;IACLC,QAAQ;IACRZ,EAAE;IACFC,GAAG;IACHmB,aAAa;IACbC;EACF,CAAC;AACH;AAEA,OAAO,SAASC,sBAAsBA,CAACC,UAA4B,EAAEtB,GAAuB,EAA6B;EACvH,OAAOsB,UAAU,CAACF,SAAS,CAACG,IAAI,CAAEC,OAAO,IAAKA,OAAO,CAACxB,GAAG,KAAKA,GAAG,CAAC;AACpE;AAEA,OAAO,SAASyB,wBAAwBA,CAACH,UAAwC,EAAEtB,GAAkC,EAA+B;EAClJ,IAAIA,GAAG,KAAK0B,SAAS,IAAIJ,UAAU,EAAE;IACnC,IAAIK,KAAK,CAACC,OAAO,CAAC5B,GAAG,CAAC,EAAE;MACtB,OAAOsB,UAAU,CAACF,SAAS,CAACS,MAAM,CAAEL,OAAO,IAAKxB,GAAG,CAAC8B,QAAQ,CAACN,OAAO,CAACxB,GAAG,CAAC,CAAC;IAC5E,CAAC,MAAM;MACL,MAAMwB,OAAO,GAAGH,sBAAsB,CAACC,UAAU,EAAEtB,GAAG,CAAC;MACvD,OAAOwB,OAAO,GAAG,CAACA,OAAO,CAAC,GAAGE,SAAS;IACxC;EACF;EACA,OAAOA,SAAS;AAClB"}
|
|
@@ -3,7 +3,6 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typ
|
|
|
3
3
|
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); }
|
|
4
4
|
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
5
5
|
|
|
6
|
-
import { PresentationMode } from 'react-native-theoplayer';
|
|
7
6
|
export const defaultWebMediaSessionConfig = {
|
|
8
7
|
skipTime: 15
|
|
9
8
|
};
|
|
@@ -141,42 +140,29 @@ export class WebMediaSession {
|
|
|
141
140
|
isLive() {
|
|
142
141
|
return !isFinite(this._player.duration);
|
|
143
142
|
}
|
|
144
|
-
|
|
143
|
+
isInAd() {
|
|
145
144
|
var _this$_player$ads5;
|
|
146
|
-
return ((_this$_player$ads5 = this._player.ads) === null || _this$_player$ads5 === void 0 ? void 0 : _this$_player$ads5.playing)
|
|
145
|
+
return ((_this$_player$ads5 = this._player.ads) === null || _this$_player$ads5 === void 0 ? void 0 : _this$_player$ads5.playing) === true;
|
|
147
146
|
}
|
|
148
147
|
isInBackground() {
|
|
149
148
|
return document.visibilityState !== 'visible';
|
|
150
149
|
}
|
|
151
|
-
isTrickplayEnabled() {
|
|
152
|
-
// By default, no trickplay for live
|
|
153
|
-
if (this.isLive()) {
|
|
154
|
-
return false;
|
|
155
|
-
}
|
|
156
150
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
if (this.isInBackground()) {
|
|
163
|
-
// Disable trick-play for ads.
|
|
164
|
-
return !(this.isAd() || this.isLive());
|
|
165
|
-
}
|
|
166
|
-
return true;
|
|
151
|
+
// By default, only show trick-play buttons if:
|
|
152
|
+
// - backgroundAudio is enabled, or the player is in foreground;
|
|
153
|
+
// - and, the current asset is neither a live stream, nor an ad.
|
|
154
|
+
isTrickplayEnabled() {
|
|
155
|
+
return (this.isBackgroundAudioEnabled() || !this.isInBackground()) && !this.isLive() && !this.isInAd();
|
|
167
156
|
}
|
|
157
|
+
|
|
158
|
+
// By default, only show a play/pause button if:
|
|
159
|
+
// - backgroundAudio is enabled, or the player is in foreground;
|
|
160
|
+
// - and, the current asset is not an ad.
|
|
168
161
|
isPlayPauseEnabled() {
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
}
|
|
174
|
-
// During background playback
|
|
175
|
-
if (this.isInBackground()) {
|
|
176
|
-
// Disable play/pause for ads & live content.
|
|
177
|
-
return !(this.isAd() || this.isLive());
|
|
178
|
-
}
|
|
179
|
-
return true;
|
|
162
|
+
return (this.isBackgroundAudioEnabled() || !this.isInBackground()) && !this.isInAd();
|
|
163
|
+
}
|
|
164
|
+
isBackgroundAudioEnabled() {
|
|
165
|
+
return this._webAdapter.backgroundAudioConfiguration.enabled === true;
|
|
180
166
|
}
|
|
181
167
|
}
|
|
182
168
|
//# sourceMappingURL=WebMediaSession.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PresentationMode","defaultWebMediaSessionConfig","skipTime","NoOp","mediaSession","_navigator$mediaSessi","_navigator$mediaSessi2","navigator","setActionHandler","setPositionState","window","MediaMetadata","WebMediaSession","constructor","adapter","player","_this$_player$ads","_this$_player$ads2","config","arguments","length","undefined","_defineProperty","updateMetadata","updatePositionState","updateActionHandlers","source","_player","metadata","artwork","poster","displayIconUri","images","filter","image","map","src","title","artist","subtitle","album","duration","playbackRate","currentTime","isLive","isFinite","isNaN","position","_webAdapter","_config","addEventListener","onSourceChange","onLoadedMetadata","onDurationChange","ads","onAdbreakBegin","onAdbreakEnd","isTrickplayEnabled","event","seekOffset","Math","max","min","isPlayPauseEnabled","_this$_player","play","_this$_player2","pause","destroy","_this$_player$ads3","_this$_player$ads4","removeEventListener","isAd","_this$_player$ads5","playing","isInBackground","document","visibilityState","presentationMode","pip"],"sources":["WebMediaSession.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\nimport type { ChromelessPlayer } from 'theoplayer';\nimport type { THEOplayerWebAdapter } from '../THEOplayerWebAdapter';\nimport { PresentationMode } from 'react-native-theoplayer';\n\ninterface WebMediaSessionConfig {\n skipTime: number;\n}\n\nexport const defaultWebMediaSessionConfig: WebMediaSessionConfig = {\n skipTime: 15,\n};\n\nconst NoOp = () => {};\n\n// This prevents unnecessary errors when Media Session API is not available.\nconst mediaSession = (function () {\n const mediaSession = navigator.mediaSession || {};\n mediaSession.setActionHandler = navigator.mediaSession?.setActionHandler || function () {};\n mediaSession.setPositionState = navigator.mediaSession?.setPositionState || function () {};\n window.MediaMetadata = window.MediaMetadata || function () {};\n return mediaSession;\n})();\n\n/**\n * The MediaSession interface of the Media Session API allows a web page to provide custom behaviors for standard media playback interactions, and\n * to report metadata that can be sent by the user agent to the device or operating system for presentation in standardized user interface elements.\n *\n * @link https://w3c.github.io/mediasession\n */\nexport class WebMediaSession {\n private readonly _config: WebMediaSessionConfig;\n private readonly _player: ChromelessPlayer;\n private readonly _webAdapter: THEOplayerWebAdapter;\n\n constructor(adapter: THEOplayerWebAdapter, player: ChromelessPlayer, config: WebMediaSessionConfig = defaultWebMediaSessionConfig) {\n this._player = player;\n this._webAdapter = adapter;\n this._config = config;\n\n this._player.addEventListener('sourcechange', this.onSourceChange);\n this._player.addEventListener('loadedmetadata', this.onLoadedMetadata);\n this._player.addEventListener('durationchange', this.onDurationChange);\n this._player.ads?.addEventListener('adbreakbegin', this.onAdbreakBegin);\n this._player.ads?.addEventListener('adbreakend', this.onAdbreakEnd);\n this.updateActionHandlers();\n }\n\n updateActionHandlers() {\n if (this.isTrickplayEnabled()) {\n mediaSession.setActionHandler('seekbackward', (event) => {\n const skipTime = event.seekOffset || this._config.skipTime;\n this._player.currentTime = Math.max(this._player.currentTime - skipTime, 0);\n });\n mediaSession.setActionHandler('seekforward', (event) => {\n const skipTime = event.seekOffset || this._config.skipTime;\n this._player.currentTime = Math.min(this._player.currentTime + skipTime, this._player.duration);\n });\n } else {\n mediaSession.setActionHandler('seekbackward', NoOp);\n mediaSession.setActionHandler('seekforward', NoOp);\n }\n\n if (this.isPlayPauseEnabled()) {\n mediaSession.setActionHandler('play', () => {\n this._player?.play();\n });\n mediaSession?.setActionHandler('pause', () => {\n this._player?.pause();\n });\n } else {\n mediaSession.setActionHandler('play', NoOp);\n mediaSession.setActionHandler('pause', NoOp);\n }\n }\n\n destroy() {\n this._player.removeEventListener('sourcechange', this.onSourceChange);\n this._player.removeEventListener('loadedmetadata', this.onLoadedMetadata);\n this._player.removeEventListener('durationchange', this.onDurationChange);\n this._player.ads?.removeEventListener('adbreakbegin', this.onAdbreakBegin);\n this._player.ads?.removeEventListener('adbreakend', this.onAdbreakEnd);\n mediaSession.setActionHandler('play', NoOp);\n mediaSession.setActionHandler('pause', NoOp);\n mediaSession.setActionHandler('seekbackward', NoOp);\n mediaSession.setActionHandler('seekforward', NoOp);\n }\n\n private onSourceChange = () => {\n this.updateMetadata();\n this.updatePositionState();\n this.updateActionHandlers();\n };\n\n private onLoadedMetadata = () => {\n this.updateActionHandlers();\n };\n\n private onDurationChange = () => {\n this.updateActionHandlers();\n };\n\n private updateMetadata = () => {\n const source = this._player.source;\n const metadata = source?.metadata;\n const artwork = [source?.poster, metadata?.displayIconUri, ...(metadata?.images ? metadata?.images : [])]\n .filter((image) => image !== undefined)\n .map((image) => {\n if (typeof image === 'string') {\n return { src: image };\n }\n return image;\n });\n mediaSession.metadata = new MediaMetadata({\n title: metadata?.title,\n artist: metadata?.artist || metadata?.subtitle,\n album: metadata?.album,\n artwork,\n });\n };\n\n private updatePositionState = () => {\n const { duration, playbackRate, currentTime } = this._player;\n const isLive = !isFinite(duration);\n if (!isLive) {\n mediaSession.setPositionState({\n // The duration is used to specify the duration in seconds.\n // It should always be positive and positive infinity can be used to indicate media without a defined end such as live playback.\n // NOTE: passing Infinite causes an exception to be thrown.\n duration: isNaN(duration) || duration < 0 ? 0 : duration,\n\n // The playbackRate is used to specify the playback rate.\n // It can be positive to represent forward playback or negative to represent backwards playback. It should not be zero.\n playbackRate,\n\n // The position is used to specify the last reported playback position in seconds. It should always be positive.\n position: currentTime,\n });\n }\n };\n\n private onAdbreakBegin = () => {\n this.updateActionHandlers();\n };\n\n private onAdbreakEnd = () => {\n this.updateActionHandlers();\n };\n\n private isLive(): boolean {\n return !isFinite(this._player.duration);\n }\n\n private isAd(): boolean {\n return this._player.ads?.playing == true;\n }\n\n private isInBackground(): boolean {\n return document.visibilityState !== 'visible';\n }\n\n private isTrickplayEnabled(): boolean {\n // By default, no trickplay for live\n if (this.isLive()) {\n return false;\n }\n\n // In PiP mode, disable trick-play for ads.\n if (this._webAdapter.presentationMode === PresentationMode.pip) {\n return !this.isAd();\n }\n // During background playback\n if (this.isInBackground()) {\n // Disable trick-play for ads.\n return !(this.isAd() || this.isLive());\n }\n return true;\n }\n\n private isPlayPauseEnabled(): boolean {\n // In PiP mode\n if (this._webAdapter.presentationMode === PresentationMode.pip) {\n // Disable play/pause for ads\n return !this.isAd();\n }\n // During background playback\n if (this.isInBackground()) {\n // Disable play/pause for ads & live content.\n return !(this.isAd() || this.isLive());\n }\n return true;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["defaultWebMediaSessionConfig","skipTime","NoOp","mediaSession","_navigator$mediaSessi","_navigator$mediaSessi2","navigator","setActionHandler","setPositionState","window","MediaMetadata","WebMediaSession","constructor","adapter","player","_this$_player$ads","_this$_player$ads2","config","arguments","length","undefined","_defineProperty","updateMetadata","updatePositionState","updateActionHandlers","source","_player","metadata","artwork","poster","displayIconUri","images","filter","image","map","src","title","artist","subtitle","album","duration","playbackRate","currentTime","isLive","isFinite","isNaN","position","_webAdapter","_config","addEventListener","onSourceChange","onLoadedMetadata","onDurationChange","ads","onAdbreakBegin","onAdbreakEnd","isTrickplayEnabled","event","seekOffset","Math","max","min","isPlayPauseEnabled","_this$_player","play","_this$_player2","pause","destroy","_this$_player$ads3","_this$_player$ads4","removeEventListener","isInAd","_this$_player$ads5","playing","isInBackground","document","visibilityState","isBackgroundAudioEnabled","backgroundAudioConfiguration","enabled"],"sources":["WebMediaSession.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\nimport type { ChromelessPlayer } from 'theoplayer';\nimport type { THEOplayerWebAdapter } from '../THEOplayerWebAdapter';\n\ninterface WebMediaSessionConfig {\n skipTime: number;\n}\n\nexport const defaultWebMediaSessionConfig: WebMediaSessionConfig = {\n skipTime: 15,\n};\n\nconst NoOp = () => {};\n\n// This prevents unnecessary errors when Media Session API is not available.\nconst mediaSession = (function () {\n const mediaSession = navigator.mediaSession || {};\n mediaSession.setActionHandler = navigator.mediaSession?.setActionHandler || function () {};\n mediaSession.setPositionState = navigator.mediaSession?.setPositionState || function () {};\n window.MediaMetadata = window.MediaMetadata || function () {};\n return mediaSession;\n})();\n\n/**\n * The MediaSession interface of the Media Session API allows a web page to provide custom behaviors for standard media playback interactions, and\n * to report metadata that can be sent by the user agent to the device or operating system for presentation in standardized user interface elements.\n *\n * @link https://w3c.github.io/mediasession\n */\nexport class WebMediaSession {\n private readonly _config: WebMediaSessionConfig;\n private readonly _player: ChromelessPlayer;\n private readonly _webAdapter: THEOplayerWebAdapter;\n\n constructor(adapter: THEOplayerWebAdapter, player: ChromelessPlayer, config: WebMediaSessionConfig = defaultWebMediaSessionConfig) {\n this._player = player;\n this._webAdapter = adapter;\n this._config = config;\n\n this._player.addEventListener('sourcechange', this.onSourceChange);\n this._player.addEventListener('loadedmetadata', this.onLoadedMetadata);\n this._player.addEventListener('durationchange', this.onDurationChange);\n this._player.ads?.addEventListener('adbreakbegin', this.onAdbreakBegin);\n this._player.ads?.addEventListener('adbreakend', this.onAdbreakEnd);\n this.updateActionHandlers();\n }\n\n updateActionHandlers() {\n if (this.isTrickplayEnabled()) {\n mediaSession.setActionHandler('seekbackward', (event) => {\n const skipTime = event.seekOffset || this._config.skipTime;\n this._player.currentTime = Math.max(this._player.currentTime - skipTime, 0);\n });\n mediaSession.setActionHandler('seekforward', (event) => {\n const skipTime = event.seekOffset || this._config.skipTime;\n this._player.currentTime = Math.min(this._player.currentTime + skipTime, this._player.duration);\n });\n } else {\n mediaSession.setActionHandler('seekbackward', NoOp);\n mediaSession.setActionHandler('seekforward', NoOp);\n }\n\n if (this.isPlayPauseEnabled()) {\n mediaSession.setActionHandler('play', () => {\n this._player?.play();\n });\n mediaSession?.setActionHandler('pause', () => {\n this._player?.pause();\n });\n } else {\n mediaSession.setActionHandler('play', NoOp);\n mediaSession.setActionHandler('pause', NoOp);\n }\n }\n\n destroy() {\n this._player.removeEventListener('sourcechange', this.onSourceChange);\n this._player.removeEventListener('loadedmetadata', this.onLoadedMetadata);\n this._player.removeEventListener('durationchange', this.onDurationChange);\n this._player.ads?.removeEventListener('adbreakbegin', this.onAdbreakBegin);\n this._player.ads?.removeEventListener('adbreakend', this.onAdbreakEnd);\n mediaSession.setActionHandler('play', NoOp);\n mediaSession.setActionHandler('pause', NoOp);\n mediaSession.setActionHandler('seekbackward', NoOp);\n mediaSession.setActionHandler('seekforward', NoOp);\n }\n\n private onSourceChange = () => {\n this.updateMetadata();\n this.updatePositionState();\n this.updateActionHandlers();\n };\n\n private onLoadedMetadata = () => {\n this.updateActionHandlers();\n };\n\n private onDurationChange = () => {\n this.updateActionHandlers();\n };\n\n private updateMetadata = () => {\n const source = this._player.source;\n const metadata = source?.metadata;\n const artwork = [source?.poster, metadata?.displayIconUri, ...(metadata?.images ? metadata?.images : [])]\n .filter((image) => image !== undefined)\n .map((image) => {\n if (typeof image === 'string') {\n return { src: image };\n }\n return image;\n });\n mediaSession.metadata = new MediaMetadata({\n title: metadata?.title,\n artist: metadata?.artist || metadata?.subtitle,\n album: metadata?.album,\n artwork,\n });\n };\n\n private updatePositionState = () => {\n const { duration, playbackRate, currentTime } = this._player;\n const isLive = !isFinite(duration);\n if (!isLive) {\n mediaSession.setPositionState({\n // The duration is used to specify the duration in seconds.\n // It should always be positive and positive infinity can be used to indicate media without a defined end such as live playback.\n // NOTE: passing Infinite causes an exception to be thrown.\n duration: isNaN(duration) || duration < 0 ? 0 : duration,\n\n // The playbackRate is used to specify the playback rate.\n // It can be positive to represent forward playback or negative to represent backwards playback. It should not be zero.\n playbackRate,\n\n // The position is used to specify the last reported playback position in seconds. It should always be positive.\n position: currentTime,\n });\n }\n };\n\n private onAdbreakBegin = () => {\n this.updateActionHandlers();\n };\n\n private onAdbreakEnd = () => {\n this.updateActionHandlers();\n };\n\n private isLive(): boolean {\n return !isFinite(this._player.duration);\n }\n\n private isInAd(): boolean {\n return this._player.ads?.playing === true;\n }\n\n private isInBackground(): boolean {\n return document.visibilityState !== 'visible';\n }\n\n // By default, only show trick-play buttons if:\n // - backgroundAudio is enabled, or the player is in foreground;\n // - and, the current asset is neither a live stream, nor an ad.\n private isTrickplayEnabled(): boolean {\n return (this.isBackgroundAudioEnabled() || !this.isInBackground()) && !this.isLive() && !this.isInAd();\n }\n\n // By default, only show a play/pause button if:\n // - backgroundAudio is enabled, or the player is in foreground;\n // - and, the current asset is not an ad.\n private isPlayPauseEnabled(): boolean {\n return (this.isBackgroundAudioEnabled() || !this.isInBackground()) && !this.isInAd();\n }\n\n private isBackgroundAudioEnabled(): boolean {\n return this._webAdapter.backgroundAudioConfiguration.enabled === true;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PresentationMode","DefaultPresentationModeChangeEvent","browserDetection","WebPresentationModeManager","constructor","player","eventForwarder","_defineProperty","inline","undefined","_player","_eventForwarder","presentationMode","_presentationMode","prepareForPresentationModeChanges","IS_SAFARI_","fullscreen","_this$_element","_this$_element$webkit","_element","webkitEnterFullscreen","call","pip","_this$_element2","_this$_element2$webki","webkitSetPresentationMode","_this$_element3","_this$_element3$webki","appElement","document","getElementById","requestFullscreen","_this$_element4","_this$_element4$reque","requestPictureInPicture","exitFullscreen","exitPictureInPicture","elements","element","children","Array","from","tagName","attributes","getNamedItem","onenterpictureinpicture","updatePresentationMode","onleavepictureinpicture","onfullscreenchange","newPresentationMode","fullscreenElement","pictureInPictureElement","previousPresentationMode","dispatchEvent"],"sources":["WebPresentationModeManager.ts"],"sourcesContent":["import type { PlayerEventMap } from 'react-native-theoplayer';\nimport { PresentationMode } from 'react-native-theoplayer';\nimport type * as THEOplayerWeb from 'theoplayer';\nimport { DefaultPresentationModeChangeEvent } from '../event/PlayerEvents';\nimport { browserDetection } from '../../../web/platform/BrowserDetection';\nimport type { DefaultEventDispatcher } from '../event/DefaultEventDispatcher';\n\nexport class WebPresentationModeManager {\n private readonly _player: THEOplayerWeb.ChromelessPlayer;\n private _presentationMode: PresentationMode = PresentationMode.inline;\n private _element: HTMLVideoElement | undefined = undefined;\n private _eventForwarder: DefaultEventDispatcher<PlayerEventMap>;\n\n constructor(player: THEOplayerWeb.ChromelessPlayer, eventForwarder: DefaultEventDispatcher<PlayerEventMap>) {\n this._player = player;\n this._eventForwarder = eventForwarder;\n }\n\n get presentationMode(): PresentationMode {\n return this._presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n if (presentationMode === this._presentationMode) {\n return;\n }\n\n this.prepareForPresentationModeChanges();\n\n // on iOS Safari requestFullscreen isn't supported (https://caniuse.com/?search=requestFullscreen), where we need to use webkit methods on the video element\n if (/*browserDetection.IS_IOS_ && */ browserDetection.IS_SAFARI_) {\n if (presentationMode === PresentationMode.fullscreen) {\n this._element?.webkitEnterFullscreen?.();\n } else if (presentationMode === PresentationMode.pip) {\n this._element?.webkitSetPresentationMode?.(PresentationMode.pip);\n } else {\n this._element?.webkitSetPresentationMode?.(PresentationMode.inline);\n }\n } else {\n // other web-platformsyarn\n\n if (presentationMode === PresentationMode.fullscreen) {\n const appElement = document.getElementById('app');\n void appElement?.requestFullscreen();\n } else if (presentationMode === PresentationMode.pip) {\n void this._element?.requestPictureInPicture?.();\n } else {\n if (this._presentationMode === PresentationMode.fullscreen) {\n void document.exitFullscreen();\n }\n if (this._presentationMode === PresentationMode.pip) {\n void document.exitPictureInPicture();\n }\n }\n }\n }\n\n private prepareForPresentationModeChanges() {\n const elements = this._player.element.children;\n for (const element of Array.from(elements)) {\n if (element.tagName === 'VIDEO' && element.attributes.getNamedItem('src') !== null) {\n this._element = element as HTMLVideoElement;\n }\n }\n // listen for pip updates on element\n if (this._element
|
|
1
|
+
{"version":3,"names":["PresentationMode","DefaultPresentationModeChangeEvent","browserDetection","WebPresentationModeManager","constructor","player","eventForwarder","_defineProperty","inline","undefined","_player","_eventForwarder","presentationMode","_presentationMode","prepareForPresentationModeChanges","IS_SAFARI_","fullscreen","_this$_element","_this$_element$webkit","_element","webkitEnterFullscreen","call","pip","_this$_element2","_this$_element2$webki","webkitSetPresentationMode","_this$_element3","_this$_element3$webki","appElement","document","getElementById","requestFullscreen","_this$_element4","_this$_element4$reque","requestPictureInPicture","exitFullscreen","exitPictureInPicture","elements","element","children","Array","from","tagName","attributes","getNamedItem","onenterpictureinpicture","updatePresentationMode","onleavepictureinpicture","onfullscreenchange","newPresentationMode","fullscreenElement","pictureInPictureElement","previousPresentationMode","dispatchEvent"],"sources":["WebPresentationModeManager.ts"],"sourcesContent":["import type { PlayerEventMap } from 'react-native-theoplayer';\nimport { PresentationMode } from 'react-native-theoplayer';\nimport type * as THEOplayerWeb from 'theoplayer';\nimport { DefaultPresentationModeChangeEvent } from '../event/PlayerEvents';\nimport { browserDetection } from '../../../web/platform/BrowserDetection';\nimport type { DefaultEventDispatcher } from '../event/DefaultEventDispatcher';\n\nexport class WebPresentationModeManager {\n private readonly _player: THEOplayerWeb.ChromelessPlayer;\n private _presentationMode: PresentationMode = PresentationMode.inline;\n private _element: HTMLVideoElement | undefined = undefined;\n private _eventForwarder: DefaultEventDispatcher<PlayerEventMap>;\n\n constructor(player: THEOplayerWeb.ChromelessPlayer, eventForwarder: DefaultEventDispatcher<PlayerEventMap>) {\n this._player = player;\n this._eventForwarder = eventForwarder;\n }\n\n get presentationMode(): PresentationMode {\n return this._presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n if (presentationMode === this._presentationMode) {\n return;\n }\n\n this.prepareForPresentationModeChanges();\n\n // on iOS Safari requestFullscreen isn't supported (https://caniuse.com/?search=requestFullscreen), where we need to use webkit methods on the video element\n if (/*browserDetection.IS_IOS_ && */ browserDetection.IS_SAFARI_) {\n if (presentationMode === PresentationMode.fullscreen) {\n this._element?.webkitEnterFullscreen?.();\n } else if (presentationMode === PresentationMode.pip) {\n this._element?.webkitSetPresentationMode?.(PresentationMode.pip);\n } else {\n this._element?.webkitSetPresentationMode?.(PresentationMode.inline);\n }\n } else {\n // other web-platformsyarn\n\n if (presentationMode === PresentationMode.fullscreen) {\n const appElement = document.getElementById('app');\n void appElement?.requestFullscreen();\n } else if (presentationMode === PresentationMode.pip) {\n void this._element?.requestPictureInPicture?.();\n } else {\n if (this._presentationMode === PresentationMode.fullscreen) {\n void document.exitFullscreen();\n }\n if (this._presentationMode === PresentationMode.pip) {\n void document.exitPictureInPicture();\n }\n }\n }\n }\n\n private prepareForPresentationModeChanges() {\n const elements = this._player.element.children;\n for (const element of Array.from(elements)) {\n if (element.tagName === 'VIDEO' && element.attributes.getNamedItem('src') !== null) {\n this._element = element as HTMLVideoElement;\n }\n }\n // listen for pip updates on element\n if (this._element !== undefined) {\n this._element.onenterpictureinpicture = () => {\n this.updatePresentationMode();\n };\n this._element.onleavepictureinpicture = () => {\n this.updatePresentationMode();\n };\n }\n // listen for fullscreen updates on document\n document.onfullscreenchange = () => {\n this.updatePresentationMode();\n };\n }\n\n private updatePresentationMode() {\n // detect new presentation mode\n let newPresentationMode: PresentationMode = PresentationMode.inline;\n if (document.fullscreenElement !== null) {\n newPresentationMode = PresentationMode.fullscreen;\n } else if (document.pictureInPictureElement !== null) {\n newPresentationMode = PresentationMode.pip;\n }\n\n // when changed, notify by dispatching presentationModeChange event\n const previousPresentationMode = this._presentationMode;\n if (newPresentationMode !== previousPresentationMode) {\n this._presentationMode = newPresentationMode;\n this._eventForwarder.dispatchEvent(new DefaultPresentationModeChangeEvent(this._presentationMode, previousPresentationMode));\n }\n }\n}\n"],"mappings":"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"}
|