react-native-theoplayer 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/android/src/main/java/com/theoplayer/presentation/PipUtils.kt +5 -1
  3. package/android/src/main/java/com/theoplayer/track/TrackListAdapter.kt +3 -2
  4. package/android/src/main/java/com/theoplayer/util/TypeUtils.kt +6 -6
  5. package/ios/THEOplayerRCTMainEventHandler.swift +15 -12
  6. package/ios/THEOplayerRCTTrackMetadataAggregator.swift +2 -2
  7. package/ios/THEOplayerRCTView.swift +3 -1
  8. package/ios/backgroundAudio/THEOplayerRCTNowPlayingManager.swift +7 -5
  9. package/ios/backgroundAudio/THEOplayerRCTView+BackgroundAudioConfig.swift +12 -0
  10. package/lib/commonjs/api/source/SourceDescription.js.map +1 -1
  11. package/lib/commonjs/internal/THEOplayerView.js +6 -1
  12. package/lib/commonjs/internal/THEOplayerView.js.map +1 -1
  13. package/lib/commonjs/internal/THEOplayerView.web.js +7 -7
  14. package/lib/commonjs/internal/THEOplayerView.web.js.map +1 -1
  15. package/lib/commonjs/internal/adapter/THEOplayerAdapter.js +1 -1
  16. package/lib/commonjs/internal/adapter/THEOplayerAdapter.js.map +1 -1
  17. package/lib/commonjs/internal/adapter/web/TrackUtils.js +3 -2
  18. package/lib/commonjs/internal/adapter/web/TrackUtils.js.map +1 -1
  19. package/lib/commonjs/internal/adapter/web/WebMediaSession.js +17 -29
  20. package/lib/commonjs/internal/adapter/web/WebMediaSession.js.map +1 -1
  21. package/lib/commonjs/internal/adapter/web/WebPresentationModeManager.js +1 -1
  22. package/lib/commonjs/internal/adapter/web/WebPresentationModeManager.js.map +1 -1
  23. package/lib/module/api/source/SourceDescription.js.map +1 -1
  24. package/lib/module/internal/THEOplayerView.js +6 -1
  25. package/lib/module/internal/THEOplayerView.js.map +1 -1
  26. package/lib/module/internal/THEOplayerView.web.js +7 -7
  27. package/lib/module/internal/THEOplayerView.web.js.map +1 -1
  28. package/lib/module/internal/adapter/THEOplayerAdapter.js +1 -1
  29. package/lib/module/internal/adapter/THEOplayerAdapter.js.map +1 -1
  30. package/lib/module/internal/adapter/web/TrackUtils.js +3 -2
  31. package/lib/module/internal/adapter/web/TrackUtils.js.map +1 -1
  32. package/lib/module/internal/adapter/web/WebMediaSession.js +15 -29
  33. package/lib/module/internal/adapter/web/WebMediaSession.js.map +1 -1
  34. package/lib/module/internal/adapter/web/WebPresentationModeManager.js +1 -1
  35. package/lib/module/internal/adapter/web/WebPresentationModeManager.js.map +1 -1
  36. package/lib/typescript/api/source/SourceDescription.d.ts +6 -0
  37. package/lib/typescript/internal/adapter/web/WebMediaSession.d.ts +2 -1
  38. package/package.json +1 -1
  39. package/src/api/source/SourceDescription.ts +8 -0
  40. package/src/internal/THEOplayerView.tsx +6 -1
  41. package/src/internal/THEOplayerView.web.tsx +4 -7
  42. package/src/internal/adapter/THEOplayerAdapter.ts +1 -1
  43. package/src/internal/adapter/web/TrackUtils.ts +3 -2
  44. package/src/internal/adapter/web/WebMediaSession.ts +14 -29
  45. package/src/internal/adapter/web/WebPresentationModeManager.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
6
6
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [unreleased]
9
+
10
+ ### Fixed
11
+
12
+ - Fixed an issue on iOS and Android where cue event properties `startTime` and `endTime` with value `Infinity` or `NaN` were not passed correctly.
13
+ - Fixed an issue on iOS Safari where switching to fullscreen presentation during an ad would not work.
14
+ - Fixed an issue on iOS Safari where an ad could be skipped during unmuted autoplay.
15
+ - Fixed a memory leak on iOS where the player would be allocated after being destroyed.
16
+ - Fixed an issue on Android where building the SDK would require IMA to be enabled.
17
+
18
+ ### Changed
19
+
20
+ - Changed Web media session controls to only show trick-play buttons if the player is in foreground, or `backgroundAudioEnabled` is `true`, and never for ads and live stream.
21
+ - Changed Web media session controls to only show a play/pause button if the player is in foreground, or `backgroundAudioEnabled` is `true`, and never for ads.
22
+
23
+ ### Added
24
+
25
+ - Added the `crossOrigin` property to `SourceDescription` for requesting CORS access to content.
26
+
8
27
  ## [2.3.0] - 23-04-14
9
28
 
10
29
  ### Changed
@@ -17,6 +17,7 @@ import android.view.View
17
17
  import android.view.ViewGroup
18
18
  import androidx.annotation.RequiresApi
19
19
  import com.facebook.react.uimanager.ThemedReactContext
20
+ import com.theoplayer.BuildConfig
20
21
  import com.theoplayer.R
21
22
  import com.theoplayer.ReactTHEOplayerContext
22
23
  import com.theoplayer.android.api.ads.ima.GoogleImaAdEvent
@@ -48,7 +49,7 @@ class PipUtils(
48
49
  private var onPlayerAction: EventListener<PlayerEvent<*>>? = null
49
50
  private var onAdAction: EventListener<GoogleImaAdEvent>? = null
50
51
  private val playerEvents = listOf(PlayerEventTypes.PLAY, PlayerEventTypes.PAUSE)
51
- private val adEvents = listOf(GoogleImaAdEventType.STARTED, GoogleImaAdEventType.CONTENT_RESUME_REQUESTED)
52
+ private var adEvents = listOf<GoogleImaAdEventType>()
52
53
  private val broadcastReceiver: BroadcastReceiver = buildBroadcastReceiver()
53
54
 
54
55
  private val player: Player
@@ -61,6 +62,9 @@ class PipUtils(
61
62
  onAdAction = EventListener {
62
63
  updatePipParams()
63
64
  }
65
+ if (BuildConfig.EXTENSION_GOOGLE_IMA) {
66
+ adEvents = listOf(GoogleImaAdEventType.STARTED, GoogleImaAdEventType.CONTENT_RESUME_REQUESTED)
67
+ }
64
68
  }
65
69
 
66
70
  fun enable() {
@@ -11,6 +11,7 @@ import com.theoplayer.android.api.player.track.mediatrack.quality.Quality
11
11
  import com.theoplayer.android.api.player.track.mediatrack.quality.AudioQuality
12
12
  import com.theoplayer.android.api.player.track.mediatrack.quality.VideoQuality
13
13
  import com.theoplayer.android.api.player.track.mediatrack.MediaTrackList
14
+ import com.theoplayer.util.TypeUtils
14
15
 
15
16
  private const val PROP_ID = "id"
16
17
  private const val PROP_UID = "uid"
@@ -75,8 +76,8 @@ object TrackListAdapter {
75
76
  val cuePayload = Arguments.createMap()
76
77
  cuePayload.putString(PROP_ID, cue.id)
77
78
  cuePayload.putDouble(PROP_UID, cue.uid.toDouble())
78
- cuePayload.putDouble(PROP_STARTTIME, (1e3 * cue.startTime).toLong().toDouble())
79
- cuePayload.putDouble(PROP_ENDTIME, (1e3 * cue.endTime).toLong().toDouble())
79
+ cuePayload.putDouble(PROP_STARTTIME, TypeUtils.encodeInfNan(1e3 * cue.startTime))
80
+ cuePayload.putDouble(PROP_ENDTIME, TypeUtils.encodeInfNan(1e3 * cue.endTime))
80
81
  val content = cue.content
81
82
  if (content != null) {
82
83
  cuePayload.putString(
@@ -6,12 +6,12 @@ const val POS_INF_VALUE: Double = -2.0
6
6
  object TypeUtils {
7
7
  // Make sure we do not send INF or NaN double values over the bridge. It will break debug sessions.
8
8
  fun encodeInfNan(v: Double): Double {
9
- return when (v) {
10
- Double.NaN -> NAN_VALUE
11
- Double.POSITIVE_INFINITY -> POS_INF_VALUE
12
- else -> {
13
- return v
14
- }
9
+ if (v.isNaN()) {
10
+ return NAN_VALUE
15
11
  }
12
+ if (v.isInfinite()) {
13
+ return POS_INF_VALUE
14
+ }
15
+ return v
16
16
  }
17
17
  }
@@ -3,7 +3,7 @@
3
3
  import Foundation
4
4
  import THEOplayerSDK
5
5
 
6
- class THEOplayerRCTMainEventHandler {
6
+ public class THEOplayerRCTMainEventHandler {
7
7
  // MARK: Members
8
8
  private weak var player: THEOplayer?
9
9
  private weak var presentationModeContext: THEOplayerRCTPresentationModeContext?
@@ -22,7 +22,7 @@ class THEOplayerRCTMainEventHandler {
22
22
  var onNativeSeeking: RCTDirectEventBlock?
23
23
  var onNativeSeeked: RCTDirectEventBlock?
24
24
  var onNativeEnded: RCTDirectEventBlock?
25
- var onNativeError: RCTDirectEventBlock?
25
+ public internal(set) var onNativeError: RCTDirectEventBlock?
26
26
  var onNativeLoadedData: RCTDirectEventBlock?
27
27
  var onNativeLoadedMetadata: RCTDirectEventBlock?
28
28
  var onNativeRateChange: RCTDirectEventBlock?
@@ -132,13 +132,14 @@ class THEOplayerRCTMainEventHandler {
132
132
  if DEBUG_EVENTHANDLER { print("[NATIVE] DurationChange listener attached to THEOplayer") }
133
133
 
134
134
  // VOLUME_CHANGE
135
- self.volumeChangeListener = player.addEventListener(type: PlayerEventTypes.VOLUME_CHANGE) { [weak self] event in
135
+ self.volumeChangeListener = player.addEventListener(type: PlayerEventTypes.VOLUME_CHANGE) { [weak self, weak player] event in
136
136
  if DEBUG_THEOPLAYER_EVENTS { print("[NATIVE] Received VOLUME_CHANGE event from THEOplayer") }
137
- if let forwardedVolumeChangeEvent = self?.onNativeVolumeChange {
137
+ if let wplayer = player,
138
+ let forwardedVolumeChangeEvent = self?.onNativeVolumeChange {
138
139
  forwardedVolumeChangeEvent(
139
140
  [
140
141
  "volume": event.volume,
141
- "muted": player.muted
142
+ "muted": wplayer.muted
142
143
  ]
143
144
  )
144
145
  }
@@ -146,11 +147,12 @@ class THEOplayerRCTMainEventHandler {
146
147
  if DEBUG_EVENTHANDLER { print("[NATIVE] VolumeChange listener attached to THEOplayer") }
147
148
 
148
149
  // PROGRESS
149
- self.progressListener = player.addEventListener(type: PlayerEventTypes.PROGRESS) { [weak self] event in
150
+ self.progressListener = player.addEventListener(type: PlayerEventTypes.PROGRESS) { [weak self, weak player] event in
150
151
  //if DEBUG_THEOPLAYER_EVENTS { print("[NATIVE] Received PROGRESS event from THEOplayer") }
151
- if let forwardedProgressEvent = self?.onNativeProgress {
152
- player.requestSeekable(completionHandler: { seekableTimeRanges, error in
153
- player.requestBuffered(completionHandler: { bufferedTimeRanges, error in
152
+ if let wplayer = player,
153
+ let forwardedProgressEvent = self?.onNativeProgress {
154
+ wplayer.requestSeekable(completionHandler: { seekableTimeRanges, error in
155
+ wplayer.requestBuffered(completionHandler: { bufferedTimeRanges, error in
154
156
  var seekable: [[String:Double]] = []
155
157
  seekableTimeRanges?.forEach({ timeRange in
156
158
  seekable.append(
@@ -263,10 +265,11 @@ class THEOplayerRCTMainEventHandler {
263
265
  if DEBUG_EVENTHANDLER { print("[NATIVE] LoadedData listener attached to THEOplayer") }
264
266
 
265
267
  // LOADED_META_DATA
266
- self.loadedMetadataListener = player.addEventListener(type: PlayerEventTypes.LOADED_META_DATA) { [weak self] event in
268
+ self.loadedMetadataListener = player.addEventListener(type: PlayerEventTypes.LOADED_META_DATA) { [weak self, weak player] event in
267
269
  if DEBUG_THEOPLAYER_EVENTS { print("[NATIVE] Received LOADED_META_DATA event from THEOplayer") }
268
- if let forwardedLoadedMetadataEvent = self?.onNativeLoadedMetadata {
269
- let metadata = THEOplayerRCTTrackMetadataAggregator.aggregateTrackMetadata(player: player)
270
+ if let wplayer = player,
271
+ let forwardedLoadedMetadataEvent = self?.onNativeLoadedMetadata {
272
+ let metadata = THEOplayerRCTTrackMetadataAggregator.aggregateTrackMetadata(player: wplayer)
270
273
  print(metadata)
271
274
  forwardedLoadedMetadataEvent(metadata)
272
275
  }
@@ -95,8 +95,8 @@ class THEOplayerRCTTrackMetadataAggregator {
95
95
  var entry: [String:Any] = [:]
96
96
  entry[PROP_ID] = textTrackCue.id
97
97
  entry[PROP_UID] = textTrackCue.uid
98
- entry[PROP_STARTTIME] = (textTrackCue.startTime ?? 0) * 1000
99
- entry[PROP_ENDTIME] = (textTrackCue.endTime ?? 0) * 1000
98
+ entry[PROP_STARTTIME] = THEOplayerRCTTypeUtils.encodeInfNan((textTrackCue.startTime ?? 0) * 1000)
99
+ entry[PROP_ENDTIME] = THEOplayerRCTTypeUtils.encodeInfNan((textTrackCue.endTime ?? 0) * 1000)
100
100
  if let content = textTrackCue.content {
101
101
  entry[PROP_CUE_CONTENT] = content
102
102
  } else if let contentString = textTrackCue.contentString {
@@ -7,7 +7,7 @@ import THEOplayerSDK
7
7
  public class THEOplayerRCTView: UIView {
8
8
  // MARK: Members
9
9
  public private(set) var player: THEOplayer?
10
- var mainEventHandler: THEOplayerRCTMainEventHandler
10
+ public private(set) var mainEventHandler: THEOplayerRCTMainEventHandler
11
11
  var textTrackEventHandler: THEOplayerRCTTextTrackEventHandler
12
12
  var mediaTrackEventHandler: THEOplayerRCTMediaTrackEventHandler
13
13
  var adEventHandler: THEOplayerRCTAdsEventHandler
@@ -136,6 +136,8 @@ public class THEOplayerRCTView: UIView {
136
136
  self.remoteCommandsManager.destroy()
137
137
  self.pipControlsManager.destroy()
138
138
 
139
+ self.destroyBackgroundAudio()
140
+ self.player?.removeAllIntegrations()
139
141
  self.player?.destroy()
140
142
  self.player = nil
141
143
  if DEBUG_THEOPLAYER_INTERACTION { print("[NATIVE] THEOplayer instance destroyed.") }
@@ -155,9 +155,10 @@ class THEOplayerRCTNowPlayingManager {
155
155
  }
156
156
 
157
157
  // DURATION_CHANGE
158
- self.durationChangeListener = player.addEventListener(type: PlayerEventTypes.DURATION_CHANGE) { [weak self] event in
158
+ self.durationChangeListener = player.addEventListener(type: PlayerEventTypes.DURATION_CHANGE) { [weak self, weak player] event in
159
159
  if let welf = self,
160
- let duration = player.duration {
160
+ let wplayer = player,
161
+ let duration = wplayer.duration {
161
162
  welf.nowPlayingInfo[MPNowPlayingInfoPropertyIsLiveStream] = duration.isInfinite
162
163
  if (!duration.isInfinite) {
163
164
  welf.nowPlayingInfo[MPMediaItemPropertyPlaybackDuration] = duration
@@ -191,9 +192,10 @@ class THEOplayerRCTNowPlayingManager {
191
192
 
192
193
 
193
194
  // RATE_CHANGE
194
- self.rateChangeListener = player.addEventListener(type: PlayerEventTypes.RATE_CHANGE) { [weak self] event in
195
- if let welf = self {
196
- welf.nowPlayingInfo[MPNowPlayingInfoPropertyPlaybackRate] = NSNumber(value: player.playbackRate)
195
+ self.rateChangeListener = player.addEventListener(type: PlayerEventTypes.RATE_CHANGE) { [weak self, weak player] event in
196
+ if let welf = self,
197
+ let wplayer = player {
198
+ welf.nowPlayingInfo[MPNowPlayingInfoPropertyPlaybackRate] = NSNumber(value: wplayer.playbackRate)
197
199
  MPNowPlayingInfoCenter.default().nowPlayingInfo = welf.nowPlayingInfo
198
200
  if DEBUG_NOWINFO { print("[NATIVE] RATE_CHANGE: PlaybackRate updated on NowPlayingInfoCenter.") }
199
201
  }
@@ -11,6 +11,7 @@ struct BackgroundAudioConfig {
11
11
 
12
12
  extension THEOplayerRCTView {
13
13
  func initBackgroundAudio() {}
14
+ func destroyBackgroundAudio() {}
14
15
  public func shouldContinueAudioPlaybackInBackground() -> Bool { return false }
15
16
  }
16
17
 
@@ -22,6 +23,13 @@ extension THEOplayerRCTView: BackgroundPlaybackDelegate {
22
23
  self.player?.backgroundPlaybackDelegate = self
23
24
  }
24
25
 
26
+ func destroyBackgroundAudio() {
27
+ guard let player = self.player else {
28
+ return
29
+ }
30
+ player.backgroundPlaybackDelegate = DefaultBackgroundPlaybackDelegate()
31
+ }
32
+
25
33
  public func shouldContinueAudioPlaybackInBackground() -> Bool {
26
34
  // Make sure to go to the background with updated NowPlayingInfo
27
35
  self.nowPlayingManager.updateNowPlaying()
@@ -30,4 +38,8 @@ extension THEOplayerRCTView: BackgroundPlaybackDelegate {
30
38
  }
31
39
  }
32
40
 
41
+ struct DefaultBackgroundPlaybackDelegate: BackgroundPlaybackDelegate {
42
+ func shouldContinueAudioPlaybackInBackground() -> Bool { false }
43
+ }
44
+
33
45
  #endif
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["SourceDescription.ts"],"sourcesContent":["/**\n * Represents a media resource.\n *\n * @remarks\n * <br/> - Can be a string value representing the URL of a media resource, a {@link TypedSource}.\n *\n * @public\n */\nimport type { DashPlaybackConfiguration } from './dash/DashPlaybackConfiguration';\nimport type { DRMConfiguration } from './drm/DRMConfiguration';\nimport type { HlsPlaybackConfiguration } from './hls/HlsPlaybackConfiguration';\nimport type { AdDescription } from './ads/Ads';\nimport type { MetadataDescription } from './metadata/MetadataDescription';\nimport type { ServerSideAdInsertionConfiguration } from \"./ads/ssai/ServerSideAdInsertionConfiguration\";\n\nexport type Source = TypedSource;\n\n/**\n * A media resource or list of media resources.\n *\n * @remarks\n * <br/> - The order of sources when using a list determines their priority when attempting playback.\n *\n * @public\n */\nexport type Sources = Source | Source[];\n\n/**\n * The cross-origin setting of a source, represented by a value from the following list:\n * <br/> - `'anonymous'`: CORS requests will have the credentials flag set to 'same-origin'.\n * <br/> - `'use-credentials'`: CORS requests will have the credentials flag set to 'include'.\n * <br/> - `''`: Setting the empty string is the same as `'anonymous'`\n *\n * @remarks\n * <br/> - See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes | The crossorigin attribute: Requesting CORS access to content}\n *\n * @public\n */\nexport type CrossOriginSetting = '' | 'anonymous' | 'use-credentials';\n\n/**\n * Describes the configuration of a player's source.\n *\n * @public\n */\nexport interface SourceConfiguration {\n /**\n * List of {@link AdDescription}s to be queued for playback.\n */\n ads?: AdDescription[];\n\n /**\n * Content protection configuration.\n */\n contentProtection?: DRMConfiguration;\n\n /**\n * The poster of the media source.\n *\n * @remarks\n * <br/> - An empty string (`''`) clears the current poster.\n * <br/> - This poster has priority over {@link ChromelessPlayer.poster}.\n */\n poster?: string;\n\n /**\n * List of text tracks to be side-loaded with the media source.\n *\n * @remarks\n * <br/> - A source change will reset side-loaded text tracks.\n */\n textTracks?: TextTrackDescription[];\n\n /**\n * The URL of a time server used by the player to synchronise the time in DASH sources.\n *\n * @remarks\n * <br/> - The time server should return time in ISO-8601 format.\n * <br/> - Overrides the time server provided the DASH manifest's `<UTCTiming>`.\n * <br/> - All sources will use the time server. Alternatively, for one source use {@link BaseSource.timeServer}.\n */\n timeServer?: string;\n\n /**\n * Describes the metadata of a source.\n *\n * @public\n */\n metadata?: MetadataDescription;\n}\n\n/**\n * Describes the configuration of a player's source.\n *\n * @public\n */\nexport interface SourceDescription extends SourceConfiguration {\n /**\n * One or more media resources for playback.\n *\n * @remarks\n * <br/> - Multiple media sources should be used to increase platform compatibility. See examples below for important use cases.\n * <br/> - The player will try each source in the provided order.\n *\n * @example\n * In this example, the player will first try to play the DASH source.\n * This might fail if the browser does not support the {@link https://www.widevine.com/ | Widevine} or {@link https://www.microsoft.com/playready/ | PlayReady} CDM, for example on Safari.\n * In that case, the player will try to play the HLS source instead.\n *\n * ```\n * [{\n * src: 'dash-source-with-drm.mpd'\n * contentProtection: {\n * widevine: {\n * licenseAcquisitionURL: 'https://license.company.com/wv'\n * },\n * playready: {\n * licenseAcquisitionURL: 'https://license.company.com/pr'\n * }\n * }\n * },{\n * src: 'hls-source-with-drm.m3u8',\n * contentProtection: {\n * fairplay: {\n * certificateURL: 'https://license.company.com/fp'\n * }\n * }\n * }]\n * ```\n *\n * @example\n * In this example, the player will first try to play the DASH source.\n * This might fail if the browser does not support the {@link https://developer.mozilla.org/en-US/docs/Web/API/Media_Source_Extensions_API | Media Source Extensions API}.\n * In that case, the player will try to play the MP4 source instead, though without features such as adaptive bitrate switching.\n *\n * ```\n * [{\n * src: 'source.mpd'\n * },{\n * src: 'source.mp4'\n * }]\n * ```\n */\n sources?: Sources;\n}\n\n/**\n * Describes the configuration of a side-loaded text track.\n *\n * @public\n */\nexport interface TextTrackDescription {\n /**\n * Whether the text track should be enabled by default.\n *\n * @remarks\n * <br/> - Only one text track per {@link TextTrack.kind} may be marked as default.\n *\n * @defaultValue `false`\n */\n default?: boolean;\n\n /**\n * The kind of the text track, represented by a value from the following list:\n * <br/> - `'subtitles'`: The track provides subtitles, used to display subtitles in a video.\n * <br/> - `'captions'`: The track provides a translation of dialogue and sound effects (suitable for users with a hearing impairment).\n * <br/> - `'descriptions'`: The track provides a textual description of the video (suitable for users with a vision impairment).\n * <br/> - `'chapters'`: The track provides chapter titles (suitable for navigating the media resource).\n * <br/> - `'metadata'`: The track provides content used by scripts and is not visible for users.\n *\n * @remarks\n * <br/> - If an unrecognized value is provided, the player will interpret it as `'metadata'`.\n *\n * @defaultValue `'subtitles'`\n */\n kind?: string;\n\n /**\n * The format of the track, represented by a value from the following list:\n * <br/> - `'srt'`\n * <br/> - `'ttml'`\n * <br/> - `'webvtt'`\n * <br/> - `'emsg'`\n * <br/> - `'eventstream'`\n * <br/> - `'id3'`\n * <br/> - `'cea608'`\n * <br/> - `'daterange'`\n *\n * @defaultValue `''`\n */\n format?: string;\n\n /**\n * The source URL of the text track.\n */\n src: string;\n\n /**\n * The language of the text track.\n */\n srclang?: string;\n\n /**\n * A label for the text track.\n *\n * @remarks\n * <br/> - This will be used as an identifier on the player API and in the UI.\n */\n label?: string;\n\n /**\n * The identifier of this text track.\n *\n * @internal\n */\n // Note: This works for HLS, but not for DASH.\n id?: string;\n}\n\n/**\n * Represents the common properties of a media resource.\n *\n * @public\n */\nexport interface BaseSource {\n /**\n * The URL of a time server used by the player to synchronise the time in DASH sources.\n *\n * @remarks\n * <br/> - Available since v2.47.0.\n * <br/> - The time server should return time in ISO-8601 format.\n * <br/> - Overrides the time server provided the DASH manifest's `<UTCTiming>`.\n * <br/> - Only this source will use the time server. Alternatively, for all source use {@link SourceConfiguration.timeServer}.\n */\n timeServer?: string;\n\n /**\n * Whether the source should be played in the low-latency-mode of the player.\n *\n * @defaultValue `false`\n *\n * @remarks\n * <br/> - This setting must be `true` when using Low-Latency CMAF with ABR.\n * <br/> - Available since v2.62.0.\n */\n lowLatency?: boolean;\n\n /**\n * The configuration for controlling playback of an MPEG-DASH stream.\n *\n * @remarks\n * <br/> - Available since v2.79.0.\n * <br/> - Ignored for non-DASH streams.\n */\n dash?: DashPlaybackConfiguration;\n\n /**\n * The configuration for controlling playback of an HLS stream.\n *\n * @remarks\n * <br/> - Available since v2.82.0.\n * <br/> - Ignored for non-HLS streams.\n */\n hls?: HlsPlaybackConfiguration;\n}\n\n/**\n * Represents a media resource characterized by a URL to the resource and optionally information about the resource.\n *\n * @public\n */\nexport interface TypedSource extends BaseSource {\n /**\n * The source URL of the media resource.\n *\n * @remarks\n * <br/> - Required if the `ssai` property is absent.\n * <br/> - Available since v2.4.0.\n */\n src?: string;\n\n /**\n * The content type (MIME type) of the media resource, represented by a value from the following list:\n * <br/> - `'application/dash+xml'`: The media resource is an MPEG-DASH stream.\n * <br/> - `'application/x-mpegURL'` or `'application/vnd.apple.mpegurl'`: The media resource is an HLS stream.\n * <br/> - `'video/mp4'`, `'video/webm'` and other formats: The media resource should use native HTML5 playback if supported by the browser.\n * <br/> - `'application/vnd.theo.hesp+json'`: The media resource is an HESP stream.\n *\n * @remarks\n * <br/> - Available since v2.4.0.\n */\n type?: string;\n\n /**\n * The content protection parameters for the media resource.\n *\n * @remarks\n * <br/> - Available since v2.15.0.\n */\n contentProtection?: DRMConfiguration;\n\n /**\n * The Server-side Ad Insertion parameters for the media resource.\n *\n * @remarks\n * <br/> - Available since v2.12.0.\n */\n ssai?: ServerSideAdInsertionConfiguration;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["SourceDescription.ts"],"sourcesContent":["/**\n * Represents a media resource.\n *\n * @remarks\n * <br/> - Can be a string value representing the URL of a media resource, a {@link TypedSource}.\n *\n * @public\n */\nimport type { DashPlaybackConfiguration } from './dash/DashPlaybackConfiguration';\nimport type { DRMConfiguration } from './drm/DRMConfiguration';\nimport type { HlsPlaybackConfiguration } from './hls/HlsPlaybackConfiguration';\nimport type { AdDescription } from './ads/Ads';\nimport type { MetadataDescription } from './metadata/MetadataDescription';\nimport type { ServerSideAdInsertionConfiguration } from \"./ads/ssai/ServerSideAdInsertionConfiguration\";\n\nexport type Source = TypedSource;\n\n/**\n * A media resource or list of media resources.\n *\n * @remarks\n * <br/> - The order of sources when using a list determines their priority when attempting playback.\n *\n * @public\n */\nexport type Sources = Source | Source[];\n\n/**\n * The cross-origin setting of a source, represented by a value from the following list:\n * <br/> - `'anonymous'`: CORS requests will have the credentials flag set to 'same-origin'.\n * <br/> - `'use-credentials'`: CORS requests will have the credentials flag set to 'include'.\n * <br/> - `''`: Setting the empty string is the same as `'anonymous'`\n *\n * @remarks\n * <br/> - See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes | The crossorigin attribute: Requesting CORS access to content}\n *\n * @public\n */\nexport type CrossOriginSetting = '' | 'anonymous' | 'use-credentials';\n\n/**\n * Describes the configuration of a player's source.\n *\n * @public\n */\nexport interface SourceConfiguration {\n /**\n * List of {@link AdDescription}s to be queued for playback.\n */\n ads?: AdDescription[];\n\n /**\n * Content protection configuration.\n */\n contentProtection?: DRMConfiguration;\n\n /**\n * The poster of the media source.\n *\n * @remarks\n * <br/> - An empty string (`''`) clears the current poster.\n * <br/> - This poster has priority over {@link ChromelessPlayer.poster}.\n */\n poster?: string;\n\n /**\n * List of text tracks to be side-loaded with the media source.\n *\n * @remarks\n * <br/> - A source change will reset side-loaded text tracks.\n */\n textTracks?: TextTrackDescription[];\n\n /**\n * The URL of a time server used by the player to synchronise the time in DASH sources.\n *\n * @remarks\n * <br/> - The time server should return time in ISO-8601 format.\n * <br/> - Overrides the time server provided the DASH manifest's `<UTCTiming>`.\n * <br/> - All sources will use the time server. Alternatively, for one source use {@link BaseSource.timeServer}.\n */\n timeServer?: string;\n\n /**\n * Describes the metadata of a source.\n *\n * @public\n */\n metadata?: MetadataDescription;\n}\n\n/**\n * Describes the configuration of a player's source.\n *\n * @public\n */\nexport interface SourceDescription extends SourceConfiguration {\n /**\n * One or more media resources for playback.\n *\n * @remarks\n * <br/> - Multiple media sources should be used to increase platform compatibility. See examples below for important use cases.\n * <br/> - The player will try each source in the provided order.\n *\n * @example\n * In this example, the player will first try to play the DASH source.\n * This might fail if the browser does not support the {@link https://www.widevine.com/ | Widevine} or {@link https://www.microsoft.com/playready/ | PlayReady} CDM, for example on Safari.\n * In that case, the player will try to play the HLS source instead.\n *\n * ```\n * [{\n * src: 'dash-source-with-drm.mpd'\n * contentProtection: {\n * widevine: {\n * licenseAcquisitionURL: 'https://license.company.com/wv'\n * },\n * playready: {\n * licenseAcquisitionURL: 'https://license.company.com/pr'\n * }\n * }\n * },{\n * src: 'hls-source-with-drm.m3u8',\n * contentProtection: {\n * fairplay: {\n * certificateURL: 'https://license.company.com/fp'\n * }\n * }\n * }]\n * ```\n *\n * @example\n * In this example, the player will first try to play the DASH source.\n * This might fail if the browser does not support the {@link https://developer.mozilla.org/en-US/docs/Web/API/Media_Source_Extensions_API | Media Source Extensions API}.\n * In that case, the player will try to play the MP4 source instead, though without features such as adaptive bitrate switching.\n *\n * ```\n * [{\n * src: 'source.mpd'\n * },{\n * src: 'source.mp4'\n * }]\n * ```\n */\n sources?: Sources;\n}\n\n/**\n * Describes the configuration of a side-loaded text track.\n *\n * @public\n */\nexport interface TextTrackDescription {\n /**\n * Whether the text track should be enabled by default.\n *\n * @remarks\n * <br/> - Only one text track per {@link TextTrack.kind} may be marked as default.\n *\n * @defaultValue `false`\n */\n default?: boolean;\n\n /**\n * The kind of the text track, represented by a value from the following list:\n * <br/> - `'subtitles'`: The track provides subtitles, used to display subtitles in a video.\n * <br/> - `'captions'`: The track provides a translation of dialogue and sound effects (suitable for users with a hearing impairment).\n * <br/> - `'descriptions'`: The track provides a textual description of the video (suitable for users with a vision impairment).\n * <br/> - `'chapters'`: The track provides chapter titles (suitable for navigating the media resource).\n * <br/> - `'metadata'`: The track provides content used by scripts and is not visible for users.\n *\n * @remarks\n * <br/> - If an unrecognized value is provided, the player will interpret it as `'metadata'`.\n *\n * @defaultValue `'subtitles'`\n */\n kind?: string;\n\n /**\n * The format of the track, represented by a value from the following list:\n * <br/> - `'srt'`\n * <br/> - `'ttml'`\n * <br/> - `'webvtt'`\n * <br/> - `'emsg'`\n * <br/> - `'eventstream'`\n * <br/> - `'id3'`\n * <br/> - `'cea608'`\n * <br/> - `'daterange'`\n *\n * @defaultValue `''`\n */\n format?: string;\n\n /**\n * The source URL of the text track.\n */\n src: string;\n\n /**\n * The language of the text track.\n */\n srclang?: string;\n\n /**\n * A label for the text track.\n *\n * @remarks\n * <br/> - This will be used as an identifier on the player API and in the UI.\n */\n label?: string;\n\n /**\n * The identifier of this text track.\n *\n * @internal\n */\n // Note: This works for HLS, but not for DASH.\n id?: string;\n}\n\n/**\n * Represents the common properties of a media resource.\n *\n * @public\n */\nexport interface BaseSource {\n\n /**\n * The cross-origin setting of the source.\n *\n * @defaultValue `''`\n */\n crossOrigin?: CrossOriginSetting;\n\n /**\n * The URL of a time server used by the player to synchronise the time in DASH sources.\n *\n * @remarks\n * <br/> - Available since v2.47.0.\n * <br/> - The time server should return time in ISO-8601 format.\n * <br/> - Overrides the time server provided the DASH manifest's `<UTCTiming>`.\n * <br/> - Only this source will use the time server. Alternatively, for all source use {@link SourceConfiguration.timeServer}.\n */\n timeServer?: string;\n\n /**\n * Whether the source should be played in the low-latency-mode of the player.\n *\n * @defaultValue `false`\n *\n * @remarks\n * <br/> - This setting must be `true` when using Low-Latency CMAF with ABR.\n * <br/> - Available since v2.62.0.\n */\n lowLatency?: boolean;\n\n /**\n * The configuration for controlling playback of an MPEG-DASH stream.\n *\n * @remarks\n * <br/> - Available since v2.79.0.\n * <br/> - Ignored for non-DASH streams.\n */\n dash?: DashPlaybackConfiguration;\n\n /**\n * The configuration for controlling playback of an HLS stream.\n *\n * @remarks\n * <br/> - Available since v2.82.0.\n * <br/> - Ignored for non-HLS streams.\n */\n hls?: HlsPlaybackConfiguration;\n}\n\n/**\n * Represents a media resource characterized by a URL to the resource and optionally information about the resource.\n *\n * @public\n */\nexport interface TypedSource extends BaseSource {\n /**\n * The source URL of the media resource.\n *\n * @remarks\n * <br/> - Required if the `ssai` property is absent.\n * <br/> - Available since v2.4.0.\n */\n src?: string;\n\n /**\n * The content type (MIME type) of the media resource, represented by a value from the following list:\n * <br/> - `'application/dash+xml'`: The media resource is an MPEG-DASH stream.\n * <br/> - `'application/x-mpegURL'` or `'application/vnd.apple.mpegurl'`: The media resource is an HLS stream.\n * <br/> - `'video/mp4'`, `'video/webm'` and other formats: The media resource should use native HTML5 playback if supported by the browser.\n * <br/> - `'application/vnd.theo.hesp+json'`: The media resource is an HESP stream.\n *\n * @remarks\n * <br/> - Available since v2.4.0.\n */\n type?: string;\n\n /**\n * The content protection parameters for the media resource.\n *\n * @remarks\n * <br/> - Available since v2.15.0.\n */\n contentProtection?: DRMConfiguration;\n\n /**\n * The Server-side Ad Insertion parameters for the media resource.\n *\n * @remarks\n * <br/> - Available since v2.12.0.\n */\n ssai?: ServerSideAdInsertionConfiguration;\n}\n"],"mappings":""}
@@ -111,7 +111,12 @@ class THEOplayerView extends _react.PureComponent {
111
111
  });
112
112
  _defineProperty(this, "_onTextTrackEvent", event => {
113
113
  const nativeEvent = event.nativeEvent;
114
- this._facade.dispatchEvent(new _PlayerEvents.DefaultTextTrackEvent((0, _NativeTrackEvent.toTextTrackEventType)(nativeEvent.type), nativeEvent.trackUid, nativeEvent.cue));
114
+ const cue = nativeEvent.cue;
115
+ if (cue) {
116
+ cue.startTime = (0, _TypeUtils.decodeNanInf)(cue.startTime);
117
+ cue.endTime = (0, _TypeUtils.decodeNanInf)(cue.endTime);
118
+ }
119
+ this._facade.dispatchEvent(new _PlayerEvents.DefaultTextTrackEvent((0, _NativeTrackEvent.toTextTrackEventType)(nativeEvent.type), nativeEvent.trackUid, cue));
115
120
  });
116
121
  _defineProperty(this, "_onMediaTrackListEvent", event => {
117
122
  const nativeEvent = event.nativeEvent;
@@ -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","state","nativeEvent","_facade","initializeWithNativePlayerState_","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","DefaultTextTrackEvent","toTextTrackEventType","trackUid","cue","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","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 type { PlayerConfiguration, PlayerError, THEOplayerViewProps } from 'react-native-theoplayer';\nimport { CastEventType, PlayerEventType } from 'react-native-theoplayer';\n\nimport styles from './THEOplayerView.style';\nimport { decodeNanInf } from './utils/TypeUtils';\nimport { BaseEvent } from './adapter/event/BaseEvent';\nimport {\n DefaultAdEvent,\n DefaultAirplayStateChangeEvent,\n DefaultChromecastChangeEvent,\n DefaultChromecastErrorEvent,\n DefaultDurationChangeEvent,\n DefaultErrorEvent,\n DefaultLoadedMetadataEvent,\n DefaultMediaTrackEvent,\n DefaultMediaTrackListEvent,\n DefaultPresentationModeChangeEvent,\n DefaultProgressEvent,\n DefaultRateChangeEvent,\n DefaultReadyStateChangeEvent,\n DefaultSegmentNotFoundEvent,\n DefaultTextTrackEvent,\n DefaultTextTrackListEvent,\n DefaultVolumeChangeEvent,\n DefaultTimeupdateEvent,\n} from './adapter/event/PlayerEvents';\nimport type { NativeCastEvent } from './adapter/event/native/NativeCastEvent';\nimport type {\n NativeMediaTrackEvent,\n NativeMediaTrackListEvent,\n NativeTextTrackEvent,\n NativeTextTrackListEvent,\n} from './adapter/event/native/NativeTrackEvent';\nimport { toMediaTrackType, toMediaTrackTypeEventType, toTextTrackEventType, toTrackListEventType } from './adapter/event/native/NativeTrackEvent';\nimport type {\n NativeDurationChangeEvent,\n NativeErrorEvent,\n NativeLoadedMetadataEvent,\n NativePlayerStateEvent,\n NativePresentationModeChangeEvent,\n NativeProgressEvent,\n NativeRateChangeEvent,\n NativeReadyStateChangeEvent,\n NativeSegmentNotFoundEvent,\n NativeTimeUpdateEvent,\n NativeVolumeChangeEvent,\n} from './adapter/event/native/NativePlayerEvent';\nimport type { NativeAdEvent } from './adapter/event/native/NativeAdEvent';\nimport { THEOplayerAdapter } from './adapter/THEOplayerAdapter';\n\nconst INVALID_HANDLE = -1;\n\ninterface THEOplayerRCTViewProps {\n ref: React.RefObject<THEOplayerViewNativeComponent>;\n style?: StyleProp<ViewStyle>;\n config?: PlayerConfiguration;\n onNativePlayerReady: (event: NativeSyntheticEvent<NativePlayerStateEvent>) => void;\n onNativeSourceChange: () => void;\n onNativeLoadStart: () => void;\n onNativeLoadedData: () => void;\n onNativeLoadedMetadata: (event: NativeSyntheticEvent<NativeLoadedMetadataEvent>) => void;\n onNativeReadyStateChange?: (event: NativeSyntheticEvent<NativeReadyStateChangeEvent>) => void;\n onNativeError: (event: NativeSyntheticEvent<NativeErrorEvent>) => void;\n onNativeProgress: (event: NativeSyntheticEvent<NativeProgressEvent>) => void;\n onNativeVolumeChange: (event: NativeSyntheticEvent<NativeVolumeChangeEvent>) => void;\n onNativeCanPlay: () => void;\n onNativePlay: () => void;\n onNativePlaying: () => void;\n onNativePause: () => void;\n onNativeSeeking: () => void;\n onNativeSeeked: () => void;\n onNativeEnded: () => void;\n onNativeWaiting: () => void;\n onNativeTimeUpdate: (event: NativeSyntheticEvent<NativeTimeUpdateEvent>) => void;\n onNativeDurationChange: (event: NativeSyntheticEvent<NativeDurationChangeEvent>) => void;\n onNativeRateChange: (event: NativeSyntheticEvent<NativeRateChangeEvent>) => void;\n onNativeSegmentNotFound: (event: NativeSyntheticEvent<NativeSegmentNotFoundEvent>) => void;\n onNativeTextTrackListEvent: (event: NativeSyntheticEvent<NativeTextTrackListEvent>) => void;\n onNativeTextTrackEvent: (event: NativeSyntheticEvent<NativeTextTrackEvent>) => void;\n onNativeMediaTrackListEvent: (event: NativeSyntheticEvent<NativeMediaTrackListEvent>) => void;\n onNativeMediaTrackEvent: (event: NativeSyntheticEvent<NativeMediaTrackEvent>) => void;\n onNativeAdEvent: (event: NativeSyntheticEvent<NativeAdEvent>) => void;\n onNativeCastEvent: (event: NativeSyntheticEvent<NativeCastEvent>) => void;\n onNativePresentationModeChange: (event: NativeSyntheticEvent<NativePresentationModeChangeEvent>) => void;\n}\n\ninterface THEOplayerRCTViewState {\n error?: PlayerError;\n}\n\ntype THEOplayerViewNativeComponent = HostComponent<THEOplayerRCTViewProps>;\n\nexport class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOplayerViewProps>, THEOplayerRCTViewState> {\n private readonly _root: React.RefObject<THEOplayerViewNativeComponent>;\n private readonly _facade: THEOplayerAdapter;\n\n private static initialState: THEOplayerRCTViewState = {\n error: undefined,\n };\n\n constructor(props: THEOplayerViewProps) {\n super(props);\n this._root = React.createRef();\n this.state = THEOplayerView.initialState;\n this._facade = new THEOplayerAdapter(this);\n }\n\n componentWillUnmount() {\n // Notify the player will be destroyed.\n const { onPlayerDestroy } = this.props;\n if (onPlayerDestroy) {\n onPlayerDestroy(this._facade);\n }\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));\n\n if (Platform.OS === 'ios') {\n // TODO: move to native module\n // on iOS, we trigger an explicit 'destroy' to clean up the underlying THEOplayer\n const command = (UIManager as { [index: string]: any })['THEOplayerRCTView'].Commands.destroy;\n UIManager.dispatchViewManagerCommand(findNodeHandle(this._root.current), command, []);\n }\n this._facade.clearEventListeners();\n }\n\n public get nativeHandle(): number {\n return findNodeHandle(this._root.current) || INVALID_HANDLE;\n }\n\n private reset() {\n this.setState(THEOplayerView.initialState);\n }\n\n private _onNativePlayerReady = (event: NativeSyntheticEvent<NativePlayerStateEvent>) => {\n // Optionally apply an initial player state\n const { state } = event?.nativeEvent;\n if (state) {\n this._facade.initializeWithNativePlayerState_(state);\n }\n this.props.onPlayerReady?.(this._facade);\n };\n\n private _onSourceChange = () => {\n this.reset();\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SOURCE_CHANGE));\n };\n\n private _onLoadStart = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.LOAD_START));\n };\n\n private _onLoadedData = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.LOADED_DATA));\n };\n\n private _onLoadedMetadata = (event: NativeSyntheticEvent<NativeLoadedMetadataEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(\n new DefaultLoadedMetadataEvent(\n nativeEvent.textTracks,\n nativeEvent.audioTracks,\n nativeEvent.videoTracks,\n decodeNanInf(nativeEvent.duration),\n nativeEvent.selectedTextTrack,\n nativeEvent.selectedVideoTrack,\n nativeEvent.selectedAudioTrack,\n ),\n );\n };\n\n private _onVolumeChange = (event: NativeSyntheticEvent<NativeVolumeChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultVolumeChangeEvent(event.nativeEvent.volume, event.nativeEvent.muted));\n };\n\n private _onError = (event: NativeSyntheticEvent<NativeErrorEvent>) => {\n const { error } = event.nativeEvent;\n this.setState({ error });\n this._facade.dispatchEvent(new DefaultErrorEvent(event.nativeEvent.error));\n };\n\n private _onProgress = (event: NativeSyntheticEvent<NativeProgressEvent>) => {\n this._facade.dispatchEvent(new DefaultProgressEvent(event.nativeEvent.seekable, event.nativeEvent.buffered));\n };\n\n private _onCanPlay = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.CANPLAY));\n };\n\n private _onPlay = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PLAY));\n };\n\n private _onPlaying = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PLAYING));\n };\n\n private _onPause = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PAUSE));\n };\n\n private _onSeeking = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SEEKING));\n };\n\n private _onSeeked = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SEEKED));\n };\n\n private _onWaiting = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.WAITING));\n };\n\n private _onEnded = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.ENDED));\n };\n\n private _onReadStateChange = (event: NativeSyntheticEvent<NativeReadyStateChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultReadyStateChangeEvent(event.nativeEvent.readyState));\n };\n\n private _onTimeUpdate = (event: NativeSyntheticEvent<NativeTimeUpdateEvent>) => {\n this._facade.dispatchEvent(new DefaultTimeupdateEvent(event.nativeEvent.currentTime, event.nativeEvent.currentProgramDateTime));\n };\n\n private _onDurationChange = (event: NativeSyntheticEvent<NativeDurationChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultDurationChangeEvent(decodeNanInf(event.nativeEvent.duration)));\n };\n\n private _onRateChange = (event: NativeSyntheticEvent<NativeRateChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultRateChangeEvent(event.nativeEvent.playbackRate));\n };\n\n private _onSegmentNotFound = (event: NativeSyntheticEvent<NativeSegmentNotFoundEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(new DefaultSegmentNotFoundEvent(nativeEvent.segmentStartTime, nativeEvent.error, nativeEvent.retryCount));\n };\n\n private _onTextTrackListEvent = (event: NativeSyntheticEvent<NativeTextTrackListEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(new DefaultTextTrackListEvent(toTrackListEventType(nativeEvent.type), nativeEvent.track));\n };\n\n private _onTextTrackEvent = (event: NativeSyntheticEvent<NativeTextTrackEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(new DefaultTextTrackEvent(toTextTrackEventType(nativeEvent.type), nativeEvent.trackUid, nativeEvent.cue));\n };\n\n private _onMediaTrackListEvent = (event: NativeSyntheticEvent<NativeMediaTrackListEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(\n new DefaultMediaTrackListEvent(toTrackListEventType(nativeEvent.type), toMediaTrackType(nativeEvent.trackType), nativeEvent.track),\n );\n };\n\n private _onMediaTrackEvent = (event: NativeSyntheticEvent<NativeMediaTrackEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(\n new DefaultMediaTrackEvent(\n toMediaTrackTypeEventType(nativeEvent.type),\n toMediaTrackType(nativeEvent.trackType),\n nativeEvent.trackUid,\n nativeEvent.qualities,\n ),\n );\n };\n\n private _onAdEvent = (event: NativeSyntheticEvent<NativeAdEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(new DefaultAdEvent(nativeEvent.type, nativeEvent.ad));\n };\n\n private _onCastEvent = (event: NativeSyntheticEvent<NativeCastEvent>) => {\n switch (event.nativeEvent.type) {\n case CastEventType.CHROMECAST_STATE_CHANGE:\n this._facade.dispatchEvent(new DefaultChromecastChangeEvent(event.nativeEvent.state));\n break;\n case CastEventType.AIRPLAY_STATE_CHANGE:\n this._facade.dispatchEvent(new DefaultAirplayStateChangeEvent(event.nativeEvent.state));\n break;\n case CastEventType.CHROMECAST_ERROR:\n this._facade.dispatchEvent(new DefaultChromecastErrorEvent(event.nativeEvent.error));\n break;\n }\n };\n\n private _onPresentationModeChange = (event: NativeSyntheticEvent<NativePresentationModeChangeEvent>) => {\n this._facade.dispatchEvent(\n new DefaultPresentationModeChangeEvent(\n event.nativeEvent.presentationMode,\n event.nativeEvent.previousPresentationMode,\n event.nativeEvent.context,\n ),\n );\n };\n\n public render(): JSX.Element {\n const { config, style, children } = this.props;\n return (\n <View style={[styles.base, style]}>\n <THEOplayerRCTView\n ref={this._root}\n style={StyleSheet.absoluteFill}\n config={config || {}}\n onNativePlayerReady={this._onNativePlayerReady}\n onNativeSourceChange={this._onSourceChange}\n onNativeLoadStart={this._onLoadStart}\n onNativeLoadedData={this._onLoadedData}\n onNativeLoadedMetadata={this._onLoadedMetadata}\n onNativeVolumeChange={this._onVolumeChange}\n onNativeError={this._onError}\n onNativeProgress={this._onProgress}\n onNativeCanPlay={this._onCanPlay}\n onNativePlay={this._onPlay}\n onNativePlaying={this._onPlaying}\n onNativePause={this._onPause}\n onNativeSeeking={this._onSeeking}\n onNativeSeeked={this._onSeeked}\n onNativeWaiting={this._onWaiting}\n onNativeEnded={this._onEnded}\n onNativeReadyStateChange={this._onReadStateChange}\n onNativeTimeUpdate={this._onTimeUpdate}\n onNativeDurationChange={this._onDurationChange}\n onNativeRateChange={this._onRateChange}\n onNativeSegmentNotFound={this._onSegmentNotFound}\n onNativeTextTrackListEvent={this._onTextTrackListEvent}\n onNativeTextTrackEvent={this._onTextTrackEvent}\n onNativeMediaTrackListEvent={this._onMediaTrackListEvent}\n onNativeMediaTrackEvent={this._onMediaTrackEvent}\n onNativeAdEvent={this._onAdEvent}\n onNativeCastEvent={this._onCastEvent}\n onNativePresentationModeChange={this._onPresentationModeChange}\n />\n {children}\n </View>\n );\n }\n}\n\nconst LINKING_ERROR =\n `The package 'react-native-theoplayer' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst ComponentName = 'THEOplayerRCTView';\n\nconst THEOplayerRCTView =\n UIManager.getViewManagerConfig(ComponentName) != null\n ? requireNativeComponent<THEOplayerRCTViewProps>(ComponentName)\n : () => {\n throw new Error(LINKING_ERROR);\n };\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_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","state","nativeEvent","_facade","initializeWithNativePlayerState_","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","startTime","endTime","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","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 type { PlayerConfiguration, PlayerError, THEOplayerViewProps } from 'react-native-theoplayer';\nimport { CastEventType, PlayerEventType } from 'react-native-theoplayer';\n\nimport styles from './THEOplayerView.style';\nimport { decodeNanInf } from './utils/TypeUtils';\nimport { BaseEvent } from './adapter/event/BaseEvent';\nimport {\n DefaultAdEvent,\n DefaultAirplayStateChangeEvent,\n DefaultChromecastChangeEvent,\n DefaultChromecastErrorEvent,\n DefaultDurationChangeEvent,\n DefaultErrorEvent,\n DefaultLoadedMetadataEvent,\n DefaultMediaTrackEvent,\n DefaultMediaTrackListEvent,\n DefaultPresentationModeChangeEvent,\n DefaultProgressEvent,\n DefaultRateChangeEvent,\n DefaultReadyStateChangeEvent,\n DefaultSegmentNotFoundEvent,\n DefaultTextTrackEvent,\n DefaultTextTrackListEvent,\n DefaultVolumeChangeEvent,\n DefaultTimeupdateEvent,\n} from './adapter/event/PlayerEvents';\nimport type { NativeCastEvent } from './adapter/event/native/NativeCastEvent';\nimport type {\n NativeMediaTrackEvent,\n NativeMediaTrackListEvent,\n NativeTextTrackEvent,\n NativeTextTrackListEvent,\n} from './adapter/event/native/NativeTrackEvent';\nimport { toMediaTrackType, toMediaTrackTypeEventType, toTextTrackEventType, toTrackListEventType } from './adapter/event/native/NativeTrackEvent';\nimport type {\n NativeDurationChangeEvent,\n NativeErrorEvent,\n NativeLoadedMetadataEvent,\n NativePlayerStateEvent,\n NativePresentationModeChangeEvent,\n NativeProgressEvent,\n NativeRateChangeEvent,\n NativeReadyStateChangeEvent,\n NativeSegmentNotFoundEvent,\n NativeTimeUpdateEvent,\n NativeVolumeChangeEvent,\n} from './adapter/event/native/NativePlayerEvent';\nimport type { NativeAdEvent } from './adapter/event/native/NativeAdEvent';\nimport { THEOplayerAdapter } from './adapter/THEOplayerAdapter';\n\nconst INVALID_HANDLE = -1;\n\ninterface THEOplayerRCTViewProps {\n ref: React.RefObject<THEOplayerViewNativeComponent>;\n style?: StyleProp<ViewStyle>;\n config?: PlayerConfiguration;\n onNativePlayerReady: (event: NativeSyntheticEvent<NativePlayerStateEvent>) => void;\n onNativeSourceChange: () => void;\n onNativeLoadStart: () => void;\n onNativeLoadedData: () => void;\n onNativeLoadedMetadata: (event: NativeSyntheticEvent<NativeLoadedMetadataEvent>) => void;\n onNativeReadyStateChange?: (event: NativeSyntheticEvent<NativeReadyStateChangeEvent>) => void;\n onNativeError: (event: NativeSyntheticEvent<NativeErrorEvent>) => void;\n onNativeProgress: (event: NativeSyntheticEvent<NativeProgressEvent>) => void;\n onNativeVolumeChange: (event: NativeSyntheticEvent<NativeVolumeChangeEvent>) => void;\n onNativeCanPlay: () => void;\n onNativePlay: () => void;\n onNativePlaying: () => void;\n onNativePause: () => void;\n onNativeSeeking: () => void;\n onNativeSeeked: () => void;\n onNativeEnded: () => void;\n onNativeWaiting: () => void;\n onNativeTimeUpdate: (event: NativeSyntheticEvent<NativeTimeUpdateEvent>) => void;\n onNativeDurationChange: (event: NativeSyntheticEvent<NativeDurationChangeEvent>) => void;\n onNativeRateChange: (event: NativeSyntheticEvent<NativeRateChangeEvent>) => void;\n onNativeSegmentNotFound: (event: NativeSyntheticEvent<NativeSegmentNotFoundEvent>) => void;\n onNativeTextTrackListEvent: (event: NativeSyntheticEvent<NativeTextTrackListEvent>) => void;\n onNativeTextTrackEvent: (event: NativeSyntheticEvent<NativeTextTrackEvent>) => void;\n onNativeMediaTrackListEvent: (event: NativeSyntheticEvent<NativeMediaTrackListEvent>) => void;\n onNativeMediaTrackEvent: (event: NativeSyntheticEvent<NativeMediaTrackEvent>) => void;\n onNativeAdEvent: (event: NativeSyntheticEvent<NativeAdEvent>) => void;\n onNativeCastEvent: (event: NativeSyntheticEvent<NativeCastEvent>) => void;\n onNativePresentationModeChange: (event: NativeSyntheticEvent<NativePresentationModeChangeEvent>) => void;\n}\n\ninterface THEOplayerRCTViewState {\n error?: PlayerError;\n}\n\ntype THEOplayerViewNativeComponent = HostComponent<THEOplayerRCTViewProps>;\n\nexport class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOplayerViewProps>, THEOplayerRCTViewState> {\n private readonly _root: React.RefObject<THEOplayerViewNativeComponent>;\n private readonly _facade: THEOplayerAdapter;\n\n private static initialState: THEOplayerRCTViewState = {\n error: undefined,\n };\n\n constructor(props: THEOplayerViewProps) {\n super(props);\n this._root = React.createRef();\n this.state = THEOplayerView.initialState;\n this._facade = new THEOplayerAdapter(this);\n }\n\n componentWillUnmount() {\n // Notify the player will be destroyed.\n const { onPlayerDestroy } = this.props;\n if (onPlayerDestroy) {\n onPlayerDestroy(this._facade);\n }\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));\n\n if (Platform.OS === 'ios') {\n // TODO: move to native module\n // on iOS, we trigger an explicit 'destroy' to clean up the underlying THEOplayer\n const command = (UIManager as { [index: string]: any })['THEOplayerRCTView'].Commands.destroy;\n UIManager.dispatchViewManagerCommand(findNodeHandle(this._root.current), command, []);\n }\n this._facade.clearEventListeners();\n }\n\n public get nativeHandle(): number {\n return findNodeHandle(this._root.current) || INVALID_HANDLE;\n }\n\n private reset() {\n this.setState(THEOplayerView.initialState);\n }\n\n private _onNativePlayerReady = (event: NativeSyntheticEvent<NativePlayerStateEvent>) => {\n // Optionally apply an initial player state\n const { state } = event?.nativeEvent;\n if (state) {\n this._facade.initializeWithNativePlayerState_(state);\n }\n this.props.onPlayerReady?.(this._facade);\n };\n\n private _onSourceChange = () => {\n this.reset();\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SOURCE_CHANGE));\n };\n\n private _onLoadStart = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.LOAD_START));\n };\n\n private _onLoadedData = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.LOADED_DATA));\n };\n\n private _onLoadedMetadata = (event: NativeSyntheticEvent<NativeLoadedMetadataEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(\n new DefaultLoadedMetadataEvent(\n nativeEvent.textTracks,\n nativeEvent.audioTracks,\n nativeEvent.videoTracks,\n decodeNanInf(nativeEvent.duration),\n nativeEvent.selectedTextTrack,\n nativeEvent.selectedVideoTrack,\n nativeEvent.selectedAudioTrack,\n ),\n );\n };\n\n private _onVolumeChange = (event: NativeSyntheticEvent<NativeVolumeChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultVolumeChangeEvent(event.nativeEvent.volume, event.nativeEvent.muted));\n };\n\n private _onError = (event: NativeSyntheticEvent<NativeErrorEvent>) => {\n const { error } = event.nativeEvent;\n this.setState({ error });\n this._facade.dispatchEvent(new DefaultErrorEvent(event.nativeEvent.error));\n };\n\n private _onProgress = (event: NativeSyntheticEvent<NativeProgressEvent>) => {\n this._facade.dispatchEvent(new DefaultProgressEvent(event.nativeEvent.seekable, event.nativeEvent.buffered));\n };\n\n private _onCanPlay = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.CANPLAY));\n };\n\n private _onPlay = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PLAY));\n };\n\n private _onPlaying = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PLAYING));\n };\n\n private _onPause = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PAUSE));\n };\n\n private _onSeeking = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SEEKING));\n };\n\n private _onSeeked = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SEEKED));\n };\n\n private _onWaiting = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.WAITING));\n };\n\n private _onEnded = () => {\n this._facade.dispatchEvent(new BaseEvent(PlayerEventType.ENDED));\n };\n\n private _onReadStateChange = (event: NativeSyntheticEvent<NativeReadyStateChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultReadyStateChangeEvent(event.nativeEvent.readyState));\n };\n\n private _onTimeUpdate = (event: NativeSyntheticEvent<NativeTimeUpdateEvent>) => {\n this._facade.dispatchEvent(new DefaultTimeupdateEvent(event.nativeEvent.currentTime, event.nativeEvent.currentProgramDateTime));\n };\n\n private _onDurationChange = (event: NativeSyntheticEvent<NativeDurationChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultDurationChangeEvent(decodeNanInf(event.nativeEvent.duration)));\n };\n\n private _onRateChange = (event: NativeSyntheticEvent<NativeRateChangeEvent>) => {\n this._facade.dispatchEvent(new DefaultRateChangeEvent(event.nativeEvent.playbackRate));\n };\n\n private _onSegmentNotFound = (event: NativeSyntheticEvent<NativeSegmentNotFoundEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(new DefaultSegmentNotFoundEvent(nativeEvent.segmentStartTime, nativeEvent.error, nativeEvent.retryCount));\n };\n\n private _onTextTrackListEvent = (event: NativeSyntheticEvent<NativeTextTrackListEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(new DefaultTextTrackListEvent(toTrackListEventType(nativeEvent.type), nativeEvent.track));\n };\n\n private _onTextTrackEvent = (event: NativeSyntheticEvent<NativeTextTrackEvent>) => {\n const nativeEvent = event.nativeEvent;\n const cue = nativeEvent.cue;\n if (cue) {\n cue.startTime = decodeNanInf(cue.startTime);\n cue.endTime = decodeNanInf(cue.endTime);\n }\n this._facade.dispatchEvent(new DefaultTextTrackEvent(toTextTrackEventType(nativeEvent.type), nativeEvent.trackUid, cue));\n };\n\n private _onMediaTrackListEvent = (event: NativeSyntheticEvent<NativeMediaTrackListEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(\n new DefaultMediaTrackListEvent(toTrackListEventType(nativeEvent.type), toMediaTrackType(nativeEvent.trackType), nativeEvent.track),\n );\n };\n\n private _onMediaTrackEvent = (event: NativeSyntheticEvent<NativeMediaTrackEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(\n new DefaultMediaTrackEvent(\n toMediaTrackTypeEventType(nativeEvent.type),\n toMediaTrackType(nativeEvent.trackType),\n nativeEvent.trackUid,\n nativeEvent.qualities,\n ),\n );\n };\n\n private _onAdEvent = (event: NativeSyntheticEvent<NativeAdEvent>) => {\n const nativeEvent = event.nativeEvent;\n this._facade.dispatchEvent(new DefaultAdEvent(nativeEvent.type, nativeEvent.ad));\n };\n\n private _onCastEvent = (event: NativeSyntheticEvent<NativeCastEvent>) => {\n switch (event.nativeEvent.type) {\n case CastEventType.CHROMECAST_STATE_CHANGE:\n this._facade.dispatchEvent(new DefaultChromecastChangeEvent(event.nativeEvent.state));\n break;\n case CastEventType.AIRPLAY_STATE_CHANGE:\n this._facade.dispatchEvent(new DefaultAirplayStateChangeEvent(event.nativeEvent.state));\n break;\n case CastEventType.CHROMECAST_ERROR:\n this._facade.dispatchEvent(new DefaultChromecastErrorEvent(event.nativeEvent.error));\n break;\n }\n };\n\n private _onPresentationModeChange = (event: NativeSyntheticEvent<NativePresentationModeChangeEvent>) => {\n this._facade.dispatchEvent(\n new DefaultPresentationModeChangeEvent(\n event.nativeEvent.presentationMode,\n event.nativeEvent.previousPresentationMode,\n event.nativeEvent.context,\n ),\n );\n };\n\n public render(): JSX.Element {\n const { config, style, children } = this.props;\n return (\n <View style={[styles.base, style]}>\n <THEOplayerRCTView\n ref={this._root}\n style={StyleSheet.absoluteFill}\n config={config || {}}\n onNativePlayerReady={this._onNativePlayerReady}\n onNativeSourceChange={this._onSourceChange}\n onNativeLoadStart={this._onLoadStart}\n onNativeLoadedData={this._onLoadedData}\n onNativeLoadedMetadata={this._onLoadedMetadata}\n onNativeVolumeChange={this._onVolumeChange}\n onNativeError={this._onError}\n onNativeProgress={this._onProgress}\n onNativeCanPlay={this._onCanPlay}\n onNativePlay={this._onPlay}\n onNativePlaying={this._onPlaying}\n onNativePause={this._onPause}\n onNativeSeeking={this._onSeeking}\n onNativeSeeked={this._onSeeked}\n onNativeWaiting={this._onWaiting}\n onNativeEnded={this._onEnded}\n onNativeReadyStateChange={this._onReadStateChange}\n onNativeTimeUpdate={this._onTimeUpdate}\n onNativeDurationChange={this._onDurationChange}\n onNativeRateChange={this._onRateChange}\n onNativeSegmentNotFound={this._onSegmentNotFound}\n onNativeTextTrackListEvent={this._onTextTrackListEvent}\n onNativeTextTrackEvent={this._onTextTrackEvent}\n onNativeMediaTrackListEvent={this._onMediaTrackListEvent}\n onNativeMediaTrackEvent={this._onMediaTrackEvent}\n onNativeAdEvent={this._onAdEvent}\n onNativeCastEvent={this._onCastEvent}\n onNativePresentationModeChange={this._onPresentationModeChange}\n />\n {children}\n </View>\n );\n }\n}\n\nconst LINKING_ERROR =\n `The package 'react-native-theoplayer' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst ComponentName = 'THEOplayerRCTView';\n\nconst THEOplayerRCTView =\n UIManager.getViewManagerConfig(ComponentName) != null\n ? requireNativeComponent<THEOplayerRCTViewProps>(ComponentName)\n : () => {\n throw new Error(LINKING_ERROR);\n };\n"],"mappings":"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"}
@@ -24,21 +24,21 @@ function THEOplayerView(props) {
24
24
  if (container.current) {
25
25
  var _props$onPlayerReady;
26
26
  const chromeless = (config === null || config === void 0 ? void 0 : config.chromeless) === true || (config === null || config === void 0 ? void 0 : config.chromeless) === undefined;
27
+ const updatedConfig = {
28
+ ...config,
29
+ allowNativeFullscreen: true
30
+ };
27
31
  if (chromeless) {
28
- player.current = new THEOplayer.ChromelessPlayer(container.current, config);
32
+ player.current = new THEOplayer.ChromelessPlayer(container.current, updatedConfig);
29
33
  } else {
30
34
  player.current = new THEOplayer.Player(container.current, {
31
- ...config,
35
+ ...updatedConfig,
32
36
  ui: {
33
37
  fluid: true
34
- },
35
- allowNativeFullscreen: true
38
+ }
36
39
  });
37
40
  }
38
41
 
39
- // Prepare the player to ChromelessPlayer.autoplay on platforms where autoplay is restricted without user action.
40
- player.current.prepareWithUserAction();
41
-
42
42
  // Adapt native player to react-native player.
43
43
  adapter.current = new _THEOplayerWebAdapter.THEOplayerWebAdapter(player.current, config);
44
44
 
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","THEOplayer","_THEOplayerWebAdapter","_BaseEvent","_reactNativeTheoplayer","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","THEOplayerView","props","config","children","player","useRef","adapter","container","useEffect","current","_props$onPlayerReady","chromeless","undefined","ChromelessPlayer","Player","ui","fluid","allowNativeFullscreen","prepareWithUserAction","THEOplayerWebAdapter","window","nativePlayer","onPlayerReady","_adapter$current","_adapter$current2","_player$current","onPlayerDestroy","dispatchEvent","BaseEvent","PlayerEventType","DESTROY","destroy","createElement","Fragment","ref","style","styles","className","display","position","width","height","maxHeight","maxWidth","aspectRatio"],"sources":["THEOplayerView.web.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport type { THEOplayerViewProps } from 'react-native-theoplayer';\nimport * as THEOplayer from 'theoplayer';\nimport { THEOplayerWebAdapter } from './adapter/THEOplayerWebAdapter';\nimport { BaseEvent } from './adapter/event/BaseEvent';\nimport { PlayerEventType } from 'react-native-theoplayer';\n\nexport function THEOplayerView(props: React.PropsWithChildren<THEOplayerViewProps>) {\n const { config, children } = props;\n const player = useRef<THEOplayer.ChromelessPlayer | null>(null);\n const adapter = useRef<THEOplayerWebAdapter | null>(null);\n const container = useRef<null | HTMLDivElement>(null);\n\n useEffect(() => {\n // Create player inside container.\n if (container.current) {\n const chromeless = config?.chromeless === true || config?.chromeless === undefined;\n if (chromeless) {\n player.current = new THEOplayer.ChromelessPlayer(container.current, config);\n } else {\n player.current = new THEOplayer.Player(container.current, {\n ...config,\n ui: {\n fluid: true,\n },\n allowNativeFullscreen: true,\n } as THEOplayer.PlayerConfiguration);\n }\n\n // Prepare the player to ChromelessPlayer.autoplay on platforms where autoplay is restricted without user action.\n player.current.prepareWithUserAction();\n\n // Adapt native player to react-native player.\n adapter.current = new THEOplayerWebAdapter(player.current, config);\n\n // Expose players for easy access\n // @ts-ignore\n window.player = adapter.current;\n\n // @ts-ignore\n window.nativePlayer = player;\n\n // Notify the player is ready\n props.onPlayerReady?.(adapter.current);\n }\n\n // Clean-up\n return () => {\n // Notify the player will be destroyed.\n const { onPlayerDestroy } = props;\n if (adapter?.current && onPlayerDestroy) {\n onPlayerDestroy(adapter?.current);\n }\n adapter?.current?.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));\n adapter?.current?.destroy();\n player?.current?.destroy();\n };\n }, [container]);\n\n const chromeless = config?.chromeless === undefined || config?.chromeless === true;\n return (\n <>\n <div\n ref={container}\n style={styles.container}\n className={chromeless ? 'theoplayer-container' : 'theoplayer-container video-js theoplayer-skin'}\n />\n {children}\n </>\n );\n}\n\nconst styles = {\n // by default stretch the video to cover the container.\n // Override using the 'theoplayer-container' class.\n container: {\n display: 'flex',\n position: 'relative',\n width: '100%',\n height: '100%',\n maxHeight: '100vh',\n maxWidth: '100vw',\n aspectRatio: '16 / 9',\n } as React.CSSProperties,\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","THEOplayer","_THEOplayerWebAdapter","_BaseEvent","_reactNativeTheoplayer","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","THEOplayerView","props","config","children","player","useRef","adapter","container","useEffect","current","_props$onPlayerReady","chromeless","undefined","updatedConfig","allowNativeFullscreen","ChromelessPlayer","Player","ui","fluid","THEOplayerWebAdapter","window","nativePlayer","onPlayerReady","_adapter$current","_adapter$current2","_player$current","onPlayerDestroy","dispatchEvent","BaseEvent","PlayerEventType","DESTROY","destroy","createElement","Fragment","ref","style","styles","className","display","position","width","height","maxHeight","maxWidth","aspectRatio"],"sources":["THEOplayerView.web.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport type { THEOplayerViewProps } from 'react-native-theoplayer';\nimport * as THEOplayer from 'theoplayer';\nimport { THEOplayerWebAdapter } from './adapter/THEOplayerWebAdapter';\nimport { BaseEvent } from './adapter/event/BaseEvent';\nimport { PlayerEventType } from 'react-native-theoplayer';\n\nexport function THEOplayerView(props: React.PropsWithChildren<THEOplayerViewProps>) {\n const { config, children } = props;\n const player = useRef<THEOplayer.ChromelessPlayer | null>(null);\n const adapter = useRef<THEOplayerWebAdapter | null>(null);\n const container = useRef<null | HTMLDivElement>(null);\n\n useEffect(() => {\n // Create player inside container.\n if (container.current) {\n const chromeless = config?.chromeless === true || config?.chromeless === undefined;\n const updatedConfig = {...config, allowNativeFullscreen: true};\n if (chromeless) {\n player.current = new THEOplayer.ChromelessPlayer(container.current, updatedConfig);\n } else {\n player.current = new THEOplayer.Player(container.current, {\n ...updatedConfig,\n ui: {\n fluid: true,\n }\n } as THEOplayer.PlayerConfiguration);\n }\n\n // Adapt native player to react-native player.\n adapter.current = new THEOplayerWebAdapter(player.current, config);\n\n // Expose players for easy access\n // @ts-ignore\n window.player = adapter.current;\n\n // @ts-ignore\n window.nativePlayer = player;\n\n // Notify the player is ready\n props.onPlayerReady?.(adapter.current);\n }\n\n // Clean-up\n return () => {\n // Notify the player will be destroyed.\n const { onPlayerDestroy } = props;\n if (adapter?.current && onPlayerDestroy) {\n onPlayerDestroy(adapter?.current);\n }\n adapter?.current?.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));\n adapter?.current?.destroy();\n player?.current?.destroy();\n };\n }, [container]);\n\n const chromeless = config?.chromeless === undefined || config?.chromeless === true;\n return (\n <>\n <div\n ref={container}\n style={styles.container}\n className={chromeless ? 'theoplayer-container' : 'theoplayer-container video-js theoplayer-skin'}\n />\n {children}\n </>\n );\n}\n\nconst styles = {\n // by default stretch the video to cover the container.\n // Override using the 'theoplayer-container' class.\n container: {\n display: 'flex',\n position: 'relative',\n width: '100%',\n height: '100%',\n maxHeight: '100vh',\n maxWidth: '100vw',\n aspectRatio: '16 / 9',\n } as React.CSSProperties,\n};\n"],"mappings":"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"}
@@ -314,7 +314,7 @@ class THEOplayerAdapter extends _DefaultEventDispatcher.DefaultEventDispatcher {
314
314
  set selectedTextTrack(trackUid) {
315
315
  this._state.selectedTextTrack = trackUid;
316
316
  this.textTracks.forEach(track => {
317
- if (track.uid == trackUid) {
317
+ if (track.uid === trackUid) {
318
318
  track.mode = _reactNativeTheoplayer.TextTrackMode.showing;
319
319
  } else if (track.mode === _reactNativeTheoplayer.TextTrackMode.showing) {
320
320
  track.mode = _reactNativeTheoplayer.TextTrackMode.disabled;