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.
- package/CHANGELOG.md +28 -0
- package/android/build.gradle +10 -0
- package/android/proguard-rules.pro +4 -0
- package/android/src/main/java/com/theoplayer/PlayerConfigAdapter.kt +8 -1
- package/android/src/main/java/com/theoplayer/PlayerEventEmitter.kt +8 -4
- package/android/src/main/java/com/theoplayer/ReactTHEOplayerContext.kt +1 -1
- package/android/src/main/java/com/theoplayer/ReactTHEOplayerView.kt +15 -4
- package/android/src/main/java/com/theoplayer/ReactTHEOplayerViewManager.kt +1 -1
- package/android/src/main/java/com/theoplayer/presentation/PresentationManager.kt +7 -2
- package/android/src/main/java/com/theoplayer/util/ViewResolver.kt +10 -13
- package/ios/THEOplayerRCTBridge.m +0 -2
- package/ios/THEOplayerRCTPlayerAPI.swift +0 -10
- package/ios/THEOplayerRCTView.swift +29 -34
- package/ios/THEOplayerRCTViewManager.swift +0 -9
- package/ios/ads/THEOplayerRCTAdsAPI+DAI.swift +5 -0
- package/ios/ads/THEOplayerRCTView+Ads.swift +4 -0
- package/ios/ads/THEOplayerRCTView+AdsConfig.swift +6 -1
- package/ios/backgroundAudio/THEOplayerRCTBackgroundAudioManager.swift +105 -0
- package/ios/backgroundAudio/THEOplayerRCTView+BackgroundAudioConfig.swift +8 -79
- package/ios/pip/THEOplayerRCTPipManager.swift +34 -0
- package/ios/pip/THEOplayerRCTView+PipConfig.swift +3 -14
- package/ios/presentationMode/THEOplayerRCTPresentationModeManager.swift +28 -10
- package/lib/commonjs/internal/THEOplayerView.js +0 -1
- package/lib/commonjs/internal/THEOplayerView.js.map +1 -1
- package/lib/commonjs/internal/adapter/THEOplayerAdapter.js +0 -5
- package/lib/commonjs/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/WebEventForwarder.js +3 -3
- package/lib/commonjs/internal/adapter/WebEventForwarder.js.map +1 -1
- package/lib/commonjs/internal/adapter/event/DefaultEventDispatcher.js +18 -2
- package/lib/commonjs/internal/adapter/event/DefaultEventDispatcher.js.map +1 -1
- package/lib/commonjs/internal/adapter/web/WebPresentationModeManager.js +4 -12
- package/lib/commonjs/internal/adapter/web/WebPresentationModeManager.js.map +1 -1
- package/lib/commonjs/manifest.json +1 -1
- package/lib/module/internal/THEOplayerView.js +0 -1
- package/lib/module/internal/THEOplayerView.js.map +1 -1
- package/lib/module/internal/adapter/THEOplayerAdapter.js +0 -5
- package/lib/module/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/module/internal/adapter/WebEventForwarder.js +3 -3
- package/lib/module/internal/adapter/WebEventForwarder.js.map +1 -1
- package/lib/module/internal/adapter/event/DefaultEventDispatcher.js +18 -2
- package/lib/module/internal/adapter/event/DefaultEventDispatcher.js.map +1 -1
- package/lib/module/internal/adapter/web/WebPresentationModeManager.js +4 -12
- package/lib/module/internal/adapter/web/WebPresentationModeManager.js.map +1 -1
- package/lib/module/manifest.json +1 -1
- package/lib/typescript/api/ads/GoogleImaConfiguration.d.ts +5 -0
- package/lib/typescript/api/ads/GoogleImaConfiguration.d.ts.map +1 -1
- package/lib/typescript/api/player/THEOplayer.d.ts +0 -4
- package/lib/typescript/api/player/THEOplayer.d.ts.map +1 -1
- package/lib/typescript/internal/adapter/THEOplayerAdapter.d.ts +0 -1
- package/lib/typescript/internal/adapter/THEOplayerAdapter.d.ts.map +1 -1
- package/lib/typescript/internal/adapter/event/DefaultEventDispatcher.d.ts +6 -4
- package/lib/typescript/internal/adapter/event/DefaultEventDispatcher.d.ts.map +1 -1
- package/lib/typescript/internal/adapter/web/WebPresentationModeManager.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/api/ads/GoogleImaConfiguration.ts +6 -0
- package/src/api/player/THEOplayer.ts +0 -5
- package/src/internal/THEOplayerView.tsx +1 -1
- package/src/internal/adapter/THEOplayerAdapter.ts +0 -6
- package/src/internal/adapter/WebEventForwarder.ts +4 -4
- package/src/internal/adapter/event/DefaultEventDispatcher.ts +26 -8
- package/src/internal/adapter/web/WebPresentationModeManager.ts +4 -12
- package/src/manifest.json +1 -1
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import type { EventDispatcher, EventMap, StringKeyOf } from '
|
|
2
|
-
import type { EventListener } from '
|
|
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,
|
|
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;
|
|
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.
|
|
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.
|
|
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.
|
|
69
|
+
"react-native": "^0.76.5",
|
|
70
70
|
"react-native-builder-bob": "^0.23.2",
|
|
71
|
-
"theoplayer": "^8.
|
|
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
|
}
|
|
@@ -144,7 +144,7 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
|
|
|
144
144
|
if (onPlayerDestroy) {
|
|
145
145
|
onPlayerDestroy(this._facade);
|
|
146
146
|
}
|
|
147
|
-
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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 '
|
|
2
|
-
import type { EventListener } from '
|
|
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
|
-
|
|
11
|
-
this._eventListeners.set(type, [listener]);
|
|
20
|
+
this._eventListeners.set(type, [listener as EventListener<TMap[StringKeyOf<TMap>]>]);
|
|
12
21
|
} else {
|
|
13
|
-
|
|
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
|
-
|
|
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.
|
|
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 (
|
|
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.
|
|
1
|
+
{"version":"8.13.0","buildDate":"2025-01-15T19:38:29.644Z"}
|