react-native-theoplayer 3.6.0 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -0
  3. package/android/src/main/java/com/theoplayer/presentation/PresentationManager.kt +41 -1
  4. package/ios/THEOplayerRCTMainEventHandler.swift +6 -24
  5. package/ios/THEOplayerRCTPlayerAPI.swift +3 -16
  6. package/ios/THEOplayerRCTTextTrackEventHandler.swift +0 -9
  7. package/ios/THEOplayerRCTTrackMetadataAggregator.swift +1 -1
  8. package/ios/THEOplayerRCTView.swift +12 -10
  9. package/ios/Theoplayer-Bridging-Header.h +1 -0
  10. package/ios/pip/THEOplayerRCTView+PipConfig.swift +2 -2
  11. package/ios/{THEOplayerRCTPresentationModeContext.swift → presentationMode/THEOplayerRCTPresentationModeContext.swift} +4 -8
  12. package/ios/presentationMode/THEOplayerRCTPresentationModeManager.swift +159 -0
  13. package/ios/presentationMode/THEOplayerRCTView+PresentationMode.swift +11 -0
  14. package/ios/{THEOplayerRCTSideloadedMetadataTrackHandler.swift → sideloadedMetadata/THEOplayerRCTSideloadedMetadataProcessor.swift} +14 -4
  15. package/ios/sideloadedMetadata/THEOplayerRCTSideloadedMetadataTrackEventHandler.swift +28 -0
  16. package/lib/commonjs/internal/THEOplayerView.js +24 -3
  17. package/lib/commonjs/internal/THEOplayerView.js.map +1 -1
  18. package/lib/commonjs/internal/adapter/THEOplayerAdapter.js +3 -0
  19. package/lib/commonjs/internal/adapter/THEOplayerAdapter.js.map +1 -1
  20. package/lib/commonjs/internal/utils/Dimensions.js +31 -0
  21. package/lib/commonjs/internal/utils/Dimensions.js.map +1 -0
  22. package/lib/module/internal/THEOplayerView.js +26 -5
  23. package/lib/module/internal/THEOplayerView.js.map +1 -1
  24. package/lib/module/internal/adapter/THEOplayerAdapter.js +5 -2
  25. package/lib/module/internal/adapter/THEOplayerAdapter.js.map +1 -1
  26. package/lib/module/internal/utils/Dimensions.js +26 -0
  27. package/lib/module/internal/utils/Dimensions.js.map +1 -0
  28. package/lib/typescript/internal/THEOplayerView.d.ts +7 -1
  29. package/lib/typescript/internal/utils/Dimensions.d.ts +5 -0
  30. package/package.json +1 -1
  31. package/react-native-theoplayer.podspec +5 -5
  32. package/src/internal/THEOplayerView.tsx +25 -5
  33. package/src/internal/adapter/THEOplayerAdapter.ts +11 -7
  34. package/src/internal/utils/Dimensions.ts +24 -0
@@ -1 +1 @@
1
- {"version":3,"names":["React","PureComponent","findNodeHandle","Platform","requireNativeComponent","StyleSheet","UIManager","View","isDateRangeCue","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","version","state","nativeEvent","_facade","initializeFromNativePlayer_","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","normalizeCue","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","startTime","endTime","startDate","Date","endDate","plannedDuration","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 { isDateRangeCue, PlayerConfiguration, PlayerError, TextTrackCue, 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 { version, state } = event?.nativeEvent;\n this._facade.initializeFromNativePlayer_(version, state);\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 this.normalizeCue(cue);\n }\n this._facade.dispatchEvent(new DefaultTextTrackEvent(toTextTrackEventType(nativeEvent.type), nativeEvent.trackUid, cue));\n };\n\n private normalizeCue(cue: TextTrackCue) {\n cue.startTime = decodeNanInf(cue.startTime);\n cue.endTime = decodeNanInf(cue.endTime);\n if (isDateRangeCue(cue)) {\n cue.startDate = new Date(cue.startDate);\n if (cue.endDate) {\n cue.endDate = new Date(cue.endDate);\n }\n if (cue.duration) {\n cue.duration = decodeNanInf(cue.duration);\n }\n if (cue.plannedDuration) {\n cue.plannedDuration = decodeNanInf(cue.plannedDuration);\n }\n }\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","Dimensions","findNodeHandle","Platform","requireNativeComponent","StyleSheet","UIManager","View","isDateRangeCue","PresentationMode","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","getFullscreenSize","INVALID_HANDLE","THEOplayerView","constructor","props","_defineProperty","undefined","setState","screenSize","event","_this$props$onPlayerR","_this$props","version","state","nativeEvent","_facade","initializeFromNativePlayer_","onPlayerReady","call","reset","dispatchEvent","SOURCE_CHANGE","LOAD_START","LOADED_DATA","textTracks","audioTracks","videoTracks","duration","selectedTextTrack","selectedVideoTrack","selectedAudioTrack","volume","muted","error","seekable","buffered","CANPLAY","PLAY","PLAYING","PAUSE","SEEKING","SEEKED","WAITING","ENDED","readyState","currentTime","currentProgramDateTime","playbackRate","segmentStartTime","retryCount","type","track","cue","normalizeCue","trackUid","trackType","qualities","ad","CHROMECAST_STATE_CHANGE","AIRPLAY_STATE_CHANGE","CHROMECAST_ERROR","presentationMode","previousPresentationMode","context","_root","createRef","initialState","componentDidMount","_dimensionsHandler","addEventListener","_onDimensionsChanged","componentWillUnmount","_this$_dimensionsHand","onPlayerDestroy","DESTROY","remove","OS","command","Commands","destroy","dispatchViewManagerCommand","current","clearEventListeners","nativeHandle","startTime","endTime","startDate","Date","endDate","plannedDuration","render","config","style","children","fullscreenSize","createElement","base","fullscreen","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","inline","LINKING_ERROR","select","ios","default","ComponentName","getViewManagerConfig","Error"],"sources":["THEOplayerView.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport {\n Dimensions,\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 { ScaledSize, EmitterSubscription } from 'react-native';\nimport { isDateRangeCue, PlayerConfiguration, PlayerError, PresentationMode, TextTrackCue, 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';\nimport { getFullscreenSize } from './utils/Dimensions';\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 presentationMode?: PresentationMode | undefined;\n screenSize: ScaledSize;\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 private _dimensionsHandler?: EmitterSubscription = undefined;\n\n private static initialState: THEOplayerRCTViewState = {\n error: undefined,\n presentationMode: PresentationMode.inline,\n screenSize: getFullscreenSize(),\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 componentDidMount() {\n this._dimensionsHandler = Dimensions.addEventListener('change', this._onDimensionsChanged);\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 this._dimensionsHandler?.remove();\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 _onDimensionsChanged = () => {\n this.setState({ screenSize: getFullscreenSize() });\n };\n\n private _onNativePlayerReady = (event: NativeSyntheticEvent<NativePlayerStateEvent>) => {\n // Optionally apply an initial player state\n const { version, state } = event?.nativeEvent;\n this._facade.initializeFromNativePlayer_(version, state);\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 this.normalizeCue(cue);\n }\n this._facade.dispatchEvent(new DefaultTextTrackEvent(toTextTrackEventType(nativeEvent.type), nativeEvent.trackUid, cue));\n };\n\n private normalizeCue(cue: TextTrackCue) {\n cue.startTime = decodeNanInf(cue.startTime);\n cue.endTime = decodeNanInf(cue.endTime);\n if (isDateRangeCue(cue)) {\n cue.startDate = new Date(cue.startDate);\n if (cue.endDate) {\n cue.endDate = new Date(cue.endDate);\n }\n if (cue.duration) {\n cue.duration = decodeNanInf(cue.duration);\n }\n if (cue.plannedDuration) {\n cue.plannedDuration = decodeNanInf(cue.plannedDuration);\n }\n }\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.setState({ presentationMode: event.nativeEvent.presentationMode });\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 const { presentationMode, screenSize: fullscreenSize } = this.state;\n\n return (\n <View style={[styles.base, style, presentationMode === PresentationMode.fullscreen ? fullscreenSize : {}]}>\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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"}
@@ -6,9 +6,9 @@ import { addTextTrackCue, addTrack, AspectRatio, findMediaTrackByUid, findTextTr
6
6
  import { THEOplayerNativeAdsAdapter } from './ads/THEOplayerNativeAdsAdapter';
7
7
  import { THEOplayerNativeCastAdapter } from './cast/THEOplayerNativeCastAdapter';
8
8
  import { AbrAdapter } from './abr/AbrAdapter';
9
- import { NativeModules, Platform } from 'react-native';
9
+ import { NativeModules, Platform, StatusBar } from 'react-native';
10
10
  import { TextTrackStyleAdapter } from './track/TextTrackStyleAdapter';
11
- import { EventBroadcastAdapter } from "./broadcast/EventBroadcastAdapter";
11
+ import { EventBroadcastAdapter } from './broadcast/EventBroadcastAdapter';
12
12
  const defaultPlayerState = {
13
13
  source: undefined,
14
14
  autoplay: false,
@@ -62,6 +62,9 @@ export class THEOplayerAdapter extends DefaultEventDispatcher {
62
62
  });
63
63
  _defineProperty(this, "onPresentationModeChange", event => {
64
64
  this._state.presentationMode = event.presentationMode;
65
+ if (Platform.OS === 'ios') {
66
+ StatusBar.setHidden(event.presentationMode === PresentationMode.fullscreen, 'slide');
67
+ }
65
68
  });
66
69
  _defineProperty(this, "onTimeupdate", event => {
67
70
  this._state.currentTime = event.currentTime;
@@ -1 +1 @@
1
- {"version":3,"names":["DefaultEventDispatcher","addTextTrackCue","addTrack","AspectRatio","findMediaTrackByUid","findTextTrackByUid","MediaTrackEventType","MediaTrackType","PlayerEventType","PresentationMode","removeTextTrackCue","removeTrack","TextTrackEventType","TextTrackMode","TrackListEventType","THEOplayerNativeAdsAdapter","THEOplayerNativeCastAdapter","AbrAdapter","NativeModules","Platform","TextTrackStyleAdapter","EventBroadcastAdapter","defaultPlayerState","source","undefined","autoplay","paused","seekable","buffered","pipConfig","startsAutomatically","backgroundAudioConfig","enabled","presentationMode","inline","muted","seeking","volume","currentTime","duration","NaN","playbackRate","preload","aspectRatio","FIT","keepScreenOn","audioTracks","videoTracks","textTracks","targetVideoQuality","selectedVideoTrack","selectedAudioTrack","selectedTextTrack","THEOplayerAdapter","constructor","view","initialState","arguments","length","_defineProperty","applyAutoplay","_state","event","isFinite","start","end","_event$seekable","_event$buffered","sort","a","b","subType","cue","trackUid","track","ADD_CUE","REMOVE_CUE","ADD_TRACK","REMOVE_TRACK","CHANGE_TRACK","trackType","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","TEXT_TRACK","onTextTrack","MEDIA_TRACK","onMediaTrack","MEDIA_TRACK_LIST","onMediaTrackList","PRESENTATIONMODE_CHANGE","onPresentationModeChange","hasValidSource","abr","OS","ads","play","pause","type","PlayerModule","setPreload","nativeHandle","seekableEnd","ranges","cast","isNaN","seekTime","Infinity","setCurrentTime","pipConfiguration","setPipConfig","backgroundAudioConfiguration","setBackgroundAudioConfig","setPresentationMode","setMuted","setPlaybackRate","setSelectedAudioTrack","setSelectedVideoTrack","forEach","uid","mode","showing","disabled","setSelectedTextTrack","textTrackStyle","setSource","target","Array","isArray","targetQuality","setTargetVideoQuality","setVolume","ratio","setAspectRatio","value","setKeepScreenOn","setPaused","version","_playerVersion","broadcast","_externalEventRouter","initializeFromNativePlayer_","state","init_"],"sources":["THEOplayerAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n ABRConfiguration,\n AdsAPI,\n CastAPI,\n DurationChangeEvent, EventBroadcastAPI,\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 TextTrackEvent,\n TextTrackListEvent,\n THEOplayer,\n THEOplayerView,\n TimeUpdateEvent,\n} from 'react-native-theoplayer';\nimport {\n addTextTrackCue,\n addTrack,\n AspectRatio,\n BackgroundAudioConfiguration,\n findMediaTrackByUid,\n findTextTrackByUid,\n MediaTrackEventType,\n MediaTrackType,\n PlayerEventType,\n PlayerVersion,\n PreloadType,\n PresentationMode,\n removeTextTrackCue,\n removeTrack,\n TextTrackEventType,\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 { NativePlayerState } from './NativePlayerState';\nimport { EventBroadcastAdapter } from \"./broadcast/EventBroadcastAdapter\";\n\nconst defaultPlayerState: NativePlayerState = {\n source: undefined,\n autoplay: false,\n paused: false,\n seekable: [],\n buffered: [],\n pipConfig: { startsAutomatically: false },\n backgroundAudioConfig: { enabled: false },\n presentationMode: PresentationMode.inline,\n muted: false,\n seeking: false,\n volume: 1,\n currentTime: 0,\n duration: NaN,\n playbackRate: 1,\n preload: 'none',\n aspectRatio: AspectRatio.FIT,\n keepScreenOn: true,\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 private _externalEventRouter: EventBroadcastAPI | undefined = undefined;\n private _playerVersion!: PlayerVersion;\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.TEXT_TRACK, this.onTextTrack);\n this.addEventListener(PlayerEventType.MEDIA_TRACK, this.onMediaTrack);\n this.addEventListener(PlayerEventType.MEDIA_TRACK_LIST, this.onMediaTrackList);\n this.addEventListener(PlayerEventType.PRESENTATIONMODE_CHANGE, this.onPresentationModeChange);\n }\n\n private onSourceChange = () => {\n this.applyAutoplay();\n };\n\n private hasValidSource(): boolean {\n return this._state.source !== undefined;\n }\n\n private onPause = () => {\n this._state.paused = true;\n };\n\n private onPlaying = () => {\n this._state.paused = false;\n };\n\n private onPresentationModeChange = (event: PresentationModeChangeEvent) => {\n this._state.presentationMode = event.presentationMode;\n };\n\n private onTimeupdate = (event: TimeUpdateEvent) => {\n this._state.currentTime = event.currentTime;\n };\n\n private onLoadedMetadata = (event: LoadedMetadataEvent) => {\n this._state.duration = event.duration;\n this._state.audioTracks = event.audioTracks;\n this._state.videoTracks = event.videoTracks;\n this._state.textTracks = event.textTracks;\n this._state.selectedAudioTrack = event.selectedAudioTrack;\n this._state.selectedVideoTrack = event.selectedVideoTrack;\n this._state.selectedTextTrack = event.selectedTextTrack;\n if (isFinite(this._state.duration)) {\n this._state.seekable = [{start: 0, end: this._state.duration}];\n }\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 onTextTrack = (event: TextTrackEvent) => {\n const { subType, cue, trackUid } = event;\n const track = findTextTrackByUid(this._state.textTracks, trackUid);\n switch (subType) {\n case TextTrackEventType.ADD_CUE:\n addTextTrackCue(track, cue);\n break;\n case TextTrackEventType.REMOVE_CUE:\n removeTextTrackCue(track, cue);\n break;\n }\n };\n\n private onTextTrackList = (event: TextTrackListEvent) => {\n const { subType, track } = event;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.REMOVE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.CHANGE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n }\n };\n\n private onMediaTrack = (event: MediaTrackEvent) => {\n const { subType, trackType, trackUid } = event;\n const tracks = trackType === MediaTrackType.VIDEO ? this._state.videoTracks : this._state.audioTracks;\n const track = findMediaTrackByUid(tracks, trackUid);\n switch (subType) {\n case MediaTrackEventType.ACTIVE_QUALITY_CHANGED:\n // Update local state\n if (track) {\n Object.assign(track, { ...track, activeQuality: event.qualities });\n }\n break;\n }\n };\n\n private onMediaTrackList = (event: MediaTrackListEvent) => {\n const { subType, trackType, track } = event;\n const isAudio = trackType === MediaTrackType.AUDIO;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n if (isAudio) {\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.REMOVE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.CHANGE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n }\n };\n\n get abr(): ABRConfiguration | undefined {\n return Platform.OS === 'android' ? this._abrAdapter : undefined;\n }\n\n get ads(): AdsAPI {\n return this._adsAdapter;\n }\n\n private applyAutoplay() {\n if (!this.hasValidSource()) {\n return;\n }\n if (this._state.autoplay) {\n this.play();\n } else {\n this.pause();\n }\n }\n\n set autoplay(autoplay: boolean) {\n this._state.autoplay = autoplay;\n\n // Apply autoplay in case a source was already set.\n // If autoplay is changed before setting a source, `onSourceChange` applies autoplay.\n this.applyAutoplay();\n }\n\n get autoplay(): boolean {\n return this._state.autoplay;\n }\n\n set preload(type: PreloadType) {\n this._state.preload = type;\n NativeModules.PlayerModule.setPreload(this._view.nativeHandle, type);\n }\n\n get preload(): PreloadType {\n return this._state.preload;\n }\n\n get seekable() {\n return this._state.seekable;\n }\n\n private seekableEnd(): number {\n const ranges = this.seekable;\n return ranges.length === 0 ? 0 : ranges[ranges.length - 1].end;\n }\n\n get buffered() {\n return this._state.buffered;\n }\n\n get cast(): CastAPI {\n return this._castAdapter;\n }\n\n get currentTime(): number {\n return this._state.currentTime;\n }\n\n set currentTime(currentTime: number) {\n if (!this.hasValidSource()) {\n return;\n }\n\n if (isNaN(currentTime)) {\n return;\n }\n\n // Sanitise currentTime\n let seekTime = currentTime;\n if (currentTime === Infinity) {\n seekTime = this.seekableEnd();\n }\n\n this._state.currentTime = seekTime;\n NativeModules.PlayerModule.setCurrentTime(this._view.nativeHandle, seekTime);\n }\n\n get duration(): number {\n return this._state.duration;\n }\n\n get pipConfiguration(): PiPConfiguration {\n return this._state.pipConfig;\n }\n\n set pipConfiguration(pipConfiguration: PiPConfiguration) {\n this._state.pipConfig = pipConfiguration;\n NativeModules.PlayerModule.setPipConfig(this._view.nativeHandle, pipConfiguration);\n }\n\n get backgroundAudioConfiguration(): BackgroundAudioConfiguration {\n return this._state.backgroundAudioConfig;\n }\n\n set backgroundAudioConfiguration(backgroundAudioConfiguration: BackgroundAudioConfiguration) {\n this._state.backgroundAudioConfig = backgroundAudioConfiguration;\n NativeModules.PlayerModule.setBackgroundAudioConfig(this._view.nativeHandle, backgroundAudioConfiguration);\n }\n\n get presentationMode(): PresentationMode {\n return this._state.presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n this._state.presentationMode = presentationMode;\n NativeModules.PlayerModule.setPresentationMode(this._view.nativeHandle, presentationMode);\n }\n\n get muted(): boolean {\n return this._state.muted;\n }\n\n set muted(muted: boolean) {\n this._state.muted = muted;\n NativeModules.PlayerModule.setMuted(this._view.nativeHandle, muted);\n }\n\n get seeking(): boolean {\n return this._state.seeking;\n }\n\n get paused(): boolean {\n return this._state.paused;\n }\n\n get playbackRate(): number {\n return this._state.playbackRate;\n }\n\n set playbackRate(playbackRate: number) {\n this._state.playbackRate = playbackRate;\n NativeModules.PlayerModule.setPlaybackRate(this._view.nativeHandle, playbackRate);\n }\n\n get audioTracks(): MediaTrack[] {\n return this._state.audioTracks;\n }\n\n get selectedAudioTrack(): number | undefined {\n return this._state.selectedAudioTrack;\n }\n\n set selectedAudioTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedAudioTrack = trackUid;\n NativeModules.PlayerModule.setSelectedAudioTrack(this._view.nativeHandle, (trackUid !== undefined) ? trackUid : -1);\n }\n\n get videoTracks(): MediaTrack[] {\n return this._state.videoTracks;\n }\n\n get selectedVideoTrack(): number | undefined {\n return this._state.selectedVideoTrack;\n }\n\n set selectedVideoTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedVideoTrack = trackUid;\n this._state.targetVideoQuality = undefined;\n NativeModules.PlayerModule.setSelectedVideoTrack(this._view.nativeHandle, (trackUid !== undefined) ? trackUid : -1);\n }\n\n get textTracks(): TextTrack[] {\n return this._state.textTracks;\n }\n\n get selectedTextTrack(): number | undefined {\n return this._state.selectedTextTrack;\n }\n\n set selectedTextTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedTextTrack = trackUid;\n this.textTracks.forEach((track) => {\n if (track.uid === trackUid) {\n track.mode = TextTrackMode.showing;\n } else if (track.mode === TextTrackMode.showing) {\n track.mode = TextTrackMode.disabled;\n }\n });\n NativeModules.PlayerModule.setSelectedTextTrack(this._view.nativeHandle, (trackUid !== undefined) ? trackUid : -1);\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._textTrackStyleAdapter;\n }\n\n get source(): SourceDescription | undefined {\n return this._state.source;\n }\n\n set source(source: SourceDescription | undefined) {\n // This is to correctly reset autoplay during a source change.\n this.pause();\n this._state.source = source;\n NativeModules.PlayerModule.setSource(this._view.nativeHandle, source);\n // Reset state for play-out of new source\n Object.assign(this._state, {\n playbackRate: 1,\n seeking: false,\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n seekable: [],\n buffered: [],\n selectedTextTrack: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n targetVideoQuality: undefined,\n });\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n return this._state.targetVideoQuality;\n }\n\n set targetVideoQuality(target: number | number[] | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n // Always pass an array for targetVideoQuality.\n this._state.targetVideoQuality = !target ? [] : Array.isArray(target) ? target : [target];\n\n // Update local state\n const track = findMediaTrackByUid(this._state.videoTracks, this.selectedVideoTrack);\n if (track) {\n Object.assign(track, { ...track, targetQuality: this._state.targetVideoQuality });\n }\n NativeModules.PlayerModule.setTargetVideoQuality(this._view.nativeHandle, this._state.targetVideoQuality);\n }\n\n get volume(): number {\n return this._state.volume;\n }\n\n set volume(volume: number) {\n this._state.volume = volume;\n NativeModules.PlayerModule.setVolume(this._view.nativeHandle, volume);\n }\n\n get aspectRatio(): AspectRatio {\n return this._state.aspectRatio;\n }\n\n set aspectRatio(ratio: AspectRatio) {\n this._state.aspectRatio = ratio;\n NativeModules.PlayerModule.setAspectRatio(this._view.nativeHandle, ratio);\n }\n\n get keepScreenOn(): boolean {\n return this._state.keepScreenOn;\n }\n\n set keepScreenOn(value: boolean) {\n this._state.keepScreenOn = value;\n if (Platform.OS === 'android') {\n NativeModules.PlayerModule.setKeepScreenOn(this._view.nativeHandle, value);\n }\n }\n\n pause(): void {\n if (this.hasValidSource()) {\n this._state.paused = true;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, true);\n }\n }\n\n play(): void {\n if (this.hasValidSource()) {\n this._state.paused = false;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, false);\n }\n }\n\n public get version(): PlayerVersion {\n return this._playerVersion;\n }\n\n // @internal\n get nativeHandle(): NativeHandleType {\n return this._view.nativeHandle;\n }\n\n // @internal\n get broadcast(): EventBroadcastAPI {\n return this._externalEventRouter ?? (this._externalEventRouter = new EventBroadcastAdapter(this));\n }\n\n initializeFromNativePlayer_(version: PlayerVersion, state: NativePlayerState | undefined) {\n this._playerVersion = version;\n if (state) {\n Object.assign(this._state, state);\n this._castAdapter.init_();\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["DefaultEventDispatcher","addTextTrackCue","addTrack","AspectRatio","findMediaTrackByUid","findTextTrackByUid","MediaTrackEventType","MediaTrackType","PlayerEventType","PresentationMode","removeTextTrackCue","removeTrack","TextTrackEventType","TextTrackMode","TrackListEventType","THEOplayerNativeAdsAdapter","THEOplayerNativeCastAdapter","AbrAdapter","NativeModules","Platform","StatusBar","TextTrackStyleAdapter","EventBroadcastAdapter","defaultPlayerState","source","undefined","autoplay","paused","seekable","buffered","pipConfig","startsAutomatically","backgroundAudioConfig","enabled","presentationMode","inline","muted","seeking","volume","currentTime","duration","NaN","playbackRate","preload","aspectRatio","FIT","keepScreenOn","audioTracks","videoTracks","textTracks","targetVideoQuality","selectedVideoTrack","selectedAudioTrack","selectedTextTrack","THEOplayerAdapter","constructor","view","initialState","arguments","length","_defineProperty","applyAutoplay","_state","event","OS","setHidden","fullscreen","isFinite","start","end","_event$seekable","_event$buffered","sort","a","b","subType","cue","trackUid","track","ADD_CUE","REMOVE_CUE","ADD_TRACK","REMOVE_TRACK","CHANGE_TRACK","trackType","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","TEXT_TRACK","onTextTrack","MEDIA_TRACK","onMediaTrack","MEDIA_TRACK_LIST","onMediaTrackList","PRESENTATIONMODE_CHANGE","onPresentationModeChange","hasValidSource","abr","ads","play","pause","type","PlayerModule","setPreload","nativeHandle","seekableEnd","ranges","cast","isNaN","seekTime","Infinity","setCurrentTime","pipConfiguration","setPipConfig","backgroundAudioConfiguration","setBackgroundAudioConfig","setPresentationMode","setMuted","setPlaybackRate","setSelectedAudioTrack","setSelectedVideoTrack","forEach","uid","mode","showing","disabled","setSelectedTextTrack","textTrackStyle","setSource","target","Array","isArray","targetQuality","setTargetVideoQuality","setVolume","ratio","setAspectRatio","value","setKeepScreenOn","setPaused","version","_playerVersion","broadcast","_externalEventRouter","initializeFromNativePlayer_","state","init_"],"sources":["THEOplayerAdapter.ts"],"sourcesContent":["import { DefaultEventDispatcher } from './event/DefaultEventDispatcher';\nimport type {\n ABRConfiguration,\n AdsAPI,\n CastAPI,\n DurationChangeEvent,\n EventBroadcastAPI,\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 TextTrackEvent,\n TextTrackListEvent,\n THEOplayer,\n THEOplayerView,\n TimeUpdateEvent,\n} from 'react-native-theoplayer';\nimport {\n addTextTrackCue,\n addTrack,\n AspectRatio,\n BackgroundAudioConfiguration,\n findMediaTrackByUid,\n findTextTrackByUid,\n MediaTrackEventType,\n MediaTrackType,\n PlayerEventType,\n PlayerVersion,\n PreloadType,\n PresentationMode,\n removeTextTrackCue,\n removeTrack,\n TextTrackEventType,\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, StatusBar } from 'react-native';\nimport { TextTrackStyleAdapter } from './track/TextTrackStyleAdapter';\nimport type { NativePlayerState } from './NativePlayerState';\nimport { EventBroadcastAdapter } from './broadcast/EventBroadcastAdapter';\n\nconst defaultPlayerState: NativePlayerState = {\n source: undefined,\n autoplay: false,\n paused: false,\n seekable: [],\n buffered: [],\n pipConfig: { startsAutomatically: false },\n backgroundAudioConfig: { enabled: false },\n presentationMode: PresentationMode.inline,\n muted: false,\n seeking: false,\n volume: 1,\n currentTime: 0,\n duration: NaN,\n playbackRate: 1,\n preload: 'none',\n aspectRatio: AspectRatio.FIT,\n keepScreenOn: true,\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 private _externalEventRouter: EventBroadcastAPI | undefined = undefined;\n private _playerVersion!: PlayerVersion;\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.TEXT_TRACK, this.onTextTrack);\n this.addEventListener(PlayerEventType.MEDIA_TRACK, this.onMediaTrack);\n this.addEventListener(PlayerEventType.MEDIA_TRACK_LIST, this.onMediaTrackList);\n this.addEventListener(PlayerEventType.PRESENTATIONMODE_CHANGE, this.onPresentationModeChange);\n }\n\n private onSourceChange = () => {\n this.applyAutoplay();\n };\n\n private hasValidSource(): boolean {\n return this._state.source !== undefined;\n }\n\n private onPause = () => {\n this._state.paused = true;\n };\n\n private onPlaying = () => {\n this._state.paused = false;\n };\n\n private onPresentationModeChange = (event: PresentationModeChangeEvent) => {\n this._state.presentationMode = event.presentationMode;\n if (Platform.OS === 'ios') {\n StatusBar.setHidden(event.presentationMode === PresentationMode.fullscreen, 'slide');\n }\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 if (isFinite(this._state.duration)) {\n this._state.seekable = [{ start: 0, end: this._state.duration }];\n }\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 onTextTrack = (event: TextTrackEvent) => {\n const { subType, cue, trackUid } = event;\n const track = findTextTrackByUid(this._state.textTracks, trackUid);\n switch (subType) {\n case TextTrackEventType.ADD_CUE:\n addTextTrackCue(track, cue);\n break;\n case TextTrackEventType.REMOVE_CUE:\n removeTextTrackCue(track, cue);\n break;\n }\n };\n\n private onTextTrackList = (event: TextTrackListEvent) => {\n const { subType, track } = event;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.REMOVE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n break;\n case TrackListEventType.CHANGE_TRACK:\n this._state.textTracks = removeTrack(this._state.textTracks, track);\n this._state.textTracks = addTrack(this._state.textTracks, track);\n break;\n }\n };\n\n private onMediaTrack = (event: MediaTrackEvent) => {\n const { subType, trackType, trackUid } = event;\n const tracks = trackType === MediaTrackType.VIDEO ? this._state.videoTracks : this._state.audioTracks;\n const track = findMediaTrackByUid(tracks, trackUid);\n switch (subType) {\n case MediaTrackEventType.ACTIVE_QUALITY_CHANGED:\n // Update local state\n if (track) {\n Object.assign(track, { ...track, activeQuality: event.qualities });\n }\n break;\n }\n };\n\n private onMediaTrackList = (event: MediaTrackListEvent) => {\n const { subType, trackType, track } = event;\n const isAudio = trackType === MediaTrackType.AUDIO;\n switch (subType) {\n case TrackListEventType.ADD_TRACK:\n if (isAudio) {\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.REMOVE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n }\n break;\n case TrackListEventType.CHANGE_TRACK:\n if (isAudio) {\n this._state.audioTracks = removeTrack(this._state.audioTracks, track);\n this._state.audioTracks = addTrack(this._state.audioTracks, track);\n } else {\n this._state.videoTracks = removeTrack(this._state.videoTracks, track);\n this._state.videoTracks = addTrack(this._state.videoTracks, track);\n }\n break;\n }\n };\n\n get abr(): ABRConfiguration | undefined {\n return Platform.OS === 'android' ? this._abrAdapter : undefined;\n }\n\n get ads(): AdsAPI {\n return this._adsAdapter;\n }\n\n private applyAutoplay() {\n if (!this.hasValidSource()) {\n return;\n }\n if (this._state.autoplay) {\n this.play();\n } else {\n this.pause();\n }\n }\n\n set autoplay(autoplay: boolean) {\n this._state.autoplay = autoplay;\n\n // Apply autoplay in case a source was already set.\n // If autoplay is changed before setting a source, `onSourceChange` applies autoplay.\n this.applyAutoplay();\n }\n\n get autoplay(): boolean {\n return this._state.autoplay;\n }\n\n set preload(type: PreloadType) {\n this._state.preload = type;\n NativeModules.PlayerModule.setPreload(this._view.nativeHandle, type);\n }\n\n get preload(): PreloadType {\n return this._state.preload;\n }\n\n get seekable() {\n return this._state.seekable;\n }\n\n private seekableEnd(): number {\n const ranges = this.seekable;\n return ranges.length === 0 ? 0 : ranges[ranges.length - 1].end;\n }\n\n get buffered() {\n return this._state.buffered;\n }\n\n get cast(): CastAPI {\n return this._castAdapter;\n }\n\n get currentTime(): number {\n return this._state.currentTime;\n }\n\n set currentTime(currentTime: number) {\n if (!this.hasValidSource()) {\n return;\n }\n\n if (isNaN(currentTime)) {\n return;\n }\n\n // Sanitise currentTime\n let seekTime = currentTime;\n if (currentTime === Infinity) {\n seekTime = this.seekableEnd();\n }\n\n this._state.currentTime = seekTime;\n NativeModules.PlayerModule.setCurrentTime(this._view.nativeHandle, seekTime);\n }\n\n get duration(): number {\n return this._state.duration;\n }\n\n get pipConfiguration(): PiPConfiguration {\n return this._state.pipConfig;\n }\n\n set pipConfiguration(pipConfiguration: PiPConfiguration) {\n this._state.pipConfig = pipConfiguration;\n NativeModules.PlayerModule.setPipConfig(this._view.nativeHandle, pipConfiguration);\n }\n\n get backgroundAudioConfiguration(): BackgroundAudioConfiguration {\n return this._state.backgroundAudioConfig;\n }\n\n set backgroundAudioConfiguration(backgroundAudioConfiguration: BackgroundAudioConfiguration) {\n this._state.backgroundAudioConfig = backgroundAudioConfiguration;\n NativeModules.PlayerModule.setBackgroundAudioConfig(this._view.nativeHandle, backgroundAudioConfiguration);\n }\n\n get presentationMode(): PresentationMode {\n return this._state.presentationMode;\n }\n\n set presentationMode(presentationMode: PresentationMode) {\n this._state.presentationMode = presentationMode;\n NativeModules.PlayerModule.setPresentationMode(this._view.nativeHandle, presentationMode);\n }\n\n get muted(): boolean {\n return this._state.muted;\n }\n\n set muted(muted: boolean) {\n this._state.muted = muted;\n NativeModules.PlayerModule.setMuted(this._view.nativeHandle, muted);\n }\n\n get seeking(): boolean {\n return this._state.seeking;\n }\n\n get paused(): boolean {\n return this._state.paused;\n }\n\n get playbackRate(): number {\n return this._state.playbackRate;\n }\n\n set playbackRate(playbackRate: number) {\n this._state.playbackRate = playbackRate;\n NativeModules.PlayerModule.setPlaybackRate(this._view.nativeHandle, playbackRate);\n }\n\n get audioTracks(): MediaTrack[] {\n return this._state.audioTracks;\n }\n\n get selectedAudioTrack(): number | undefined {\n return this._state.selectedAudioTrack;\n }\n\n set selectedAudioTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedAudioTrack = trackUid;\n NativeModules.PlayerModule.setSelectedAudioTrack(this._view.nativeHandle, trackUid !== undefined ? trackUid : -1);\n }\n\n get videoTracks(): MediaTrack[] {\n return this._state.videoTracks;\n }\n\n get selectedVideoTrack(): number | undefined {\n return this._state.selectedVideoTrack;\n }\n\n set selectedVideoTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedVideoTrack = trackUid;\n this._state.targetVideoQuality = undefined;\n NativeModules.PlayerModule.setSelectedVideoTrack(this._view.nativeHandle, trackUid !== undefined ? trackUid : -1);\n }\n\n get textTracks(): TextTrack[] {\n return this._state.textTracks;\n }\n\n get selectedTextTrack(): number | undefined {\n return this._state.selectedTextTrack;\n }\n\n set selectedTextTrack(trackUid: number | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n this._state.selectedTextTrack = trackUid;\n this.textTracks.forEach((track) => {\n if (track.uid === trackUid) {\n track.mode = TextTrackMode.showing;\n } else if (track.mode === TextTrackMode.showing) {\n track.mode = TextTrackMode.disabled;\n }\n });\n NativeModules.PlayerModule.setSelectedTextTrack(this._view.nativeHandle, trackUid !== undefined ? trackUid : -1);\n }\n\n get textTrackStyle(): TextTrackStyle {\n return this._textTrackStyleAdapter;\n }\n\n get source(): SourceDescription | undefined {\n return this._state.source;\n }\n\n set source(source: SourceDescription | undefined) {\n // This is to correctly reset autoplay during a source change.\n this.pause();\n this._state.source = source;\n NativeModules.PlayerModule.setSource(this._view.nativeHandle, source);\n // Reset state for play-out of new source\n Object.assign(this._state, {\n playbackRate: 1,\n seeking: false,\n audioTracks: [],\n videoTracks: [],\n textTracks: [],\n seekable: [],\n buffered: [],\n selectedTextTrack: undefined,\n selectedVideoTrack: undefined,\n selectedAudioTrack: undefined,\n targetVideoQuality: undefined,\n });\n }\n\n get targetVideoQuality(): number | number[] | undefined {\n return this._state.targetVideoQuality;\n }\n\n set targetVideoQuality(target: number | number[] | undefined) {\n if (!this.hasValidSource()) {\n return;\n }\n // Always pass an array for targetVideoQuality.\n this._state.targetVideoQuality = !target ? [] : Array.isArray(target) ? target : [target];\n\n // Update local state\n const track = findMediaTrackByUid(this._state.videoTracks, this.selectedVideoTrack);\n if (track) {\n Object.assign(track, { ...track, targetQuality: this._state.targetVideoQuality });\n }\n NativeModules.PlayerModule.setTargetVideoQuality(this._view.nativeHandle, this._state.targetVideoQuality);\n }\n\n get volume(): number {\n return this._state.volume;\n }\n\n set volume(volume: number) {\n this._state.volume = volume;\n NativeModules.PlayerModule.setVolume(this._view.nativeHandle, volume);\n }\n\n get aspectRatio(): AspectRatio {\n return this._state.aspectRatio;\n }\n\n set aspectRatio(ratio: AspectRatio) {\n this._state.aspectRatio = ratio;\n NativeModules.PlayerModule.setAspectRatio(this._view.nativeHandle, ratio);\n }\n\n get keepScreenOn(): boolean {\n return this._state.keepScreenOn;\n }\n\n set keepScreenOn(value: boolean) {\n this._state.keepScreenOn = value;\n if (Platform.OS === 'android') {\n NativeModules.PlayerModule.setKeepScreenOn(this._view.nativeHandle, value);\n }\n }\n\n pause(): void {\n if (this.hasValidSource()) {\n this._state.paused = true;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, true);\n }\n }\n\n play(): void {\n if (this.hasValidSource()) {\n this._state.paused = false;\n NativeModules.PlayerModule.setPaused(this._view.nativeHandle, false);\n }\n }\n\n public get version(): PlayerVersion {\n return this._playerVersion;\n }\n\n // @internal\n get nativeHandle(): NativeHandleType {\n return this._view.nativeHandle;\n }\n\n // @internal\n get broadcast(): EventBroadcastAPI {\n return this._externalEventRouter ?? (this._externalEventRouter = new EventBroadcastAdapter(this));\n }\n\n initializeFromNativePlayer_(version: PlayerVersion, state: NativePlayerState | undefined) {\n this._playerVersion = version;\n if (state) {\n Object.assign(this._state, state);\n this._castAdapter.init_();\n }\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { Dimensions, Platform, StatusBar } from 'react-native';
2
+
3
+ /**
4
+ * Calculate the device's screen dimensions, while taking into account the statusBar height and orientation on Android.
5
+ */
6
+ export function getFullscreenSize() {
7
+ const screenSize = Dimensions.get('screen');
8
+
9
+ // Adjust for statusBar height on Android, depending on the device's current orientation.
10
+ if (Platform.OS === 'android' && Platform.Version >= 29) {
11
+ const statusBarHeight = StatusBar.currentHeight || 0;
12
+ if (screenSize.width < screenSize.height) {
13
+ // portrait
14
+ if (screenSize.height !== Dimensions.get('window').height + statusBarHeight) {
15
+ screenSize.height = screenSize.height - statusBarHeight;
16
+ }
17
+ } else {
18
+ // landscape
19
+ if (screenSize.width !== Dimensions.get('window').width) {
20
+ screenSize.width = screenSize.width - statusBarHeight;
21
+ }
22
+ }
23
+ }
24
+ return screenSize;
25
+ }
26
+ //# sourceMappingURL=Dimensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Dimensions","Platform","StatusBar","getFullscreenSize","screenSize","get","OS","Version","statusBarHeight","currentHeight","width","height"],"sources":["Dimensions.ts"],"sourcesContent":["import type { ScaledSize } from 'react-native/Libraries/Utilities/Dimensions';\nimport { Dimensions, Platform, StatusBar } from 'react-native';\n\n/**\n * Calculate the device's screen dimensions, while taking into account the statusBar height and orientation on Android.\n */\nexport function getFullscreenSize(): ScaledSize {\n const screenSize = Dimensions.get('screen');\n\n // Adjust for statusBar height on Android, depending on the device's current orientation.\n if (Platform.OS === 'android' && Platform.Version >= 29) {\n const statusBarHeight = (StatusBar.currentHeight || 0);\n if (screenSize.width < screenSize.height) { // portrait\n if (screenSize.height !== Dimensions.get('window').height + statusBarHeight) {\n screenSize.height = screenSize.height - statusBarHeight;\n }\n } else { // landscape\n if (screenSize.width !== Dimensions.get('window').width) {\n screenSize.width = screenSize.width - statusBarHeight;\n }\n }\n }\n return screenSize;\n}\n"],"mappings":"AACA,SAASA,UAAU,EAAEC,QAAQ,EAAEC,SAAS,QAAQ,cAAc;;AAE9D;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAAA,EAAe;EAC9C,MAAMC,UAAU,GAAGJ,UAAU,CAACK,GAAG,CAAC,QAAQ,CAAC;;EAE3C;EACA,IAAIJ,QAAQ,CAACK,EAAE,KAAK,SAAS,IAAIL,QAAQ,CAACM,OAAO,IAAI,EAAE,EAAE;IACvD,MAAMC,eAAe,GAAIN,SAAS,CAACO,aAAa,IAAI,CAAE;IACtD,IAAIL,UAAU,CAACM,KAAK,GAAGN,UAAU,CAACO,MAAM,EAAE;MAAE;MAC1C,IAAIP,UAAU,CAACO,MAAM,KAAKX,UAAU,CAACK,GAAG,CAAC,QAAQ,CAAC,CAACM,MAAM,GAAGH,eAAe,EAAE;QAC3EJ,UAAU,CAACO,MAAM,GAAGP,UAAU,CAACO,MAAM,GAAGH,eAAe;MACzD;IACF,CAAC,MAAM;MAAE;MACP,IAAIJ,UAAU,CAACM,KAAK,KAAKV,UAAU,CAACK,GAAG,CAAC,QAAQ,CAAC,CAACK,KAAK,EAAE;QACvDN,UAAU,CAACM,KAAK,GAAGN,UAAU,CAACM,KAAK,GAAGF,eAAe;MACvD;IACF;EACF;EACA,OAAOJ,UAAU;AACnB"}
@@ -1,16 +1,22 @@
1
1
  import React, { PureComponent } from 'react';
2
- import { PlayerError, THEOplayerViewProps } from 'react-native-theoplayer';
2
+ import type { ScaledSize } from 'react-native';
3
+ import { PlayerError, PresentationMode, THEOplayerViewProps } from 'react-native-theoplayer';
3
4
  interface THEOplayerRCTViewState {
4
5
  error?: PlayerError;
6
+ presentationMode?: PresentationMode | undefined;
7
+ screenSize: ScaledSize;
5
8
  }
6
9
  export declare class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOplayerViewProps>, THEOplayerRCTViewState> {
7
10
  private readonly _root;
8
11
  private readonly _facade;
12
+ private _dimensionsHandler?;
9
13
  private static initialState;
10
14
  constructor(props: THEOplayerViewProps);
15
+ componentDidMount(): void;
11
16
  componentWillUnmount(): void;
12
17
  get nativeHandle(): number;
13
18
  private reset;
19
+ private _onDimensionsChanged;
14
20
  private _onNativePlayerReady;
15
21
  private _onSourceChange;
16
22
  private _onLoadStart;
@@ -0,0 +1,5 @@
1
+ import type { ScaledSize } from 'react-native/Libraries/Utilities/Dimensions';
2
+ /**
3
+ * Calculate the device's screen dimensions, while taking into account the statusBar height and orientation on Android.
4
+ */
5
+ export declare function getFullscreenSize(): ScaledSize;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-theoplayer",
3
- "version": "3.6.0",
3
+ "version": "3.7.0",
4
4
  "description": "A THEOplayer video component for react-native.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -20,7 +20,7 @@ Pod::Spec.new do |s|
20
20
  s.platforms = { :ios => "12.0", :tvos => "12.0" }
21
21
  s.source = { :git => "https://www.theoplayer.com/.git", :tag => "#{s.version}" }
22
22
 
23
- s.source_files = 'ios/*.{h,m,swift}', 'ios/ads/*.swift', 'ios/casting/*.swift', 'ios/contentprotection/*.swift', 'ios/pip/*.swift', 'ios/backgroundAudio/*.swift', 'ios/cache/*.swift', 'ios/eventBroadcasting/*.swift' , 'ios/ui/*.swift'
23
+ s.source_files = 'ios/*.{h,m,swift}', 'ios/ads/*.swift', 'ios/casting/*.swift', 'ios/contentprotection/*.swift', 'ios/pip/*.swift', 'ios/backgroundAudio/*.swift', 'ios/cache/*.swift', 'ios/sideloadedMetadata/*.swift', 'ios/eventBroadcasting/*.swift' , 'ios/ui/*.swift', 'ios/presentationMode/*.swift'
24
24
  s.resources = ['ios/*.css']
25
25
 
26
26
  # ReactNative Dependency
@@ -36,18 +36,18 @@ Pod::Spec.new do |s|
36
36
  }
37
37
  else
38
38
  puts "Using THEOplayer-core SDK"
39
- s.dependency "THEOplayerSDK-core", "~> 6.0"
39
+ s.dependency "THEOplayerSDK-core", "~> 6.9"
40
40
  if theofeatures.include?("GOOGLE_IMA")
41
41
  puts "Adding THEOplayer-Integration-GoogleIMA"
42
- s.dependency "THEOplayer-Integration-GoogleIMA", "~> 6.0"
42
+ s.dependency "THEOplayer-Integration-GoogleIMA", "~> 6.9"
43
43
  end
44
44
  if theofeatures.include?("CHROMECAST")
45
45
  puts "Adding THEOplayer-Integration-GoogleCast"
46
- s.ios.dependency "THEOplayer-Integration-GoogleCast", "~> 6.0"
46
+ s.ios.dependency "THEOplayer-Integration-GoogleCast", "~> 6.9"
47
47
  end
48
48
  if theofeatures.include?("SIDELOADED_TEXTTRACKS")
49
49
  puts "Adding THEOplayer-Connector-SideloadedSubtitle"
50
- s.dependency "THEOplayer-Connector-SideloadedSubtitle", "~> 6.1", ">= 6.1.1"
50
+ s.dependency "THEOplayer-Connector-SideloadedSubtitle", "~> 6.9"
51
51
  end
52
52
  end
53
53
 
@@ -1,5 +1,6 @@
1
1
  import React, { PureComponent } from 'react';
2
2
  import {
3
+ Dimensions,
3
4
  findNodeHandle,
4
5
  HostComponent,
5
6
  NativeSyntheticEvent,
@@ -11,7 +12,8 @@ import {
11
12
  View,
12
13
  ViewStyle,
13
14
  } from 'react-native';
14
- import { isDateRangeCue, PlayerConfiguration, PlayerError, TextTrackCue, THEOplayerViewProps } from 'react-native-theoplayer';
15
+ import type { ScaledSize, EmitterSubscription } from 'react-native';
16
+ import { isDateRangeCue, PlayerConfiguration, PlayerError, PresentationMode, TextTrackCue, THEOplayerViewProps } from 'react-native-theoplayer';
15
17
  import { CastEventType, PlayerEventType } from 'react-native-theoplayer';
16
18
 
17
19
  import styles from './THEOplayerView.style';
@@ -60,6 +62,7 @@ import type {
60
62
  } from './adapter/event/native/NativePlayerEvent';
61
63
  import type { NativeAdEvent } from './adapter/event/native/NativeAdEvent';
62
64
  import { THEOplayerAdapter } from './adapter/THEOplayerAdapter';
65
+ import { getFullscreenSize } from './utils/Dimensions';
63
66
 
64
67
  const INVALID_HANDLE = -1;
65
68
 
@@ -99,6 +102,8 @@ interface THEOplayerRCTViewProps {
99
102
 
100
103
  interface THEOplayerRCTViewState {
101
104
  error?: PlayerError;
105
+ presentationMode?: PresentationMode | undefined;
106
+ screenSize: ScaledSize;
102
107
  }
103
108
 
104
109
  type THEOplayerViewNativeComponent = HostComponent<THEOplayerRCTViewProps>;
@@ -106,9 +111,12 @@ type THEOplayerViewNativeComponent = HostComponent<THEOplayerRCTViewProps>;
106
111
  export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOplayerViewProps>, THEOplayerRCTViewState> {
107
112
  private readonly _root: React.RefObject<THEOplayerViewNativeComponent>;
108
113
  private readonly _facade: THEOplayerAdapter;
114
+ private _dimensionsHandler?: EmitterSubscription = undefined;
109
115
 
110
116
  private static initialState: THEOplayerRCTViewState = {
111
117
  error: undefined,
118
+ presentationMode: PresentationMode.inline,
119
+ screenSize: getFullscreenSize(),
112
120
  };
113
121
 
114
122
  constructor(props: THEOplayerViewProps) {
@@ -118,6 +126,10 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
118
126
  this._facade = new THEOplayerAdapter(this);
119
127
  }
120
128
 
129
+ componentDidMount() {
130
+ this._dimensionsHandler = Dimensions.addEventListener('change', this._onDimensionsChanged);
131
+ }
132
+
121
133
  componentWillUnmount() {
122
134
  // Notify the player will be destroyed.
123
135
  const { onPlayerDestroy } = this.props;
@@ -125,6 +137,7 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
125
137
  onPlayerDestroy(this._facade);
126
138
  }
127
139
  this._facade.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));
140
+ this._dimensionsHandler?.remove();
128
141
 
129
142
  if (Platform.OS === 'ios') {
130
143
  // TODO: move to native module
@@ -143,6 +156,10 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
143
156
  this.setState(THEOplayerView.initialState);
144
157
  }
145
158
 
159
+ private _onDimensionsChanged = () => {
160
+ this.setState({ screenSize: getFullscreenSize() });
161
+ };
162
+
146
163
  private _onNativePlayerReady = (event: NativeSyntheticEvent<NativePlayerStateEvent>) => {
147
164
  // Optionally apply an initial player state
148
165
  const { version, state } = event?.nativeEvent;
@@ -315,6 +332,7 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
315
332
  };
316
333
 
317
334
  private _onPresentationModeChange = (event: NativeSyntheticEvent<NativePresentationModeChangeEvent>) => {
335
+ this.setState({ presentationMode: event.nativeEvent.presentationMode });
318
336
  this._facade.dispatchEvent(
319
337
  new DefaultPresentationModeChangeEvent(
320
338
  event.nativeEvent.presentationMode,
@@ -326,8 +344,10 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
326
344
 
327
345
  public render(): JSX.Element {
328
346
  const { config, style, children } = this.props;
347
+ const { presentationMode, screenSize: fullscreenSize } = this.state;
348
+
329
349
  return (
330
- <View style={[styles.base, style]}>
350
+ <View style={[styles.base, style, presentationMode === PresentationMode.fullscreen ? fullscreenSize : {}]}>
331
351
  <THEOplayerRCTView
332
352
  ref={this._root}
333
353
  style={StyleSheet.absoluteFill}
@@ -369,7 +389,7 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
369
389
 
370
390
  const LINKING_ERROR =
371
391
  `The package 'react-native-theoplayer' doesn't seem to be linked. Make sure: \n\n` +
372
- Platform.select({ ios: "- You have run 'pod install'\n", default: '' }) +
392
+ Platform.select({ ios: '- You have run \'pod install\'\n', default: '' }) +
373
393
  '- You rebuilt the app after installing the package\n' +
374
394
  '- You are not using Expo managed workflow\n';
375
395
 
@@ -379,5 +399,5 @@ const THEOplayerRCTView =
379
399
  UIManager.getViewManagerConfig(ComponentName) != null
380
400
  ? requireNativeComponent<THEOplayerRCTViewProps>(ComponentName)
381
401
  : () => {
382
- throw new Error(LINKING_ERROR);
383
- };
402
+ throw new Error(LINKING_ERROR);
403
+ };