react-native-video-provider 0.2.0 → 0.2.1
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 +18 -7
- package/lib/module/components/VideoPlayer.js +8 -0
- package/lib/module/components/VideoPlayer.js.map +1 -1
- package/lib/module/core/VideoManager.js +35 -11
- package/lib/module/core/VideoManager.js.map +1 -1
- package/lib/module/hooks/useFullscreen.js +2 -2
- package/lib/module/hooks/useFullscreen.js.map +1 -1
- package/lib/typescript/src/components/VideoPlayer.d.ts +8 -1
- package/lib/typescript/src/components/VideoPlayer.d.ts.map +1 -1
- package/lib/typescript/src/core/VideoManager.d.ts +18 -4
- package/lib/typescript/src/core/VideoManager.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useFullscreen.d.ts +2 -2
- package/lib/typescript/src/hooks/useFullscreen.d.ts.map +1 -1
- package/lib/typescript/src/types/video.d.ts +0 -6
- package/lib/typescript/src/types/video.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/VideoPlayer.tsx +16 -0
- package/src/core/VideoManager.ts +43 -10
- package/src/hooks/useFullscreen.ts +8 -2
- package/src/types/video.ts +0 -6
package/README.md
CHANGED
|
@@ -83,20 +83,31 @@ player.showFloating(); // draggable in-app window
|
|
|
83
83
|
player.enterPiP(); // system picture-in-picture
|
|
84
84
|
```
|
|
85
85
|
|
|
86
|
-
**5. Force an orientation** —
|
|
87
|
-
|
|
86
|
+
**5. Force an orientation** — values: `'auto' | 'portrait' |
|
|
87
|
+
'inverted-portrait' | 'landscape' | 'inverted-landscape'`.
|
|
88
|
+
|
|
89
|
+
Scoped to fullscreen (applied when fullscreen opens, restored when it
|
|
90
|
+
closes — the rest of the app is unaffected):
|
|
91
|
+
|
|
92
|
+
```tsx
|
|
93
|
+
// This player's fullscreen (incl. the built-in controls' button) locks to
|
|
94
|
+
// portrait — e.g. a vertical video:
|
|
95
|
+
<VideoPlayer source={video} fullscreenOrientation="portrait" />
|
|
96
|
+
|
|
97
|
+
// Or per call:
|
|
98
|
+
const { enter, toggle } = useFullscreen();
|
|
99
|
+
enter('landscape');
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Or as a standing lock, independent of fullscreen:
|
|
88
103
|
|
|
89
104
|
```tsx
|
|
90
105
|
// While this player is mounted (released on unmount):
|
|
91
106
|
<VideoPlayer source={video} orientation="landscape" />
|
|
92
107
|
|
|
93
|
-
// Imperative
|
|
94
|
-
// | 'landscape' | 'inverted-landscape'
|
|
108
|
+
// Imperative:
|
|
95
109
|
player.setOrientation('inverted-landscape');
|
|
96
110
|
player.setOrientation('auto'); // release
|
|
97
|
-
|
|
98
|
-
// Always go landscape in the built-in fullscreen host:
|
|
99
|
-
<VideoProvider config={{ fullscreenOrientation: 'landscape' }}>
|
|
100
111
|
```
|
|
101
112
|
|
|
102
113
|
On iOS this needs the AppDelegate forwarding shown in
|
|
@@ -22,6 +22,7 @@ export function VideoPlayer({
|
|
|
22
22
|
controls = true,
|
|
23
23
|
resizeMode,
|
|
24
24
|
orientation,
|
|
25
|
+
fullscreenOrientation,
|
|
25
26
|
style,
|
|
26
27
|
...rest
|
|
27
28
|
}) {
|
|
@@ -48,6 +49,13 @@ export function VideoPlayer({
|
|
|
48
49
|
manager.setOrientation(orientation);
|
|
49
50
|
return () => manager.setOrientation('auto');
|
|
50
51
|
}, [manager, orientation]);
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
if (!fullscreenOrientation) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
manager.setFullscreenOrientation(fullscreenOrientation);
|
|
57
|
+
return () => manager.setFullscreenOrientation(null);
|
|
58
|
+
}, [manager, fullscreenOrientation]);
|
|
51
59
|
return /*#__PURE__*/_jsxs(View, {
|
|
52
60
|
style: [styles.container, style],
|
|
53
61
|
...rest,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","StyleSheet","View","useVideoManager","VideoControls","VideoSurface","jsx","_jsx","jsxs","_jsxs","VideoPlayer","source","autoplay","surfaceId","controls","resizeMode","orientation","style","rest","manager","id","setSource","setResizeMode","setOrientation","styles","container","children","surface","create","backgroundColor","overflow","position","top","left","right","bottom"],"sourceRoot":"../../../src","sources":["components/VideoPlayer.tsx"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,UAAU,EAAEC,IAAI,QAAwB,cAAc;AAC/D,SAASC,eAAe,QAAQ,6BAA0B;AAE1D,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,YAAY,QAAQ,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;
|
|
1
|
+
{"version":3,"names":["useEffect","StyleSheet","View","useVideoManager","VideoControls","VideoSurface","jsx","_jsx","jsxs","_jsxs","VideoPlayer","source","autoplay","surfaceId","controls","resizeMode","orientation","fullscreenOrientation","style","rest","manager","id","setSource","setResizeMode","setOrientation","setFullscreenOrientation","styles","container","children","surface","create","backgroundColor","overflow","position","top","left","right","bottom"],"sourceRoot":"../../../src","sources":["components/VideoPlayer.tsx"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,UAAU,EAAEC,IAAI,QAAwB,cAAc;AAC/D,SAASC,eAAe,QAAQ,6BAA0B;AAE1D,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,YAAY,QAAQ,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AA8B9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAAC;EAC1BC,MAAM;EACNC,QAAQ,GAAG,IAAI;EACfC,SAAS;EACTC,QAAQ,GAAG,IAAI;EACfC,UAAU;EACVC,WAAW;EACXC,qBAAqB;EACrBC,KAAK;EACL,GAAGC;AACa,CAAC,EAAE;EACnB,MAAMC,OAAO,GAAGjB,eAAe,CAAC,CAAC;EACjC,MAAMkB,EAAE,GAAGR,SAAS,IAAI,UAAUF,MAAM,CAACU,EAAE,EAAE;EAE7CrB,SAAS,CAAC,MAAM;IACdoB,OAAO,CAACE,SAAS,CAACX,MAAM,EAAE;MAAEC,QAAQ;MAAEC,SAAS,EAAEQ;IAAG,CAAC,CAAC;IACtD;IACA;IACA;EACF,CAAC,EAAE,CAACD,OAAO,EAAET,MAAM,CAACU,EAAE,EAAEA,EAAE,CAAC,CAAC;EAE5BrB,SAAS,CAAC,MAAM;IACd,IAAIe,UAAU,EAAE;MACdK,OAAO,CAACG,aAAa,CAACR,UAAU,CAAC;IACnC;EACF,CAAC,EAAE,CAACK,OAAO,EAAEL,UAAU,CAAC,CAAC;EAEzBf,SAAS,CAAC,MAAM;IACd,IAAI,CAACgB,WAAW,IAAIA,WAAW,KAAK,MAAM,EAAE;MAC1C;IACF;IACAI,OAAO,CAACI,cAAc,CAACR,WAAW,CAAC;IACnC,OAAO,MAAMI,OAAO,CAACI,cAAc,CAAC,MAAM,CAAC;EAC7C,CAAC,EAAE,CAACJ,OAAO,EAAEJ,WAAW,CAAC,CAAC;EAE1BhB,SAAS,CAAC,MAAM;IACd,IAAI,CAACiB,qBAAqB,EAAE;MAC1B;IACF;IACAG,OAAO,CAACK,wBAAwB,CAACR,qBAAqB,CAAC;IACvD,OAAO,MAAMG,OAAO,CAACK,wBAAwB,CAAC,IAAI,CAAC;EACrD,CAAC,EAAE,CAACL,OAAO,EAAEH,qBAAqB,CAAC,CAAC;EAEpC,oBACER,KAAA,CAACP,IAAI;IAACgB,KAAK,EAAE,CAACQ,MAAM,CAACC,SAAS,EAAET,KAAK,CAAE;IAAA,GAAKC,IAAI;IAAAS,QAAA,gBAC9CrB,IAAA,CAACF,YAAY;MAACQ,SAAS,EAAEQ,EAAG;MAACH,KAAK,EAAEQ,MAAM,CAACG;IAAQ,CAAE,CAAC,EACrDf,QAAQ,gBAAGP,IAAA,CAACH,aAAa,IAAE,CAAC,GAAG,IAAI;EAAA,CAChC,CAAC;AAEX;AAEA,MAAMsB,MAAM,GAAGzB,UAAU,CAAC6B,MAAM,CAAC;EAC/BH,SAAS,EAAE;IACTI,eAAe,EAAE,MAAM;IACvBC,QAAQ,EAAE;EACZ,CAAC;EACDH,OAAO,EAAE;IACPI,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -9,6 +9,7 @@ export const FULLSCREEN_SURFACE_ID = '__au_fullscreen__';
|
|
|
9
9
|
/** Surface id used by the built-in floating host. */
|
|
10
10
|
export const FLOATING_SURFACE_ID = '__au_floating__';
|
|
11
11
|
const RESERVED_SURFACES = new Set([FULLSCREEN_SURFACE_ID, FLOATING_SURFACE_ID]);
|
|
12
|
+
const ORIENTATION_LOCKS = ['auto', 'portrait', 'inverted-portrait', 'landscape', 'inverted-landscape'];
|
|
12
13
|
function toNativeSource(source) {
|
|
13
14
|
return {
|
|
14
15
|
id: source.id,
|
|
@@ -43,11 +44,15 @@ export class VideoManager {
|
|
|
43
44
|
config = {
|
|
44
45
|
fullscreenHost: true,
|
|
45
46
|
floatingHost: true,
|
|
46
|
-
pauseOnDetach: false
|
|
47
|
-
fullscreenOrientation: 'auto'
|
|
47
|
+
pauseOnDetach: false
|
|
48
48
|
};
|
|
49
49
|
/** Last non-reserved surface, restored after fullscreen/floating exits. */
|
|
50
50
|
lastInlineSurfaceId = null;
|
|
51
|
+
|
|
52
|
+
/** Per-player default for `enterFullscreen()` (VideoPlayer's prop). */
|
|
53
|
+
fullscreenOrientationDefault = null;
|
|
54
|
+
/** True while a fullscreen-scoped lock is applied, so exit restores it. */
|
|
55
|
+
fullscreenLockApplied = false;
|
|
51
56
|
constructor() {}
|
|
52
57
|
get providerConfig() {
|
|
53
58
|
return this.config;
|
|
@@ -283,6 +288,17 @@ export class VideoManager {
|
|
|
283
288
|
});
|
|
284
289
|
NativeAuVideo.setOrientation(lock);
|
|
285
290
|
}
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Register the orientation `enterFullscreen()` uses when called without an
|
|
294
|
+
* argument (the built-in controls call it that way). Scoped: applied when
|
|
295
|
+
* fullscreen opens, restored when it closes — the rest of the app is
|
|
296
|
+
* unaffected. Pass null to unregister. Set by VideoPlayer's
|
|
297
|
+
* `fullscreenOrientation` prop.
|
|
298
|
+
*/
|
|
299
|
+
setFullscreenOrientation(lock) {
|
|
300
|
+
this.fullscreenOrientationDefault = lock;
|
|
301
|
+
}
|
|
286
302
|
async getPosition() {
|
|
287
303
|
return NativeAuVideo.getPosition();
|
|
288
304
|
}
|
|
@@ -333,10 +349,12 @@ export class VideoManager {
|
|
|
333
349
|
// ------------------------------------------------------------ modes
|
|
334
350
|
|
|
335
351
|
/**
|
|
336
|
-
* Show the built-in fullscreen host
|
|
337
|
-
*
|
|
352
|
+
* Show the built-in fullscreen host. Rotation unlocks by default; pass an
|
|
353
|
+
* orientation (or set VideoPlayer's `fullscreenOrientation` prop) to force
|
|
354
|
+
* one for the fullscreen session only — it is restored on exit, so the
|
|
355
|
+
* rest of the app never sees the lock.
|
|
338
356
|
*/
|
|
339
|
-
enterFullscreen() {
|
|
357
|
+
enterFullscreen(orientation) {
|
|
340
358
|
if (this.store.getState().fullscreen) {
|
|
341
359
|
return;
|
|
342
360
|
}
|
|
@@ -346,9 +364,12 @@ export class VideoManager {
|
|
|
346
364
|
});
|
|
347
365
|
this.setMode('fullscreen');
|
|
348
366
|
NativeAuVideo.enterFullscreen();
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
367
|
+
// `enter` is often passed straight to onPress, so the argument may be a
|
|
368
|
+
// press event — only honor real orientation values.
|
|
369
|
+
const requested = ORIENTATION_LOCKS.includes(orientation) ? orientation : this.fullscreenOrientationDefault;
|
|
370
|
+
if (requested && requested !== 'auto') {
|
|
371
|
+
this.fullscreenLockApplied = true;
|
|
372
|
+
NativeAuVideo.setOrientation(requested);
|
|
352
373
|
}
|
|
353
374
|
this.events.emit('onEnterFullscreen', undefined);
|
|
354
375
|
}
|
|
@@ -358,7 +379,8 @@ export class VideoManager {
|
|
|
358
379
|
if (!this.store.getState().fullscreen) {
|
|
359
380
|
return;
|
|
360
381
|
}
|
|
361
|
-
if (this.
|
|
382
|
+
if (this.fullscreenLockApplied) {
|
|
383
|
+
this.fullscreenLockApplied = false;
|
|
362
384
|
// Drop the fullscreen-only lock, restoring any explicit setOrientation.
|
|
363
385
|
NativeAuVideo.setOrientation(this.store.getState().orientationLock);
|
|
364
386
|
}
|
|
@@ -369,11 +391,11 @@ export class VideoManager {
|
|
|
369
391
|
this.events.emit('onExitFullscreen', undefined);
|
|
370
392
|
this.restoreInlineSurface();
|
|
371
393
|
}
|
|
372
|
-
toggleFullscreen() {
|
|
394
|
+
toggleFullscreen(orientation) {
|
|
373
395
|
if (this.store.getState().fullscreen) {
|
|
374
396
|
this.exitFullscreen();
|
|
375
397
|
} else {
|
|
376
|
-
this.enterFullscreen();
|
|
398
|
+
this.enterFullscreen(orientation);
|
|
377
399
|
}
|
|
378
400
|
}
|
|
379
401
|
showFloating() {
|
|
@@ -444,6 +466,8 @@ export class VideoManager {
|
|
|
444
466
|
this.events.removeAll();
|
|
445
467
|
this.initialized = false;
|
|
446
468
|
this.lastInlineSurfaceId = null;
|
|
469
|
+
this.fullscreenOrientationDefault = null;
|
|
470
|
+
this.fullscreenLockApplied = false;
|
|
447
471
|
NativeAuVideo.setOrientation('auto');
|
|
448
472
|
NativeAuVideo.releasePlayer();
|
|
449
473
|
this.store.setState({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeAuVideo","createVideoStore","initialVideoState","Emitter","FULLSCREEN_SURFACE_ID","FLOATING_SURFACE_ID","RESERVED_SURFACES","Set","toNativeSource","source","id","uri","headers","title","artist","artworkUri","startPosition","VideoManager","instance","shared","store","events","nativeSubscriptions","initialized","config","fullscreenHost","floatingHost","pauseOnDetach","fullscreenOrientation","lastInlineSurfaceId","constructor","providerConfig","init","nativeInit","subscribeNative","addListener","event","listener","subs","push","onStatusChange","e","applyStatus","status","onLoad","set","duration","videoWidth","width","videoHeight","height","loading","emit","videoId","onProgress","position","buffered","onSeek","onEnd","undefined","onError","error","playing","onAttach","onDetach","pause","onPipChange","pip","active","setMode","deriveMode","prev","getState","paused","buffering","setSource","options","autoplay","current","currentVideo","sameVideo","video","play","surfaceId","attach","preload","resume","toggle","stop","seek","clamped","Math","max","min","seekTo","seekBy","offset","setRate","rate","setVolume","volume","mute","muted","setMuted","unmute","setRepeat","repeat","setResizeMode","mode","resizeMode","setOrientation","lock","orientationLock","getPosition","has","detach","handleSurfaceUnmount","state","enterFullscreen","fullscreen","floating","forced","exitFullscreen","restoreInlineSurface","toggleFullscreen","showFloating","hideFloating","enterPiP","enterPip","exitPiP","exitPip","override","s","destroy","sub","remove","removeAll","releasePlayer","setState","partial"],"sourceRoot":"../../../src","sources":["core/VideoManager.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["NativeAuVideo","createVideoStore","initialVideoState","Emitter","FULLSCREEN_SURFACE_ID","FLOATING_SURFACE_ID","RESERVED_SURFACES","Set","ORIENTATION_LOCKS","toNativeSource","source","id","uri","headers","title","artist","artworkUri","startPosition","VideoManager","instance","shared","store","events","nativeSubscriptions","initialized","config","fullscreenHost","floatingHost","pauseOnDetach","lastInlineSurfaceId","fullscreenOrientationDefault","fullscreenLockApplied","constructor","providerConfig","init","nativeInit","subscribeNative","addListener","event","listener","subs","push","onStatusChange","e","applyStatus","status","onLoad","set","duration","videoWidth","width","videoHeight","height","loading","emit","videoId","onProgress","position","buffered","onSeek","onEnd","undefined","onError","error","playing","onAttach","onDetach","pause","onPipChange","pip","active","setMode","deriveMode","prev","getState","paused","buffering","setSource","options","autoplay","current","currentVideo","sameVideo","video","play","surfaceId","attach","preload","resume","toggle","stop","seek","clamped","Math","max","min","seekTo","seekBy","offset","setRate","rate","setVolume","volume","mute","muted","setMuted","unmute","setRepeat","repeat","setResizeMode","mode","resizeMode","setOrientation","lock","orientationLock","setFullscreenOrientation","getPosition","has","detach","handleSurfaceUnmount","state","enterFullscreen","orientation","fullscreen","floating","requested","includes","exitFullscreen","restoreInlineSurface","toggleFullscreen","showFloating","hideFloating","enterPiP","enterPip","exitPiP","exitPip","override","s","destroy","sub","remove","removeAll","releasePlayer","setState","partial"],"sourceRoot":"../../../src","sources":["core/VideoManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,9 +7,9 @@ export function useFullscreen() {
|
|
|
7
7
|
const manager = useVideoManager();
|
|
8
8
|
const isFullscreen = usePlayback(s => s.fullscreen);
|
|
9
9
|
const orientationLock = usePlayback(s => s.orientationLock);
|
|
10
|
-
const enter = useCallback(
|
|
10
|
+
const enter = useCallback(orientation => manager.enterFullscreen(orientation), [manager]);
|
|
11
11
|
const exit = useCallback(() => manager.exitFullscreen(), [manager]);
|
|
12
|
-
const toggle = useCallback(
|
|
12
|
+
const toggle = useCallback(orientation => manager.toggleFullscreen(orientation), [manager]);
|
|
13
13
|
const setOrientation = useCallback(lock => manager.setOrientation(lock), [manager]);
|
|
14
14
|
return {
|
|
15
15
|
isFullscreen,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useVideoManager","usePlayback","useFullscreen","manager","isFullscreen","s","fullscreen","orientationLock","enter","enterFullscreen","exit","exitFullscreen","toggle","toggleFullscreen","setOrientation","lock"],"sourceRoot":"../../../src","sources":["hooks/useFullscreen.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,eAAe,QAAQ,6BAA0B;AAE1D,SAASC,WAAW,QAAQ,kBAAe;AAE3C,OAAO,SAASC,aAAaA,CAAA,EAAG;EAC9B,MAAMC,OAAO,GAAGH,eAAe,CAAC,CAAC;EACjC,MAAMI,YAAY,GAAGH,WAAW,CAAEI,CAAC,IAAKA,CAAC,CAACC,UAAU,CAAC;EACrD,MAAMC,eAAe,GAAGN,WAAW,CAAEI,CAAC,IAAKA,CAAC,CAACE,eAAe,CAAC;EAE7D,MAAMC,KAAK,GAAGT,WAAW,
|
|
1
|
+
{"version":3,"names":["useCallback","useVideoManager","usePlayback","useFullscreen","manager","isFullscreen","s","fullscreen","orientationLock","enter","orientation","enterFullscreen","exit","exitFullscreen","toggle","toggleFullscreen","setOrientation","lock"],"sourceRoot":"../../../src","sources":["hooks/useFullscreen.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,eAAe,QAAQ,6BAA0B;AAE1D,SAASC,WAAW,QAAQ,kBAAe;AAE3C,OAAO,SAASC,aAAaA,CAAA,EAAG;EAC9B,MAAMC,OAAO,GAAGH,eAAe,CAAC,CAAC;EACjC,MAAMI,YAAY,GAAGH,WAAW,CAAEI,CAAC,IAAKA,CAAC,CAACC,UAAU,CAAC;EACrD,MAAMC,eAAe,GAAGN,WAAW,CAAEI,CAAC,IAAKA,CAAC,CAACE,eAAe,CAAC;EAE7D,MAAMC,KAAK,GAAGT,WAAW,CACtBU,WAA6B,IAAKN,OAAO,CAACO,eAAe,CAACD,WAAW,CAAC,EACvE,CAACN,OAAO,CACV,CAAC;EACD,MAAMQ,IAAI,GAAGZ,WAAW,CAAC,MAAMI,OAAO,CAACS,cAAc,CAAC,CAAC,EAAE,CAACT,OAAO,CAAC,CAAC;EACnE,MAAMU,MAAM,GAAGd,WAAW,CACvBU,WAA6B,IAAKN,OAAO,CAACW,gBAAgB,CAACL,WAAW,CAAC,EACxE,CAACN,OAAO,CACV,CAAC;EACD,MAAMY,cAAc,GAAGhB,WAAW,CAC/BiB,IAAqB,IAAKb,OAAO,CAACY,cAAc,CAACC,IAAI,CAAC,EACvD,CAACb,OAAO,CACV,CAAC;EAED,OAAO;IAAEC,YAAY;IAAEI,KAAK;IAAEG,IAAI;IAAEE,MAAM;IAAEN,eAAe;IAAEQ;EAAe,CAAC;AAC/E","ignoreList":[]}
|
|
@@ -19,6 +19,13 @@ export interface VideoPlayerProps extends ViewProps {
|
|
|
19
19
|
* `'inverted-portrait'`. Released (back to `'auto'`) on unmount.
|
|
20
20
|
*/
|
|
21
21
|
orientation?: OrientationLock;
|
|
22
|
+
/**
|
|
23
|
+
* Orientation to force ONLY while this player is fullscreen (e.g.
|
|
24
|
+
* `'portrait'` for a vertical video). Applied when fullscreen opens —
|
|
25
|
+
* including via the built-in controls' fullscreen button — and restored
|
|
26
|
+
* when it closes, so the rest of the app is unaffected.
|
|
27
|
+
*/
|
|
28
|
+
fullscreenOrientation?: OrientationLock;
|
|
22
29
|
}
|
|
23
30
|
/**
|
|
24
31
|
* Convenience all-in-one player: `setSource` (same-video handoff aware) +
|
|
@@ -29,5 +36,5 @@ export interface VideoPlayerProps extends ViewProps {
|
|
|
29
36
|
* <VideoPlayer source={{ id: '123', uri }} style={{ aspectRatio: 16 / 9 }} />
|
|
30
37
|
* ```
|
|
31
38
|
*/
|
|
32
|
-
export declare function VideoPlayer({ source, autoplay, surfaceId, controls, resizeMode, orientation, style, ...rest }: VideoPlayerProps): import("react").JSX.Element;
|
|
39
|
+
export declare function VideoPlayer({ source, autoplay, surfaceId, controls, resizeMode, orientation, fullscreenOrientation, style, ...rest }: VideoPlayerProps): import("react").JSX.Element;
|
|
33
40
|
//# sourceMappingURL=VideoPlayer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../../../src/components/VideoPlayer.tsx"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAgB,CAAC;AAI/E,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,MAAM,EAAE,WAAW,CAAC;IACpB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;OAIG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../../../src/components/VideoPlayer.tsx"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAgB,CAAC;AAI/E,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,MAAM,EAAE,WAAW,CAAC;IACpB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;OAIG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,eAAe,CAAC;CACzC;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,QAAe,EACf,SAAS,EACT,QAAe,EACf,UAAU,EACV,WAAW,EACX,qBAAqB,EACrB,KAAK,EACL,GAAG,IAAI,EACR,EAAE,gBAAgB,+BAuClB"}
|
|
@@ -23,6 +23,10 @@ export declare class VideoManager {
|
|
|
23
23
|
private config;
|
|
24
24
|
/** Last non-reserved surface, restored after fullscreen/floating exits. */
|
|
25
25
|
private lastInlineSurfaceId;
|
|
26
|
+
/** Per-player default for `enterFullscreen()` (VideoPlayer's prop). */
|
|
27
|
+
private fullscreenOrientationDefault;
|
|
28
|
+
/** True while a fullscreen-scoped lock is applied, so exit restores it. */
|
|
29
|
+
private fullscreenLockApplied;
|
|
26
30
|
private constructor();
|
|
27
31
|
get providerConfig(): Required<VideoProviderConfig>;
|
|
28
32
|
/**
|
|
@@ -60,6 +64,14 @@ export declare class VideoManager {
|
|
|
60
64
|
* overriding the app's own lock until cleared with `'auto'`.
|
|
61
65
|
*/
|
|
62
66
|
setOrientation(lock: OrientationLock): void;
|
|
67
|
+
/**
|
|
68
|
+
* Register the orientation `enterFullscreen()` uses when called without an
|
|
69
|
+
* argument (the built-in controls call it that way). Scoped: applied when
|
|
70
|
+
* fullscreen opens, restored when it closes — the rest of the app is
|
|
71
|
+
* unaffected. Pass null to unregister. Set by VideoPlayer's
|
|
72
|
+
* `fullscreenOrientation` prop.
|
|
73
|
+
*/
|
|
74
|
+
setFullscreenOrientation(lock: OrientationLock | null): void;
|
|
63
75
|
getPosition(): Promise<number>;
|
|
64
76
|
/** Re-parent the player into the surface registered under `surfaceId`. */
|
|
65
77
|
attach(surfaceId: string): void;
|
|
@@ -72,13 +84,15 @@ export declare class VideoManager {
|
|
|
72
84
|
*/
|
|
73
85
|
handleSurfaceUnmount(surfaceId: string): void;
|
|
74
86
|
/**
|
|
75
|
-
* Show the built-in fullscreen host
|
|
76
|
-
*
|
|
87
|
+
* Show the built-in fullscreen host. Rotation unlocks by default; pass an
|
|
88
|
+
* orientation (or set VideoPlayer's `fullscreenOrientation` prop) to force
|
|
89
|
+
* one for the fullscreen session only — it is restored on exit, so the
|
|
90
|
+
* rest of the app never sees the lock.
|
|
77
91
|
*/
|
|
78
|
-
enterFullscreen(): void;
|
|
92
|
+
enterFullscreen(orientation?: OrientationLock): void;
|
|
79
93
|
/** Restore the previous orientation lock and re-attach the previous surface. */
|
|
80
94
|
exitFullscreen(): void;
|
|
81
|
-
toggleFullscreen(): void;
|
|
95
|
+
toggleFullscreen(orientation?: OrientationLock): void;
|
|
82
96
|
showFloating(): void;
|
|
83
97
|
hideFloating(): void;
|
|
84
98
|
enterPiP(): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoManager.d.ts","sourceRoot":"","sources":["../../../../src/core/VideoManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,8BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAiB,CAAC;AACrE,OAAO,KAAK,EACV,eAAe,EAGf,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EAEZ,MAAM,mBAAgB,CAAC;AACxB,OAAO,EAAW,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAkB,CAAC;AAE7E,uDAAuD;AACvD,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD,qDAAqD;AACrD,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"VideoManager.d.ts","sourceRoot":"","sources":["../../../../src/core/VideoManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { OrientationLock } from '../types/video.js';
|
|
2
2
|
export declare function useFullscreen(): {
|
|
3
3
|
isFullscreen: boolean;
|
|
4
|
-
enter: () => void;
|
|
4
|
+
enter: (orientation?: OrientationLock) => void;
|
|
5
5
|
exit: () => void;
|
|
6
|
-
toggle: () => void;
|
|
6
|
+
toggle: (orientation?: OrientationLock) => void;
|
|
7
7
|
orientationLock: OrientationLock;
|
|
8
8
|
setOrientation: (lock: OrientationLock) => void;
|
|
9
9
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFullscreen.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useFullscreen.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAgB,CAAC;AAGtD,wBAAgB,aAAa
|
|
1
|
+
{"version":3,"file":"useFullscreen.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useFullscreen.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAgB,CAAC;AAGtD,wBAAgB,aAAa;;0BAMV,eAAe;;2BAKf,eAAe;;2BAIvB,eAAe;EAKzB"}
|
|
@@ -78,11 +78,5 @@ export interface VideoProviderConfig {
|
|
|
78
78
|
floatingHost?: boolean;
|
|
79
79
|
/** Pause playback when the active surface unmounts. Default false. */
|
|
80
80
|
pauseOnDetach?: boolean;
|
|
81
|
-
/**
|
|
82
|
-
* Orientation to force while fullscreen is active, e.g. `'landscape'`.
|
|
83
|
-
* Restored to the previous lock (or `'auto'`) on exit.
|
|
84
|
-
* Default `'auto'` — fullscreen just unlocks the sensor.
|
|
85
|
-
*/
|
|
86
|
-
fullscreenOrientation?: OrientationLock;
|
|
87
81
|
}
|
|
88
82
|
//# sourceMappingURL=video.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../../../src/types/video.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAEzD;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,UAAU,GACV,mBAAmB,GACnB,WAAW,GACX,oBAAoB,CAAC;AAEzB,MAAM,MAAM,UAAU,GACpB,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,KAAK,GAAG,YAAY,GAAG,QAAQ,CAAC;AAEzE,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,SAAS,GACT,OAAO,GACP,SAAS,GACT,QAAQ,GACR,WAAW,GACX,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,2EAA2E;IAC3E,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sEAAsE;IACtE,aAAa,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../../../src/types/video.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAEzD;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,UAAU,GACV,mBAAmB,GACnB,WAAW,GACX,oBAAoB,CAAC;AAEzB,MAAM,MAAM,UAAU,GACpB,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,KAAK,GAAG,YAAY,GAAG,QAAQ,CAAC;AAEzE,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,SAAS,GACT,OAAO,GACP,SAAS,GACT,QAAQ,GACR,WAAW,GACX,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,2EAA2E;IAC3E,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sEAAsE;IACtE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-video-provider",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Singleton-engine video library for React Native (one native player, many surfaces)",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
|
@@ -24,6 +24,13 @@ export interface VideoPlayerProps extends ViewProps {
|
|
|
24
24
|
* `'inverted-portrait'`. Released (back to `'auto'`) on unmount.
|
|
25
25
|
*/
|
|
26
26
|
orientation?: OrientationLock;
|
|
27
|
+
/**
|
|
28
|
+
* Orientation to force ONLY while this player is fullscreen (e.g.
|
|
29
|
+
* `'portrait'` for a vertical video). Applied when fullscreen opens —
|
|
30
|
+
* including via the built-in controls' fullscreen button — and restored
|
|
31
|
+
* when it closes, so the rest of the app is unaffected.
|
|
32
|
+
*/
|
|
33
|
+
fullscreenOrientation?: OrientationLock;
|
|
27
34
|
}
|
|
28
35
|
|
|
29
36
|
/**
|
|
@@ -42,6 +49,7 @@ export function VideoPlayer({
|
|
|
42
49
|
controls = true,
|
|
43
50
|
resizeMode,
|
|
44
51
|
orientation,
|
|
52
|
+
fullscreenOrientation,
|
|
45
53
|
style,
|
|
46
54
|
...rest
|
|
47
55
|
}: VideoPlayerProps) {
|
|
@@ -69,6 +77,14 @@ export function VideoPlayer({
|
|
|
69
77
|
return () => manager.setOrientation('auto');
|
|
70
78
|
}, [manager, orientation]);
|
|
71
79
|
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
if (!fullscreenOrientation) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
manager.setFullscreenOrientation(fullscreenOrientation);
|
|
85
|
+
return () => manager.setFullscreenOrientation(null);
|
|
86
|
+
}, [manager, fullscreenOrientation]);
|
|
87
|
+
|
|
72
88
|
return (
|
|
73
89
|
<View style={[styles.container, style]} {...rest}>
|
|
74
90
|
<VideoSurface surfaceId={id} style={styles.surface} />
|
package/src/core/VideoManager.ts
CHANGED
|
@@ -25,6 +25,14 @@ export const FLOATING_SURFACE_ID = '__au_floating__';
|
|
|
25
25
|
|
|
26
26
|
const RESERVED_SURFACES = new Set([FULLSCREEN_SURFACE_ID, FLOATING_SURFACE_ID]);
|
|
27
27
|
|
|
28
|
+
const ORIENTATION_LOCKS: readonly OrientationLock[] = [
|
|
29
|
+
'auto',
|
|
30
|
+
'portrait',
|
|
31
|
+
'inverted-portrait',
|
|
32
|
+
'landscape',
|
|
33
|
+
'inverted-landscape',
|
|
34
|
+
];
|
|
35
|
+
|
|
28
36
|
function toNativeSource(source: VideoSource): NativeVideoSource {
|
|
29
37
|
return {
|
|
30
38
|
id: source.id,
|
|
@@ -63,11 +71,15 @@ export class VideoManager {
|
|
|
63
71
|
fullscreenHost: true,
|
|
64
72
|
floatingHost: true,
|
|
65
73
|
pauseOnDetach: false,
|
|
66
|
-
fullscreenOrientation: 'auto',
|
|
67
74
|
};
|
|
68
75
|
/** Last non-reserved surface, restored after fullscreen/floating exits. */
|
|
69
76
|
private lastInlineSurfaceId: string | null = null;
|
|
70
77
|
|
|
78
|
+
/** Per-player default for `enterFullscreen()` (VideoPlayer's prop). */
|
|
79
|
+
private fullscreenOrientationDefault: OrientationLock | null = null;
|
|
80
|
+
/** True while a fullscreen-scoped lock is applied, so exit restores it. */
|
|
81
|
+
private fullscreenLockApplied = false;
|
|
82
|
+
|
|
71
83
|
private constructor() {}
|
|
72
84
|
|
|
73
85
|
get providerConfig(): Required<VideoProviderConfig> {
|
|
@@ -306,6 +318,17 @@ export class VideoManager {
|
|
|
306
318
|
NativeAuVideo.setOrientation(lock);
|
|
307
319
|
}
|
|
308
320
|
|
|
321
|
+
/**
|
|
322
|
+
* Register the orientation `enterFullscreen()` uses when called without an
|
|
323
|
+
* argument (the built-in controls call it that way). Scoped: applied when
|
|
324
|
+
* fullscreen opens, restored when it closes — the rest of the app is
|
|
325
|
+
* unaffected. Pass null to unregister. Set by VideoPlayer's
|
|
326
|
+
* `fullscreenOrientation` prop.
|
|
327
|
+
*/
|
|
328
|
+
setFullscreenOrientation(lock: OrientationLock | null): void {
|
|
329
|
+
this.fullscreenOrientationDefault = lock;
|
|
330
|
+
}
|
|
331
|
+
|
|
309
332
|
async getPosition(): Promise<number> {
|
|
310
333
|
return NativeAuVideo.getPosition();
|
|
311
334
|
}
|
|
@@ -350,19 +373,26 @@ export class VideoManager {
|
|
|
350
373
|
// ------------------------------------------------------------ modes
|
|
351
374
|
|
|
352
375
|
/**
|
|
353
|
-
* Show the built-in fullscreen host
|
|
354
|
-
*
|
|
376
|
+
* Show the built-in fullscreen host. Rotation unlocks by default; pass an
|
|
377
|
+
* orientation (or set VideoPlayer's `fullscreenOrientation` prop) to force
|
|
378
|
+
* one for the fullscreen session only — it is restored on exit, so the
|
|
379
|
+
* rest of the app never sees the lock.
|
|
355
380
|
*/
|
|
356
|
-
enterFullscreen(): void {
|
|
381
|
+
enterFullscreen(orientation?: OrientationLock): void {
|
|
357
382
|
if (this.store.getState().fullscreen) {
|
|
358
383
|
return;
|
|
359
384
|
}
|
|
360
385
|
this.set({ fullscreen: true, floating: false });
|
|
361
386
|
this.setMode('fullscreen');
|
|
362
387
|
NativeAuVideo.enterFullscreen();
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
388
|
+
// `enter` is often passed straight to onPress, so the argument may be a
|
|
389
|
+
// press event — only honor real orientation values.
|
|
390
|
+
const requested = ORIENTATION_LOCKS.includes(orientation as OrientationLock)
|
|
391
|
+
? (orientation as OrientationLock)
|
|
392
|
+
: this.fullscreenOrientationDefault;
|
|
393
|
+
if (requested && requested !== 'auto') {
|
|
394
|
+
this.fullscreenLockApplied = true;
|
|
395
|
+
NativeAuVideo.setOrientation(requested);
|
|
366
396
|
}
|
|
367
397
|
this.events.emit('onEnterFullscreen', undefined);
|
|
368
398
|
}
|
|
@@ -372,7 +402,8 @@ export class VideoManager {
|
|
|
372
402
|
if (!this.store.getState().fullscreen) {
|
|
373
403
|
return;
|
|
374
404
|
}
|
|
375
|
-
if (this.
|
|
405
|
+
if (this.fullscreenLockApplied) {
|
|
406
|
+
this.fullscreenLockApplied = false;
|
|
376
407
|
// Drop the fullscreen-only lock, restoring any explicit setOrientation.
|
|
377
408
|
NativeAuVideo.setOrientation(this.store.getState().orientationLock);
|
|
378
409
|
}
|
|
@@ -382,11 +413,11 @@ export class VideoManager {
|
|
|
382
413
|
this.restoreInlineSurface();
|
|
383
414
|
}
|
|
384
415
|
|
|
385
|
-
toggleFullscreen(): void {
|
|
416
|
+
toggleFullscreen(orientation?: OrientationLock): void {
|
|
386
417
|
if (this.store.getState().fullscreen) {
|
|
387
418
|
this.exitFullscreen();
|
|
388
419
|
} else {
|
|
389
|
-
this.enterFullscreen();
|
|
420
|
+
this.enterFullscreen(orientation);
|
|
390
421
|
}
|
|
391
422
|
}
|
|
392
423
|
|
|
@@ -450,6 +481,8 @@ export class VideoManager {
|
|
|
450
481
|
this.events.removeAll();
|
|
451
482
|
this.initialized = false;
|
|
452
483
|
this.lastInlineSurfaceId = null;
|
|
484
|
+
this.fullscreenOrientationDefault = null;
|
|
485
|
+
this.fullscreenLockApplied = false;
|
|
453
486
|
NativeAuVideo.setOrientation('auto');
|
|
454
487
|
NativeAuVideo.releasePlayer();
|
|
455
488
|
this.store.setState({ ...initialVideoState }, true);
|
|
@@ -8,9 +8,15 @@ export function useFullscreen() {
|
|
|
8
8
|
const isFullscreen = usePlayback((s) => s.fullscreen);
|
|
9
9
|
const orientationLock = usePlayback((s) => s.orientationLock);
|
|
10
10
|
|
|
11
|
-
const enter = useCallback(
|
|
11
|
+
const enter = useCallback(
|
|
12
|
+
(orientation?: OrientationLock) => manager.enterFullscreen(orientation),
|
|
13
|
+
[manager]
|
|
14
|
+
);
|
|
12
15
|
const exit = useCallback(() => manager.exitFullscreen(), [manager]);
|
|
13
|
-
const toggle = useCallback(
|
|
16
|
+
const toggle = useCallback(
|
|
17
|
+
(orientation?: OrientationLock) => manager.toggleFullscreen(orientation),
|
|
18
|
+
[manager]
|
|
19
|
+
);
|
|
14
20
|
const setOrientation = useCallback(
|
|
15
21
|
(lock: OrientationLock) => manager.setOrientation(lock),
|
|
16
22
|
[manager]
|
package/src/types/video.ts
CHANGED
|
@@ -100,10 +100,4 @@ export interface VideoProviderConfig {
|
|
|
100
100
|
floatingHost?: boolean;
|
|
101
101
|
/** Pause playback when the active surface unmounts. Default false. */
|
|
102
102
|
pauseOnDetach?: boolean;
|
|
103
|
-
/**
|
|
104
|
-
* Orientation to force while fullscreen is active, e.g. `'landscape'`.
|
|
105
|
-
* Restored to the previous lock (or `'auto'`) on exit.
|
|
106
|
-
* Default `'auto'` — fullscreen just unlocks the sensor.
|
|
107
|
-
*/
|
|
108
|
-
fullscreenOrientation?: OrientationLock;
|
|
109
103
|
}
|