@pigeonmal/react-native-video 7.0.0-beta.5 → 7.0.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/android/src/main/java/com/twg/video/hybrids/videoplayer/HybridVideoPlayer.kt +27 -13
- package/android/src/main/java/com/twg/video/hybrids/videoplayer/HybridVideoPlayerFactory.kt +2 -2
- package/lib/commonjs/core/VideoPlayer.js +8 -2
- package/lib/commonjs/core/VideoPlayer.js.map +1 -1
- package/lib/commonjs/core/utils/playerFactory.js +1 -4
- package/lib/commonjs/core/utils/playerFactory.js.map +1 -1
- package/lib/module/core/VideoPlayer.js +8 -2
- package/lib/module/core/VideoPlayer.js.map +1 -1
- package/lib/module/core/utils/playerFactory.js +1 -4
- package/lib/module/core/utils/playerFactory.js.map +1 -1
- package/lib/typescript/commonjs/src/core/VideoPlayer.d.ts +2 -1
- package/lib/typescript/commonjs/src/core/VideoPlayer.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/core/types/VideoPlayerBase.d.ts +20 -0
- package/lib/typescript/commonjs/src/core/types/VideoPlayerBase.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/spec/nitro/VideoPlayer.nitro.d.ts +1 -1
- package/lib/typescript/commonjs/src/spec/nitro/VideoPlayer.nitro.d.ts.map +1 -1
- package/lib/typescript/module/src/core/VideoPlayer.d.ts +2 -1
- package/lib/typescript/module/src/core/VideoPlayer.d.ts.map +1 -1
- package/lib/typescript/module/src/core/types/VideoPlayerBase.d.ts +20 -0
- package/lib/typescript/module/src/core/types/VideoPlayerBase.d.ts.map +1 -1
- package/lib/typescript/module/src/spec/nitro/VideoPlayer.nitro.d.ts +1 -1
- package/lib/typescript/module/src/spec/nitro/VideoPlayer.nitro.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JHybridVideoPlayerFactorySpec.cpp +3 -2
- package/nitrogen/generated/android/c++/JHybridVideoPlayerFactorySpec.hpp +1 -1
- package/nitrogen/generated/android/c++/JHybridVideoPlayerSpec.cpp +4 -0
- package/nitrogen/generated/android/c++/JHybridVideoPlayerSpec.hpp +1 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/video/HybridVideoPlayerFactorySpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/video/HybridVideoPlayerSpec.kt +4 -0
- package/nitrogen/generated/ios/ReactNativeVideo-Swift-Cxx-Bridge.hpp +15 -0
- package/nitrogen/generated/ios/c++/HybridVideoPlayerFactorySpecSwift.hpp +2 -1
- package/nitrogen/generated/ios/c++/HybridVideoPlayerSpecSwift.hpp +6 -0
- package/nitrogen/generated/ios/swift/HybridVideoPlayerFactorySpec.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridVideoPlayerFactorySpec_cxx.swift +12 -5
- package/nitrogen/generated/ios/swift/HybridVideoPlayerSpec.swift +1 -0
- package/nitrogen/generated/ios/swift/HybridVideoPlayerSpec_cxx.swift +11 -0
- package/nitrogen/generated/shared/c++/HybridVideoPlayerFactorySpec.hpp +2 -1
- package/nitrogen/generated/shared/c++/HybridVideoPlayerSpec.cpp +1 -0
- package/nitrogen/generated/shared/c++/HybridVideoPlayerSpec.hpp +1 -0
- package/package.json +1 -1
- package/src/core/VideoPlayer.ts +12 -3
- package/src/core/types/VideoPlayerBase.ts +20 -0
- package/src/core/utils/playerFactory.ts +8 -6
- package/src/spec/nitro/VideoPlayer.nitro.ts +1 -1
package/README.md
CHANGED
|
@@ -24,6 +24,9 @@ Features:
|
|
|
24
24
|
- player.getAllPlayerTracks() for get all current tracks (audios, videos, texts)
|
|
25
25
|
- player.selectTrackById and selectTrackByIndex for select video or audio or text
|
|
26
26
|
- player.selectTextTrack removed use selectTrackById(TrackType.TEXT, trackId)
|
|
27
|
+
- player.resetForReuse() stop playback and clear tracks
|
|
28
|
+
- bugfix: external subtitles in hls/dash
|
|
29
|
+
- nullable video player source : new VideoPlayer(undefined);
|
|
27
30
|
- TextTrack type replaced to PlayerTrack
|
|
28
31
|
- removed onTrackChange event
|
|
29
32
|
- allPlayerTracks in onLoadData event directly
|
|
@@ -289,16 +289,17 @@ class HybridVideoPlayer() : HybridVideoPlayerSpec() {
|
|
|
289
289
|
}
|
|
290
290
|
}
|
|
291
291
|
|
|
292
|
-
constructor(source: HybridVideoPlayerSource) : this() {
|
|
293
|
-
|
|
292
|
+
constructor(source: HybridVideoPlayerSource?) : this() {
|
|
293
|
+
if (source != null) {
|
|
294
|
+
this.source = source
|
|
294
295
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
296
|
+
runOnMainThread {
|
|
297
|
+
if (source.config.initializeOnCreation == true) {
|
|
298
|
+
initializePlayer()
|
|
299
|
+
player.prepare()
|
|
300
|
+
}
|
|
299
301
|
}
|
|
300
302
|
}
|
|
301
|
-
|
|
302
303
|
VideoManager.registerPlayer(this)
|
|
303
304
|
}
|
|
304
305
|
|
|
@@ -339,14 +340,18 @@ class HybridVideoPlayer() : HybridVideoPlayerSpec() {
|
|
|
339
340
|
runOnMainThreadSync {
|
|
340
341
|
// Update source
|
|
341
342
|
this.source = source
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
if (startPosition != null && startPosition > 0L) {
|
|
345
|
-
player.setMediaSource(hybridSource.mediaSource, startPosition)
|
|
343
|
+
if (!loadedWithSource) {
|
|
344
|
+
initializePlayer()
|
|
346
345
|
} else {
|
|
347
|
-
|
|
346
|
+
renderersFactory?.setTextOffset((hybridSource.config.initialSubtitleDelay ?: 0L) * 1_000L)
|
|
347
|
+
val startPosition = hybridSource.config.startPosition
|
|
348
|
+
if (startPosition != null && startPosition > 0L) {
|
|
349
|
+
player.setMediaSource(hybridSource.mediaSource, startPosition)
|
|
350
|
+
} else {
|
|
351
|
+
player.setMediaSource(hybridSource.mediaSource)
|
|
352
|
+
}
|
|
348
353
|
}
|
|
349
|
-
|
|
354
|
+
|
|
350
355
|
// Prepare player
|
|
351
356
|
player.prepare()
|
|
352
357
|
}
|
|
@@ -637,6 +642,15 @@ class HybridVideoPlayer() : HybridVideoPlayerSpec() {
|
|
|
637
642
|
TrackUtils.selectTrackByIndex(player, type.value, index?.toInt())
|
|
638
643
|
}
|
|
639
644
|
|
|
645
|
+
override fun resetForReuse() {
|
|
646
|
+
runOnMainThread {
|
|
647
|
+
if (player.playbackState != Player.STATE_IDLE) {
|
|
648
|
+
player.stop()
|
|
649
|
+
}
|
|
650
|
+
player.clearMediaItems()
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
|
|
640
654
|
override val selectedTrack: PlayerTrack?
|
|
641
655
|
get() = TrackUtils.getTextSelectedTrack(player, source)
|
|
642
656
|
}
|
|
@@ -7,8 +7,8 @@ import com.facebook.proguard.annotations.DoNotStrip
|
|
|
7
7
|
@DoNotStrip
|
|
8
8
|
class HybridVideoPlayerFactory(): HybridVideoPlayerFactorySpec() {
|
|
9
9
|
@OptIn(UnstableApi::class)
|
|
10
|
-
override fun createPlayer(source: HybridVideoPlayerSourceSpec): HybridVideoPlayerSpec {
|
|
11
|
-
return HybridVideoPlayer(source as HybridVideoPlayerSource)
|
|
10
|
+
override fun createPlayer(source: HybridVideoPlayerSourceSpec?): HybridVideoPlayerSpec {
|
|
11
|
+
return HybridVideoPlayer(source as HybridVideoPlayerSource?)
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
override val memorySize: Long
|
|
@@ -12,8 +12,7 @@ var _sourceFactory = require("./utils/sourceFactory.js");
|
|
|
12
12
|
var _VideoPlayerEvents = require("./VideoPlayerEvents.js");
|
|
13
13
|
class VideoPlayer extends _VideoPlayerEvents.VideoPlayerEvents {
|
|
14
14
|
constructor(source) {
|
|
15
|
-
const
|
|
16
|
-
const player = (0, _playerFactory.createPlayer)(hybridSource);
|
|
15
|
+
const player = (0, _playerFactory.createPlayer)(source != null ? (0, _sourceFactory.createSource)(source) : undefined);
|
|
17
16
|
|
|
18
17
|
// Initialize events
|
|
19
18
|
super(player.eventEmitter);
|
|
@@ -266,6 +265,13 @@ class VideoPlayer extends _VideoPlayerEvents.VideoPlayerEvents {
|
|
|
266
265
|
this.throwError(error);
|
|
267
266
|
}
|
|
268
267
|
}
|
|
268
|
+
resetForReuse() {
|
|
269
|
+
try {
|
|
270
|
+
this.player.resetForReuse();
|
|
271
|
+
} catch (error) {
|
|
272
|
+
this.throwError(error);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
269
275
|
|
|
270
276
|
// Selected Text Track
|
|
271
277
|
get selectedTrack() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_reactNativeNitroModules","_VideoError","_playerFactory","_sourceFactory","_VideoPlayerEvents","VideoPlayer","VideoPlayerEvents","constructor","source","
|
|
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":[]}
|
|
@@ -18,10 +18,7 @@ const VideoPlayerFactory = _reactNativeNitroModules.NitroModules.createHybridObj
|
|
|
18
18
|
*/
|
|
19
19
|
const createPlayer = source => {
|
|
20
20
|
try {
|
|
21
|
-
|
|
22
|
-
return VideoPlayerFactory.createPlayer(source);
|
|
23
|
-
}
|
|
24
|
-
return VideoPlayerFactory.createPlayer((0, _sourceFactory.createSource)(source));
|
|
21
|
+
return VideoPlayerFactory.createPlayer(source == null ? undefined : (0, _sourceFactory.isVideoPlayerSource)(source) ? source : (0, _sourceFactory.createSource)(source));
|
|
25
22
|
} catch (error) {
|
|
26
23
|
throw (0, _VideoError.tryParseNativeVideoError)(error);
|
|
27
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeNitroModules","require","_sourceFactory","_VideoError","VideoPlayerFactory","NitroModules","createHybridObject","createPlayer","source","isVideoPlayerSource","createSource","error","tryParseNativeVideoError","exports"],"sourceRoot":"../../../../src","sources":["core/utils/playerFactory.ts"],"mappings":";;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AAOA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAEA,MAAMG,kBAAkB,GACtBC,qCAAY,CAACC,kBAAkB,CAAqB,oBAAoB,CAAC;;AAE3E;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,YAAY,GACvBC,
|
|
1
|
+
{"version":3,"names":["_reactNativeNitroModules","require","_sourceFactory","_VideoError","VideoPlayerFactory","NitroModules","createHybridObject","createPlayer","source","undefined","isVideoPlayerSource","createSource","error","tryParseNativeVideoError","exports"],"sourceRoot":"../../../../src","sources":["core/utils/playerFactory.ts"],"mappings":";;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AAOA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAEA,MAAMG,kBAAkB,GACtBC,qCAAY,CAACC,kBAAkB,CAAqB,oBAAoB,CAAC;;AAE3E;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,YAAY,GACvBC,MAAsD,IACtC;EAChB,IAAI;IACF,OAAOJ,kBAAkB,CAACG,YAAY,CACpCC,MAAM,IAAI,IAAI,GACVC,SAAS,GACT,IAAAC,kCAAmB,EAACF,MAAM,CAAC,GACzBA,MAAM,GACN,IAAAG,2BAAY,EAACH,MAAM,CAC3B,CAAC;EACH,CAAC,CAAC,OAAOI,KAAK,EAAE;IACd,MAAM,IAAAC,oCAAwB,EAACD,KAAK,CAAC;EACvC;AACF,CAAC;AAACE,OAAA,CAAAP,YAAA,GAAAA,YAAA","ignoreList":[]}
|
|
@@ -8,8 +8,7 @@ import { createSource } from "./utils/sourceFactory.js";
|
|
|
8
8
|
import { VideoPlayerEvents } from "./VideoPlayerEvents.js";
|
|
9
9
|
class VideoPlayer extends VideoPlayerEvents {
|
|
10
10
|
constructor(source) {
|
|
11
|
-
const
|
|
12
|
-
const player = createPlayer(hybridSource);
|
|
11
|
+
const player = createPlayer(source != null ? createSource(source) : undefined);
|
|
13
12
|
|
|
14
13
|
// Initialize events
|
|
15
14
|
super(player.eventEmitter);
|
|
@@ -262,6 +261,13 @@ class VideoPlayer extends VideoPlayerEvents {
|
|
|
262
261
|
this.throwError(error);
|
|
263
262
|
}
|
|
264
263
|
}
|
|
264
|
+
resetForReuse() {
|
|
265
|
+
try {
|
|
266
|
+
this.player.resetForReuse();
|
|
267
|
+
} catch (error) {
|
|
268
|
+
this.throwError(error);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
265
271
|
|
|
266
272
|
// Selected Text Track
|
|
267
273
|
get selectedTrack() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","NitroModules","tryParseNativeVideoError","VideoRuntimeError","createPlayer","createSource","VideoPlayerEvents","VideoPlayer","constructor","source","
|
|
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":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,YAAY,QAAQ,4BAA4B;AAOzD,SACEC,wBAAwB,EACxBC,iBAAiB,QACZ,uBAAoB;AAG3B,SAASC,YAAY,QAAQ,0BAAuB;AACpD,SAASC,YAAY,QAAQ,0BAAuB;AACpD,SAASC,iBAAiB,QAAQ,wBAAqB;AAOvD,MAAMC,WAAW,SAASD,iBAAiB,CAA4B;EAGrEE,WAAWA,CAACC,MAAsD,EAAE;IAClE,MAAMC,MAAM,GAAGN,YAAY,CACzBK,MAAM,IAAI,IAAI,GAAGJ,YAAY,CAACI,MAAM,CAAC,GAAGE,SAC1C,CAAC;;IAED;IACA,KAAK,CAACD,MAAM,CAACE,YAAY,CAAC;IAC1B,IAAI,CAACF,MAAM,GAAGA,MAAM;EACtB;;EAEA;AACF;AACA;AACA;AACA;EACEG,SAASA,CAAA,EAAG;IACV,IAAI,CAACC,cAAc,CAAC,CAAC;IACrB,IAAI,CAACJ,MAAM,CAACK,OAAO,CAAC,CAAC;EACvB;;EAEA;AACF;AACA;AACA;AACA;EACEC,iBAAiBA,CAAA,EAAG;IAClB,OAAO,IAAI,CAACN,MAAM;EACpB;;EAEA;AACF;AACA;AACA;EACUO,UAAUA,CAACC,KAAc,EAAE;IACjC,MAAMC,WAAW,GAAGjB,wBAAwB,CAACgB,KAAK,CAAC;IAEnD,IACEC,WAAW,YAAYhB,iBAAiB,IACxC,IAAI,CAACiB,cAAc,CAAC,SAAS,EAAED,WAAgC,CAAC,EAChE;MACA;MACA;IACF;IAEA,MAAMA,WAAW;EACnB;;EAEA;AACF;AACA;AACA;EACUE,gBAAgBA,CAAA,EAAG;IACzBpB,YAAY,CAACoB,gBAAgB,CAAC,IAAI,CAACX,MAAM,CAAC;IAC1CT,YAAY,CAACoB,gBAAgB,CAAC,IAAI,CAACX,MAAM,CAACD,MAAM,CAAC;EACnD;;EAEA;AACF;AACA;AACA;EACUa,WAAWA,CAAIC,OAAmB,EAAE;IAC1C,OAAO,IAAIC,OAAO,CAAI,CAACC,OAAO,EAAEC,MAAM,KAAK;MACzCH,OAAO,CAACI,IAAI,CAACF,OAAO,CAAC,CAACG,KAAK,CAAEV,KAAK,IAAK;QACrCQ,MAAM,CAAC,IAAI,CAACT,UAAU,CAACC,KAAK,CAAC,CAAC;MAChC,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;;EAEA;EACA,IAAIT,MAAMA,CAAA,EAAsB;IAC9B,OAAO,IAAI,CAACC,MAAM,CAACD,MAAM;EAC3B;;EAEA;EACA,IAAIoB,MAAMA,CAAA,EAAsB;IAC9B,OAAO,IAAI,CAACnB,MAAM,CAACmB,MAAM;EAC3B;;EAEA;EACA,IAAIC,QAAQA,CAAA,EAAW;IACrB,OAAO,IAAI,CAACpB,MAAM,CAACoB,QAAQ;EAC7B;;EAEA;EACA,IAAIC,MAAMA,CAAA,EAAW;IACnB,OAAO,IAAI,CAACrB,MAAM,CAACqB,MAAM;EAC3B;EAEA,IAAIA,MAAMA,CAACC,KAAa,EAAE;IACxB,IAAI,CAACtB,MAAM,CAACqB,MAAM,GAAGC,KAAK;EAC5B;;EAEA;EACA,IAAIC,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACvB,MAAM,CAACuB,WAAW;EAChC;EAEA,IAAIA,WAAWA,CAACD,KAAa,EAAE;IAC7B,IAAI,CAACtB,MAAM,CAACuB,WAAW,GAAGD,KAAK;EACjC;EAEA,IAAIE,aAAaA,CAAA,EAAW;IAC1B,OAAO,IAAI,CAACxB,MAAM,CAACwB,aAAa;EAClC;EAEA,IAAIA,aAAaA,CAACF,KAAa,EAAE;IAC/B,IAAI,CAACtB,MAAM,CAACwB,aAAa,GAAGF,KAAK;EACnC;;EAEA;EACA,IAAIG,KAAKA,CAAA,EAAY;IACnB,OAAO,IAAI,CAACzB,MAAM,CAACyB,KAAK;EAC1B;EAEA,IAAIA,KAAKA,CAACH,KAAc,EAAE;IACxB,IAAI,CAACtB,MAAM,CAACyB,KAAK,GAAGH,KAAK;EAC3B;;EAEA;EACA,IAAII,IAAIA,CAAA,EAAY;IAClB,OAAO,IAAI,CAAC1B,MAAM,CAAC0B,IAAI;EACzB;EAEA,IAAIA,IAAIA,CAACJ,KAAc,EAAE;IACvB,IAAI,CAACtB,MAAM,CAAC0B,IAAI,GAAGJ,KAAK;EAC1B;;EAEA;EACA,IAAIK,IAAIA,CAAA,EAAW;IACjB,OAAO,IAAI,CAAC3B,MAAM,CAAC2B,IAAI;EACzB;EAEA,IAAIA,IAAIA,CAACL,KAAa,EAAE;IACtB,IAAI,CAACtB,MAAM,CAAC2B,IAAI,GAAGL,KAAK;EAC1B;;EAEA;EACA,IAAIM,YAAYA,CAAA,EAAiB;IAC/B,OAAO,IAAI,CAAC5B,MAAM,CAAC4B,YAAY;EACjC;EAEA,IAAIA,YAAYA,CAACN,KAAmB,EAAE;IACpC,IAAI,CAACtB,MAAM,CAAC4B,YAAY,GAAGN,KAAK;EAClC;;EAEA;EACA,IAAIO,sBAAsBA,CAAA,EAA2B;IACnD,OAAO,IAAI,CAAC7B,MAAM,CAAC6B,sBAAsB;EAC3C;EAEA,IAAIA,sBAAsBA,CAACP,KAA6B,EAAE;IACxD,IAAIQ,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,CAACC,QAAQ,CAACzC,QAAQ,CAAC0C,EAAE,CAAC,EAAE;MAC7CC,OAAO,CAACC,IAAI,CACV,mFACF,CAAC;IACH;IAEA,IAAI,CAAClC,MAAM,CAAC6B,sBAAsB,GAAGP,KAAK;EAC5C;;EAEA;EACA,IAAIa,gBAAgBA,CAAA,EAAY;IAC9B,OAAO,IAAI,CAACnC,MAAM,CAACmC,gBAAgB;EACrC;EAEA,IAAIA,gBAAgBA,CAACb,KAAc,EAAE;IACnC,IAAI,CAACtB,MAAM,CAACmC,gBAAgB,GAAGb,KAAK;EACtC;;EAEA;EACA,IAAIc,gBAAgBA,CAAA,EAAY;IAC9B,OAAO,IAAI,CAACpC,MAAM,CAACoC,gBAAgB;EACrC;EAEA,IAAIA,gBAAgBA,CAACd,KAAc,EAAE;IACnC,IAAI,CAACtB,MAAM,CAACoC,gBAAgB,GAAGd,KAAK;EACtC;;EAEA;EACA,IAAIe,SAASA,CAAA,EAAY;IACvB,OAAO,IAAI,CAACrC,MAAM,CAACqC,SAAS;EAC9B;EAEA,IAAIC,wBAAwBA,CAAA,EAAY;IACtC,OAAO,IAAI,CAACtC,MAAM,CAACsC,wBAAwB;EAC7C;EAEA,IAAIA,wBAAwBA,CAAChB,KAAc,EAAE;IAC3C,IAAI,CAACtB,MAAM,CAACsC,wBAAwB,GAAGhB,KAAK;EAC9C;EAEA,MAAMiB,UAAUA,CAAA,EAAkB;IAChC,MAAM,IAAI,CAAC3B,WAAW,CAAC,IAAI,CAACZ,MAAM,CAACuC,UAAU,CAAC,CAAC,CAAC;IAEhD,IAAI,CAAC5B,gBAAgB,CAAC,CAAC;EACzB;EAEA,MAAM6B,OAAOA,CAAA,EAAkB;IAC7B,MAAM,IAAI,CAAC5B,WAAW,CAAC,IAAI,CAACZ,MAAM,CAACwC,OAAO,CAAC,CAAC,CAAC;IAE7C,IAAI,CAAC7B,gBAAgB,CAAC,CAAC;EACzB;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE8B,OAAOA,CAAA,EAAS;IACd,IAAI,CAACtC,SAAS,CAAC,CAAC;EAClB;EAEAuC,IAAIA,CAAA,EAAS;IACX,IAAI;MACF,IAAI,CAAC1C,MAAM,CAAC0C,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC,OAAOlC,KAAK,EAAE;MACd,IAAI,CAACD,UAAU,CAACC,KAAK,CAAC;IACxB;EACF;EAEAmC,KAAKA,CAAA,EAAS;IACZ,IAAI;MACF,IAAI,CAAC3C,MAAM,CAAC2C,KAAK,CAAC,CAAC;IACrB,CAAC,CAAC,OAAOnC,KAAK,EAAE;MACd,IAAI,CAACD,UAAU,CAACC,KAAK,CAAC;IACxB;EACF;EAEAoC,MAAMA,CAACC,IAAY,EAAQ;IACzB,IAAI;MACF,IAAI,CAAC7C,MAAM,CAAC4C,MAAM,CAACC,IAAI,CAAC;IAC1B,CAAC,CAAC,OAAOrC,KAAK,EAAE;MACd,IAAI,CAACD,UAAU,CAACC,KAAK,CAAC;IACxB;EACF;EAEAsC,MAAMA,CAACD,IAAY,EAAQ;IACzB,IAAI;MACF,IAAI,CAAC7C,MAAM,CAAC8C,MAAM,CAACD,IAAI,CAAC;IAC1B,CAAC,CAAC,OAAOrC,KAAK,EAAE;MACd,IAAI,CAACD,UAAU,CAACC,KAAK,CAAC;IACxB;EACF;EAEA,MAAMuC,kBAAkBA,CACtBhD,MAA4E,EAC7D;IACf,IAAI,CAACY,gBAAgB,CAAC,CAAC;IAEvB,MAAM,IAAI,CAACC,WAAW,CACpB,IAAI,CAACZ,MAAM,CAAC+C,kBAAkB,CAC5BhD,MAAM,KAAK,IAAI,GAAG,IAAI,GAAGJ,YAAY,CAACI,MAAM,CAC9C,CACF,CAAC;IAED,IAAI,CAACY,gBAAgB,CAAC,CAAC;EACzB;;EAEA;EACAqC,sBAAsBA,CAAA,EAAkB;IACtC,IAAI;MACF,OAAO,IAAI,CAAChD,MAAM,CAACgD,sBAAsB,CAAC,CAAC;IAC7C,CAAC,CAAC,OAAOxC,KAAK,EAAE;MACd,IAAI,CAACD,UAAU,CAACC,KAAK,CAAC;MACtB,OAAO,EAAE;IACX;EACF;EAEAyC,kBAAkBA,CAAA,EAAoB;IACpC,IAAI;MACF,OAAO,IAAI,CAACjD,MAAM,CAACiD,kBAAkB,CAAC,CAAC;IACzC,CAAC,CAAC,OAAOzC,KAAK,EAAE;MACd,IAAI,CAACD,UAAU,CAACC,KAAK,CAAC;MACtB,OAAO;QAAE0C,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,CAACvD,MAAM,CAACqD,eAAe,CAACC,IAAI,EAAEC,EAAE,CAAC;IACvC,CAAC,CAAC,OAAO/C,KAAK,EAAE;MACd,IAAI,CAACD,UAAU,CAACC,KAAK,CAAC;IACxB;EACF;EAEAgD,kBAAkBA,CAACF,IAAe,EAAEG,KAAc,EAAQ;IACxD,IAAI;MACF,IAAI,CAACzD,MAAM,CAACwD,kBAAkB,CAACF,IAAI,EAAEG,KAAK,CAAC;IAC7C,CAAC,CAAC,OAAOjD,KAAK,EAAE;MACd,IAAI,CAACD,UAAU,CAACC,KAAK,CAAC;IACxB;EACF;EAEAkD,aAAaA,CAAA,EAAS;IACpB,IAAI;MACF,IAAI,CAAC1D,MAAM,CAAC0D,aAAa,CAAC,CAAC;IAC7B,CAAC,CAAC,OAAOlD,KAAK,EAAE;MACd,IAAI,CAACD,UAAU,CAACC,KAAK,CAAC;IACxB;EACF;;EAEA;EACA,IAAImD,aAAaA,CAAA,EAA4B;IAC3C,OAAO,IAAI,CAAC3D,MAAM,CAAC2D,aAAa;EAClC;AACF;AAEA,SAAS9D,WAAW","ignoreList":[]}
|
|
@@ -14,10 +14,7 @@ const VideoPlayerFactory = NitroModules.createHybridObject('VideoPlayerFactory')
|
|
|
14
14
|
*/
|
|
15
15
|
export const createPlayer = source => {
|
|
16
16
|
try {
|
|
17
|
-
|
|
18
|
-
return VideoPlayerFactory.createPlayer(source);
|
|
19
|
-
}
|
|
20
|
-
return VideoPlayerFactory.createPlayer(createSource(source));
|
|
17
|
+
return VideoPlayerFactory.createPlayer(source == null ? undefined : isVideoPlayerSource(source) ? source : createSource(source));
|
|
21
18
|
} catch (error) {
|
|
22
19
|
throw tryParseNativeVideoError(error);
|
|
23
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NitroModules","createSource","isVideoPlayerSource","tryParseNativeVideoError","VideoPlayerFactory","createHybridObject","createPlayer","source","error"],"sourceRoot":"../../../../src","sources":["core/utils/playerFactory.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAOzD,SAASC,YAAY,EAAEC,mBAAmB,QAAQ,oBAAiB;AACnE,SAASC,wBAAwB,QAAQ,wBAAqB;AAE9D,MAAMC,kBAAkB,GACtBJ,YAAY,CAACK,kBAAkB,CAAqB,oBAAoB,CAAC;;AAE3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GACvBC,
|
|
1
|
+
{"version":3,"names":["NitroModules","createSource","isVideoPlayerSource","tryParseNativeVideoError","VideoPlayerFactory","createHybridObject","createPlayer","source","undefined","error"],"sourceRoot":"../../../../src","sources":["core/utils/playerFactory.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAOzD,SAASC,YAAY,EAAEC,mBAAmB,QAAQ,oBAAiB;AACnE,SAASC,wBAAwB,QAAQ,wBAAqB;AAE9D,MAAMC,kBAAkB,GACtBJ,YAAY,CAACK,kBAAkB,CAAqB,oBAAoB,CAAC;;AAE3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GACvBC,MAAsD,IACtC;EAChB,IAAI;IACF,OAAOH,kBAAkB,CAACE,YAAY,CACpCC,MAAM,IAAI,IAAI,GACVC,SAAS,GACTN,mBAAmB,CAACK,MAAM,CAAC,GACzBA,MAAM,GACNN,YAAY,CAACM,MAAM,CAC3B,CAAC;EACH,CAAC,CAAC,OAAOE,KAAK,EAAE;IACd,MAAMN,wBAAwB,CAACM,KAAK,CAAC;EACvC;AACF,CAAC","ignoreList":[]}
|
|
@@ -10,7 +10,7 @@ import { VideoPlayerEvents } from './VideoPlayerEvents';
|
|
|
10
10
|
import type { AllPlayerTracks, PlayerTrack, TrackType } from './types/PlayerTrack';
|
|
11
11
|
declare class VideoPlayer extends VideoPlayerEvents implements VideoPlayerBase {
|
|
12
12
|
protected player: VideoPlayerImpl;
|
|
13
|
-
constructor(source
|
|
13
|
+
constructor(source?: VideoSource | VideoConfig | VideoPlayerSource);
|
|
14
14
|
get source(): VideoPlayerSource;
|
|
15
15
|
get status(): VideoPlayerStatus;
|
|
16
16
|
get duration(): number;
|
|
@@ -55,6 +55,7 @@ declare class VideoPlayer extends VideoPlayerEvents implements VideoPlayerBase {
|
|
|
55
55
|
getAllPlayerTracks(): AllPlayerTracks;
|
|
56
56
|
selectTrackById(type: TrackType, id?: string): void;
|
|
57
57
|
selectTrackByIndex(type: TrackType, index?: number): void;
|
|
58
|
+
resetForReuse(): void;
|
|
58
59
|
get selectedTrack(): PlayerTrack | undefined;
|
|
59
60
|
}
|
|
60
61
|
export { VideoPlayer };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../../../../src/core/VideoPlayer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,IAAI,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,SAAS,EACV,MAAM,qBAAqB,CAAC;AAE7B,cAAM,WAAY,SAAQ,iBAAkB,YAAW,eAAe;IACpE,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC;gBAEtB,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,iBAAiB;
|
|
1
|
+
{"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../../../../src/core/VideoPlayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -156,6 +156,26 @@ export interface VideoPlayerBase {
|
|
|
156
156
|
* @param index - The index of the track to select.
|
|
157
157
|
*/
|
|
158
158
|
selectTrackByIndex(type: TrackType, index?: number): void;
|
|
159
|
+
/**
|
|
160
|
+
* Stops playback and clears all media items so the Player can be safely reused.
|
|
161
|
+
*
|
|
162
|
+
* This function:
|
|
163
|
+
* - Stops playback if currently playing or buffering
|
|
164
|
+
* - Cancels any ongoing loading
|
|
165
|
+
* - Clears the playlist/timeline
|
|
166
|
+
* - Keeps the Player instance and its resources alive
|
|
167
|
+
*
|
|
168
|
+
* After calling this function, the Player will be in [Player.STATE_IDLE]
|
|
169
|
+
* with an empty playlist.
|
|
170
|
+
*
|
|
171
|
+
* Use this when:
|
|
172
|
+
* - Reusing a single Player instance for multiple media items
|
|
173
|
+
* - Switching videos frequently (e.g. feeds, previews, RecyclerView)
|
|
174
|
+
*
|
|
175
|
+
* Do NOT use this when you are done with playback permanently.
|
|
176
|
+
* In that case, call [Player.release] instead.
|
|
177
|
+
*/
|
|
178
|
+
resetForReuse(): void;
|
|
159
179
|
/**
|
|
160
180
|
* Get the currently selected text track.
|
|
161
181
|
* @returns The currently selected text track, or undefined if none is selected
|
|
@@ -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;;;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;;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"}
|
|
@@ -29,6 +29,6 @@ export interface VideoPlayerFactory extends HybridObject<{
|
|
|
29
29
|
ios: 'swift';
|
|
30
30
|
android: 'kotlin';
|
|
31
31
|
}> {
|
|
32
|
-
createPlayer(source
|
|
32
|
+
createPlayer(source?: VideoPlayerSource): VideoPlayer;
|
|
33
33
|
}
|
|
34
34
|
//# sourceMappingURL=VideoPlayer.nitro.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPlayer.nitro.d.ts","sourceRoot":"","sources":["../../../../../../src/spec/nitro/VideoPlayer.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,WAAW,WACf,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC,EACvD,eAAe;IAEjB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAGnC,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAE/C;;;;;;;OAOG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAElC,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;OAGG;IACH,sBAAsB,IAAI,WAAW,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,kBACf,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC;IACzD,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"VideoPlayer.nitro.d.ts","sourceRoot":"","sources":["../../../../../../src/spec/nitro/VideoPlayer.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,WAAW,WACf,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC,EACvD,eAAe;IAEjB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAGnC,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAE/C;;;;;;;OAOG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAElC,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;OAGG;IACH,sBAAsB,IAAI,WAAW,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,kBACf,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC;IACzD,YAAY,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,WAAW,CAAC;CACvD"}
|
|
@@ -10,7 +10,7 @@ import { VideoPlayerEvents } from './VideoPlayerEvents';
|
|
|
10
10
|
import type { AllPlayerTracks, PlayerTrack, TrackType } from './types/PlayerTrack';
|
|
11
11
|
declare class VideoPlayer extends VideoPlayerEvents implements VideoPlayerBase {
|
|
12
12
|
protected player: VideoPlayerImpl;
|
|
13
|
-
constructor(source
|
|
13
|
+
constructor(source?: VideoSource | VideoConfig | VideoPlayerSource);
|
|
14
14
|
get source(): VideoPlayerSource;
|
|
15
15
|
get status(): VideoPlayerStatus;
|
|
16
16
|
get duration(): number;
|
|
@@ -55,6 +55,7 @@ declare class VideoPlayer extends VideoPlayerEvents implements VideoPlayerBase {
|
|
|
55
55
|
getAllPlayerTracks(): AllPlayerTracks;
|
|
56
56
|
selectTrackById(type: TrackType, id?: string): void;
|
|
57
57
|
selectTrackByIndex(type: TrackType, index?: number): void;
|
|
58
|
+
resetForReuse(): void;
|
|
58
59
|
get selectedTrack(): PlayerTrack | undefined;
|
|
59
60
|
}
|
|
60
61
|
export { VideoPlayer };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../../../../src/core/VideoPlayer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,IAAI,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,SAAS,EACV,MAAM,qBAAqB,CAAC;AAE7B,cAAM,WAAY,SAAQ,iBAAkB,YAAW,eAAe;IACpE,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC;gBAEtB,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,iBAAiB;
|
|
1
|
+
{"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../../../../src/core/VideoPlayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -156,6 +156,26 @@ export interface VideoPlayerBase {
|
|
|
156
156
|
* @param index - The index of the track to select.
|
|
157
157
|
*/
|
|
158
158
|
selectTrackByIndex(type: TrackType, index?: number): void;
|
|
159
|
+
/**
|
|
160
|
+
* Stops playback and clears all media items so the Player can be safely reused.
|
|
161
|
+
*
|
|
162
|
+
* This function:
|
|
163
|
+
* - Stops playback if currently playing or buffering
|
|
164
|
+
* - Cancels any ongoing loading
|
|
165
|
+
* - Clears the playlist/timeline
|
|
166
|
+
* - Keeps the Player instance and its resources alive
|
|
167
|
+
*
|
|
168
|
+
* After calling this function, the Player will be in [Player.STATE_IDLE]
|
|
169
|
+
* with an empty playlist.
|
|
170
|
+
*
|
|
171
|
+
* Use this when:
|
|
172
|
+
* - Reusing a single Player instance for multiple media items
|
|
173
|
+
* - Switching videos frequently (e.g. feeds, previews, RecyclerView)
|
|
174
|
+
*
|
|
175
|
+
* Do NOT use this when you are done with playback permanently.
|
|
176
|
+
* In that case, call [Player.release] instead.
|
|
177
|
+
*/
|
|
178
|
+
resetForReuse(): void;
|
|
159
179
|
/**
|
|
160
180
|
* Get the currently selected text track.
|
|
161
181
|
* @returns The currently selected text track, or undefined if none is selected
|
|
@@ -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;;;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;;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"}
|
|
@@ -29,6 +29,6 @@ export interface VideoPlayerFactory extends HybridObject<{
|
|
|
29
29
|
ios: 'swift';
|
|
30
30
|
android: 'kotlin';
|
|
31
31
|
}> {
|
|
32
|
-
createPlayer(source
|
|
32
|
+
createPlayer(source?: VideoPlayerSource): VideoPlayer;
|
|
33
33
|
}
|
|
34
34
|
//# sourceMappingURL=VideoPlayer.nitro.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPlayer.nitro.d.ts","sourceRoot":"","sources":["../../../../../../src/spec/nitro/VideoPlayer.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,WAAW,WACf,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC,EACvD,eAAe;IAEjB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAGnC,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAE/C;;;;;;;OAOG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAElC,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;OAGG;IACH,sBAAsB,IAAI,WAAW,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,kBACf,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC;IACzD,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"VideoPlayer.nitro.d.ts","sourceRoot":"","sources":["../../../../../../src/spec/nitro/VideoPlayer.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,WAAW,WACf,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC,EACvD,eAAe;IAEjB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAGnC,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAE/C;;;;;;;OAOG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAElC,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;OAGG;IACH,sBAAsB,IAAI,WAAW,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,kBACf,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC;IACzD,YAAY,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,WAAW,CAAC;CACvD"}
|
|
@@ -16,6 +16,7 @@ namespace margelo::nitro::video { class HybridVideoPlayerSourceSpec; }
|
|
|
16
16
|
#include "HybridVideoPlayerSpec.hpp"
|
|
17
17
|
#include "JHybridVideoPlayerSpec.hpp"
|
|
18
18
|
#include "HybridVideoPlayerSourceSpec.hpp"
|
|
19
|
+
#include <optional>
|
|
19
20
|
#include "JHybridVideoPlayerSourceSpec.hpp"
|
|
20
21
|
|
|
21
22
|
namespace margelo::nitro::video {
|
|
@@ -50,9 +51,9 @@ namespace margelo::nitro::video {
|
|
|
50
51
|
|
|
51
52
|
|
|
52
53
|
// Methods
|
|
53
|
-
std::shared_ptr<HybridVideoPlayerSpec> JHybridVideoPlayerFactorySpec::createPlayer(const std::shared_ptr<HybridVideoPlayerSourceSpec
|
|
54
|
+
std::shared_ptr<HybridVideoPlayerSpec> JHybridVideoPlayerFactorySpec::createPlayer(const std::optional<std::shared_ptr<HybridVideoPlayerSourceSpec>>& source) {
|
|
54
55
|
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JHybridVideoPlayerSpec::javaobject>(jni::alias_ref<JHybridVideoPlayerSourceSpec::javaobject> /* source */)>("createPlayer");
|
|
55
|
-
auto __result = method(_javaPart, std::dynamic_pointer_cast<JHybridVideoPlayerSourceSpec>(source)->getJavaPart());
|
|
56
|
+
auto __result = method(_javaPart, source.has_value() ? std::dynamic_pointer_cast<JHybridVideoPlayerSourceSpec>(source.value())->getJavaPart() : nullptr);
|
|
56
57
|
return __result->cthis()->shared_cast<JHybridVideoPlayerSpec>();
|
|
57
58
|
}
|
|
58
59
|
|
|
@@ -54,7 +54,7 @@ namespace margelo::nitro::video {
|
|
|
54
54
|
|
|
55
55
|
public:
|
|
56
56
|
// Methods
|
|
57
|
-
std::shared_ptr<HybridVideoPlayerSpec> createPlayer(const std::shared_ptr<HybridVideoPlayerSourceSpec
|
|
57
|
+
std::shared_ptr<HybridVideoPlayerSpec> createPlayer(const std::optional<std::shared_ptr<HybridVideoPlayerSourceSpec>>& source) override;
|
|
58
58
|
|
|
59
59
|
private:
|
|
60
60
|
friend HybridBase;
|
|
@@ -303,5 +303,9 @@ namespace margelo::nitro::video {
|
|
|
303
303
|
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JTrackType> /* type */, jni::alias_ref<jni::JDouble> /* index */)>("selectTrackByIndex");
|
|
304
304
|
method(_javaPart, JTrackType::fromCpp(type), index.has_value() ? jni::JDouble::valueOf(index.value()) : nullptr);
|
|
305
305
|
}
|
|
306
|
+
void JHybridVideoPlayerSpec::resetForReuse() {
|
|
307
|
+
static const auto method = javaClassStatic()->getMethod<void()>("resetForReuse");
|
|
308
|
+
method(_javaPart);
|
|
309
|
+
}
|
|
306
310
|
|
|
307
311
|
} // namespace margelo::nitro::video
|
|
@@ -92,6 +92,7 @@ namespace margelo::nitro::video {
|
|
|
92
92
|
AllPlayerTracks getAllPlayerTracks() override;
|
|
93
93
|
void selectTrackById(TrackType type, const std::optional<std::string>& id) override;
|
|
94
94
|
void selectTrackByIndex(TrackType type, std::optional<double> index) override;
|
|
95
|
+
void resetForReuse() override;
|
|
95
96
|
|
|
96
97
|
private:
|
|
97
98
|
friend HybridBase;
|
package/nitrogen/generated/android/kotlin/com/margelo/nitro/video/HybridVideoPlayerFactorySpec.kt
CHANGED
|
@@ -47,7 +47,7 @@ abstract class HybridVideoPlayerFactorySpec: HybridObject() {
|
|
|
47
47
|
// Methods
|
|
48
48
|
@DoNotStrip
|
|
49
49
|
@Keep
|
|
50
|
-
abstract fun createPlayer(source: HybridVideoPlayerSourceSpec): HybridVideoPlayerSpec
|
|
50
|
+
abstract fun createPlayer(source: HybridVideoPlayerSourceSpec?): HybridVideoPlayerSpec
|
|
51
51
|
|
|
52
52
|
private external fun initHybrid(): HybridData
|
|
53
53
|
|
|
@@ -178,6 +178,10 @@ abstract class HybridVideoPlayerSpec: HybridObject() {
|
|
|
178
178
|
@DoNotStrip
|
|
179
179
|
@Keep
|
|
180
180
|
abstract fun selectTrackByIndex(type: TrackType, index: Double?): Unit
|
|
181
|
+
|
|
182
|
+
@DoNotStrip
|
|
183
|
+
@Keep
|
|
184
|
+
abstract fun resetForReuse(): Unit
|
|
181
185
|
|
|
182
186
|
private external fun initHybrid(): HybridData
|
|
183
187
|
|
|
@@ -383,6 +383,21 @@ namespace margelo::nitro::video::bridge::swift {
|
|
|
383
383
|
return Result<AllPlayerTracks>::withError(error);
|
|
384
384
|
}
|
|
385
385
|
|
|
386
|
+
// pragma MARK: std::optional<std::shared_ptr<HybridVideoPlayerSourceSpec>>
|
|
387
|
+
/**
|
|
388
|
+
* Specialized version of `std::optional<std::shared_ptr<HybridVideoPlayerSourceSpec>>`.
|
|
389
|
+
*/
|
|
390
|
+
using std__optional_std__shared_ptr_HybridVideoPlayerSourceSpec__ = std::optional<std::shared_ptr<HybridVideoPlayerSourceSpec>>;
|
|
391
|
+
inline std::optional<std::shared_ptr<HybridVideoPlayerSourceSpec>> create_std__optional_std__shared_ptr_HybridVideoPlayerSourceSpec__(const std::shared_ptr<HybridVideoPlayerSourceSpec>& value) noexcept {
|
|
392
|
+
return std::optional<std::shared_ptr<HybridVideoPlayerSourceSpec>>(value);
|
|
393
|
+
}
|
|
394
|
+
inline bool has_value_std__optional_std__shared_ptr_HybridVideoPlayerSourceSpec__(const std::optional<std::shared_ptr<HybridVideoPlayerSourceSpec>>& optional) noexcept {
|
|
395
|
+
return optional.has_value();
|
|
396
|
+
}
|
|
397
|
+
inline std::shared_ptr<HybridVideoPlayerSourceSpec> get_std__optional_std__shared_ptr_HybridVideoPlayerSourceSpec__(const std::optional<std::shared_ptr<HybridVideoPlayerSourceSpec>>& optional) noexcept {
|
|
398
|
+
return *optional;
|
|
399
|
+
}
|
|
400
|
+
|
|
386
401
|
// pragma MARK: std::shared_ptr<HybridVideoPlayerFactorySpec>
|
|
387
402
|
/**
|
|
388
403
|
* Specialized version of `std::shared_ptr<HybridVideoPlayerFactorySpec>`.
|
|
@@ -20,6 +20,7 @@ namespace margelo::nitro::video { class HybridVideoPlayerSourceSpec; }
|
|
|
20
20
|
#include <memory>
|
|
21
21
|
#include "HybridVideoPlayerSpec.hpp"
|
|
22
22
|
#include "HybridVideoPlayerSourceSpec.hpp"
|
|
23
|
+
#include <optional>
|
|
23
24
|
|
|
24
25
|
#include "ReactNativeVideo-Swift-Cxx-Umbrella.hpp"
|
|
25
26
|
|
|
@@ -65,7 +66,7 @@ namespace margelo::nitro::video {
|
|
|
65
66
|
|
|
66
67
|
public:
|
|
67
68
|
// Methods
|
|
68
|
-
inline std::shared_ptr<HybridVideoPlayerSpec> createPlayer(const std::shared_ptr<HybridVideoPlayerSourceSpec
|
|
69
|
+
inline std::shared_ptr<HybridVideoPlayerSpec> createPlayer(const std::optional<std::shared_ptr<HybridVideoPlayerSourceSpec>>& source) override {
|
|
69
70
|
auto __result = _swiftPart.createPlayer(source);
|
|
70
71
|
if (__result.hasError()) [[unlikely]] {
|
|
71
72
|
std::rethrow_exception(__result.error());
|
|
@@ -257,6 +257,12 @@ namespace margelo::nitro::video {
|
|
|
257
257
|
std::rethrow_exception(__result.error());
|
|
258
258
|
}
|
|
259
259
|
}
|
|
260
|
+
inline void resetForReuse() override {
|
|
261
|
+
auto __result = _swiftPart.resetForReuse();
|
|
262
|
+
if (__result.hasError()) [[unlikely]] {
|
|
263
|
+
std::rethrow_exception(__result.error());
|
|
264
|
+
}
|
|
265
|
+
}
|
|
260
266
|
|
|
261
267
|
private:
|
|
262
268
|
ReactNativeVideo::HybridVideoPlayerSpec_cxx _swiftPart;
|
|
@@ -14,7 +14,7 @@ public protocol HybridVideoPlayerFactorySpec_protocol: HybridObject {
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
// Methods
|
|
17
|
-
func createPlayer(source: (any HybridVideoPlayerSourceSpec)) throws -> (any HybridVideoPlayerSpec)
|
|
17
|
+
func createPlayer(source: (any HybridVideoPlayerSourceSpec)?) throws -> (any HybridVideoPlayerSpec)
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
public extension HybridVideoPlayerFactorySpec_protocol {
|
|
@@ -118,12 +118,19 @@ open class HybridVideoPlayerFactorySpec_cxx {
|
|
|
118
118
|
|
|
119
119
|
// Methods
|
|
120
120
|
@inline(__always)
|
|
121
|
-
public final func createPlayer(source: bridge.
|
|
121
|
+
public final func createPlayer(source: bridge.std__optional_std__shared_ptr_HybridVideoPlayerSourceSpec__) -> bridge.Result_std__shared_ptr_HybridVideoPlayerSpec__ {
|
|
122
122
|
do {
|
|
123
|
-
let __result = try self.__implementation.createPlayer(source: { () -> HybridVideoPlayerSourceSpec in
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
123
|
+
let __result = try self.__implementation.createPlayer(source: { () -> (any HybridVideoPlayerSourceSpec)? in
|
|
124
|
+
if bridge.has_value_std__optional_std__shared_ptr_HybridVideoPlayerSourceSpec__(source) {
|
|
125
|
+
let __unwrapped = bridge.get_std__optional_std__shared_ptr_HybridVideoPlayerSourceSpec__(source)
|
|
126
|
+
return { () -> HybridVideoPlayerSourceSpec in
|
|
127
|
+
let __unsafePointer = bridge.get_std__shared_ptr_HybridVideoPlayerSourceSpec_(__unwrapped)
|
|
128
|
+
let __instance = HybridVideoPlayerSourceSpec_cxx.fromUnsafe(__unsafePointer)
|
|
129
|
+
return __instance.getHybridVideoPlayerSourceSpec()
|
|
130
|
+
}()
|
|
131
|
+
} else {
|
|
132
|
+
return nil
|
|
133
|
+
}
|
|
127
134
|
}())
|
|
128
135
|
let __resultCpp = { () -> bridge.std__shared_ptr_HybridVideoPlayerSpec_ in
|
|
129
136
|
let __cxxWrapped = __result.getCxxWrapper()
|
|
@@ -41,6 +41,7 @@ public protocol HybridVideoPlayerSpec_protocol: HybridObject {
|
|
|
41
41
|
func getAllPlayerTracks() throws -> AllPlayerTracks
|
|
42
42
|
func selectTrackById(type: TrackType, id: String?) throws -> Void
|
|
43
43
|
func selectTrackByIndex(type: TrackType, index: Double?) throws -> Void
|
|
44
|
+
func resetForReuse() throws -> Void
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
public extension HybridVideoPlayerSpec_protocol {
|
|
@@ -472,4 +472,15 @@ open class HybridVideoPlayerSpec_cxx {
|
|
|
472
472
|
return bridge.create_Result_void_(__exceptionPtr)
|
|
473
473
|
}
|
|
474
474
|
}
|
|
475
|
+
|
|
476
|
+
@inline(__always)
|
|
477
|
+
public final func resetForReuse() -> bridge.Result_void_ {
|
|
478
|
+
do {
|
|
479
|
+
try self.__implementation.resetForReuse()
|
|
480
|
+
return bridge.create_Result_void_()
|
|
481
|
+
} catch (let __error) {
|
|
482
|
+
let __exceptionPtr = __error.toCpp()
|
|
483
|
+
return bridge.create_Result_void_(__exceptionPtr)
|
|
484
|
+
}
|
|
485
|
+
}
|
|
475
486
|
}
|
|
@@ -21,6 +21,7 @@ namespace margelo::nitro::video { class HybridVideoPlayerSourceSpec; }
|
|
|
21
21
|
#include <memory>
|
|
22
22
|
#include "HybridVideoPlayerSpec.hpp"
|
|
23
23
|
#include "HybridVideoPlayerSourceSpec.hpp"
|
|
24
|
+
#include <optional>
|
|
24
25
|
|
|
25
26
|
namespace margelo::nitro::video {
|
|
26
27
|
|
|
@@ -53,7 +54,7 @@ namespace margelo::nitro::video {
|
|
|
53
54
|
|
|
54
55
|
public:
|
|
55
56
|
// Methods
|
|
56
|
-
virtual std::shared_ptr<HybridVideoPlayerSpec> createPlayer(const std::shared_ptr<HybridVideoPlayerSourceSpec
|
|
57
|
+
virtual std::shared_ptr<HybridVideoPlayerSpec> createPlayer(const std::optional<std::shared_ptr<HybridVideoPlayerSourceSpec>>& source) = 0;
|
|
57
58
|
|
|
58
59
|
protected:
|
|
59
60
|
// Hybrid Setup
|
|
@@ -53,6 +53,7 @@ namespace margelo::nitro::video {
|
|
|
53
53
|
prototype.registerHybridMethod("getAllPlayerTracks", &HybridVideoPlayerSpec::getAllPlayerTracks);
|
|
54
54
|
prototype.registerHybridMethod("selectTrackById", &HybridVideoPlayerSpec::selectTrackById);
|
|
55
55
|
prototype.registerHybridMethod("selectTrackByIndex", &HybridVideoPlayerSpec::selectTrackByIndex);
|
|
56
|
+
prototype.registerHybridMethod("resetForReuse", &HybridVideoPlayerSpec::resetForReuse);
|
|
56
57
|
});
|
|
57
58
|
}
|
|
58
59
|
|
|
@@ -115,6 +115,7 @@ namespace margelo::nitro::video {
|
|
|
115
115
|
virtual AllPlayerTracks getAllPlayerTracks() = 0;
|
|
116
116
|
virtual void selectTrackById(TrackType type, const std::optional<std::string>& id) = 0;
|
|
117
117
|
virtual void selectTrackByIndex(TrackType type, std::optional<double> index) = 0;
|
|
118
|
+
virtual void resetForReuse() = 0;
|
|
118
119
|
|
|
119
120
|
protected:
|
|
120
121
|
// Hybrid Setup
|
package/package.json
CHANGED
package/src/core/VideoPlayer.ts
CHANGED
|
@@ -24,9 +24,10 @@ import type {
|
|
|
24
24
|
class VideoPlayer extends VideoPlayerEvents implements VideoPlayerBase {
|
|
25
25
|
protected player: VideoPlayerImpl;
|
|
26
26
|
|
|
27
|
-
constructor(source
|
|
28
|
-
const
|
|
29
|
-
|
|
27
|
+
constructor(source?: VideoSource | VideoConfig | VideoPlayerSource) {
|
|
28
|
+
const player = createPlayer(
|
|
29
|
+
source != null ? createSource(source) : undefined
|
|
30
|
+
);
|
|
30
31
|
|
|
31
32
|
// Initialize events
|
|
32
33
|
super(player.eventEmitter);
|
|
@@ -317,6 +318,14 @@ class VideoPlayer extends VideoPlayerEvents implements VideoPlayerBase {
|
|
|
317
318
|
}
|
|
318
319
|
}
|
|
319
320
|
|
|
321
|
+
resetForReuse(): void {
|
|
322
|
+
try {
|
|
323
|
+
this.player.resetForReuse();
|
|
324
|
+
} catch (error) {
|
|
325
|
+
this.throwError(error);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
|
|
320
329
|
// Selected Text Track
|
|
321
330
|
get selectedTrack(): PlayerTrack | undefined {
|
|
322
331
|
return this.player.selectedTrack;
|
|
@@ -185,6 +185,26 @@ export interface VideoPlayerBase {
|
|
|
185
185
|
*/
|
|
186
186
|
selectTrackByIndex(type: TrackType, index?: number): void;
|
|
187
187
|
|
|
188
|
+
/**
|
|
189
|
+
* Stops playback and clears all media items so the Player can be safely reused.
|
|
190
|
+
*
|
|
191
|
+
* This function:
|
|
192
|
+
* - Stops playback if currently playing or buffering
|
|
193
|
+
* - Cancels any ongoing loading
|
|
194
|
+
* - Clears the playlist/timeline
|
|
195
|
+
* - Keeps the Player instance and its resources alive
|
|
196
|
+
*
|
|
197
|
+
* After calling this function, the Player will be in [Player.STATE_IDLE]
|
|
198
|
+
* with an empty playlist.
|
|
199
|
+
*
|
|
200
|
+
* Use this when:
|
|
201
|
+
* - Reusing a single Player instance for multiple media items
|
|
202
|
+
* - Switching videos frequently (e.g. feeds, previews, RecyclerView)
|
|
203
|
+
*
|
|
204
|
+
* Do NOT use this when you are done with playback permanently.
|
|
205
|
+
* In that case, call [Player.release] instead.
|
|
206
|
+
*/
|
|
207
|
+
resetForReuse(): void;
|
|
188
208
|
/**
|
|
189
209
|
* Get the currently selected text track.
|
|
190
210
|
* @returns The currently selected text track, or undefined if none is selected
|
|
@@ -19,14 +19,16 @@ const VideoPlayerFactory =
|
|
|
19
19
|
* @returns The Native VideoPlayer instance
|
|
20
20
|
*/
|
|
21
21
|
export const createPlayer = (
|
|
22
|
-
source
|
|
22
|
+
source?: VideoSource | VideoConfig | VideoPlayerSource
|
|
23
23
|
): VideoPlayer => {
|
|
24
24
|
try {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
return VideoPlayerFactory.createPlayer(
|
|
26
|
+
source == null
|
|
27
|
+
? undefined
|
|
28
|
+
: isVideoPlayerSource(source)
|
|
29
|
+
? source
|
|
30
|
+
: createSource(source)
|
|
31
|
+
);
|
|
30
32
|
} catch (error) {
|
|
31
33
|
throw tryParseNativeVideoError(error);
|
|
32
34
|
}
|