@pigeonmal/react-native-video 7.0.0-beta.7 → 7.0.0-beta.9

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 (39) hide show
  1. package/README.md +13 -6
  2. package/android/src/main/java/com/twg/video/core/VideoManager.kt +9 -1
  3. package/android/src/main/java/com/twg/video/core/utils/TrackUtils.kt +1 -1
  4. package/android/src/main/java/com/twg/video/hybrids/videoplayer/HybridVideoPlayer.kt +26 -12
  5. package/android/src/main/java/com/twg/video/hybrids/videoplayereventemitter/HybridVideoPlayerEventEmitter.kt +21 -7
  6. package/lib/commonjs/core/VideoPlayer.js +35 -4
  7. package/lib/commonjs/core/VideoPlayer.js.map +1 -1
  8. package/lib/commonjs/core/types/Events.js.map +1 -1
  9. package/lib/module/core/VideoPlayer.js +35 -4
  10. package/lib/module/core/VideoPlayer.js.map +1 -1
  11. package/lib/module/core/types/Events.js.map +1 -1
  12. package/lib/typescript/commonjs/src/core/VideoPlayer.d.ts +5 -1
  13. package/lib/typescript/commonjs/src/core/VideoPlayer.d.ts.map +1 -1
  14. package/lib/typescript/commonjs/src/core/types/Events.d.ts +4 -0
  15. package/lib/typescript/commonjs/src/core/types/Events.d.ts.map +1 -1
  16. package/lib/typescript/commonjs/src/core/types/VideoPlayerBase.d.ts +10 -1
  17. package/lib/typescript/commonjs/src/core/types/VideoPlayerBase.d.ts.map +1 -1
  18. package/lib/typescript/module/src/core/VideoPlayer.d.ts +5 -1
  19. package/lib/typescript/module/src/core/VideoPlayer.d.ts.map +1 -1
  20. package/lib/typescript/module/src/core/types/Events.d.ts +4 -0
  21. package/lib/typescript/module/src/core/types/Events.d.ts.map +1 -1
  22. package/lib/typescript/module/src/core/types/VideoPlayerBase.d.ts +10 -1
  23. package/lib/typescript/module/src/core/types/VideoPlayerBase.d.ts.map +1 -1
  24. package/nitrogen/generated/android/c++/JHybridVideoPlayerSpec.cpp +13 -0
  25. package/nitrogen/generated/android/c++/JHybridVideoPlayerSpec.hpp +3 -0
  26. package/nitrogen/generated/android/c++/JonProgressData.hpp +7 -3
  27. package/nitrogen/generated/android/kotlin/com/margelo/nitro/video/HybridVideoPlayerSpec.kt +10 -0
  28. package/nitrogen/generated/android/kotlin/com/margelo/nitro/video/onProgressData.kt +6 -3
  29. package/nitrogen/generated/ios/c++/HybridVideoPlayerSpecSwift.hpp +12 -0
  30. package/nitrogen/generated/ios/swift/HybridVideoPlayerSpec.swift +2 -0
  31. package/nitrogen/generated/ios/swift/HybridVideoPlayerSpec_cxx.swift +22 -0
  32. package/nitrogen/generated/ios/swift/onProgressData.swift +13 -2
  33. package/nitrogen/generated/shared/c++/HybridVideoPlayerSpec.cpp +3 -0
  34. package/nitrogen/generated/shared/c++/HybridVideoPlayerSpec.hpp +3 -0
  35. package/nitrogen/generated/shared/c++/onProgressData.hpp +6 -2
  36. package/package.json +1 -1
  37. package/src/core/VideoPlayer.ts +47 -5
  38. package/src/core/types/Events.ts +4 -0
  39. package/src/core/types/VideoPlayerBase.ts +12 -1
package/README.md CHANGED
@@ -1,19 +1,24 @@
1
- Last commit sync : 1eb317a566a6d8ae9ee831a09dd931629e287ab5
2
- Date: 18/12/2025
1
+ Last commit sync : 605feed68a4be9ff8fcfa2f288d4f0570f044699
2
+ Date: 19/12/2025
3
3
 
4
4
  (Only android)
5
5
  Install :
6
- 1) npm install @pigeonmal/react-native-video@beta react-native-nitro-fetch
7
- 2) Add this to android/app/settings.gradle
6
+
7
+ 1. npm install @pigeonmal/react-native-video@beta react-native-nitro-fetch
8
+ 2. Add this to android/app/settings.gradle
9
+
8
10
  ```
9
11
  include ':media3-ffmpeg-decoder'
10
12
 
11
13
  project(':media3-ffmpeg-decoder').projectDir = file('../../node_modules/react-native-video/android/media3-ffmpeg-decoder')
12
14
  ```
13
- 3) create a patch for react-native-nitro-fetch like in the patches/react-native-nitro-fetch@x.patch
15
+
16
+ 3. create a patch for react-native-nitro-fetch like in the patches/react-native-nitro-fetch@x.patch
14
17
 
15
18
  ---
19
+
16
20
  Features:
21
+
17
22
  - ffmpeg fallback
18
23
  - videoconfig: externalAudios (array of AudioTrack)
19
24
  - videoconfig: forceType 'm3u8' or 'mpd' if url not have explicit extension
@@ -25,8 +30,10 @@ Features:
25
30
  - player.selectTrackById and selectTrackByIndex for select video or audio or text
26
31
  - player.selectTextTrack removed use selectTrackById(TrackType.TEXT, trackId)
27
32
  - player.resetForReuse() stop playback and clear tracks
33
+ - player.progressEventInterval change the progress event interval
28
34
  - bugfix: external subtitles in hls/dash
29
35
  - nullable video player source : new VideoPlayer(undefined);
30
36
  - TextTrack type replaced to PlayerTrack
31
37
  - removed onTrackChange event
32
- - allPlayerTracks in onLoadData event directly
38
+ - allPlayerTracks in onLoadData event directly
39
+ - seekableDuration in onProgressData event (video duration)
@@ -170,9 +170,17 @@ object VideoManager : LifecycleEventListener {
170
170
  }
171
171
 
172
172
  fun unregisterPlayer(player: HybridVideoPlayer) {
173
- players.remove(player)
174
173
  audioFocusManager.unregisterPlayer(player)
175
174
  PluginsRegistry.shared.notifyPlayerDestroyed(WeakReference(player))
175
+
176
+ // Remove player from any views that were using it
177
+ players[player]?.forEach { nitroId ->
178
+ views[nitroId]?.get()?.let { view ->
179
+ view.hybridPlayer = null
180
+ }
181
+ }
182
+
183
+ players.remove(player)
176
184
  }
177
185
 
178
186
  fun getPlayerByNitroId(nitroId: Int): HybridVideoPlayer? {
@@ -155,7 +155,7 @@ object TrackUtils {
155
155
  }
156
156
  }
157
157
 
158
- fun getTextSelectedTrack(player: ExoPlayer, source: HybridVideoPlayerSourceSpec): PlayerTrack? {
158
+ fun getTextSelectedTrack(player: ExoPlayer): PlayerTrack? {
159
159
  return Threading.runOnMainThreadSync {
160
160
  val currentTracks = player.currentTracks
161
161
  var globalTrackIndex = 0
@@ -43,7 +43,7 @@ import kotlin.math.max
43
43
 
44
44
  @UnstableApi
45
45
  @DoNotStrip
46
- class HybridVideoPlayer() : HybridVideoPlayerSpec() {
46
+ class HybridVideoPlayer() : HybridVideoPlayerSpec(), AutoCloseable {
47
47
  override lateinit var source: HybridVideoPlayerSourceSpec
48
48
  override var eventEmitter = HybridVideoPlayerEventEmitter()
49
49
  set(value) {
@@ -88,7 +88,6 @@ class HybridVideoPlayer() : HybridVideoPlayerSpec() {
88
88
  private val videoPlaybackServiceConnection = VideoPlaybackServiceConnection(WeakReference(this))
89
89
 
90
90
  private companion object {
91
- const val PROGRESS_UPDATE_INTERVAL_MS = 250L
92
91
  private const val TAG = "HybridVideoPlayer"
93
92
  private const val DEFAULT_MIN_BUFFER_DURATION_MS = 5000
94
93
  private const val DEFAULT_MAX_BUFFER_DURATION_MS = 10000
@@ -105,6 +104,8 @@ class HybridVideoPlayer() : HybridVideoPlayerSpec() {
105
104
  field = value
106
105
  }
107
106
 
107
+ override var progressEventInterval = 250L
108
+
108
109
  override var showNotificationControls: Boolean = false
109
110
  set(value) {
110
111
  val wasRunning = (field || playInBackground)
@@ -146,8 +147,7 @@ class HybridVideoPlayer() : HybridVideoPlayerSpec() {
146
147
 
147
148
  override val duration: Double by mainThreadProperty(
148
149
  get = {
149
- val duration = player.duration
150
- return@mainThreadProperty if (duration == C.TIME_UNSET) Double.NaN else duration.toDouble() / 1000.0
150
+ return@mainThreadProperty player.duration.toSecondsOrNaN()
151
151
  }
152
152
  )
153
153
 
@@ -374,7 +374,7 @@ class HybridVideoPlayer() : HybridVideoPlayerSpec() {
374
374
  }
375
375
  }
376
376
 
377
- private fun release() {
377
+ override fun release() {
378
378
  if (playInBackground || showNotificationControls) {
379
379
  VideoPlaybackService.stopService(this, videoPlaybackServiceConnection)
380
380
  }
@@ -384,6 +384,8 @@ class HybridVideoPlayer() : HybridVideoPlayerSpec() {
384
384
  stopProgressUpdates()
385
385
  loadedWithSource = false
386
386
 
387
+ eventEmitter.clearAllListeners()
388
+
387
389
  player.removeListener(playerListener)
388
390
  player.removeAnalyticsListener(analyticsListener)
389
391
  player.release() // Release player
@@ -409,8 +411,14 @@ class HybridVideoPlayer() : HybridVideoPlayerSpec() {
409
411
  release()
410
412
  }
411
413
 
412
- override val memorySize: Long
413
- get() = allocator?.totalBytesAllocated?.toLong() ?: 0L
414
+ override fun close() {
415
+ release()
416
+ }
417
+
418
+ override val memorySize: Long
419
+ // 1 MiB by default
420
+ get() = allocator?.totalBytesAllocated?.toLong() ?: (1024L * 1024L)
421
+
414
422
 
415
423
  private fun startProgressUpdates() {
416
424
  stopProgressUpdates() // Ensure no multiple runnables
@@ -425,10 +433,11 @@ class HybridVideoPlayer() : HybridVideoPlayerSpec() {
425
433
  eventEmitter.onProgress(
426
434
  onProgressData(
427
435
  currentTime = currentTimeSeconds,
428
- bufferDuration = playableDurationFromNow
436
+ bufferDuration = playableDurationFromNow,
437
+ seekableDuration = player.duration.toSecondsOrNaN()
429
438
  )
430
439
  )
431
- progressHandler.postDelayed(this, PROGRESS_UPDATE_INTERVAL_MS)
440
+ progressHandler.postDelayed(this, progressEventInterval)
432
441
  }
433
442
  }
434
443
  }
@@ -504,7 +513,7 @@ class HybridVideoPlayer() : HybridVideoPlayerSpec() {
504
513
  eventEmitter.onLoad(
505
514
  onLoadData(
506
515
  currentTime = player.currentPosition / 1000.0,
507
- duration = if (player.duration == C.TIME_UNSET) Double.NaN else player.duration / 1000.0,
516
+ duration = player.duration.toSecondsOrNaN(),
508
517
  width = width,
509
518
  height = height,
510
519
  orientation = VideoOrientationUtils.fromWHR(width, height, null),
@@ -564,7 +573,8 @@ class HybridVideoPlayer() : HybridVideoPlayerSpec() {
564
573
  eventEmitter.onProgress(
565
574
  onProgressData(
566
575
  currentTime = currentTimeSeconds,
567
- bufferDuration = max(0.0, bufferedDurationSeconds - currentTimeSeconds)
576
+ bufferDuration = max(0.0, bufferedDurationSeconds - currentTimeSeconds),
577
+ seekableDuration = player.duration.toSecondsOrNaN()
568
578
  )
569
579
  )
570
580
  }
@@ -652,5 +662,9 @@ class HybridVideoPlayer() : HybridVideoPlayerSpec() {
652
662
  }
653
663
 
654
664
  override val selectedTrack: PlayerTrack?
655
- get() = TrackUtils.getTextSelectedTrack(player, source)
665
+ get() = TrackUtils.getTextSelectedTrack(player)
656
666
  }
667
+
668
+
669
+ fun Long.toSecondsOrNaN(): Double =
670
+ if (this == C.TIME_UNSET) Double.NaN else this.toDouble() / 1000.0
@@ -7,31 +7,43 @@ import java.util.UUID
7
7
  data class ListenerPair(val id: UUID, val eventName: String, val callback: Any)
8
8
 
9
9
  class HybridVideoPlayerEventEmitter : HybridVideoPlayerEventEmitterSpec() {
10
+ private val lock = Any()
11
+
10
12
  var listeners: MutableList<ListenerPair> = mutableListOf()
11
13
 
12
14
  // MARK: - Private helpers
13
15
  private fun <T : Any> addListener(eventName: String, listener: T): ListenerSubscription {
14
16
  val id = UUID.randomUUID()
17
+ synchronized(lock) {
15
18
  listeners.add(ListenerPair(id, eventName, listener))
16
- return ListenerSubscription { listeners.removeAll { it.id == id } }
19
+ }
20
+ return ListenerSubscription {
21
+ synchronized(lock) {
22
+ listeners.removeAll { it.id == id }
23
+ }
24
+ }
17
25
  }
18
26
 
19
27
  private inline fun <reified T> emitEvent(eventName: String, invokeCallback: (T) -> Unit) {
20
- listeners.filter { it.eventName == eventName }.forEach { pair ->
28
+ val snapshot: List<ListenerPair> = synchronized(lock) {
29
+ listeners.filter { it.eventName == eventName }.toList()
30
+ }
31
+
32
+ snapshot.forEach { pair ->
21
33
  try {
22
34
  @Suppress("UNCHECKED_CAST")
23
- val callback = pair.callback as? T
24
- if (callback == null) {
35
+ val callback = pair.callback as? T ?: run {
25
36
  Log.d(TAG, "Invalid callback type for $eventName")
26
37
  return@forEach
27
38
  }
28
39
  invokeCallback(callback)
29
- } catch (error: Error) {
30
- Log.d(TAG, "Error calling $eventName listener $error")
40
+ } catch (t: Throwable) {
41
+ Log.d(TAG, "Error calling $eventName listener", t)
31
42
  }
32
43
  }
33
44
  }
34
45
 
46
+
35
47
  // MARK: - Listener registration methods
36
48
 
37
49
  override fun addOnAudioBecomingNoisyListener(listener: () -> Unit) =
@@ -89,7 +101,9 @@ class HybridVideoPlayerEventEmitter : HybridVideoPlayerEventEmitterSpec() {
89
101
  addListener("onVolumeChange", listener)
90
102
 
91
103
  override fun clearAllListeners() {
104
+ synchronized(lock) {
92
105
  listeners.clear()
106
+ }
93
107
  }
94
108
 
95
109
  // MARK: - Event emission methods
@@ -151,4 +165,4 @@ class HybridVideoPlayerEventEmitter : HybridVideoPlayerEventEmitterSpec() {
151
165
  companion object {
152
166
  const val TAG = "HybridVideoPlayerEventEmitter"
153
167
  }
154
- }
168
+ }
@@ -11,22 +11,47 @@ var _playerFactory = require("./utils/playerFactory.js");
11
11
  var _sourceFactory = require("./utils/sourceFactory.js");
12
12
  var _VideoPlayerEvents = require("./VideoPlayerEvents.js");
13
13
  class VideoPlayer extends _VideoPlayerEvents.VideoPlayerEvents {
14
+ get player() {
15
+ if (this._player === undefined) {
16
+ throw new _VideoError.VideoRuntimeError('player/released', "You can't access player after it's released");
17
+ }
18
+ return this._player;
19
+ }
14
20
  constructor(source) {
15
21
  const player = (0, _playerFactory.createPlayer)(source != null ? (0, _sourceFactory.createSource)(source) : undefined);
16
22
 
17
23
  // Initialize events
18
24
  super(player.eventEmitter);
19
- this.player = player;
25
+ this._player = player;
20
26
  }
21
27
 
22
28
  /**
23
- * Cleans up player's native resources and releases native state.
24
- * After calling this method, the player is no longer usable.
29
+ * Releases the player's native resources and releases native state.
25
30
  * @internal
26
31
  */
27
32
  __destroy() {
33
+ if (this._player === undefined) return;
28
34
  this.clearAllEvents();
29
- this.player.dispose();
35
+ try {
36
+ this.player.release();
37
+ } catch (error) {
38
+ // Best effort cleanup: teardown must never crash app unmount.
39
+ console.error('Failed to cleanup native player resources', error);
40
+ }
41
+
42
+ // We leave hybrid object to be cleaned up by garbage collector
43
+ // So we update memory size to ensure that memory is released
44
+ // when needed
45
+ this.updateMemorySize();
46
+
47
+ // We wait for 5s to let late events that were triggered before release to be processed
48
+ if (this._releaseTimeout !== undefined) {
49
+ clearTimeout(this._releaseTimeout);
50
+ }
51
+ this._releaseTimeout = setTimeout(() => {
52
+ this._player = undefined;
53
+ this._releaseTimeout = undefined;
54
+ }, 5000);
30
55
  }
31
56
 
32
57
  /**
@@ -102,6 +127,12 @@ class VideoPlayer extends _VideoPlayerEvents.VideoPlayerEvents {
102
127
  set currentTime(value) {
103
128
  this.player.currentTime = value;
104
129
  }
130
+ get progressEventInterval() {
131
+ return this.player.progressEventInterval;
132
+ }
133
+ set progressEventInterval(value) {
134
+ this.player.progressEventInterval = value;
135
+ }
105
136
  get subtitleDelay() {
106
137
  return this.player.subtitleDelay;
107
138
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_reactNativeNitroModules","_VideoError","_playerFactory","_sourceFactory","_VideoPlayerEvents","VideoPlayer","VideoPlayerEvents","constructor","source","player","createPlayer","createSource","undefined","eventEmitter","__destroy","clearAllEvents","dispose","__getNativePlayer","throwError","error","parsedError","tryParseNativeVideoError","VideoRuntimeError","triggerJSEvent","updateMemorySize","NitroModules","wrapPromise","promise","Promise","resolve","reject","then","catch","status","duration","volume","value","currentTime","subtitleDelay","muted","loop","rate","mixAudioMode","ignoreSilentSwitchMode","__DEV__","includes","Platform","OS","console","warn","playInBackground","playWhenInactive","isPlaying","showNotificationControls","initialize","preload","release","play","pause","seekBy","time","seekTo","replaceSourceAsync","getAvailableTextTracks","getAllPlayerTracks","audios","videos","texts","selectTrackById","type","id","selectTrackByIndex","index","resetForReuse","selectedTrack","exports"],"sourceRoot":"../../../src","sources":["core/VideoPlayer.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_reactNativeNitroModules","_VideoError","_playerFactory","_sourceFactory","_VideoPlayerEvents","VideoPlayer","VideoPlayerEvents","player","_player","undefined","VideoRuntimeError","constructor","source","createPlayer","createSource","eventEmitter","__destroy","clearAllEvents","release","error","console","updateMemorySize","_releaseTimeout","clearTimeout","setTimeout","__getNativePlayer","throwError","parsedError","tryParseNativeVideoError","triggerJSEvent","NitroModules","wrapPromise","promise","Promise","resolve","reject","then","catch","status","duration","volume","value","currentTime","progressEventInterval","subtitleDelay","muted","loop","rate","mixAudioMode","ignoreSilentSwitchMode","__DEV__","includes","Platform","OS","warn","playInBackground","playWhenInactive","isPlaying","showNotificationControls","initialize","preload","play","pause","seekBy","time","seekTo","replaceSourceAsync","getAvailableTextTracks","getAllPlayerTracks","audios","videos","texts","selectTrackById","type","id","selectTrackByIndex","index","resetForReuse","selectedTrack","exports"],"sourceRoot":"../../../src","sources":["core/VideoPlayer.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AAOA,IAAAE,WAAA,GAAAF,OAAA;AAMA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA;AAOA,MAAMM,WAAW,SAASC,oCAAiB,CAA4B;EAIrE,IAAcC,MAAMA,CAAA,EAAoB;IACtC,IAAI,IAAI,CAACC,OAAO,KAAKC,SAAS,EAAE;MAC9B,MAAM,IAAIC,6BAAiB,CACzB,iBAAiB,EACjB,6CACF,CAAC;IACH;IAEA,OAAO,IAAI,CAACF,OAAO;EACrB;EAEAG,WAAWA,CAACC,MAAsD,EAAE;IAClE,MAAML,MAAM,GAAG,IAAAM,2BAAY,EACzBD,MAAM,IAAI,IAAI,GAAG,IAAAE,2BAAY,EAACF,MAAM,CAAC,GAAGH,SAC1C,CAAC;;IAED;IACA,KAAK,CAACF,MAAM,CAACQ,YAAY,CAAC;IAC1B,IAAI,CAACP,OAAO,GAAGD,MAAM;EACvB;;EAEA;AACF;AACA;AACA;EACES,SAASA,CAAA,EAAG;IACV,IAAI,IAAI,CAACR,OAAO,KAAKC,SAAS,EAAE;IAEhC,IAAI,CAACQ,cAAc,CAAC,CAAC;IAErB,IAAI;MACF,IAAI,CAACV,MAAM,CAACW,OAAO,CAAC,CAAC;IACvB,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd;MACAC,OAAO,CAACD,KAAK,CAAC,2CAA2C,EAAEA,KAAK,CAAC;IACnE;;IAEA;IACA;IACA;IACA,IAAI,CAACE,gBAAgB,CAAC,CAAC;;IAEvB;IACA,IAAI,IAAI,CAACC,eAAe,KAAKb,SAAS,EAAE;MACtCc,YAAY,CAAC,IAAI,CAACD,eAAe,CAAC;IACpC;IAEA,IAAI,CAACA,eAAe,GAAGE,UAAU,CAAC,MAAM;MACtC,IAAI,CAAChB,OAAO,GAAGC,SAAS;MACxB,IAAI,CAACa,eAAe,GAAGb,SAAS;IAClC,CAAC,EAAE,IAAI,CAAC;EACV;;EAEA;AACF;AACA;AACA;AACA;EACEgB,iBAAiBA,CAAA,EAAG;IAClB,OAAO,IAAI,CAAClB,MAAM;EACpB;;EAEA;AACF;AACA;AACA;EACUmB,UAAUA,CAACP,KAAc,EAAE;IACjC,MAAMQ,WAAW,GAAG,IAAAC,oCAAwB,EAACT,KAAK,CAAC;IAEnD,IACEQ,WAAW,YAAYjB,6BAAiB,IACxC,IAAI,CAACmB,cAAc,CAAC,SAAS,EAAEF,WAAgC,CAAC,EAChE;MACA;MACA;IACF;IAEA,MAAMA,WAAW;EACnB;;EAEA;AACF;AACA;AACA;EACUN,gBAAgBA,CAAA,EAAG;IACzBS,qCAAY,CAACT,gBAAgB,CAAC,IAAI,CAACd,MAAM,CAAC;IAC1CuB,qCAAY,CAACT,gBAAgB,CAAC,IAAI,CAACd,MAAM,CAACK,MAAM,CAAC;EACnD;;EAEA;AACF;AACA;AACA;EACUmB,WAAWA,CAAIC,OAAmB,EAAE;IAC1C,OAAO,IAAIC,OAAO,CAAI,CAACC,OAAO,EAAEC,MAAM,KAAK;MACzCH,OAAO,CAACI,IAAI,CAACF,OAAO,CAAC,CAACG,KAAK,CAAElB,KAAK,IAAK;QACrCgB,MAAM,CAAC,IAAI,CAACT,UAAU,CAACP,KAAK,CAAC,CAAC;MAChC,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;;EAEA;EACA,IAAIP,MAAMA,CAAA,EAAsB;IAC9B,OAAO,IAAI,CAACL,MAAM,CAACK,MAAM;EAC3B;;EAEA;EACA,IAAI0B,MAAMA,CAAA,EAAsB;IAC9B,OAAO,IAAI,CAAC/B,MAAM,CAAC+B,MAAM;EAC3B;;EAEA;EACA,IAAIC,QAAQA,CAAA,EAAW;IACrB,OAAO,IAAI,CAAChC,MAAM,CAACgC,QAAQ;EAC7B;;EAEA;EACA,IAAIC,MAAMA,CAAA,EAAW;IACnB,OAAO,IAAI,CAACjC,MAAM,CAACiC,MAAM;EAC3B;EAEA,IAAIA,MAAMA,CAACC,KAAa,EAAE;IACxB,IAAI,CAAClC,MAAM,CAACiC,MAAM,GAAGC,KAAK;EAC5B;;EAEA;EACA,IAAIC,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACnC,MAAM,CAACmC,WAAW;EAChC;EAEA,IAAIA,WAAWA,CAACD,KAAa,EAAE;IAC7B,IAAI,CAAClC,MAAM,CAACmC,WAAW,GAAGD,KAAK;EACjC;EAEA,IAAIE,qBAAqBA,CAAA,EAAW;IAClC,OAAO,IAAI,CAACpC,MAAM,CAACoC,qBAAqB;EAC1C;EAEA,IAAIA,qBAAqBA,CAACF,KAAa,EAAE;IACvC,IAAI,CAAClC,MAAM,CAACoC,qBAAqB,GAAGF,KAAK;EAC3C;EAEA,IAAIG,aAAaA,CAAA,EAAW;IAC1B,OAAO,IAAI,CAACrC,MAAM,CAACqC,aAAa;EAClC;EAEA,IAAIA,aAAaA,CAACH,KAAa,EAAE;IAC/B,IAAI,CAAClC,MAAM,CAACqC,aAAa,GAAGH,KAAK;EACnC;;EAEA;EACA,IAAII,KAAKA,CAAA,EAAY;IACnB,OAAO,IAAI,CAACtC,MAAM,CAACsC,KAAK;EAC1B;EAEA,IAAIA,KAAKA,CAACJ,KAAc,EAAE;IACxB,IAAI,CAAClC,MAAM,CAACsC,KAAK,GAAGJ,KAAK;EAC3B;;EAEA;EACA,IAAIK,IAAIA,CAAA,EAAY;IAClB,OAAO,IAAI,CAACvC,MAAM,CAACuC,IAAI;EACzB;EAEA,IAAIA,IAAIA,CAACL,KAAc,EAAE;IACvB,IAAI,CAAClC,MAAM,CAACuC,IAAI,GAAGL,KAAK;EAC1B;;EAEA;EACA,IAAIM,IAAIA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACxC,MAAM,CAACwC,IAAI;EACzB;EAEA,IAAIA,IAAIA,CAACN,KAAa,EAAE;IACtB,IAAI,CAAClC,MAAM,CAACwC,IAAI,GAAGN,KAAK;EAC1B;;EAEA;EACA,IAAIO,YAAYA,CAAA,EAAiB;IAC/B,OAAO,IAAI,CAACzC,MAAM,CAACyC,YAAY;EACjC;EAEA,IAAIA,YAAYA,CAACP,KAAmB,EAAE;IACpC,IAAI,CAAClC,MAAM,CAACyC,YAAY,GAAGP,KAAK;EAClC;;EAEA;EACA,IAAIQ,sBAAsBA,CAAA,EAA2B;IACnD,OAAO,IAAI,CAAC1C,MAAM,CAAC0C,sBAAsB;EAC3C;EAEA,IAAIA,sBAAsBA,CAACR,KAA6B,EAAE;IACxD,IAAIS,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,CAACC,QAAQ,CAACC,qBAAQ,CAACC,EAAE,CAAC,EAAE;MAC7CjC,OAAO,CAACkC,IAAI,CACV,mFACF,CAAC;IACH;IAEA,IAAI,CAAC/C,MAAM,CAAC0C,sBAAsB,GAAGR,KAAK;EAC5C;;EAEA;EACA,IAAIc,gBAAgBA,CAAA,EAAY;IAC9B,OAAO,IAAI,CAAChD,MAAM,CAACgD,gBAAgB;EACrC;EAEA,IAAIA,gBAAgBA,CAACd,KAAc,EAAE;IACnC,IAAI,CAAClC,MAAM,CAACgD,gBAAgB,GAAGd,KAAK;EACtC;;EAEA;EACA,IAAIe,gBAAgBA,CAAA,EAAY;IAC9B,OAAO,IAAI,CAACjD,MAAM,CAACiD,gBAAgB;EACrC;EAEA,IAAIA,gBAAgBA,CAACf,KAAc,EAAE;IACnC,IAAI,CAAClC,MAAM,CAACiD,gBAAgB,GAAGf,KAAK;EACtC;;EAEA;EACA,IAAIgB,SAASA,CAAA,EAAY;IACvB,OAAO,IAAI,CAAClD,MAAM,CAACkD,SAAS;EAC9B;EAEA,IAAIC,wBAAwBA,CAAA,EAAY;IACtC,OAAO,IAAI,CAACnD,MAAM,CAACmD,wBAAwB;EAC7C;EAEA,IAAIA,wBAAwBA,CAACjB,KAAc,EAAE;IAC3C,IAAI,CAAClC,MAAM,CAACmD,wBAAwB,GAAGjB,KAAK;EAC9C;EAEA,MAAMkB,UAAUA,CAAA,EAAkB;IAChC,MAAM,IAAI,CAAC5B,WAAW,CAAC,IAAI,CAACxB,MAAM,CAACoD,UAAU,CAAC,CAAC,CAAC;IAEhD,IAAI,CAACtC,gBAAgB,CAAC,CAAC;EACzB;EAEA,MAAMuC,OAAOA,CAAA,EAAkB;IAC7B,MAAM,IAAI,CAAC7B,WAAW,CAAC,IAAI,CAACxB,MAAM,CAACqD,OAAO,CAAC,CAAC,CAAC;IAE7C,IAAI,CAACvC,gBAAgB,CAAC,CAAC;EACzB;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEH,OAAOA,CAAA,EAAS;IACd,IAAI,CAACF,SAAS,CAAC,CAAC;EAClB;EAEA6C,IAAIA,CAAA,EAAS;IACX,IAAI;MACF,IAAI,CAACtD,MAAM,CAACsD,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC,OAAO1C,KAAK,EAAE;MACd,IAAI,CAACO,UAAU,CAACP,KAAK,CAAC;IACxB;EACF;EAEA2C,KAAKA,CAAA,EAAS;IACZ,IAAI;MACF,IAAI,CAACvD,MAAM,CAACuD,KAAK,CAAC,CAAC;IACrB,CAAC,CAAC,OAAO3C,KAAK,EAAE;MACd,IAAI,CAACO,UAAU,CAACP,KAAK,CAAC;IACxB;EACF;EAEA4C,MAAMA,CAACC,IAAY,EAAQ;IACzB,IAAI;MACF,IAAI,CAACzD,MAAM,CAACwD,MAAM,CAACC,IAAI,CAAC;IAC1B,CAAC,CAAC,OAAO7C,KAAK,EAAE;MACd,IAAI,CAACO,UAAU,CAACP,KAAK,CAAC;IACxB;EACF;EAEA8C,MAAMA,CAACD,IAAY,EAAQ;IACzB,IAAI;MACF,IAAI,CAACzD,MAAM,CAAC0D,MAAM,CAACD,IAAI,CAAC;IAC1B,CAAC,CAAC,OAAO7C,KAAK,EAAE;MACd,IAAI,CAACO,UAAU,CAACP,KAAK,CAAC;IACxB;EACF;EAEA,MAAM+C,kBAAkBA,CACtBtD,MAA4E,EAC7D;IACf,IAAI,CAACS,gBAAgB,CAAC,CAAC;IAEvB,MAAM,IAAI,CAACU,WAAW,CACpB,IAAI,CAACxB,MAAM,CAAC2D,kBAAkB,CAC5BtD,MAAM,KAAK,IAAI,GAAG,IAAI,GAAG,IAAAE,2BAAY,EAACF,MAAM,CAC9C,CACF,CAAC;IAED,IAAI,CAACS,gBAAgB,CAAC,CAAC;EACzB;;EAEA;EACA8C,sBAAsBA,CAAA,EAAkB;IACtC,IAAI;MACF,OAAO,IAAI,CAAC5D,MAAM,CAAC4D,sBAAsB,CAAC,CAAC;IAC7C,CAAC,CAAC,OAAOhD,KAAK,EAAE;MACd,IAAI,CAACO,UAAU,CAACP,KAAK,CAAC;MACtB,OAAO,EAAE;IACX;EACF;EAEAiD,kBAAkBA,CAAA,EAAoB;IACpC,IAAI;MACF,OAAO,IAAI,CAAC7D,MAAM,CAAC6D,kBAAkB,CAAC,CAAC;IACzC,CAAC,CAAC,OAAOjD,KAAK,EAAE;MACd,IAAI,CAACO,UAAU,CAACP,KAAK,CAAC;MACtB,OAAO;QAAEkD,MAAM,EAAE,EAAE;QAAEC,MAAM,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAG,CAAC;IAC9C;EACF;EAEAC,eAAeA,CAACC,IAAe,EAAEC,EAAW,EAAQ;IAClD,IAAI;MACF,IAAI,CAACnE,MAAM,CAACiE,eAAe,CAACC,IAAI,EAAEC,EAAE,CAAC;IACvC,CAAC,CAAC,OAAOvD,KAAK,EAAE;MACd,IAAI,CAACO,UAAU,CAACP,KAAK,CAAC;IACxB;EACF;EAEAwD,kBAAkBA,CAACF,IAAe,EAAEG,KAAc,EAAQ;IACxD,IAAI;MACF,IAAI,CAACrE,MAAM,CAACoE,kBAAkB,CAACF,IAAI,EAAEG,KAAK,CAAC;IAC7C,CAAC,CAAC,OAAOzD,KAAK,EAAE;MACd,IAAI,CAACO,UAAU,CAACP,KAAK,CAAC;IACxB;EACF;EAEA0D,aAAaA,CAAA,EAAS;IACpB,IAAI;MACF,IAAI,CAACtE,MAAM,CAACsE,aAAa,CAAC,CAAC;IAC7B,CAAC,CAAC,OAAO1D,KAAK,EAAE;MACd,IAAI,CAACO,UAAU,CAACP,KAAK,CAAC;IACxB;EACF;;EAEA;EACA,IAAI2D,aAAaA,CAAA,EAA4B;IAC3C,OAAO,IAAI,CAACvE,MAAM,CAACuE,aAAa;EAClC;AACF;AAACC,OAAA,CAAA1E,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["allKeysOf","arr","ALL_PLAYER_EVENTS","exports","ALL_VIEW_EVENTS"],"sourceRoot":"../../../../src","sources":["core/types/Events.ts"],"mappings":";;;;;;AA8OA,SAASA,SAASA,CAAA,EAAM;EACtB,OAAO,CAAiC,GAAGC,GAAM,KAA4B;IAC3E,OAAOA,GAAG;EACZ,CAAC;AACH;AAEO,MAAMC,iBAA4C,GAAAC,OAAA,CAAAD,iBAAA,GACvDF,SAAS,CAAkB,CAAC,CAC1B,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACV,yBAAyB,EACzB,OAAO,EACP,SAAS,EACT,0BAA0B,EAC1B,QAAQ,EACR,aAAa,EACb,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,EAChB,gBACF,CAAC;AAEI,MAAMI,eAA0C,GAAAD,OAAA,CAAAC,eAAA,GACrDJ,SAAS,CAAkB,CAAC,CAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,2BAA2B,EAC3B,0BACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["allKeysOf","arr","ALL_PLAYER_EVENTS","exports","ALL_VIEW_EVENTS"],"sourceRoot":"../../../../src","sources":["core/types/Events.ts"],"mappings":";;;;;;AAkPA,SAASA,SAASA,CAAA,EAAM;EACtB,OAAO,CAAiC,GAAGC,GAAM,KAA4B;IAC3E,OAAOA,GAAG;EACZ,CAAC;AACH;AAEO,MAAMC,iBAA4C,GAAAC,OAAA,CAAAD,iBAAA,GACvDF,SAAS,CAAkB,CAAC,CAC1B,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACV,yBAAyB,EACzB,OAAO,EACP,SAAS,EACT,0BAA0B,EAC1B,QAAQ,EACR,aAAa,EACb,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,EAChB,gBACF,CAAC;AAEI,MAAMI,eAA0C,GAAAD,OAAA,CAAAC,eAAA,GACrDJ,SAAS,CAAkB,CAAC,CAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,2BAA2B,EAC3B,0BACF,CAAC","ignoreList":[]}
@@ -7,22 +7,47 @@ import { createPlayer } from "./utils/playerFactory.js";
7
7
  import { createSource } from "./utils/sourceFactory.js";
8
8
  import { VideoPlayerEvents } from "./VideoPlayerEvents.js";
9
9
  class VideoPlayer extends VideoPlayerEvents {
10
+ get player() {
11
+ if (this._player === undefined) {
12
+ throw new VideoRuntimeError('player/released', "You can't access player after it's released");
13
+ }
14
+ return this._player;
15
+ }
10
16
  constructor(source) {
11
17
  const player = createPlayer(source != null ? createSource(source) : undefined);
12
18
 
13
19
  // Initialize events
14
20
  super(player.eventEmitter);
15
- this.player = player;
21
+ this._player = player;
16
22
  }
17
23
 
18
24
  /**
19
- * Cleans up player's native resources and releases native state.
20
- * After calling this method, the player is no longer usable.
25
+ * Releases the player's native resources and releases native state.
21
26
  * @internal
22
27
  */
23
28
  __destroy() {
29
+ if (this._player === undefined) return;
24
30
  this.clearAllEvents();
25
- this.player.dispose();
31
+ try {
32
+ this.player.release();
33
+ } catch (error) {
34
+ // Best effort cleanup: teardown must never crash app unmount.
35
+ console.error('Failed to cleanup native player resources', error);
36
+ }
37
+
38
+ // We leave hybrid object to be cleaned up by garbage collector
39
+ // So we update memory size to ensure that memory is released
40
+ // when needed
41
+ this.updateMemorySize();
42
+
43
+ // We wait for 5s to let late events that were triggered before release to be processed
44
+ if (this._releaseTimeout !== undefined) {
45
+ clearTimeout(this._releaseTimeout);
46
+ }
47
+ this._releaseTimeout = setTimeout(() => {
48
+ this._player = undefined;
49
+ this._releaseTimeout = undefined;
50
+ }, 5000);
26
51
  }
27
52
 
28
53
  /**
@@ -98,6 +123,12 @@ class VideoPlayer extends VideoPlayerEvents {
98
123
  set currentTime(value) {
99
124
  this.player.currentTime = value;
100
125
  }
126
+ get progressEventInterval() {
127
+ return this.player.progressEventInterval;
128
+ }
129
+ set progressEventInterval(value) {
130
+ this.player.progressEventInterval = value;
131
+ }
101
132
  get subtitleDelay() {
102
133
  return this.player.subtitleDelay;
103
134
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","NitroModules","tryParseNativeVideoError","VideoRuntimeError","createPlayer","createSource","VideoPlayerEvents","VideoPlayer","constructor","source","player","undefined","eventEmitter","__destroy","clearAllEvents","dispose","__getNativePlayer","throwError","error","parsedError","triggerJSEvent","updateMemorySize","wrapPromise","promise","Promise","resolve","reject","then","catch","status","duration","volume","value","currentTime","subtitleDelay","muted","loop","rate","mixAudioMode","ignoreSilentSwitchMode","__DEV__","includes","OS","console","warn","playInBackground","playWhenInactive","isPlaying","showNotificationControls","initialize","preload","release","play","pause","seekBy","time","seekTo","replaceSourceAsync","getAvailableTextTracks","getAllPlayerTracks","audios","videos","texts","selectTrackById","type","id","selectTrackByIndex","index","resetForReuse","selectedTrack"],"sourceRoot":"../../../src","sources":["core/VideoPlayer.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Platform","NitroModules","tryParseNativeVideoError","VideoRuntimeError","createPlayer","createSource","VideoPlayerEvents","VideoPlayer","player","_player","undefined","constructor","source","eventEmitter","__destroy","clearAllEvents","release","error","console","updateMemorySize","_releaseTimeout","clearTimeout","setTimeout","__getNativePlayer","throwError","parsedError","triggerJSEvent","wrapPromise","promise","Promise","resolve","reject","then","catch","status","duration","volume","value","currentTime","progressEventInterval","subtitleDelay","muted","loop","rate","mixAudioMode","ignoreSilentSwitchMode","__DEV__","includes","OS","warn","playInBackground","playWhenInactive","isPlaying","showNotificationControls","initialize","preload","play","pause","seekBy","time","seekTo","replaceSourceAsync","getAvailableTextTracks","getAllPlayerTracks","audios","videos","texts","selectTrackById","type","id","selectTrackByIndex","index","resetForReuse","selectedTrack"],"sourceRoot":"../../../src","sources":["core/VideoPlayer.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["allKeysOf","arr","ALL_PLAYER_EVENTS","ALL_VIEW_EVENTS"],"sourceRoot":"../../../../src","sources":["core/types/Events.ts"],"mappings":";;AA8OA,SAASA,SAASA,CAAA,EAAM;EACtB,OAAO,CAAiC,GAAGC,GAAM,KAA4B;IAC3E,OAAOA,GAAG;EACZ,CAAC;AACH;AAEA,OAAO,MAAMC,iBAA4C,GACvDF,SAAS,CAAkB,CAAC,CAC1B,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACV,yBAAyB,EACzB,OAAO,EACP,SAAS,EACT,0BAA0B,EAC1B,QAAQ,EACR,aAAa,EACb,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,EAChB,gBACF,CAAC;AAEH,OAAO,MAAMG,eAA0C,GACrDH,SAAS,CAAkB,CAAC,CAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,2BAA2B,EAC3B,0BACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["allKeysOf","arr","ALL_PLAYER_EVENTS","ALL_VIEW_EVENTS"],"sourceRoot":"../../../../src","sources":["core/types/Events.ts"],"mappings":";;AAkPA,SAASA,SAASA,CAAA,EAAM;EACtB,OAAO,CAAiC,GAAGC,GAAM,KAA4B;IAC3E,OAAOA,GAAG;EACZ,CAAC;AACH;AAEA,OAAO,MAAMC,iBAA4C,GACvDF,SAAS,CAAkB,CAAC,CAC1B,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACV,yBAAyB,EACzB,OAAO,EACP,SAAS,EACT,0BAA0B,EAC1B,QAAQ,EACR,aAAa,EACb,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,EAChB,gBACF,CAAC;AAEH,OAAO,MAAMG,eAA0C,GACrDH,SAAS,CAAkB,CAAC,CAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,2BAA2B,EAC3B,0BACF,CAAC","ignoreList":[]}
@@ -9,7 +9,9 @@ import type { VideoPlayerStatus } from './types/VideoPlayerStatus';
9
9
  import { VideoPlayerEvents } from './VideoPlayerEvents';
10
10
  import type { AllPlayerTracks, PlayerTrack, TrackType } from './types/PlayerTrack';
11
11
  declare class VideoPlayer extends VideoPlayerEvents implements VideoPlayerBase {
12
- protected player: VideoPlayerImpl;
12
+ private _player;
13
+ private _releaseTimeout;
14
+ protected get player(): VideoPlayerImpl;
13
15
  constructor(source?: VideoSource | VideoConfig | VideoPlayerSource);
14
16
  get source(): VideoPlayerSource;
15
17
  get status(): VideoPlayerStatus;
@@ -18,6 +20,8 @@ declare class VideoPlayer extends VideoPlayerEvents implements VideoPlayerBase {
18
20
  set volume(value: number);
19
21
  get currentTime(): number;
20
22
  set currentTime(value: number);
23
+ get progressEventInterval(): number;
24
+ set progressEventInterval(value: number);
21
25
  get subtitleDelay(): bigint;
22
26
  set subtitleDelay(value: bigint);
23
27
  get muted(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../../../../src/core/VideoPlayer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../../../../src/core/VideoPlayer.ts"],"names":[],"mappings":"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"}
@@ -192,6 +192,10 @@ export interface onProgressData {
192
192
  * The time that player is able to play with only buffer.
193
193
  */
194
194
  bufferDuration: number;
195
+ /**
196
+ * The duration of the video in seconds
197
+ */
198
+ seekableDuration: number;
195
199
  }
196
200
  export type TimedMetadataObject = {
197
201
  value: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../../../../../src/core/types/Events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../../../../../src/core/types/Events.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,11 @@ export interface VideoPlayerBase {
33
33
  * Returns NaN if the duration is not available.
34
34
  */
35
35
  currentTime: number;
36
+ /**
37
+ * Modify the progress event interval (ms)
38
+ * By default it's 250ms
39
+ */
40
+ progressEventInterval: number;
36
41
  /**
37
42
  * Subtitle delay (milliseconds) negative or positive number
38
43
  */
@@ -130,7 +135,7 @@ export interface VideoPlayerBase {
130
135
  /**
131
136
  * Replace the current source of the player.
132
137
  * @param source - The new source of the video.
133
- * @note If you want to clear the source, you can pass null.
138
+ * @note If you want to clear the source, you can pass null. It has the same effect as {@link release}.
134
139
  * see {@link VideoPlayerSourceBase}
135
140
  */
136
141
  replaceSourceAsync(source: VideoPlayerSourceBase | null): Promise<void>;
@@ -181,5 +186,9 @@ export interface VideoPlayerBase {
181
186
  * @returns The currently selected text track, or undefined if none is selected
182
187
  */
183
188
  readonly selectedTrack?: PlayerTrack;
189
+ /**
190
+ * Releases the player's native resources and releases native state.
191
+ */
192
+ release(): void;
184
193
  }
185
194
  //# sourceMappingURL=VideoPlayerBase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VideoPlayerBase.d.ts","sourceRoot":"","sources":["../../../../../../src/core/types/VideoPlayerBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE7E,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAEvC;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAEnC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IAEd;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;;;;;OASG;IACH,YAAY,EAAE,YAAY,CAAC;IAE3B;;;;;;;OAOG;IACH,sBAAsB,EAAE,sBAAsB,CAAC;IAE/C;;;;;;;OAOG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;;;;;;;OAQG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;;;OAKG;IACH,kBAAkB,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE;;;OAGG;IACH,sBAAsB,IAAI,WAAW,EAAE,CAAC;IAExC;;;OAGG;IACH,kBAAkB,IAAI,eAAe,CAAC;IAEtC;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpD;;;;OAIG;IACH,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1D;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,IAAI,IAAI,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC;CACtC"}
1
+ {"version":3,"file":"VideoPlayerBase.d.ts","sourceRoot":"","sources":["../../../../../../src/core/types/VideoPlayerBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE7E,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAEvC;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAEnC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IAEd;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;;;;;OASG;IACH,YAAY,EAAE,YAAY,CAAC;IAE3B;;;;;;;OAOG;IACH,sBAAsB,EAAE,sBAAsB,CAAC;IAE/C;;;;;;;OAOG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;;;;;;;OAQG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;;;OAKG;IACH,kBAAkB,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE;;;OAGG;IACH,sBAAsB,IAAI,WAAW,EAAE,CAAC;IAExC;;;OAGG;IACH,kBAAkB,IAAI,eAAe,CAAC;IAEtC;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpD;;;;OAIG;IACH,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1D;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,IAAI,IAAI,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC;IAErC;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;CACjB"}
@@ -9,7 +9,9 @@ import type { VideoPlayerStatus } from './types/VideoPlayerStatus';
9
9
  import { VideoPlayerEvents } from './VideoPlayerEvents';
10
10
  import type { AllPlayerTracks, PlayerTrack, TrackType } from './types/PlayerTrack';
11
11
  declare class VideoPlayer extends VideoPlayerEvents implements VideoPlayerBase {
12
- protected player: VideoPlayerImpl;
12
+ private _player;
13
+ private _releaseTimeout;
14
+ protected get player(): VideoPlayerImpl;
13
15
  constructor(source?: VideoSource | VideoConfig | VideoPlayerSource);
14
16
  get source(): VideoPlayerSource;
15
17
  get status(): VideoPlayerStatus;
@@ -18,6 +20,8 @@ declare class VideoPlayer extends VideoPlayerEvents implements VideoPlayerBase {
18
20
  set volume(value: number);
19
21
  get currentTime(): number;
20
22
  set currentTime(value: number);
23
+ get progressEventInterval(): number;
24
+ set progressEventInterval(value: number);
21
25
  get subtitleDelay(): bigint;
22
26
  set subtitleDelay(value: bigint);
23
27
  get muted(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../../../../src/core/VideoPlayer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../../../../src/core/VideoPlayer.ts"],"names":[],"mappings":"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"}
@@ -192,6 +192,10 @@ export interface onProgressData {
192
192
  * The time that player is able to play with only buffer.
193
193
  */
194
194
  bufferDuration: number;
195
+ /**
196
+ * The duration of the video in seconds
197
+ */
198
+ seekableDuration: number;
195
199
  }
196
200
  export type TimedMetadataObject = {
197
201
  value: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../../../../../src/core/types/Events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../../../../../src/core/types/Events.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,11 @@ export interface VideoPlayerBase {
33
33
  * Returns NaN if the duration is not available.
34
34
  */
35
35
  currentTime: number;
36
+ /**
37
+ * Modify the progress event interval (ms)
38
+ * By default it's 250ms
39
+ */
40
+ progressEventInterval: number;
36
41
  /**
37
42
  * Subtitle delay (milliseconds) negative or positive number
38
43
  */
@@ -130,7 +135,7 @@ export interface VideoPlayerBase {
130
135
  /**
131
136
  * Replace the current source of the player.
132
137
  * @param source - The new source of the video.
133
- * @note If you want to clear the source, you can pass null.
138
+ * @note If you want to clear the source, you can pass null. It has the same effect as {@link release}.
134
139
  * see {@link VideoPlayerSourceBase}
135
140
  */
136
141
  replaceSourceAsync(source: VideoPlayerSourceBase | null): Promise<void>;
@@ -181,5 +186,9 @@ export interface VideoPlayerBase {
181
186
  * @returns The currently selected text track, or undefined if none is selected
182
187
  */
183
188
  readonly selectedTrack?: PlayerTrack;
189
+ /**
190
+ * Releases the player's native resources and releases native state.
191
+ */
192
+ release(): void;
184
193
  }
185
194
  //# sourceMappingURL=VideoPlayerBase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VideoPlayerBase.d.ts","sourceRoot":"","sources":["../../../../../../src/core/types/VideoPlayerBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE7E,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAEvC;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAEnC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IAEd;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;;;;;OASG;IACH,YAAY,EAAE,YAAY,CAAC;IAE3B;;;;;;;OAOG;IACH,sBAAsB,EAAE,sBAAsB,CAAC;IAE/C;;;;;;;OAOG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;;;;;;;OAQG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;;;OAKG;IACH,kBAAkB,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE;;;OAGG;IACH,sBAAsB,IAAI,WAAW,EAAE,CAAC;IAExC;;;OAGG;IACH,kBAAkB,IAAI,eAAe,CAAC;IAEtC;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpD;;;;OAIG;IACH,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1D;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,IAAI,IAAI,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC;CACtC"}
1
+ {"version":3,"file":"VideoPlayerBase.d.ts","sourceRoot":"","sources":["../../../../../../src/core/types/VideoPlayerBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE7E,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAEvC;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAEnC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IAEd;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;;;;;OASG;IACH,YAAY,EAAE,YAAY,CAAC;IAE3B;;;;;;;OAOG;IACH,sBAAsB,EAAE,sBAAsB,CAAC;IAE/C;;;;;;;OAOG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;;;;;;;OAQG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;;;OAKG;IACH,kBAAkB,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE;;;OAGG;IACH,sBAAsB,IAAI,WAAW,EAAE,CAAC;IAExC;;;OAGG;IACH,kBAAkB,IAAI,eAAe,CAAC;IAEtC;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpD;;;;OAIG;IACH,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1D;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,IAAI,IAAI,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC;IAErC;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;CACjB"}
@@ -131,6 +131,15 @@ namespace margelo::nitro::video {
131
131
  static const auto method = javaClassStatic()->getMethod<void(double /* currentTime */)>("setCurrentTime");
132
132
  method(_javaPart, currentTime);
133
133
  }
134
+ double JHybridVideoPlayerSpec::getProgressEventInterval() {
135
+ static const auto method = javaClassStatic()->getMethod<double()>("getProgressEventInterval");
136
+ auto __result = method(_javaPart);
137
+ return __result;
138
+ }
139
+ void JHybridVideoPlayerSpec::setProgressEventInterval(double progressEventInterval) {
140
+ static const auto method = javaClassStatic()->getMethod<void(double /* progressEventInterval */)>("setProgressEventInterval");
141
+ method(_javaPart, progressEventInterval);
142
+ }
134
143
  int64_t JHybridVideoPlayerSpec::getSubtitleDelay() {
135
144
  static const auto method = javaClassStatic()->getMethod<int64_t()>("getSubtitleDelay");
136
145
  auto __result = method(_javaPart);
@@ -307,5 +316,9 @@ namespace margelo::nitro::video {
307
316
  static const auto method = javaClassStatic()->getMethod<void()>("resetForReuse");
308
317
  method(_javaPart);
309
318
  }
319
+ void JHybridVideoPlayerSpec::release() {
320
+ static const auto method = javaClassStatic()->getMethod<void()>("release");
321
+ method(_javaPart);
322
+ }
310
323
 
311
324
  } // namespace margelo::nitro::video
@@ -60,6 +60,8 @@ namespace margelo::nitro::video {
60
60
  void setVolume(double volume) override;
61
61
  double getCurrentTime() override;
62
62
  void setCurrentTime(double currentTime) override;
63
+ double getProgressEventInterval() override;
64
+ void setProgressEventInterval(double progressEventInterval) override;
63
65
  int64_t getSubtitleDelay() override;
64
66
  void setSubtitleDelay(int64_t subtitleDelay) override;
65
67
  bool getMuted() override;
@@ -93,6 +95,7 @@ namespace margelo::nitro::video {
93
95
  void selectTrackById(TrackType type, const std::optional<std::string>& id) override;
94
96
  void selectTrackByIndex(TrackType type, std::optional<double> index) override;
95
97
  void resetForReuse() override;
98
+ void release() override;
96
99
 
97
100
  private:
98
101
  friend HybridBase;
@@ -35,9 +35,12 @@ namespace margelo::nitro::video {
35
35
  double currentTime = this->getFieldValue(fieldCurrentTime);
36
36
  static const auto fieldBufferDuration = clazz->getField<double>("bufferDuration");
37
37
  double bufferDuration = this->getFieldValue(fieldBufferDuration);
38
+ static const auto fieldSeekableDuration = clazz->getField<double>("seekableDuration");
39
+ double seekableDuration = this->getFieldValue(fieldSeekableDuration);
38
40
  return onProgressData(
39
41
  currentTime,
40
- bufferDuration
42
+ bufferDuration,
43
+ seekableDuration
41
44
  );
42
45
  }
43
46
 
@@ -47,13 +50,14 @@ namespace margelo::nitro::video {
47
50
  */
48
51
  [[maybe_unused]]
49
52
  static jni::local_ref<JonProgressData::javaobject> fromCpp(const onProgressData& value) {
50
- using JSignature = JonProgressData(double, double);
53
+ using JSignature = JonProgressData(double, double, double);
51
54
  static const auto clazz = javaClassStatic();
52
55
  static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
53
56
  return create(
54
57
  clazz,
55
58
  value.currentTime,
56
- value.bufferDuration
59
+ value.bufferDuration,
60
+ value.seekableDuration
57
61
  );
58
62
  }
59
63
  };
@@ -78,6 +78,12 @@ abstract class HybridVideoPlayerSpec: HybridObject() {
78
78
  @set:Keep
79
79
  abstract var currentTime: Double
80
80
 
81
+ @get:DoNotStrip
82
+ @get:Keep
83
+ @set:DoNotStrip
84
+ @set:Keep
85
+ abstract var progressEventInterval: Double
86
+
81
87
  @get:DoNotStrip
82
88
  @get:Keep
83
89
  @set:DoNotStrip
@@ -182,6 +188,10 @@ abstract class HybridVideoPlayerSpec: HybridObject() {
182
188
  @DoNotStrip
183
189
  @Keep
184
190
  abstract fun resetForReuse(): Unit
191
+
192
+ @DoNotStrip
193
+ @Keep
194
+ abstract fun release(): Unit
185
195
 
186
196
  private external fun initHybrid(): HybridData
187
197
 
@@ -22,7 +22,10 @@ data class onProgressData(
22
22
  val currentTime: Double,
23
23
  @DoNotStrip
24
24
  @Keep
25
- val bufferDuration: Double
25
+ val bufferDuration: Double,
26
+ @DoNotStrip
27
+ @Keep
28
+ val seekableDuration: Double
26
29
  ) {
27
30
  /* primary constructor */
28
31
 
@@ -34,8 +37,8 @@ data class onProgressData(
34
37
  @Keep
35
38
  @Suppress("unused")
36
39
  @JvmStatic
37
- private fun fromCpp(currentTime: Double, bufferDuration: Double): onProgressData {
38
- return onProgressData(currentTime, bufferDuration)
40
+ private fun fromCpp(currentTime: Double, bufferDuration: Double, seekableDuration: Double): onProgressData {
41
+ return onProgressData(currentTime, bufferDuration, seekableDuration)
39
42
  }
40
43
  }
41
44
  }
@@ -121,6 +121,12 @@ namespace margelo::nitro::video {
121
121
  inline void setCurrentTime(double currentTime) noexcept override {
122
122
  _swiftPart.setCurrentTime(std::forward<decltype(currentTime)>(currentTime));
123
123
  }
124
+ inline double getProgressEventInterval() noexcept override {
125
+ return _swiftPart.getProgressEventInterval();
126
+ }
127
+ inline void setProgressEventInterval(double progressEventInterval) noexcept override {
128
+ _swiftPart.setProgressEventInterval(std::forward<decltype(progressEventInterval)>(progressEventInterval));
129
+ }
124
130
  inline int64_t getSubtitleDelay() noexcept override {
125
131
  return _swiftPart.getSubtitleDelay();
126
132
  }
@@ -263,6 +269,12 @@ namespace margelo::nitro::video {
263
269
  std::rethrow_exception(__result.error());
264
270
  }
265
271
  }
272
+ inline void release() override {
273
+ auto __result = _swiftPart.release();
274
+ if (__result.hasError()) [[unlikely]] {
275
+ std::rethrow_exception(__result.error());
276
+ }
277
+ }
266
278
 
267
279
  private:
268
280
  ReactNativeVideo::HybridVideoPlayerSpec_cxx _swiftPart;
@@ -18,6 +18,7 @@ public protocol HybridVideoPlayerSpec_protocol: HybridObject {
18
18
  var duration: Double { get }
19
19
  var volume: Double { get set }
20
20
  var currentTime: Double { get set }
21
+ var progressEventInterval: Double { get set }
21
22
  var subtitleDelay: Int64 { get set }
22
23
  var muted: Bool { get set }
23
24
  var loop: Bool { get set }
@@ -42,6 +43,7 @@ public protocol HybridVideoPlayerSpec_protocol: HybridObject {
42
43
  func selectTrackById(type: TrackType, id: String?) throws -> Void
43
44
  func selectTrackByIndex(type: TrackType, index: Double?) throws -> Void
44
45
  func resetForReuse() throws -> Void
46
+ func release() throws -> Void
45
47
  }
46
48
 
47
49
  public extension HybridVideoPlayerSpec_protocol {
@@ -181,6 +181,17 @@ open class HybridVideoPlayerSpec_cxx {
181
181
  }
182
182
  }
183
183
 
184
+ public final var progressEventInterval: Double {
185
+ @inline(__always)
186
+ get {
187
+ return self.__implementation.progressEventInterval
188
+ }
189
+ @inline(__always)
190
+ set {
191
+ self.__implementation.progressEventInterval = newValue
192
+ }
193
+ }
194
+
184
195
  public final var subtitleDelay: Int64 {
185
196
  @inline(__always)
186
197
  get {
@@ -483,4 +494,15 @@ open class HybridVideoPlayerSpec_cxx {
483
494
  return bridge.create_Result_void_(__exceptionPtr)
484
495
  }
485
496
  }
497
+
498
+ @inline(__always)
499
+ public final func release() -> bridge.Result_void_ {
500
+ do {
501
+ try self.__implementation.release()
502
+ return bridge.create_Result_void_()
503
+ } catch (let __error) {
504
+ let __exceptionPtr = __error.toCpp()
505
+ return bridge.create_Result_void_(__exceptionPtr)
506
+ }
507
+ }
486
508
  }
@@ -19,8 +19,8 @@ public extension onProgressData {
19
19
  /**
20
20
  * Create a new instance of `onProgressData`.
21
21
  */
22
- init(currentTime: Double, bufferDuration: Double) {
23
- self.init(currentTime, bufferDuration)
22
+ init(currentTime: Double, bufferDuration: Double, seekableDuration: Double) {
23
+ self.init(currentTime, bufferDuration, seekableDuration)
24
24
  }
25
25
 
26
26
  var currentTime: Double {
@@ -44,4 +44,15 @@ public extension onProgressData {
44
44
  self.__bufferDuration = newValue
45
45
  }
46
46
  }
47
+
48
+ var seekableDuration: Double {
49
+ @inline(__always)
50
+ get {
51
+ return self.__seekableDuration
52
+ }
53
+ @inline(__always)
54
+ set {
55
+ self.__seekableDuration = newValue
56
+ }
57
+ }
47
58
  }
@@ -24,6 +24,8 @@ namespace margelo::nitro::video {
24
24
  prototype.registerHybridSetter("volume", &HybridVideoPlayerSpec::setVolume);
25
25
  prototype.registerHybridGetter("currentTime", &HybridVideoPlayerSpec::getCurrentTime);
26
26
  prototype.registerHybridSetter("currentTime", &HybridVideoPlayerSpec::setCurrentTime);
27
+ prototype.registerHybridGetter("progressEventInterval", &HybridVideoPlayerSpec::getProgressEventInterval);
28
+ prototype.registerHybridSetter("progressEventInterval", &HybridVideoPlayerSpec::setProgressEventInterval);
27
29
  prototype.registerHybridGetter("subtitleDelay", &HybridVideoPlayerSpec::getSubtitleDelay);
28
30
  prototype.registerHybridSetter("subtitleDelay", &HybridVideoPlayerSpec::setSubtitleDelay);
29
31
  prototype.registerHybridGetter("muted", &HybridVideoPlayerSpec::getMuted);
@@ -54,6 +56,7 @@ namespace margelo::nitro::video {
54
56
  prototype.registerHybridMethod("selectTrackById", &HybridVideoPlayerSpec::selectTrackById);
55
57
  prototype.registerHybridMethod("selectTrackByIndex", &HybridVideoPlayerSpec::selectTrackByIndex);
56
58
  prototype.registerHybridMethod("resetForReuse", &HybridVideoPlayerSpec::resetForReuse);
59
+ prototype.registerHybridMethod("release", &HybridVideoPlayerSpec::release);
57
60
  });
58
61
  }
59
62
 
@@ -83,6 +83,8 @@ namespace margelo::nitro::video {
83
83
  virtual void setVolume(double volume) = 0;
84
84
  virtual double getCurrentTime() = 0;
85
85
  virtual void setCurrentTime(double currentTime) = 0;
86
+ virtual double getProgressEventInterval() = 0;
87
+ virtual void setProgressEventInterval(double progressEventInterval) = 0;
86
88
  virtual int64_t getSubtitleDelay() = 0;
87
89
  virtual void setSubtitleDelay(int64_t subtitleDelay) = 0;
88
90
  virtual bool getMuted() = 0;
@@ -116,6 +118,7 @@ namespace margelo::nitro::video {
116
118
  virtual void selectTrackById(TrackType type, const std::optional<std::string>& id) = 0;
117
119
  virtual void selectTrackByIndex(TrackType type, std::optional<double> index) = 0;
118
120
  virtual void resetForReuse() = 0;
121
+ virtual void release() = 0;
119
122
 
120
123
  protected:
121
124
  // Hybrid Setup
@@ -36,10 +36,11 @@ namespace margelo::nitro::video {
36
36
  public:
37
37
  double currentTime SWIFT_PRIVATE;
38
38
  double bufferDuration SWIFT_PRIVATE;
39
+ double seekableDuration SWIFT_PRIVATE;
39
40
 
40
41
  public:
41
42
  onProgressData() = default;
42
- explicit onProgressData(double currentTime, double bufferDuration): currentTime(currentTime), bufferDuration(bufferDuration) {}
43
+ explicit onProgressData(double currentTime, double bufferDuration, double seekableDuration): currentTime(currentTime), bufferDuration(bufferDuration), seekableDuration(seekableDuration) {}
43
44
  };
44
45
 
45
46
  } // namespace margelo::nitro::video
@@ -53,13 +54,15 @@ namespace margelo::nitro {
53
54
  jsi::Object obj = arg.asObject(runtime);
54
55
  return margelo::nitro::video::onProgressData(
55
56
  JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "currentTime")),
56
- JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "bufferDuration"))
57
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "bufferDuration")),
58
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "seekableDuration"))
57
59
  );
58
60
  }
59
61
  static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::video::onProgressData& arg) {
60
62
  jsi::Object obj(runtime);
61
63
  obj.setProperty(runtime, "currentTime", JSIConverter<double>::toJSI(runtime, arg.currentTime));
62
64
  obj.setProperty(runtime, "bufferDuration", JSIConverter<double>::toJSI(runtime, arg.bufferDuration));
65
+ obj.setProperty(runtime, "seekableDuration", JSIConverter<double>::toJSI(runtime, arg.seekableDuration));
63
66
  return obj;
64
67
  }
65
68
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -72,6 +75,7 @@ namespace margelo::nitro {
72
75
  }
73
76
  if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "currentTime"))) return false;
74
77
  if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "bufferDuration"))) return false;
78
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "seekableDuration"))) return false;
75
79
  return true;
76
80
  }
77
81
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pigeonmal/react-native-video",
3
- "version": "7.0.0-beta.7",
3
+ "version": "7.0.0-beta.9",
4
4
  "description": "<Video /> Component for React Native",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",
@@ -22,7 +22,19 @@ import type {
22
22
  } from './types/PlayerTrack';
23
23
 
24
24
  class VideoPlayer extends VideoPlayerEvents implements VideoPlayerBase {
25
- protected player: VideoPlayerImpl;
25
+ private _player: VideoPlayerImpl | undefined;
26
+ private _releaseTimeout: ReturnType<typeof setTimeout> | undefined;
27
+
28
+ protected get player(): VideoPlayerImpl {
29
+ if (this._player === undefined) {
30
+ throw new VideoRuntimeError(
31
+ 'player/released',
32
+ "You can't access player after it's released"
33
+ );
34
+ }
35
+
36
+ return this._player;
37
+ }
26
38
 
27
39
  constructor(source?: VideoSource | VideoConfig | VideoPlayerSource) {
28
40
  const player = createPlayer(
@@ -31,17 +43,39 @@ class VideoPlayer extends VideoPlayerEvents implements VideoPlayerBase {
31
43
 
32
44
  // Initialize events
33
45
  super(player.eventEmitter);
34
- this.player = player;
46
+ this._player = player;
35
47
  }
36
48
 
37
49
  /**
38
- * Cleans up player's native resources and releases native state.
39
- * After calling this method, the player is no longer usable.
50
+ * Releases the player's native resources and releases native state.
40
51
  * @internal
41
52
  */
42
53
  __destroy() {
54
+ if (this._player === undefined) return;
55
+
43
56
  this.clearAllEvents();
44
- this.player.dispose();
57
+
58
+ try {
59
+ this.player.release();
60
+ } catch (error) {
61
+ // Best effort cleanup: teardown must never crash app unmount.
62
+ console.error('Failed to cleanup native player resources', error);
63
+ }
64
+
65
+ // We leave hybrid object to be cleaned up by garbage collector
66
+ // So we update memory size to ensure that memory is released
67
+ // when needed
68
+ this.updateMemorySize();
69
+
70
+ // We wait for 5s to let late events that were triggered before release to be processed
71
+ if (this._releaseTimeout !== undefined) {
72
+ clearTimeout(this._releaseTimeout);
73
+ }
74
+
75
+ this._releaseTimeout = setTimeout(() => {
76
+ this._player = undefined;
77
+ this._releaseTimeout = undefined;
78
+ }, 5000);
45
79
  }
46
80
 
47
81
  /**
@@ -125,6 +159,14 @@ class VideoPlayer extends VideoPlayerEvents implements VideoPlayerBase {
125
159
  this.player.currentTime = value;
126
160
  }
127
161
 
162
+ get progressEventInterval(): number {
163
+ return this.player.progressEventInterval;
164
+ }
165
+
166
+ set progressEventInterval(value: number) {
167
+ this.player.progressEventInterval = value;
168
+ }
169
+
128
170
  get subtitleDelay(): bigint {
129
171
  return this.player.subtitleDelay;
130
172
  }
@@ -202,6 +202,10 @@ export interface onProgressData {
202
202
  * The time that player is able to play with only buffer.
203
203
  */
204
204
  bufferDuration: number;
205
+ /**
206
+ * The duration of the video in seconds
207
+ */
208
+ seekableDuration: number;
205
209
  }
206
210
 
207
211
  export type TimedMetadataObject = {
@@ -42,6 +42,12 @@ export interface VideoPlayerBase {
42
42
  */
43
43
  currentTime: number;
44
44
 
45
+ /**
46
+ * Modify the progress event interval (ms)
47
+ * By default it's 250ms
48
+ */
49
+ progressEventInterval: number;
50
+
45
51
  /**
46
52
  * Subtitle delay (milliseconds) negative or positive number
47
53
  */
@@ -154,7 +160,7 @@ export interface VideoPlayerBase {
154
160
  /**
155
161
  * Replace the current source of the player.
156
162
  * @param source - The new source of the video.
157
- * @note If you want to clear the source, you can pass null.
163
+ * @note If you want to clear the source, you can pass null. It has the same effect as {@link release}.
158
164
  * see {@link VideoPlayerSourceBase}
159
165
  */
160
166
  replaceSourceAsync(source: VideoPlayerSourceBase | null): Promise<void>;
@@ -210,4 +216,9 @@ export interface VideoPlayerBase {
210
216
  * @returns The currently selected text track, or undefined if none is selected
211
217
  */
212
218
  readonly selectedTrack?: PlayerTrack;
219
+
220
+ /**
221
+ * Releases the player's native resources and releases native state.
222
+ */
223
+ release(): void;
213
224
  }