react-native-theoplayer 3.5.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 (42) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +1 -0
  3. package/android/src/main/java/com/theoplayer/PlayerEventEmitter.kt +1 -1
  4. package/android/src/main/java/com/theoplayer/broadcast/DefaultEventDispatcher.kt +2 -1
  5. package/android/src/main/java/com/theoplayer/cast/CastEventAdapter.kt +1 -0
  6. package/android/src/main/java/com/theoplayer/drm/ContentProtectionModule.kt +2 -0
  7. package/android/src/main/java/com/theoplayer/media/MediaNotificationBuilder.kt +11 -0
  8. package/android/src/main/java/com/theoplayer/media/MediaPlaybackService.kt +31 -19
  9. package/android/src/main/java/com/theoplayer/presentation/PresentationManager.kt +41 -1
  10. package/android/src/main/res/drawable/ic_notification_large.png +0 -0
  11. package/ios/THEOplayerRCTMainEventHandler.swift +6 -24
  12. package/ios/THEOplayerRCTPlayerAPI.swift +3 -16
  13. package/ios/THEOplayerRCTTextTrackEventHandler.swift +0 -9
  14. package/ios/THEOplayerRCTTrackMetadataAggregator.swift +1 -1
  15. package/ios/THEOplayerRCTView.swift +12 -10
  16. package/ios/Theoplayer-Bridging-Header.h +1 -0
  17. package/ios/eventBroadcasting/THEOplayerRCTBroadcastEventHandler.swift +1 -1
  18. package/ios/pip/THEOplayerRCTView+PipConfig.swift +2 -2
  19. package/ios/{THEOplayerRCTPresentationModeContext.swift → presentationMode/THEOplayerRCTPresentationModeContext.swift} +4 -8
  20. package/ios/presentationMode/THEOplayerRCTPresentationModeManager.swift +159 -0
  21. package/ios/presentationMode/THEOplayerRCTView+PresentationMode.swift +11 -0
  22. package/ios/{THEOplayerRCTSideloadedMetadataTrackHandler.swift → sideloadedMetadata/THEOplayerRCTSideloadedMetadataProcessor.swift} +14 -4
  23. package/ios/sideloadedMetadata/THEOplayerRCTSideloadedMetadataTrackEventHandler.swift +28 -0
  24. package/lib/commonjs/internal/THEOplayerView.js +24 -3
  25. package/lib/commonjs/internal/THEOplayerView.js.map +1 -1
  26. package/lib/commonjs/internal/adapter/THEOplayerAdapter.js +3 -0
  27. package/lib/commonjs/internal/adapter/THEOplayerAdapter.js.map +1 -1
  28. package/lib/commonjs/internal/utils/Dimensions.js +31 -0
  29. package/lib/commonjs/internal/utils/Dimensions.js.map +1 -0
  30. package/lib/module/internal/THEOplayerView.js +26 -5
  31. package/lib/module/internal/THEOplayerView.js.map +1 -1
  32. package/lib/module/internal/adapter/THEOplayerAdapter.js +5 -2
  33. package/lib/module/internal/adapter/THEOplayerAdapter.js.map +1 -1
  34. package/lib/module/internal/utils/Dimensions.js +26 -0
  35. package/lib/module/internal/utils/Dimensions.js.map +1 -0
  36. package/lib/typescript/internal/THEOplayerView.d.ts +7 -1
  37. package/lib/typescript/internal/utils/Dimensions.d.ts +5 -0
  38. package/package.json +1 -1
  39. package/react-native-theoplayer.podspec +5 -5
  40. package/src/internal/THEOplayerView.tsx +25 -5
  41. package/src/internal/adapter/THEOplayerAdapter.ts +11 -7
  42. package/src/internal/utils/Dimensions.ts +24 -0
@@ -0,0 +1,159 @@
1
+ // THEOplayerRCTPresentationModeEventHandler.swift
2
+
3
+ import Foundation
4
+ import THEOplayerSDK
5
+
6
+ public class THEOplayerRCTPresentationModeManager {
7
+ // MARK: Members
8
+ private weak var player: THEOplayer?
9
+ private weak var view: UIView?
10
+ var presentationModeContext = THEOplayerRCTPresentationModeContext()
11
+ var presentationMode: THEOplayerSDK.PresentationMode = .inline
12
+
13
+ private var containerView: UIView? // view containing the playerView and it's siblings (e.g. UI)
14
+ private var fullscreenParentView: UIView? // target view for fulllscreen representation
15
+ private var inlineParentView: UIView? // target view for inline representation
16
+
17
+ // MARK: Events
18
+ var onNativePresentationModeChange: RCTDirectEventBlock?
19
+
20
+ // MARK: player Listeners
21
+ private var presentationModeChangeListener: EventListener?
22
+
23
+ // MARK: - destruction
24
+ func destroy() {
25
+ // dettach listeners
26
+ self.dettachListeners()
27
+ }
28
+
29
+ // MARK: - player setup / breakdown
30
+ func setPlayer(_ player: THEOplayer, view: UIView?) {
31
+ self.player = player
32
+ self.view = view
33
+
34
+ // attach listeners
35
+ self.attachListeners()
36
+ }
37
+
38
+ // MARK: - logic
39
+
40
+ private func enterFullscreen() {
41
+ self.containerView = self.view?.findParentViewOfType(RCTView.self)
42
+ self.fullscreenParentView = self.view?.findParentViewOfType(RCTRootContentView.self)
43
+ self.inlineParentView = self.containerView?.findParentViewOfType(RCTView.self)
44
+
45
+ if let containerView = self.containerView,
46
+ let fullscreenParentView = self.fullscreenParentView {
47
+ containerView.removeFromSuperview()
48
+ fullscreenParentView.addSubview(containerView)
49
+ fullscreenParentView.bringSubviewToFront(containerView)
50
+ }
51
+ }
52
+
53
+ private func exitFullscreen() {
54
+ if let containerView = self.containerView,
55
+ let inlineParentView = self.inlineParentView {
56
+ containerView.removeFromSuperview()
57
+ inlineParentView.addSubview(containerView)
58
+ inlineParentView.bringSubviewToFront(containerView)
59
+ }
60
+ }
61
+
62
+ func setPresentationMode(newPresentationMode: THEOplayerSDK.PresentationMode) {
63
+ guard newPresentationMode != self.presentationMode, let player = self.player else { return }
64
+
65
+ // store old presentationMode
66
+ let oldPresentationMode = self.presentationMode
67
+
68
+ // set new presentationMode
69
+ self.presentationMode = newPresentationMode
70
+
71
+ // change prensentationMode
72
+ switch oldPresentationMode {
73
+ case .fullscreen:
74
+ if newPresentationMode == .inline {
75
+ // get out of fullscreen via view reparenting
76
+ self.exitFullscreen();
77
+ } else if newPresentationMode == .pictureInPicture {
78
+ // get out of fullscreen via view reparenting
79
+ self.exitFullscreen();
80
+ // get into pip
81
+ player.presentationMode = .pictureInPicture
82
+ }
83
+ case .inline:
84
+ if newPresentationMode == .fullscreen {
85
+ // get into fullscreen via view reparenting
86
+ self.enterFullscreen();
87
+ } else if newPresentationMode == .pictureInPicture {
88
+ // get into pip
89
+ player.presentationMode = .pictureInPicture
90
+ }
91
+ case .pictureInPicture:
92
+ if newPresentationMode == .fullscreen {
93
+ // get out of pip
94
+ player.presentationMode = .inline
95
+ // get into fullscreen via view reparenting
96
+ self.enterFullscreen();
97
+ } else if newPresentationMode == .inline {
98
+ // get into pip
99
+ player.presentationMode = .inline
100
+ }
101
+ default:
102
+ break;
103
+ }
104
+
105
+ // notify the presentationMode change
106
+ self.notifyPresentationModeChange(oldPresentationMode: oldPresentationMode, newPresentationMode: newPresentationMode)
107
+ }
108
+
109
+ private func notifyPresentationModeChange(oldPresentationMode: THEOplayerSDK.PresentationMode, newPresentationMode: THEOplayerSDK.PresentationMode) {
110
+ // update the current presentationMode
111
+ self.presentationMode = newPresentationMode
112
+
113
+ if let forwardedPresentationModeChangeEvent = self.onNativePresentationModeChange {
114
+ forwardedPresentationModeChangeEvent(presentationModeContext.eventContextForNewPresentationMode(oldPresentationMode: oldPresentationMode, newPresentationMode: newPresentationMode))
115
+ }
116
+ }
117
+
118
+ // MARK: - attach/dettach main player Listeners
119
+ private func attachListeners() {
120
+ guard let player = self.player else {
121
+ return
122
+ }
123
+
124
+ // PRESENTATION_MODE_CHANGE
125
+ self.presentationModeChangeListener = player.addEventListener(type: PlayerEventTypes.PRESENTATION_MODE_CHANGE) { [weak self] event in
126
+ if let welf = self {
127
+ if DEBUG_THEOPLAYER_EVENTS || true { PrintUtils.printLog(logText: "[NATIVE] Received PRESENTATION_MODE_CHANGE event from THEOplayer (to \(event.presentationMode._rawValue))") }
128
+ welf.setPresentationMode(newPresentationMode: event.presentationMode)
129
+ }
130
+ }
131
+ if DEBUG_EVENTHANDLER { PrintUtils.printLog(logText: "[NATIVE] PresentationModeChange listener attached to THEOplayer") }
132
+ }
133
+
134
+ private func dettachListeners() {
135
+ guard let player = self.player else {
136
+ return
137
+ }
138
+
139
+ // PRESENTATION_MODE_CHANGE
140
+ if let presentationModeChangeListener = self.presentationModeChangeListener {
141
+ player.removeEventListener(type: PlayerEventTypes.PRESENTATION_MODE_CHANGE, listener: presentationModeChangeListener)
142
+ if DEBUG_EVENTHANDLER { PrintUtils.printLog(logText: "[NATIVE] PresentationModeChange listener dettached from THEOplayer") }
143
+ }
144
+ }
145
+ }
146
+
147
+ // UIView extension to look for parent views
148
+ extension UIView {
149
+ func findParentViewOfType<T: UIView>(_ viewType: T.Type) -> T? {
150
+ var currentView: UIView? = self
151
+ while let view = currentView {
152
+ if let parentView = view.superview as? T {
153
+ return parentView
154
+ }
155
+ currentView = view.superview
156
+ }
157
+ return nil
158
+ }
159
+ }
@@ -0,0 +1,11 @@
1
+ // THEOplayerRCTView+PresentationMode.swift
2
+
3
+ import Foundation
4
+ import THEOplayerSDK
5
+
6
+ extension THEOplayerRCTView {
7
+
8
+ func setPresentationMode(newPresentationMode: THEOplayerSDK.PresentationMode) {
9
+ self.presentationModeManager.setPresentationMode(newPresentationMode: newPresentationMode)
10
+ }
11
+ }
@@ -1,4 +1,4 @@
1
- // THEOplayerRCTMetadataAggregator.swift
1
+ // THEOplayerRCTSideloadedMetadataProcessor.swift
2
2
 
3
3
  import Foundation
4
4
  import THEOplayerSDK
@@ -9,7 +9,17 @@ struct Cue {
9
9
  var cueContent: String
10
10
  }
11
11
 
12
- class THEOplayerRCTSideloadedMetadataTrackHandler {
12
+ class THEOplayerRCTSideloadedMetadataProcessor {
13
+
14
+ class func loadTrackInfoFromTrackDescriptions(_ metadataTrackDescriptions: [TextTrackDescription]?, completed: (([[String:Any]]) -> Void)?) {
15
+ if let trackDescriptions = metadataTrackDescriptions {
16
+ THEOplayerRCTTrackMetadataAggregator.aggregatedMetadataTrackInfo(metadataTrackDescriptions: trackDescriptions) { tracksInfo in
17
+ completed?(tracksInfo)
18
+ }
19
+ } else {
20
+ completed?([])
21
+ }
22
+ }
13
23
 
14
24
  class func parseVtt(_ urlString: String, completion: @escaping ([Cue]?) -> Void) {
15
25
  guard let url = URL(string: urlString) else {
@@ -24,7 +34,7 @@ class THEOplayerRCTSideloadedMetadataTrackHandler {
24
34
  }
25
35
 
26
36
  if let vttString = String(data: data, encoding: .utf8) {
27
- let cues = THEOplayerRCTSideloadedMetadataTrackHandler.parseVTTString(vttString)
37
+ let cues = THEOplayerRCTSideloadedMetadataProcessor.parseVTTString(vttString)
28
38
  completion(cues)
29
39
  } else {
30
40
  completion(nil)
@@ -38,7 +48,7 @@ class THEOplayerRCTSideloadedMetadataTrackHandler {
38
48
  var cues: [Cue] = []
39
49
  var currentCue: Cue?
40
50
 
41
- let separator = THEOplayerRCTSideloadedMetadataTrackHandler.separatorSequence(vttString)
51
+ let separator = THEOplayerRCTSideloadedMetadataProcessor.separatorSequence(vttString)
42
52
  let lines = vttString.components(separatedBy: separator)
43
53
  for line in lines {
44
54
  if line.isEmpty { // process unprocessed cue to list
@@ -0,0 +1,28 @@
1
+ // THEOplayerRCTSideloadedMetadataTrackEventHandler.swift
2
+
3
+ import Foundation
4
+ import THEOplayerSDK
5
+
6
+
7
+ class THEOplayerRCTSideloadedMetadataTrackEventHandler {
8
+ private var loadedMetadataTracksInfo: [[String:Any]] = []
9
+ // MARK: Events
10
+ var onNativeTextTrackListEvent: RCTDirectEventBlock?
11
+ var onNativeTextTrackEvent: RCTDirectEventBlock?
12
+
13
+ func setLoadedMetadataTracksInfo(_ metadataTracksInfo: [[String:Any]]) {
14
+ self.loadedMetadataTracksInfo = metadataTracksInfo
15
+ self.triggerAddMetadataTrackEvent(metadataTracksInfo)
16
+ }
17
+
18
+ func triggerAddMetadataTrackEvent(_ metadataTrackInfo: [[String:Any]]) {
19
+ for trackInfo in metadataTrackInfo {
20
+ if let addTrackEvent = self.onNativeTextTrackListEvent {
21
+ addTrackEvent([
22
+ "track" : trackInfo,
23
+ "type" : TrackListEventType.ADD_TRACK.rawValue
24
+ ])
25
+ }
26
+ }
27
+ }
28
+ }
@@ -13,6 +13,7 @@ var _BaseEvent = require("./adapter/event/BaseEvent");
13
13
  var _PlayerEvents = require("./adapter/event/PlayerEvents");
14
14
  var _NativeTrackEvent = require("./adapter/event/native/NativeTrackEvent");
15
15
  var _THEOplayerAdapter = require("./adapter/THEOplayerAdapter");
16
+ var _Dimensions = require("./utils/Dimensions");
16
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18
19
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -25,6 +26,12 @@ class THEOplayerView extends _react.PureComponent {
25
26
  super(props);
26
27
  _defineProperty(this, "_root", void 0);
27
28
  _defineProperty(this, "_facade", void 0);
29
+ _defineProperty(this, "_dimensionsHandler", undefined);
30
+ _defineProperty(this, "_onDimensionsChanged", () => {
31
+ this.setState({
32
+ screenSize: (0, _Dimensions.getFullscreenSize)()
33
+ });
34
+ });
28
35
  _defineProperty(this, "_onNativePlayerReady", event => {
29
36
  var _this$props$onPlayerR, _this$props;
30
37
  // Optionally apply an initial player state
@@ -142,13 +149,20 @@ class THEOplayerView extends _react.PureComponent {
142
149
  }
143
150
  });
144
151
  _defineProperty(this, "_onPresentationModeChange", event => {
152
+ this.setState({
153
+ presentationMode: event.nativeEvent.presentationMode
154
+ });
145
155
  this._facade.dispatchEvent(new _PlayerEvents.DefaultPresentationModeChangeEvent(event.nativeEvent.presentationMode, event.nativeEvent.previousPresentationMode, event.nativeEvent.context));
146
156
  });
147
157
  this._root = /*#__PURE__*/_react.default.createRef();
148
158
  this.state = THEOplayerView.initialState;
149
159
  this._facade = new _THEOplayerAdapter.THEOplayerAdapter(this);
150
160
  }
161
+ componentDidMount() {
162
+ this._dimensionsHandler = _reactNative.Dimensions.addEventListener('change', this._onDimensionsChanged);
163
+ }
151
164
  componentWillUnmount() {
165
+ var _this$_dimensionsHand;
152
166
  // Notify the player will be destroyed.
153
167
  const {
154
168
  onPlayerDestroy
@@ -157,6 +171,7 @@ class THEOplayerView extends _react.PureComponent {
157
171
  onPlayerDestroy(this._facade);
158
172
  }
159
173
  this._facade.dispatchEvent(new _BaseEvent.BaseEvent(_reactNativeTheoplayer.PlayerEventType.DESTROY));
174
+ (_this$_dimensionsHand = this._dimensionsHandler) === null || _this$_dimensionsHand === void 0 || _this$_dimensionsHand.remove();
160
175
  if (_reactNative.Platform.OS === 'ios') {
161
176
  // TODO: move to native module
162
177
  // on iOS, we trigger an explicit 'destroy' to clean up the underlying THEOplayer
@@ -193,8 +208,12 @@ class THEOplayerView extends _react.PureComponent {
193
208
  style,
194
209
  children
195
210
  } = this.props;
211
+ const {
212
+ presentationMode,
213
+ screenSize: fullscreenSize
214
+ } = this.state;
196
215
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
197
- style: [_THEOplayerView.default.base, style]
216
+ style: [_THEOplayerView.default.base, style, presentationMode === _reactNativeTheoplayer.PresentationMode.fullscreen ? fullscreenSize : {}]
198
217
  }, /*#__PURE__*/_react.default.createElement(THEOplayerRCTView, {
199
218
  ref: this._root,
200
219
  style: _reactNative.StyleSheet.absoluteFill,
@@ -232,10 +251,12 @@ class THEOplayerView extends _react.PureComponent {
232
251
  }
233
252
  exports.THEOplayerView = THEOplayerView;
234
253
  _defineProperty(THEOplayerView, "initialState", {
235
- error: undefined
254
+ error: undefined,
255
+ presentationMode: _reactNativeTheoplayer.PresentationMode.inline,
256
+ screenSize: (0, _Dimensions.getFullscreenSize)()
236
257
  });
237
258
  const LINKING_ERROR = `The package 'react-native-theoplayer' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
238
- ios: "- You have run 'pod install'\n",
259
+ ios: '- You have run \'pod install\'\n',
239
260
  default: ''
240
261
  }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo managed workflow\n';
241
262
  const ComponentName = 'THEOplayerRCTView';
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeTheoplayer","_THEOplayerView","_interopRequireDefault","_TypeUtils","_BaseEvent","_PlayerEvents","_NativeTrackEvent","_THEOplayerAdapter","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_defineProperty","value","_toPropertyKey","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","INVALID_HANDLE","THEOplayerView","PureComponent","constructor","props","event","_this$props$onPlayerR","_this$props","version","state","nativeEvent","_facade","initializeFromNativePlayer_","onPlayerReady","reset","dispatchEvent","BaseEvent","PlayerEventType","SOURCE_CHANGE","LOAD_START","LOADED_DATA","DefaultLoadedMetadataEvent","textTracks","audioTracks","videoTracks","decodeNanInf","duration","selectedTextTrack","selectedVideoTrack","selectedAudioTrack","DefaultVolumeChangeEvent","volume","muted","error","setState","DefaultErrorEvent","DefaultProgressEvent","seekable","buffered","CANPLAY","PLAY","PLAYING","PAUSE","SEEKING","SEEKED","WAITING","ENDED","DefaultReadyStateChangeEvent","readyState","DefaultTimeupdateEvent","currentTime","currentProgramDateTime","DefaultDurationChangeEvent","DefaultRateChangeEvent","playbackRate","DefaultSegmentNotFoundEvent","segmentStartTime","retryCount","DefaultTextTrackListEvent","toTrackListEventType","type","track","cue","normalizeCue","DefaultTextTrackEvent","toTextTrackEventType","trackUid","DefaultMediaTrackListEvent","toMediaTrackType","trackType","DefaultMediaTrackEvent","toMediaTrackTypeEventType","qualities","DefaultAdEvent","ad","CastEventType","CHROMECAST_STATE_CHANGE","DefaultChromecastChangeEvent","AIRPLAY_STATE_CHANGE","DefaultAirplayStateChangeEvent","CHROMECAST_ERROR","DefaultChromecastErrorEvent","DefaultPresentationModeChangeEvent","presentationMode","previousPresentationMode","context","_root","React","createRef","initialState","THEOplayerAdapter","componentWillUnmount","onPlayerDestroy","DESTROY","Platform","OS","command","UIManager","Commands","destroy","dispatchViewManagerCommand","findNodeHandle","current","clearEventListeners","nativeHandle","startTime","endTime","isDateRangeCue","startDate","Date","endDate","plannedDuration","render","config","style","children","createElement","View","styles","base","THEOplayerRCTView","ref","StyleSheet","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","exports","LINKING_ERROR","select","ios","ComponentName","getViewManagerConfig","requireNativeComponent","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","_interopRequireWildcard","require","_reactNative","_reactNativeTheoplayer","_THEOplayerView","_interopRequireDefault","_TypeUtils","_BaseEvent","_PlayerEvents","_NativeTrackEvent","_THEOplayerAdapter","_Dimensions","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_defineProperty","value","_toPropertyKey","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","INVALID_HANDLE","THEOplayerView","PureComponent","constructor","props","setState","screenSize","getFullscreenSize","event","_this$props$onPlayerR","_this$props","version","state","nativeEvent","_facade","initializeFromNativePlayer_","onPlayerReady","reset","dispatchEvent","BaseEvent","PlayerEventType","SOURCE_CHANGE","LOAD_START","LOADED_DATA","DefaultLoadedMetadataEvent","textTracks","audioTracks","videoTracks","decodeNanInf","duration","selectedTextTrack","selectedVideoTrack","selectedAudioTrack","DefaultVolumeChangeEvent","volume","muted","error","DefaultErrorEvent","DefaultProgressEvent","seekable","buffered","CANPLAY","PLAY","PLAYING","PAUSE","SEEKING","SEEKED","WAITING","ENDED","DefaultReadyStateChangeEvent","readyState","DefaultTimeupdateEvent","currentTime","currentProgramDateTime","DefaultDurationChangeEvent","DefaultRateChangeEvent","playbackRate","DefaultSegmentNotFoundEvent","segmentStartTime","retryCount","DefaultTextTrackListEvent","toTrackListEventType","type","track","cue","normalizeCue","DefaultTextTrackEvent","toTextTrackEventType","trackUid","DefaultMediaTrackListEvent","toMediaTrackType","trackType","DefaultMediaTrackEvent","toMediaTrackTypeEventType","qualities","DefaultAdEvent","ad","CastEventType","CHROMECAST_STATE_CHANGE","DefaultChromecastChangeEvent","AIRPLAY_STATE_CHANGE","DefaultAirplayStateChangeEvent","CHROMECAST_ERROR","DefaultChromecastErrorEvent","presentationMode","DefaultPresentationModeChangeEvent","previousPresentationMode","context","_root","React","createRef","initialState","THEOplayerAdapter","componentDidMount","_dimensionsHandler","Dimensions","addEventListener","_onDimensionsChanged","componentWillUnmount","_this$_dimensionsHand","onPlayerDestroy","DESTROY","remove","Platform","OS","command","UIManager","Commands","destroy","dispatchViewManagerCommand","findNodeHandle","current","clearEventListeners","nativeHandle","startTime","endTime","isDateRangeCue","startDate","Date","endDate","plannedDuration","render","config","style","children","fullscreenSize","createElement","View","styles","base","PresentationMode","fullscreen","THEOplayerRCTView","ref","StyleSheet","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","exports","inline","LINKING_ERROR","select","ios","ComponentName","getViewManagerConfig","requireNativeComponent","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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"}
@@ -68,6 +68,9 @@ class THEOplayerAdapter extends _DefaultEventDispatcher.DefaultEventDispatcher {
68
68
  });
69
69
  _defineProperty(this, "onPresentationModeChange", event => {
70
70
  this._state.presentationMode = event.presentationMode;
71
+ if (_reactNative.Platform.OS === 'ios') {
72
+ _reactNative.StatusBar.setHidden(event.presentationMode === _reactNativeTheoplayer.PresentationMode.fullscreen, 'slide');
73
+ }
71
74
  });
72
75
  _defineProperty(this, "onTimeupdate", event => {
73
76
  this._state.currentTime = event.currentTime;