react-native-theoplayer 8.11.1 → 8.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/android/build.gradle +10 -0
  3. package/android/proguard-rules.pro +4 -0
  4. package/android/src/main/java/com/theoplayer/PlayerConfigAdapter.kt +8 -1
  5. package/android/src/main/java/com/theoplayer/PlayerEventEmitter.kt +8 -4
  6. package/android/src/main/java/com/theoplayer/ReactTHEOplayerContext.kt +1 -1
  7. package/android/src/main/java/com/theoplayer/ReactTHEOplayerView.kt +15 -4
  8. package/android/src/main/java/com/theoplayer/ReactTHEOplayerViewManager.kt +1 -1
  9. package/android/src/main/java/com/theoplayer/presentation/PresentationManager.kt +7 -2
  10. package/android/src/main/java/com/theoplayer/util/ViewResolver.kt +10 -13
  11. package/ios/THEOplayerRCTBridge.m +0 -2
  12. package/ios/THEOplayerRCTPlayerAPI.swift +0 -10
  13. package/ios/THEOplayerRCTView.swift +29 -34
  14. package/ios/THEOplayerRCTViewManager.swift +0 -9
  15. package/ios/ads/THEOplayerRCTAdsAPI+DAI.swift +5 -0
  16. package/ios/ads/THEOplayerRCTView+Ads.swift +4 -0
  17. package/ios/ads/THEOplayerRCTView+AdsConfig.swift +6 -1
  18. package/ios/backgroundAudio/THEOplayerRCTBackgroundAudioManager.swift +105 -0
  19. package/ios/backgroundAudio/THEOplayerRCTView+BackgroundAudioConfig.swift +8 -79
  20. package/ios/pip/THEOplayerRCTPipManager.swift +34 -0
  21. package/ios/pip/THEOplayerRCTView+PipConfig.swift +3 -14
  22. package/ios/presentationMode/THEOplayerRCTPresentationModeManager.swift +28 -10
  23. package/lib/commonjs/internal/THEOplayerView.js +0 -1
  24. package/lib/commonjs/internal/THEOplayerView.js.map +1 -1
  25. package/lib/commonjs/internal/adapter/THEOplayerAdapter.js +0 -5
  26. package/lib/commonjs/internal/adapter/THEOplayerAdapter.js.map +1 -1
  27. package/lib/commonjs/internal/adapter/WebEventForwarder.js +3 -3
  28. package/lib/commonjs/internal/adapter/WebEventForwarder.js.map +1 -1
  29. package/lib/commonjs/internal/adapter/event/DefaultEventDispatcher.js +18 -2
  30. package/lib/commonjs/internal/adapter/event/DefaultEventDispatcher.js.map +1 -1
  31. package/lib/commonjs/internal/adapter/web/WebPresentationModeManager.js +4 -12
  32. package/lib/commonjs/internal/adapter/web/WebPresentationModeManager.js.map +1 -1
  33. package/lib/commonjs/manifest.json +1 -1
  34. package/lib/module/internal/THEOplayerView.js +0 -1
  35. package/lib/module/internal/THEOplayerView.js.map +1 -1
  36. package/lib/module/internal/adapter/THEOplayerAdapter.js +0 -5
  37. package/lib/module/internal/adapter/THEOplayerAdapter.js.map +1 -1
  38. package/lib/module/internal/adapter/WebEventForwarder.js +3 -3
  39. package/lib/module/internal/adapter/WebEventForwarder.js.map +1 -1
  40. package/lib/module/internal/adapter/event/DefaultEventDispatcher.js +18 -2
  41. package/lib/module/internal/adapter/event/DefaultEventDispatcher.js.map +1 -1
  42. package/lib/module/internal/adapter/web/WebPresentationModeManager.js +4 -12
  43. package/lib/module/internal/adapter/web/WebPresentationModeManager.js.map +1 -1
  44. package/lib/module/manifest.json +1 -1
  45. package/lib/typescript/api/ads/GoogleImaConfiguration.d.ts +5 -0
  46. package/lib/typescript/api/ads/GoogleImaConfiguration.d.ts.map +1 -1
  47. package/lib/typescript/api/player/THEOplayer.d.ts +0 -4
  48. package/lib/typescript/api/player/THEOplayer.d.ts.map +1 -1
  49. package/lib/typescript/internal/adapter/THEOplayerAdapter.d.ts +0 -1
  50. package/lib/typescript/internal/adapter/THEOplayerAdapter.d.ts.map +1 -1
  51. package/lib/typescript/internal/adapter/event/DefaultEventDispatcher.d.ts +6 -4
  52. package/lib/typescript/internal/adapter/event/DefaultEventDispatcher.d.ts.map +1 -1
  53. package/lib/typescript/internal/adapter/web/WebPresentationModeManager.d.ts.map +1 -1
  54. package/package.json +4 -4
  55. package/src/api/ads/GoogleImaConfiguration.ts +6 -0
  56. package/src/api/player/THEOplayer.ts +0 -5
  57. package/src/internal/THEOplayerView.tsx +1 -1
  58. package/src/internal/adapter/THEOplayerAdapter.ts +0 -6
  59. package/src/internal/adapter/WebEventForwarder.ts +4 -4
  60. package/src/internal/adapter/event/DefaultEventDispatcher.ts +26 -8
  61. package/src/internal/adapter/web/WebPresentationModeManager.ts +4 -12
  62. package/src/manifest.json +1 -1
@@ -1,10 +1,12 @@
1
- import type { EventDispatcher, EventMap, StringKeyOf } from '../../../api/event/EventDispatcher';
2
- import type { EventListener } from '../../../api/event/EventListener';
1
+ import type { EventDispatcher, EventMap, StringKeyOf } from 'react-native-theoplayer';
2
+ import type { EventListener } from 'react-native-theoplayer';
3
3
  export declare class DefaultEventDispatcher<TMap extends EventMap<StringKeyOf<TMap>>> implements EventDispatcher<TMap> {
4
4
  readonly _eventListeners: Map<StringKeyOf<TMap>, EventListener<TMap[StringKeyOf<TMap>]>[]>;
5
- addEventListener<K extends StringKeyOf<TMap>>(type: K, listener: EventListener<TMap[K]>): void;
5
+ addEventListener<K extends StringKeyOf<TMap>>(type: K | readonly K[], listener: EventListener<TMap[K]>): void;
6
+ private addSingleEventListener;
6
7
  clearEventListeners(): void;
7
8
  dispatchEvent: <K extends StringKeyOf<TMap>>(event: TMap[K]) => void;
8
- removeEventListener<K extends StringKeyOf<TMap>>(type: K, listener: EventListener<TMap[K]>): void;
9
+ removeEventListener<K extends StringKeyOf<TMap>>(type: K | readonly K[], listener: EventListener<TMap[K]>): void;
10
+ private removeSingleEventListener;
9
11
  }
10
12
  //# sourceMappingURL=DefaultEventDispatcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultEventDispatcher.d.ts","sourceRoot":"","sources":["../../../../../src/internal/adapter/event/DefaultEventDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGtE,qBAAa,sBAAsB,CAAC,IAAI,SAAS,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,IAAI,CAAC;IAC5G,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAa;IAEvG,gBAAgB,CAAC,CAAC,SAAS,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAU9F,mBAAmB,IAAI,IAAI;IAI3B,aAAa,mDAAkD,IAAI,CAKjE;IAEF,mBAAmB,CAAC,CAAC,SAAS,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;CAMlG"}
1
+ {"version":3,"file":"DefaultEventDispatcher.d.ts","sourceRoot":"","sources":["../../../../../src/internal/adapter/event/DefaultEventDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,qBAAa,sBAAsB,CAAC,IAAI,SAAS,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,IAAI,CAAC;IAC5G,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAa;IAEvG,gBAAgB,CAAC,CAAC,SAAS,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAU7G,OAAO,CAAC,sBAAsB;IAQ9B,mBAAmB,IAAI,IAAI;IAI3B,aAAa,mDAAkD,IAAI,CAKjE;IAEF,mBAAmB,CAAC,CAAC,SAAS,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAUhH,OAAO,CAAC,yBAAyB;CAMlC"}
@@ -1 +1 @@
1
- {"version":3,"file":"WebPresentationModeManager.d.ts","sourceRoot":"","sources":["../../../../../src/internal/adapter/web/WebPresentationModeManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAI9E,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,iBAAiB,CAA6C;IACtE,OAAO,CAAC,QAAQ,CAA2C;IAC3D,OAAO,CAAC,eAAe,CAAyC;gBAEpD,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,sBAAsB,CAAC,cAAc,CAAC;IAK5F,IAAI,gBAAgB,IAAI,gBAAgB,CAEvC;IAED,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,gBAAgB,EAwCtD;IAED,OAAO,CAAC,iCAAiC;IA2BzC,OAAO,CAAC,sBAAsB,CAe5B;CACH"}
1
+ {"version":3,"file":"WebPresentationModeManager.d.ts","sourceRoot":"","sources":["../../../../../src/internal/adapter/web/WebPresentationModeManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAI9E,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,iBAAiB,CAA6C;IACtE,OAAO,CAAC,QAAQ,CAA2C;IAC3D,OAAO,CAAC,eAAe,CAAyC;gBAEpD,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,sBAAsB,CAAC,cAAc,CAAC;IAM5F,IAAI,gBAAgB,IAAI,gBAAgB,CAEvC;IAED,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,gBAAgB,EAwCtD;IAED,OAAO,CAAC,iCAAiC;IAkBzC,OAAO,CAAC,sBAAsB,CAe5B;CACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-theoplayer",
3
- "version": "8.11.1",
3
+ "version": "8.13.0",
4
4
  "description": "A THEOplayer video component for react-native.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -57,7 +57,7 @@
57
57
  },
58
58
  "devDependencies": {
59
59
  "@eslint/js": "^9.13.0",
60
- "@react-native/eslint-config": "^0.75.4",
60
+ "@react-native/eslint-config": "^0.76.5",
61
61
  "@types/react": "^18.3.12",
62
62
  "eslint": "^8.57.1",
63
63
  "eslint-config-prettier": "^9.1.0",
@@ -66,9 +66,9 @@
66
66
  "pod-install": "^0.1.39",
67
67
  "prettier": "^3.3.3",
68
68
  "react": "^18.3.1",
69
- "react-native": "^0.75.4",
69
+ "react-native": "^0.76.5",
70
70
  "react-native-builder-bob": "^0.23.2",
71
- "theoplayer": "^8.3.0",
71
+ "theoplayer": "^8.9.0",
72
72
  "typedoc": "^0.25.13",
73
73
  "typedoc-plugin-external-resolver": "^1.0.3",
74
74
  "typedoc-plugin-mdn-links": "^3.3.4",
@@ -52,4 +52,10 @@ export interface GoogleImaConfiguration {
52
52
  * @defaultValue `-1`
53
53
  */
54
54
  bitrate?: number;
55
+
56
+ /**
57
+ * The amount of time that the SDK will wait before moving onto the next ad for loading.
58
+ * This value will be specified in seconds.
59
+ */
60
+ adLoadTimeout?: number;
55
61
  }
@@ -72,11 +72,6 @@ export interface THEOplayer extends EventDispatcher<PlayerEventMap> {
72
72
  */
73
73
  pause(): void;
74
74
 
75
- /**
76
- * destroy the player.
77
- */
78
- destroy(): void;
79
-
80
75
  /**
81
76
  * Whether the player is paused.
82
77
  */
@@ -144,7 +144,7 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
144
144
  if (onPlayerDestroy) {
145
145
  onPlayerDestroy(this._facade);
146
146
  }
147
- this._facade.destroy();
147
+
148
148
  this._facade.dispatchEvent(new BaseEvent(PlayerEventType.DESTROY));
149
149
  this._dimensionsHandler?.remove();
150
150
  this._facade.clearEventListeners();
@@ -483,12 +483,6 @@ export class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEventMap> im
483
483
  }
484
484
  }
485
485
 
486
- destroy(): void {
487
- if (Platform.OS === 'ios') {
488
- NativePlayerModule.destroyPlayer(this._view.nativeHandle);
489
- }
490
- }
491
-
492
486
  public get version(): PlayerVersion {
493
487
  return this._playerVersion;
494
488
  }
@@ -18,7 +18,7 @@ import type {
18
18
  VolumeChangeEvent as NativeVolumeChangeEvent,
19
19
  DimensionChangeEvent as NativeDimensionChangeEvent,
20
20
  } from 'theoplayer';
21
- import type { AdEvent, MediaTrack, TextTrack, TimeRange } from 'react-native-theoplayer';
21
+ import type { AdEvent, MediaTrack, TimeRange } from 'react-native-theoplayer';
22
22
  import {
23
23
  AdEventType,
24
24
  CastState,
@@ -267,7 +267,7 @@ export class WebEventForwarder {
267
267
  track.addEventListener('removecue', this.onRemoveTextTrackCue(track));
268
268
  track.addEventListener('entercue', this.onEnterTextTrackCue(track));
269
269
  track.addEventListener('exitcue', this.onExitTextTrackCue(track));
270
- this._facade.dispatchEvent(new DefaultTextTrackListEvent(TrackListEventType.ADD_TRACK, track as TextTrack));
270
+ this._facade.dispatchEvent(new DefaultTextTrackListEvent(TrackListEventType.ADD_TRACK, fromNativeTextTrack(track)));
271
271
  };
272
272
 
273
273
  private readonly onRemoveTextTrack = (event: RemoveTrackEvent) => {
@@ -276,11 +276,11 @@ export class WebEventForwarder {
276
276
  track.removeEventListener('removecue', this.onRemoveTextTrackCue(track));
277
277
  track.removeEventListener('entercue', this.onEnterTextTrackCue(track));
278
278
  track.removeEventListener('exitcue', this.onExitTextTrackCue(track));
279
- this._facade.dispatchEvent(new DefaultTextTrackListEvent(TrackListEventType.REMOVE_TRACK, track as NativeTextTrack as TextTrack));
279
+ this._facade.dispatchEvent(new DefaultTextTrackListEvent(TrackListEventType.REMOVE_TRACK, fromNativeTextTrack(track)));
280
280
  };
281
281
 
282
282
  private readonly onChangeTextTrack = (event: TrackChangeEvent) => {
283
- this._facade.dispatchEvent(new DefaultTextTrackListEvent(TrackListEventType.CHANGE_TRACK, event.track as NativeTextTrack as TextTrack));
283
+ this._facade.dispatchEvent(new DefaultTextTrackListEvent(TrackListEventType.CHANGE_TRACK, fromNativeTextTrack(event.track as NativeTextTrack)));
284
284
  };
285
285
 
286
286
  private readonly onAddAudioTrack = (event: AddTrackEvent) => {
@@ -1,17 +1,25 @@
1
- import type { EventDispatcher, EventMap, StringKeyOf } from '../../../api/event/EventDispatcher';
2
- import type { EventListener } from '../../../api/event/EventListener';
1
+ import type { EventDispatcher, EventMap, StringKeyOf } from 'react-native-theoplayer';
2
+ import type { EventListener } from 'react-native-theoplayer';
3
3
  import { arrayRemoveElement } from '../../utils/arrayUtil';
4
4
 
5
5
  export class DefaultEventDispatcher<TMap extends EventMap<StringKeyOf<TMap>>> implements EventDispatcher<TMap> {
6
6
  readonly _eventListeners: Map<StringKeyOf<TMap>, EventListener<TMap[StringKeyOf<TMap>]>[]> = new Map();
7
7
 
8
- addEventListener<K extends StringKeyOf<TMap>>(type: K, listener: EventListener<TMap[K]>): void {
8
+ addEventListener<K extends StringKeyOf<TMap>>(type: K | readonly K[], listener: EventListener<TMap[K]>): void {
9
+ if (typeof listener !== 'function') {
10
+ return;
11
+ } else if (Array.isArray(type)) {
12
+ type.forEach((t) => this.addSingleEventListener(t, listener));
13
+ } else {
14
+ this.addSingleEventListener(type as K, listener);
15
+ }
16
+ }
17
+
18
+ private addSingleEventListener<K extends StringKeyOf<TMap>>(type: K, listener: EventListener<TMap[K]>): void {
9
19
  if (!this._eventListeners.has(type)) {
10
- // @ts-ignore
11
- this._eventListeners.set(type, [listener]);
20
+ this._eventListeners.set(type, [listener as EventListener<TMap[StringKeyOf<TMap>]>]);
12
21
  } else {
13
- // @ts-ignore
14
- this._eventListeners.get(type)?.push(listener);
22
+ this._eventListeners.get(type)?.push(listener as EventListener<TMap[StringKeyOf<TMap>]>);
15
23
  }
16
24
  }
17
25
 
@@ -26,7 +34,17 @@ export class DefaultEventDispatcher<TMap extends EventMap<StringKeyOf<TMap>>> im
26
34
  }
27
35
  };
28
36
 
29
- removeEventListener<K extends StringKeyOf<TMap>>(type: K, listener: EventListener<TMap[K]>): void {
37
+ removeEventListener<K extends StringKeyOf<TMap>>(type: K | readonly K[], listener: EventListener<TMap[K]>): void {
38
+ if (typeof listener !== 'function') {
39
+ return;
40
+ } else if (Array.isArray(type)) {
41
+ type.forEach((t) => this.removeSingleEventListener(t, listener));
42
+ } else {
43
+ this.removeSingleEventListener(type as K, listener);
44
+ }
45
+ }
46
+
47
+ private removeSingleEventListener<K extends StringKeyOf<TMap>>(type: K, listener: EventListener<TMap[K]>): void {
30
48
  const listeners = this._eventListeners.get(type);
31
49
  if (listeners) {
32
50
  arrayRemoveElement(listeners, listener);
@@ -15,6 +15,7 @@ export class WebPresentationModeManager {
15
15
  constructor(player: ChromelessPlayer, eventForwarder: DefaultEventDispatcher<PlayerEventMap>) {
16
16
  this._player = player;
17
17
  this._eventForwarder = eventForwarder;
18
+ this._player.presentation.addEventListener('presentationmodechange', this.updatePresentationMode);
18
19
  }
19
20
 
20
21
  get presentationMode(): PresentationMode {
@@ -39,7 +40,7 @@ export class WebPresentationModeManager {
39
40
  }
40
41
  }
41
42
  } else if (presentationMode === PresentationMode.pip) {
42
- void this._element?.requestPictureInPicture?.();
43
+ this._player.presentation.requestMode('native-picture-in-picture');
43
44
  } else {
44
45
  if (this._presentationMode === PresentationMode.fullscreen) {
45
46
  const promise = document[fullscreenAPI.exitFullscreen_]();
@@ -56,7 +57,7 @@ export class WebPresentationModeManager {
56
57
  if (presentationMode === PresentationMode.fullscreen) {
57
58
  this._element?.webkitEnterFullscreen?.();
58
59
  } else if (presentationMode === PresentationMode.pip) {
59
- this._element?.webkitSetPresentationMode?.(PresentationMode.pip);
60
+ this._player.presentation.requestMode('native-picture-in-picture');
60
61
  } else {
61
62
  this._element?.webkitSetPresentationMode?.(PresentationMode.inline);
62
63
  }
@@ -74,15 +75,6 @@ export class WebPresentationModeManager {
74
75
  }
75
76
  }
76
77
  }
77
- // listen for pip updates on element
78
- if (this._element !== undefined) {
79
- this._element.onenterpictureinpicture = () => {
80
- this.updatePresentationMode();
81
- };
82
- this._element.onleavepictureinpicture = () => {
83
- this.updatePresentationMode();
84
- };
85
- }
86
78
  // listen for fullscreen updates on document
87
79
  if (fullscreenAPI !== undefined) {
88
80
  document.addEventListener(fullscreenAPI.fullscreenchange_, this.updatePresentationMode);
@@ -95,7 +87,7 @@ export class WebPresentationModeManager {
95
87
  let newPresentationMode: PresentationMode = PresentationMode.inline;
96
88
  if (fullscreenAPI !== undefined && document[fullscreenAPI.fullscreenElement_] !== null) {
97
89
  newPresentationMode = PresentationMode.fullscreen;
98
- } else if (document.pictureInPictureElement !== null) {
90
+ } else if (this._player.presentation.currentMode === 'native-picture-in-picture') {
99
91
  newPresentationMode = PresentationMode.pip;
100
92
  }
101
93
 
package/src/manifest.json CHANGED
@@ -1 +1 @@
1
- {"version":"8.11.1","buildDate":"2024-12-18T14:55:55.810Z"}
1
+ {"version":"8.13.0","buildDate":"2025-01-15T19:38:29.644Z"}