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 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** — per player, imperatively, or whenever
87
- fullscreen is active:
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 — 'auto' | 'portrait' | 'inverted-portrait'
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;AAuB9C;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,KAAK;EACL,GAAGC;AACa,CAAC,EAAE;EACnB,MAAMC,OAAO,GAAGhB,eAAe,CAAC,CAAC;EACjC,MAAMiB,EAAE,GAAGP,SAAS,IAAI,UAAUF,MAAM,CAACS,EAAE,EAAE;EAE7CpB,SAAS,CAAC,MAAM;IACdmB,OAAO,CAACE,SAAS,CAACV,MAAM,EAAE;MAAEC,QAAQ;MAAEC,SAAS,EAAEO;IAAG,CAAC,CAAC;IACtD;IACA;IACA;EACF,CAAC,EAAE,CAACD,OAAO,EAAER,MAAM,CAACS,EAAE,EAAEA,EAAE,CAAC,CAAC;EAE5BpB,SAAS,CAAC,MAAM;IACd,IAAIe,UAAU,EAAE;MACdI,OAAO,CAACG,aAAa,CAACP,UAAU,CAAC;IACnC;EACF,CAAC,EAAE,CAACI,OAAO,EAAEJ,UAAU,CAAC,CAAC;EAEzBf,SAAS,CAAC,MAAM;IACd,IAAI,CAACgB,WAAW,IAAIA,WAAW,KAAK,MAAM,EAAE;MAC1C;IACF;IACAG,OAAO,CAACI,cAAc,CAACP,WAAW,CAAC;IACnC,OAAO,MAAMG,OAAO,CAACI,cAAc,CAAC,MAAM,CAAC;EAC7C,CAAC,EAAE,CAACJ,OAAO,EAAEH,WAAW,CAAC,CAAC;EAE1B,oBACEP,KAAA,CAACP,IAAI;IAACe,KAAK,EAAE,CAACO,MAAM,CAACC,SAAS,EAAER,KAAK,CAAE;IAAA,GAAKC,IAAI;IAAAQ,QAAA,gBAC9CnB,IAAA,CAACF,YAAY;MAACQ,SAAS,EAAEO,EAAG;MAACH,KAAK,EAAEO,MAAM,CAACG;IAAQ,CAAE,CAAC,EACrDb,QAAQ,gBAAGP,IAAA,CAACH,aAAa,IAAE,CAAC,GAAG,IAAI;EAAA,CAChC,CAAC;AAEX;AAEA,MAAMoB,MAAM,GAAGvB,UAAU,CAAC2B,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":[]}
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 and unlock device rotation.
337
- * The host mounts a surface and attaches automatically.
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
- const forced = this.config.fullscreenOrientation;
350
- if (forced !== 'auto') {
351
- NativeAuVideo.setOrientation(forced);
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.config.fullscreenOrientation !== 'auto') {
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(() => manager.enterFullscreen(), [manager]);
10
+ const enter = useCallback(orientation => manager.enterFullscreen(orientation), [manager]);
11
11
  const exit = useCallback(() => manager.exitFullscreen(), [manager]);
12
- const toggle = useCallback(() => manager.toggleFullscreen(), [manager]);
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,CAAC,MAAMI,OAAO,CAACM,eAAe,CAAC,CAAC,EAAE,CAACN,OAAO,CAAC,CAAC;EACrE,MAAMO,IAAI,GAAGX,WAAW,CAAC,MAAMI,OAAO,CAACQ,cAAc,CAAC,CAAC,EAAE,CAACR,OAAO,CAAC,CAAC;EACnE,MAAMS,MAAM,GAAGb,WAAW,CAAC,MAAMI,OAAO,CAACU,gBAAgB,CAAC,CAAC,EAAE,CAACV,OAAO,CAAC,CAAC;EACvE,MAAMW,cAAc,GAAGf,WAAW,CAC/BgB,IAAqB,IAAKZ,OAAO,CAACW,cAAc,CAACC,IAAI,CAAC,EACvD,CAACZ,OAAO,CACV,CAAC;EAED,OAAO;IAAEC,YAAY;IAAEI,KAAK;IAAEE,IAAI;IAAEE,MAAM;IAAEL,eAAe;IAAEO;EAAe,CAAC;AAC/E","ignoreList":[]}
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;CAC/B;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,QAAe,EACf,SAAS,EACT,QAAe,EACf,UAAU,EACV,WAAW,EACX,KAAK,EACL,GAAG,IAAI,EACR,EAAE,gBAAgB,+BA+BlB"}
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 and unlock device rotation.
76
- * The host mounts a surface and attaches automatically.
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":"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"}
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;;;;;;2BASlB,eAAe;EAKzB"}
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;IACxB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,eAAe,CAAC;CACzC"}
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.0",
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} />
@@ -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 and unlock device rotation.
354
- * The host mounts a surface and attaches automatically.
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
- const forced = this.config.fullscreenOrientation;
364
- if (forced !== 'auto') {
365
- NativeAuVideo.setOrientation(forced);
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.config.fullscreenOrientation !== 'auto') {
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(() => manager.enterFullscreen(), [manager]);
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(() => manager.toggleFullscreen(), [manager]);
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]
@@ -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
  }