@remotion/player 3.1.8 → 3.2.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/dist/PlayerUI.js +26 -0
- package/dist/event-emitter.d.ts +5 -0
- package/dist/event-emitter.js +4 -0
- package/dist/index.d.ts +1 -0
- package/dist/use-player.d.ts +1 -0
- package/dist/use-player.js +8 -5
- package/package.json +3 -3
- package/dist/utils/browser-supports-fullscreen.d.ts +0 -11
- package/dist/utils/browser-supports-fullscreen.js +0 -5
package/dist/PlayerUI.js
CHANGED
|
@@ -119,6 +119,32 @@ const PlayerUI = ({ controls, style, loop, autoPlay, allowFullscreen, inputProps
|
|
|
119
119
|
document.exitFullscreen();
|
|
120
120
|
}
|
|
121
121
|
}, []);
|
|
122
|
+
(0, react_1.useEffect)(() => {
|
|
123
|
+
const { current } = container;
|
|
124
|
+
if (!current) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const fullscreenChange = () => {
|
|
128
|
+
var _a;
|
|
129
|
+
const element = (_a = document.webkitFullscreenElement) !== null && _a !== void 0 ? _a : document.fullscreenElement;
|
|
130
|
+
if (element && element === container.current) {
|
|
131
|
+
player.emitter.dispatchFullscreenChangeUpdate({
|
|
132
|
+
isFullscreen: true,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
player.emitter.dispatchFullscreenChangeUpdate({
|
|
137
|
+
isFullscreen: false,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
current.addEventListener('webkitfullscreenchange', fullscreenChange);
|
|
142
|
+
current.addEventListener('fullscreenchange', fullscreenChange);
|
|
143
|
+
return () => {
|
|
144
|
+
current.removeEventListener('webkitfullscreenchange', fullscreenChange);
|
|
145
|
+
current.removeEventListener('fullscreenchange', fullscreenChange);
|
|
146
|
+
};
|
|
147
|
+
}, [player.emitter]);
|
|
122
148
|
const durationInFrames = (_a = config === null || config === void 0 ? void 0 : config.durationInFrames) !== null && _a !== void 0 ? _a : 1;
|
|
123
149
|
(0, react_1.useImperativeHandle)(ref, () => {
|
|
124
150
|
const methods = {
|
package/dist/event-emitter.d.ts
CHANGED
|
@@ -10,6 +10,9 @@ declare type TimeUpdateEventPayload = {
|
|
|
10
10
|
declare type RateChangeEventPayload = {
|
|
11
11
|
playbackRate: number;
|
|
12
12
|
};
|
|
13
|
+
declare type FullscreenChangeEventPayload = {
|
|
14
|
+
isFullscreen: boolean;
|
|
15
|
+
};
|
|
13
16
|
declare type StateEventMap = {
|
|
14
17
|
seeked: SeekPayload;
|
|
15
18
|
pause: undefined;
|
|
@@ -18,6 +21,7 @@ declare type StateEventMap = {
|
|
|
18
21
|
ended: undefined;
|
|
19
22
|
error: ErrorPayload;
|
|
20
23
|
timeupdate: TimeUpdateEventPayload;
|
|
24
|
+
fullscreenchange: FullscreenChangeEventPayload;
|
|
21
25
|
};
|
|
22
26
|
export declare type EventTypes = keyof StateEventMap;
|
|
23
27
|
export declare type CallbackListener<T extends EventTypes> = (data: {
|
|
@@ -38,5 +42,6 @@ export declare class PlayerEmitter {
|
|
|
38
42
|
dispatchRatechange(playbackRate: number): void;
|
|
39
43
|
dispatchError(error: Error): void;
|
|
40
44
|
dispatchTimeUpdate(event: TimeUpdateEventPayload): void;
|
|
45
|
+
dispatchFullscreenChangeUpdate(event: FullscreenChangeEventPayload): void;
|
|
41
46
|
}
|
|
42
47
|
export {};
|
package/dist/event-emitter.js
CHANGED
|
@@ -11,6 +11,7 @@ class PlayerEmitter {
|
|
|
11
11
|
ratechange: [],
|
|
12
12
|
seeked: [],
|
|
13
13
|
timeupdate: [],
|
|
14
|
+
fullscreenchange: [],
|
|
14
15
|
};
|
|
15
16
|
}
|
|
16
17
|
addEventListener(name, callback) {
|
|
@@ -51,5 +52,8 @@ class PlayerEmitter {
|
|
|
51
52
|
dispatchTimeUpdate(event) {
|
|
52
53
|
this.dispatchEvent('timeupdate', event);
|
|
53
54
|
}
|
|
55
|
+
dispatchFullscreenChangeUpdate(event) {
|
|
56
|
+
this.dispatchEvent('fullscreenchange', event);
|
|
57
|
+
}
|
|
54
58
|
}
|
|
55
59
|
exports.PlayerEmitter = PlayerEmitter;
|
package/dist/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export declare const PlayerInternals: {
|
|
|
14
14
|
frameBack: (frames: number) => void;
|
|
15
15
|
frameForward: (frames: number) => void;
|
|
16
16
|
isLastFrame: boolean;
|
|
17
|
+
isFirstFrame: boolean;
|
|
17
18
|
emitter: PlayerEmitter;
|
|
18
19
|
playing: boolean;
|
|
19
20
|
play: (e?: import("react").SyntheticEvent<Element, Event> | undefined) => void;
|
package/dist/use-player.d.ts
CHANGED
package/dist/use-player.js
CHANGED
|
@@ -20,6 +20,7 @@ const usePlayer = () => {
|
|
|
20
20
|
const emitter = (0, react_1.useContext)(emitter_context_1.PlayerEventEmitterContext);
|
|
21
21
|
const lastFrame = ((_a = config === null || config === void 0 ? void 0 : config.durationInFrames) !== null && _a !== void 0 ? _a : 1) - 1;
|
|
22
22
|
const isLastFrame = frame === lastFrame;
|
|
23
|
+
const isFirstFrame = frame === 0;
|
|
23
24
|
if (!emitter) {
|
|
24
25
|
throw new TypeError('Expected Player event emitter context');
|
|
25
26
|
}
|
|
@@ -104,21 +105,23 @@ const usePlayer = () => {
|
|
|
104
105
|
play,
|
|
105
106
|
pause,
|
|
106
107
|
seek,
|
|
108
|
+
isFirstFrame,
|
|
107
109
|
getCurrentFrame: () => frameRef.current,
|
|
108
110
|
isPlaying: () => imperativePlaying.current,
|
|
109
111
|
pauseAndReturnToPlayStart,
|
|
110
112
|
};
|
|
111
113
|
}, [
|
|
112
|
-
emitter,
|
|
113
114
|
frameBack,
|
|
114
115
|
frameForward,
|
|
115
|
-
imperativePlaying,
|
|
116
116
|
isLastFrame,
|
|
117
|
-
|
|
118
|
-
play,
|
|
117
|
+
emitter,
|
|
119
118
|
playing,
|
|
120
|
-
|
|
119
|
+
play,
|
|
120
|
+
pause,
|
|
121
121
|
seek,
|
|
122
|
+
isFirstFrame,
|
|
123
|
+
pauseAndReturnToPlayStart,
|
|
124
|
+
imperativePlaying,
|
|
122
125
|
]);
|
|
123
126
|
return returnValue;
|
|
124
127
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/player",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "Remotion Player",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
],
|
|
29
29
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"remotion": "3.
|
|
31
|
+
"remotion": "3.2.0"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"react": ">=16.8.0",
|
|
@@ -63,5 +63,5 @@
|
|
|
63
63
|
"publishConfig": {
|
|
64
64
|
"access": "public"
|
|
65
65
|
},
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "47b188161a9e922a247eaa998e72d37af9137707"
|
|
67
67
|
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
declare global {
|
|
2
|
-
interface Document {
|
|
3
|
-
webkitFullscreenEnabled?: boolean;
|
|
4
|
-
webkitFullscreenElement?: Element;
|
|
5
|
-
webkitExitFullscreen?: Document['exitFullscreen'];
|
|
6
|
-
}
|
|
7
|
-
interface HTMLDivElement {
|
|
8
|
-
webkitRequestFullScreen: HTMLDivElement['requestFullscreen'];
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
export declare const browserSupportsFullscreen: boolean | undefined;
|