@remotion/player 3.0.0-lambda.2 → 3.0.0-lambda.200
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/Player.d.ts +6 -1
- package/dist/Player.d.ts.map +1 -1
- package/dist/Player.js +20 -8
- package/dist/Player.js.map +1 -1
- package/dist/PlayerSeekBar.d.ts.map +1 -1
- package/dist/PlayerSeekBar.js +2 -1
- package/dist/PlayerSeekBar.js.map +1 -1
- package/dist/PlayerUI.d.ts +4 -0
- package/dist/PlayerUI.d.ts.map +1 -1
- package/dist/PlayerUI.js +15 -6
- package/dist/PlayerUI.js.map +1 -1
- package/dist/calculate-next-frame.d.ts +15 -0
- package/dist/calculate-next-frame.d.ts.map +1 -0
- package/dist/calculate-next-frame.js +29 -0
- package/dist/calculate-next-frame.js.map +1 -0
- package/dist/error-boundary.d.ts +7 -4
- package/dist/error-boundary.d.ts.map +1 -1
- package/dist/error-boundary.js +6 -4
- package/dist/error-boundary.js.map +1 -1
- package/dist/event-emitter.d.ts +7 -2
- package/dist/event-emitter.d.ts.map +1 -1
- package/dist/event-emitter.js +6 -0
- package/dist/event-emitter.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/test/validate-prop.test.js +36 -6
- package/dist/test/validate-prop.test.js.map +1 -1
- package/dist/use-playback.d.ts +2 -1
- package/dist/use-playback.d.ts.map +1 -1
- package/dist/use-playback.js +32 -32
- package/dist/use-playback.js.map +1 -1
- package/dist/use-player.d.ts.map +1 -1
- package/dist/use-player.js +6 -6
- package/dist/use-player.js.map +1 -1
- package/dist/utils/validate-playbackrate.d.ts +2 -0
- package/dist/utils/validate-playbackrate.d.ts.map +1 -0
- package/dist/utils/validate-playbackrate.js +19 -0
- package/dist/utils/validate-playbackrate.js.map +1 -0
- package/package.json +4 -4
package/dist/Player.d.ts
CHANGED
|
@@ -6,6 +6,9 @@ declare type PropsIfHasProps<Props> = {} extends Props ? {
|
|
|
6
6
|
} : {
|
|
7
7
|
inputProps: Props;
|
|
8
8
|
};
|
|
9
|
+
export declare type ErrorFallback = (info: {
|
|
10
|
+
error: Error;
|
|
11
|
+
}) => React.ReactNode;
|
|
9
12
|
export declare type PlayerProps<T> = {
|
|
10
13
|
durationInFrames: number;
|
|
11
14
|
compositionWidth: number;
|
|
@@ -13,6 +16,7 @@ export declare type PlayerProps<T> = {
|
|
|
13
16
|
fps: number;
|
|
14
17
|
showVolumeControls?: boolean;
|
|
15
18
|
controls?: boolean;
|
|
19
|
+
errorFallback?: ErrorFallback;
|
|
16
20
|
style?: React.CSSProperties;
|
|
17
21
|
loop?: boolean;
|
|
18
22
|
autoPlay?: boolean;
|
|
@@ -21,8 +25,9 @@ export declare type PlayerProps<T> = {
|
|
|
21
25
|
doubleClickToFullscreen?: boolean;
|
|
22
26
|
spaceKeyToPlayOrPause?: boolean;
|
|
23
27
|
numberOfSharedAudioTags?: number;
|
|
28
|
+
playbackRate?: number;
|
|
24
29
|
} & PropsIfHasProps<T> & CompProps<T>;
|
|
25
|
-
export declare const PlayerFn: <T>({ durationInFrames, compositionHeight, compositionWidth, fps, inputProps, style, controls, loop, autoPlay, showVolumeControls, allowFullscreen, clickToPlay, doubleClickToFullscreen, spaceKeyToPlayOrPause, numberOfSharedAudioTags, ...componentProps }: PlayerProps<T>, ref: MutableRefObject<PlayerRef>) => JSX.Element;
|
|
30
|
+
export declare const PlayerFn: <T>({ durationInFrames, compositionHeight, compositionWidth, fps, inputProps, style, controls, loop, autoPlay, showVolumeControls, allowFullscreen, clickToPlay, doubleClickToFullscreen, spaceKeyToPlayOrPause, numberOfSharedAudioTags, errorFallback, playbackRate, ...componentProps }: PlayerProps<T>, ref: MutableRefObject<PlayerRef>) => JSX.Element;
|
|
26
31
|
declare module 'react' {
|
|
27
32
|
function forwardRef<T, P = {}>(render: (props: P, ref: React.MutableRefObject<T>) => React.ReactElement | null): (props: P & React.RefAttributes<T>) => React.ReactElement | null;
|
|
28
33
|
}
|
package/dist/Player.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../src/Player.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEb,gBAAgB,
|
|
1
|
+
{"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../src/Player.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEb,gBAAgB,EAQhB,MAAM,OAAO,CAAC;AACf,OAAO,EAEN,SAAS,EAOT,MAAM,UAAU,CAAC;AAIlB,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAK3C,aAAK,eAAe,CAAC,KAAK,IAAI,EAAE,SAAS,KAAK,GAC3C;IACA,UAAU,CAAC,EAAE,KAAK,CAAC;CAClB,GACD;IACA,UAAU,EAAE,KAAK,CAAC;CACjB,CAAC;AAEL,oBAAY,aAAa,GAAG,CAAC,IAAI,EAAE;IAAC,KAAK,EAAE,KAAK,CAAA;CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;AAEtE,oBAAY,WAAW,CAAC,CAAC,IAAI;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,eAAe,CAAC,CAAC,CAAC,GACrB,SAAS,CAAC,CAAC,CAAC,CAAC;AAOd,eAAO,MAAM,QAAQ,mTAqBf,iBAAiB,SAAS,CAAC,gBAiQhC,CAAC;AAEF,OAAO,QAAQ,OAAO,CAAC;IAEtB,SAAS,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAC5B,MAAM,EAAE,CACP,KAAK,EAAE,CAAC,EACR,GAAG,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAC1B,KAAK,CAAC,YAAY,GAAG,IAAI,GAC5B,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;CACpE;AAED,eAAO,MAAM,MAAM,iEAHwB,kBAAkB,GAAG,IAGtB,CAAC"}
|
package/dist/Player.js
CHANGED
|
@@ -11,15 +11,17 @@ const emitter_context_1 = require("./emitter-context");
|
|
|
11
11
|
const event_emitter_1 = require("./event-emitter");
|
|
12
12
|
const player_css_classname_1 = require("./player-css-classname");
|
|
13
13
|
const PlayerUI_1 = __importDefault(require("./PlayerUI"));
|
|
14
|
+
const validate_playbackrate_1 = require("./utils/validate-playbackrate");
|
|
14
15
|
const volume_persistance_1 = require("./volume-persistance");
|
|
15
16
|
remotion_1.Internals.CSSUtils.injectCSS(remotion_1.Internals.CSSUtils.makeDefaultCSS(`.${player_css_classname_1.PLAYER_CSS_CLASSNAME}`));
|
|
16
17
|
// eslint-disable-next-line complexity
|
|
17
|
-
const PlayerFn = ({ durationInFrames, compositionHeight, compositionWidth, fps, inputProps, style, controls = false, loop = false, autoPlay = false, showVolumeControls = true, allowFullscreen = true, clickToPlay, doubleClickToFullscreen = false, spaceKeyToPlayOrPause = true, numberOfSharedAudioTags = 5, ...componentProps }, ref) => {
|
|
18
|
-
(
|
|
19
|
-
|
|
18
|
+
const PlayerFn = ({ durationInFrames, compositionHeight, compositionWidth, fps, inputProps, style, controls = false, loop = false, autoPlay = false, showVolumeControls = true, allowFullscreen = true, clickToPlay, doubleClickToFullscreen = false, spaceKeyToPlayOrPause = true, numberOfSharedAudioTags = 5, errorFallback = () => '⚠️', playbackRate = 1, ...componentProps }, ref) => {
|
|
19
|
+
if (typeof window !== 'undefined') {
|
|
20
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
21
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
20
22
|
window.remotion_isPlayer = true;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
+
}, []);
|
|
24
|
+
}
|
|
23
25
|
const component = remotion_1.Internals.useLazyComponent(componentProps);
|
|
24
26
|
const [frame, setFrame] = (0, react_1.useState)(0);
|
|
25
27
|
const [playing, setPlaying] = (0, react_1.useState)(false);
|
|
@@ -28,6 +30,7 @@ const PlayerFn = ({ durationInFrames, compositionHeight, compositionWidth, fps,
|
|
|
28
30
|
const rootRef = (0, react_1.useRef)(null);
|
|
29
31
|
const [mediaMuted, setMediaMuted] = (0, react_1.useState)(false);
|
|
30
32
|
const [mediaVolume, setMediaVolume] = (0, react_1.useState)((0, volume_persistance_1.getPreferredVolume)());
|
|
33
|
+
const imperativePlaying = (0, react_1.useRef)(false);
|
|
31
34
|
if (typeof compositionHeight !== 'number') {
|
|
32
35
|
throw new TypeError(`'compositionHeight' must be a number but got '${typeof compositionHeight}' instead`);
|
|
33
36
|
}
|
|
@@ -73,6 +76,10 @@ const PlayerFn = ({ durationInFrames, compositionHeight, compositionWidth, fps,
|
|
|
73
76
|
numberOfSharedAudioTags < 0) {
|
|
74
77
|
throw new TypeError(`'numberOfSharedAudioTags' must be an integer but got '${numberOfSharedAudioTags}' instead`);
|
|
75
78
|
}
|
|
79
|
+
(0, validate_playbackrate_1.validatePlaybackRate)(playbackRate);
|
|
80
|
+
(0, react_1.useEffect)(() => {
|
|
81
|
+
emitter.dispatchRatechange(playbackRate);
|
|
82
|
+
}, [emitter, playbackRate]);
|
|
76
83
|
const setMediaVolumeAndPersist = (0, react_1.useCallback)((vol) => {
|
|
77
84
|
setMediaVolume(vol);
|
|
78
85
|
(0, volume_persistance_1.persistVolume)(vol);
|
|
@@ -84,8 +91,13 @@ const PlayerFn = ({ durationInFrames, compositionHeight, compositionWidth, fps,
|
|
|
84
91
|
playing,
|
|
85
92
|
rootId,
|
|
86
93
|
shouldRegisterSequences: false,
|
|
94
|
+
playbackRate,
|
|
95
|
+
imperativePlaying,
|
|
96
|
+
setPlaybackRate: () => {
|
|
97
|
+
throw new Error('playback rate');
|
|
98
|
+
},
|
|
87
99
|
};
|
|
88
|
-
}, [frame, playing, rootId]);
|
|
100
|
+
}, [frame, playbackRate, playing, rootId]);
|
|
89
101
|
const setTimelineContextValue = (0, react_1.useMemo)(() => {
|
|
90
102
|
return {
|
|
91
103
|
setFrame,
|
|
@@ -140,9 +152,9 @@ const PlayerFn = ({ durationInFrames, compositionHeight, compositionWidth, fps,
|
|
|
140
152
|
const passedInputProps = (0, react_1.useMemo)(() => {
|
|
141
153
|
return inputProps !== null && inputProps !== void 0 ? inputProps : {};
|
|
142
154
|
}, [inputProps]);
|
|
143
|
-
return ((0, jsx_runtime_1.jsx)(remotion_1.Internals.Timeline.TimelineContext.Provider, Object.assign({ value: timelineContextValue }, { children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.Timeline.SetTimelineContext.Provider, Object.assign({ value: setTimelineContextValue }, { children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.CompositionManager.Provider, Object.assign({ value: compositionManagerContext }, { children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.MediaVolumeContext.Provider, Object.assign({ value: mediaVolumeContextValue }, { children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.SetMediaVolumeContext.Provider, Object.assign({ value: setMediaVolumeContextValue }, { children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.SharedAudioContextProvider, Object.assign({ numberOfAudioTags: numberOfSharedAudioTags }, { children: (0, jsx_runtime_1.jsx)(emitter_context_1.PlayerEventEmitterContext.Provider, Object.assign({ value: emitter }, { children: (0, jsx_runtime_1.jsx)(PlayerUI_1.default, { ref: rootRef, autoPlay: Boolean(autoPlay), loop: Boolean(loop), controls: Boolean(controls), style: style, inputProps: passedInputProps, allowFullscreen: Boolean(allowFullscreen), clickToPlay: typeof clickToPlay === 'boolean'
|
|
155
|
+
return ((0, jsx_runtime_1.jsx)(remotion_1.Internals.Timeline.TimelineContext.Provider, Object.assign({ value: timelineContextValue }, { children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.Timeline.SetTimelineContext.Provider, Object.assign({ value: setTimelineContextValue }, { children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.CompositionManager.Provider, Object.assign({ value: compositionManagerContext }, { children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.MediaVolumeContext.Provider, Object.assign({ value: mediaVolumeContextValue }, { children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.SetMediaVolumeContext.Provider, Object.assign({ value: setMediaVolumeContextValue }, { children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.SharedAudioContextProvider, Object.assign({ numberOfAudioTags: numberOfSharedAudioTags }, { children: (0, jsx_runtime_1.jsx)(emitter_context_1.PlayerEventEmitterContext.Provider, Object.assign({ value: emitter }, { children: (0, jsx_runtime_1.jsx)(PlayerUI_1.default, { ref: rootRef, autoPlay: Boolean(autoPlay), loop: Boolean(loop), controls: Boolean(controls), errorFallback: errorFallback, style: style, inputProps: passedInputProps, allowFullscreen: Boolean(allowFullscreen), clickToPlay: typeof clickToPlay === 'boolean'
|
|
144
156
|
? clickToPlay
|
|
145
|
-
: Boolean(controls), showVolumeControls: Boolean(showVolumeControls), setMediaVolume: setMediaVolumeAndPersist, mediaVolume: mediaVolume, mediaMuted: mediaMuted, doubleClickToFullscreen: Boolean(doubleClickToFullscreen), setMediaMuted: setMediaMuted, spaceKeyToPlayOrPause: Boolean(spaceKeyToPlayOrPause) }, void 0) }), void 0) }), void 0) }), void 0) }), void 0) }), void 0) }), void 0) }), void 0));
|
|
157
|
+
: Boolean(controls), showVolumeControls: Boolean(showVolumeControls), setMediaVolume: setMediaVolumeAndPersist, mediaVolume: mediaVolume, mediaMuted: mediaMuted, doubleClickToFullscreen: Boolean(doubleClickToFullscreen), setMediaMuted: setMediaMuted, spaceKeyToPlayOrPause: Boolean(spaceKeyToPlayOrPause), playbackRate: playbackRate }, void 0) }), void 0) }), void 0) }), void 0) }), void 0) }), void 0) }), void 0) }), void 0));
|
|
146
158
|
};
|
|
147
159
|
exports.PlayerFn = PlayerFn;
|
|
148
160
|
exports.Player = (0, react_1.forwardRef)(exports.PlayerFn);
|
package/dist/Player.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Player.js","sourceRoot":"","sources":["../src/Player.tsx"],"names":[],"mappings":";;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"Player.js","sourceRoot":"","sources":["../src/Player.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAUe;AACf,uCASkB;AAClB,uDAA4D;AAC5D,mDAA8C;AAC9C,iEAA4D;AAE5D,0DAAkC;AAClC,yEAAmE;AACnE,6DAAuE;AAgCvE,oBAAS,CAAC,QAAQ,CAAC,SAAS,CAC3B,oBAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,2CAAoB,EAAE,CAAC,CAC7D,CAAC;AAEF,sCAAsC;AAC/B,MAAM,QAAQ,GAAG,CACvB,EACC,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,GAAG,EACH,UAAU,EACV,KAAK,EACL,QAAQ,GAAG,KAAK,EAChB,IAAI,GAAG,KAAK,EACZ,QAAQ,GAAG,KAAK,EAChB,kBAAkB,GAAG,IAAI,EACzB,eAAe,GAAG,IAAI,EACtB,WAAW,EACX,uBAAuB,GAAG,KAAK,EAC/B,qBAAqB,GAAG,IAAI,EAC5B,uBAAuB,GAAG,CAAC,EAC3B,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,EAC1B,YAAY,GAAG,CAAC,EAChB,GAAG,cAAc,EACD,EACjB,GAAgC,EAC/B,EAAE;IACH,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QAClC,sDAAsD;QACtD,IAAA,uBAAe,EAAC,GAAG,EAAE;YACpB,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;QACjC,CAAC,EAAE,EAAE,CAAC,CAAC;KACP;IAED,MAAM,SAAS,GAAG,oBAAS,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAC7D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;IACtC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IACvD,MAAM,CAAC,MAAM,CAAC,GAAG,IAAA,gBAAQ,EAAS,aAAa,CAAC,CAAC;IACjD,MAAM,CAAC,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE,CAAC,IAAI,6BAAa,EAAE,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,IAAA,cAAM,EAAY,IAAI,CAAC,CAAC;IACxC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IAC7D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAS,IAAA,uCAAkB,GAAE,CAAC,CAAC;IAC7E,MAAM,iBAAiB,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;IAExC,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE;QAC1C,MAAM,IAAI,SAAS,CAClB,iDAAiD,OAAO,iBAAiB,WAAW,CACpF,CAAC;KACF;IAED,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE;QACzC,MAAM,IAAI,SAAS,CAClB,gDAAgD,OAAO,gBAAgB,WAAW,CAClF,CAAC;KACF;IAED,oBAAS,CAAC,iBAAiB,CAC1B,iBAAiB,EACjB,mBAAmB,EACnB,6BAA6B,CAC7B,CAAC;IACF,oBAAS,CAAC,iBAAiB,CAC1B,gBAAgB,EAChB,kBAAkB,EAClB,6BAA6B,CAC7B,CAAC;IACF,oBAAS,CAAC,wBAAwB,CACjC,gBAAgB,EAChB,4BAA4B,CAC5B,CAAC;IACF,oBAAS,CAAC,WAAW,CAAC,GAAG,EAAE,sCAAsC,CAAC,CAAC;IAEnE,IAAI,OAAO,QAAQ,KAAK,SAAS,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;QACrE,MAAM,IAAI,SAAS,CAClB,sDAAsD,OAAO,QAAQ,WAAW,CAChF,CAAC;KACF;IAED,IAAI,OAAO,QAAQ,KAAK,SAAS,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;QACrE,MAAM,IAAI,SAAS,CAClB,sDAAsD,OAAO,QAAQ,WAAW,CAChF,CAAC;KACF;IAED,IAAI,OAAO,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;QAC7D,MAAM,IAAI,SAAS,CAClB,kDAAkD,OAAO,IAAI,WAAW,CACxE,CAAC;KACF;IAED,IACC,OAAO,uBAAuB,KAAK,SAAS;QAC5C,OAAO,uBAAuB,KAAK,WAAW,EAC7C;QACD,MAAM,IAAI,SAAS,CAClB,qEAAqE,OAAO,uBAAuB,WAAW,CAC9G,CAAC;KACF;IAED,IACC,OAAO,kBAAkB,KAAK,SAAS;QACvC,OAAO,kBAAkB,KAAK,WAAW,EACxC;QACD,MAAM,IAAI,SAAS,CAClB,gEAAgE,OAAO,kBAAkB,WAAW,CACpG,CAAC;KACF;IAED,IACC,OAAO,eAAe,KAAK,SAAS;QACpC,OAAO,eAAe,KAAK,WAAW,EACrC;QACD,MAAM,IAAI,SAAS,CAClB,6DAA6D,OAAO,eAAe,WAAW,CAC9F,CAAC;KACF;IAED,IAAI,OAAO,WAAW,KAAK,SAAS,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;QAC3E,MAAM,IAAI,SAAS,CAClB,yDAAyD,OAAO,WAAW,WAAW,CACtF,CAAC;KACF;IAED,IACC,OAAO,qBAAqB,KAAK,SAAS;QAC1C,OAAO,qBAAqB,KAAK,WAAW,EAC3C;QACD,MAAM,IAAI,SAAS,CAClB,mEAAmE,OAAO,qBAAqB,WAAW,CAC1G,CAAC;KACF;IAED,IACC,OAAO,uBAAuB,KAAK,QAAQ;QAC3C,uBAAuB,GAAG,CAAC,KAAK,CAAC;QACjC,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC;QACrC,uBAAuB,GAAG,CAAC,EAC1B;QACD,MAAM,IAAI,SAAS,CAClB,yDAAyD,uBAAuB,WAAW,CAC3F,CAAC;KACF;IAED,IAAA,4CAAoB,EAAC,YAAY,CAAC,CAAC;IAEnC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACd,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IAE5B,MAAM,wBAAwB,GAAG,IAAA,mBAAW,EAAC,CAAC,GAAW,EAAE,EAAE;QAC5D,cAAc,CAAC,GAAG,CAAC,CAAC;QACpB,IAAA,kCAAa,EAAC,GAAG,CAAC,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAA,2BAAmB,EAAC,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAoB,CAAC,CAAC;IAE7D,MAAM,oBAAoB,GAAG,IAAA,eAAO,EAAC,GAEnC,EAAE;QACH,OAAO;YACN,KAAK;YACL,OAAO;YACP,MAAM;YACN,uBAAuB,EAAE,KAAK;YAC9B,YAAY;YACZ,iBAAiB;YACjB,eAAe,EAAE,GAAG,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;YAClC,CAAC;SACD,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3C,MAAM,uBAAuB,GAAG,IAAA,eAAO,EAAC,GAA4B,EAAE;QACrE,OAAO;YACN,QAAQ;YACR,UAAU;SACV,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACf,MAAM,uBAAuB,GAAG,IAAA,eAAO,EAAC,GAA4B,EAAE;QACrE,OAAO;YACN,UAAU;YACV,WAAW;SACX,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IAE9B,MAAM,0BAA0B,GAAG,IAAA,eAAO,EAAC,GAA+B,EAAE;QAC3E,OAAO;YACN,aAAa;YACb,cAAc,EAAE,wBAAwB;SACxC,CAAC;IACH,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAE/B,MAAM,yBAAyB,GAA8B,IAAA,eAAO,EAAC,GAAG,EAAE;QACzE,OAAO;YACN,YAAY,EAAE;gBACb;oBACC,SAAS,EAAE,SAEV;oBACD,gBAAgB;oBAChB,MAAM,EAAE,iBAAiB;oBACzB,KAAK,EAAE,gBAAgB;oBACvB,GAAG;oBACH,EAAE,EAAE,aAAa;oBACjB,KAAK,EAAE,UAAqB;oBAC5B,KAAK,EAAE,GAAG;iBACV;aACD;YACD,kBAAkB,EAAE,aAAa;YACjC,mBAAmB,EAAE,GAAG,EAAE,CAAC,SAAS;YACpC,gBAAgB,EAAE,GAAG,EAAE,CAAC,SAAS;YACjC,SAAS,EAAE,EAAE;YACb,qBAAqB,EAAE,GAAG,EAAE,CAAC,SAAS;YACtC,qBAAqB,EAAE,GAAG,EAAE,CAAC,SAAS;YACtC,kBAAkB,EAAE,GAAG,EAAE,CAAC,SAAS;YACnC,aAAa,EAAE,GAAG,EAAE,CAAC,SAAS;YAC9B,eAAe,EAAE,GAAG,EAAE,CAAC,SAAS;YAChC,MAAM,EAAE,EAAE;SACV,CAAC;IACH,CAAC,EAAE;QACF,SAAS;QACT,gBAAgB;QAChB,iBAAiB;QACjB,gBAAgB;QAChB,GAAG;QACH,UAAU;KACV,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACrC,OAAO,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,OAAO,CACN,uBAAC,oBAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,kBAAC,KAAK,EAAE,oBAAoB,gBACvE,uBAAC,oBAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,kBAC9C,KAAK,EAAE,uBAAuB,gBAE9B,uBAAC,oBAAS,CAAC,kBAAkB,CAAC,QAAQ,kBACrC,KAAK,EAAE,yBAAyB,gBAEhC,uBAAC,oBAAS,CAAC,kBAAkB,CAAC,QAAQ,kBACrC,KAAK,EAAE,uBAAuB,gBAE9B,uBAAC,oBAAS,CAAC,qBAAqB,CAAC,QAAQ,kBACxC,KAAK,EAAE,0BAA0B,gBAEjC,uBAAC,oBAAS,CAAC,0BAA0B,kBACpC,iBAAiB,EAAE,uBAAuB,gBAE1C,uBAAC,2CAAyB,CAAC,QAAQ,kBAAC,KAAK,EAAE,OAAO,gBACjD,uBAAC,kBAAQ,IACR,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC3B,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC3B,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,gBAAgB,EAC5B,eAAe,EAAE,OAAO,CAAC,eAAe,CAAC,EACzC,WAAW,EACV,OAAO,WAAW,KAAK,SAAS;wCAC/B,CAAC,CAAC,WAAW;wCACb,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAErB,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAC/C,cAAc,EAAE,wBAAwB,EACxC,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,uBAAuB,EAAE,OAAO,CAAC,uBAAuB,CAAC,EACzD,aAAa,EAAE,aAAa,EAC5B,qBAAqB,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACrD,YAAY,EAAE,YAAY,WACzB,YACkC,YACC,YACG,YACJ,YACD,YACQ,YACJ,CAC9C,CAAC;AACH,CAAC,CAAC;AAtRW,QAAA,QAAQ,YAsRnB;AAYW,QAAA,MAAM,GAAG,IAAA,kBAAU,EAAC,gBAAQ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayerSeekBar.d.ts","sourceRoot":"","sources":["../src/PlayerSeekBar.tsx"],"names":[],"mappings":";AA0CA,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,gBAAgB,EAAE,MAAM,CAAC;CACzB,
|
|
1
|
+
{"version":3,"file":"PlayerSeekBar.d.ts","sourceRoot":"","sources":["../src/PlayerSeekBar.tsx"],"names":[],"mappings":";AA0CA,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,gBAAgB,EAAE,MAAM,CAAC;CACzB,CA+HA,CAAC"}
|
package/dist/PlayerSeekBar.js
CHANGED
|
@@ -100,7 +100,8 @@ const PlayerSeekBar = ({ durationInFrames }) => {
|
|
|
100
100
|
position: 'absolute',
|
|
101
101
|
top: VERTICAL_PADDING - KNOB_SIZE / 2 + 5 / 2,
|
|
102
102
|
backgroundColor: 'white',
|
|
103
|
-
left: Math.max(0, (frame / (durationInFrames - 1)) * ((_a = size === null || size === void 0 ? void 0 : size.width) !== null && _a !== void 0 ? _a : 0) -
|
|
103
|
+
left: Math.max(0, (frame / Math.max(1, durationInFrames - 1)) * ((_a = size === null || size === void 0 ? void 0 : size.width) !== null && _a !== void 0 ? _a : 0) -
|
|
104
|
+
KNOB_SIZE / 2),
|
|
104
105
|
boxShadow: '0 0 2px black',
|
|
105
106
|
opacity: Number(barHovered),
|
|
106
107
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayerSeekBar.js","sourceRoot":"","sources":["../src/PlayerSeekBar.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PlayerSeekBar.js","sourceRoot":"","sources":["../src/PlayerSeekBar.tsx"],"names":[],"mappings":"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"}
|
package/dist/PlayerUI.d.ts
CHANGED
|
@@ -15,6 +15,10 @@ declare const _default: (props: {
|
|
|
15
15
|
setMediaVolume: (v: number) => void;
|
|
16
16
|
setMediaMuted: (v: boolean) => void;
|
|
17
17
|
mediaVolume: number;
|
|
18
|
+
errorFallback: (info: {
|
|
19
|
+
error: Error;
|
|
20
|
+
}) => React.ReactNode;
|
|
21
|
+
playbackRate: number;
|
|
18
22
|
} & {
|
|
19
23
|
children?: React.ReactNode;
|
|
20
24
|
} & React.RefAttributes<PlayerRef | null>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
|
package/dist/PlayerUI.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayerUI.d.ts","sourceRoot":"","sources":["../src/PlayerUI.tsx"],"names":[],"mappings":"AACA,OAAO,KAWN,MAAM,OAAO,CAAC;AAKf,OAAO,EAAgB,SAAS,EAAC,MAAM,kBAAkB,CAAC
|
|
1
|
+
{"version":3,"file":"PlayerUI.d.ts","sourceRoot":"","sources":["../src/PlayerUI.tsx"],"names":[],"mappings":"AACA,OAAO,KAWN,MAAM,OAAO,CAAC;AAKf,OAAO,EAAgB,SAAS,EAAC,MAAM,kBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;;;;AA2Y1D,wBAAoC"}
|
package/dist/PlayerUI.js
CHANGED
|
@@ -15,8 +15,8 @@ const calculate_player_size_1 = require("./utils/calculate-player-size");
|
|
|
15
15
|
const is_node_1 = require("./utils/is-node");
|
|
16
16
|
const use_click_prevention_on_double_click_1 = require("./utils/use-click-prevention-on-double-click");
|
|
17
17
|
const use_element_size_1 = require("./utils/use-element-size");
|
|
18
|
-
const PlayerUI = ({ controls, style, loop, autoPlay, allowFullscreen, inputProps, clickToPlay, showVolumeControls, mediaVolume, mediaMuted, doubleClickToFullscreen, setMediaMuted, setMediaVolume, spaceKeyToPlayOrPause, }, ref) => {
|
|
19
|
-
var _a, _b;
|
|
18
|
+
const PlayerUI = ({ controls, style, loop, autoPlay, allowFullscreen, inputProps, clickToPlay, showVolumeControls, mediaVolume, mediaMuted, doubleClickToFullscreen, setMediaMuted, setMediaVolume, spaceKeyToPlayOrPause, errorFallback, playbackRate, }, ref) => {
|
|
19
|
+
var _a, _b, _c;
|
|
20
20
|
const config = remotion_1.Internals.useUnsafeVideoConfig();
|
|
21
21
|
const video = remotion_1.Internals.useVideo();
|
|
22
22
|
const container = (0, react_1.useRef)(null);
|
|
@@ -25,7 +25,7 @@ const PlayerUI = ({ controls, style, loop, autoPlay, allowFullscreen, inputProps
|
|
|
25
25
|
const [hasPausedToResume, setHasPausedToResume] = (0, react_1.useState)(false);
|
|
26
26
|
const [shouldAutoplay, setShouldAutoPlay] = (0, react_1.useState)(autoPlay);
|
|
27
27
|
const [isFullscreen, setIsFullscreen] = (0, react_1.useState)(() => false);
|
|
28
|
-
(0, use_playback_1.usePlayback)({ loop });
|
|
28
|
+
(0, use_playback_1.usePlayback)({ loop, playbackRate });
|
|
29
29
|
const player = (0, use_player_1.usePlayer)();
|
|
30
30
|
(0, react_1.useEffect)(() => {
|
|
31
31
|
if (hasPausedToResume && !player.playing) {
|
|
@@ -82,6 +82,7 @@ const PlayerUI = ({ controls, style, loop, autoPlay, allowFullscreen, inputProps
|
|
|
82
82
|
document.exitFullscreen();
|
|
83
83
|
}
|
|
84
84
|
}, []);
|
|
85
|
+
const durationInFrames = (_a = config === null || config === void 0 ? void 0 : config.durationInFrames) !== null && _a !== void 0 ? _a : 1;
|
|
85
86
|
(0, react_1.useImperativeHandle)(ref, () => {
|
|
86
87
|
const methods = {
|
|
87
88
|
play: player.play,
|
|
@@ -90,11 +91,17 @@ const PlayerUI = ({ controls, style, loop, autoPlay, allowFullscreen, inputProps
|
|
|
90
91
|
getContainerNode: () => container.current,
|
|
91
92
|
getCurrentFrame: player.getCurrentFrame,
|
|
92
93
|
seekTo: (f) => {
|
|
94
|
+
const lastFrame = durationInFrames - 1;
|
|
95
|
+
const frameToSeekTo = Math.max(0, Math.min(lastFrame, f));
|
|
93
96
|
if (player.isPlaying()) {
|
|
94
|
-
|
|
97
|
+
const pauseToResume = frameToSeekTo !== lastFrame || loop;
|
|
98
|
+
setHasPausedToResume(pauseToResume);
|
|
95
99
|
player.pause();
|
|
96
100
|
}
|
|
97
|
-
|
|
101
|
+
if (frameToSeekTo === lastFrame && !loop) {
|
|
102
|
+
player.emitter.dispatchEnded();
|
|
103
|
+
}
|
|
104
|
+
player.seek(frameToSeekTo);
|
|
98
105
|
},
|
|
99
106
|
isFullscreen: () => isFullscreen,
|
|
100
107
|
requestFullscreen,
|
|
@@ -127,8 +134,10 @@ const PlayerUI = ({ controls, style, loop, autoPlay, allowFullscreen, inputProps
|
|
|
127
134
|
};
|
|
128
135
|
return Object.assign(player.emitter, methods);
|
|
129
136
|
}, [
|
|
137
|
+
durationInFrames,
|
|
130
138
|
exitFullscreen,
|
|
131
139
|
isFullscreen,
|
|
140
|
+
loop,
|
|
132
141
|
mediaMuted,
|
|
133
142
|
mediaVolume,
|
|
134
143
|
player,
|
|
@@ -237,7 +246,7 @@ const PlayerUI = ({ controls, style, loop, autoPlay, allowFullscreen, inputProps
|
|
|
237
246
|
if (!config) {
|
|
238
247
|
return null;
|
|
239
248
|
}
|
|
240
|
-
const content = ((0, jsx_runtime_1.jsxs)("div", Object.assign({ ref: container, style: outerStyle }, { children: [(0, jsx_runtime_1.jsx)("div", Object.assign({ style: outer, onClick: clickToPlay ? handleClick : undefined, onDoubleClick: doubleClickToFullscreen ? handleDoubleClick : undefined }, { children: (0, jsx_runtime_1.jsx)("div", Object.assign({ style: containerStyle, className: player_css_classname_1.PLAYER_CSS_CLASSNAME }, { children: VideoComponent ? ((0, jsx_runtime_1.jsx)(error_boundary_1.ErrorBoundary, Object.assign({ onError: onError }, { children: (0, jsx_runtime_1.jsx)(VideoComponent, Object.assign({}, ((
|
|
249
|
+
const content = ((0, jsx_runtime_1.jsxs)("div", Object.assign({ ref: container, style: outerStyle }, { children: [(0, jsx_runtime_1.jsx)("div", Object.assign({ style: outer, onClick: clickToPlay ? handleClick : undefined, onDoubleClick: doubleClickToFullscreen ? handleDoubleClick : undefined }, { children: (0, jsx_runtime_1.jsx)("div", Object.assign({ style: containerStyle, className: player_css_classname_1.PLAYER_CSS_CLASSNAME }, { children: VideoComponent ? ((0, jsx_runtime_1.jsx)(error_boundary_1.ErrorBoundary, Object.assign({ onError: onError, errorFallback: errorFallback }, { children: (0, jsx_runtime_1.jsx)(VideoComponent, Object.assign({}, ((_b = video === null || video === void 0 ? void 0 : video.props) !== null && _b !== void 0 ? _b : {}), ((_c = inputProps) !== null && _c !== void 0 ? _c : {})), void 0) }), void 0)) : null }), void 0) }), void 0), controls ? ((0, jsx_runtime_1.jsx)(PlayerControls_1.Controls, { fps: config.fps, durationInFrames: config.durationInFrames, hovered: hovered, player: player, onFullscreenButtonClick: onFullscreenButtonClick, isFullscreen: isFullscreen, allowFullscreen: allowFullscreen, showVolumeControls: showVolumeControls, onExitFullscreenButtonClick: onExitFullscreenButtonClick, spaceKeyToPlayOrPause: spaceKeyToPlayOrPause }, void 0)) : null] }), void 0));
|
|
241
250
|
// Don't render suspense on Node.js
|
|
242
251
|
if (is_node_1.IS_NODE) {
|
|
243
252
|
return content;
|
package/dist/PlayerUI.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayerUI.js","sourceRoot":"","sources":["../src/PlayerUI.tsx"],"names":[],"mappings":";;;AACA,iCAWe;AACf,uCAAmC;AACnC,uDAAiD;AACjD,qDAA+C;AAC/C,iEAA4D;AAE5D,qDAA0C;AAC1C,uDAAgD;AAChD,iDAA2C;AAC3C,6CAAuC;AACvC,qFAA8E;AAC9E,yEAAkE;AAClE,6CAAwC;AACxC,uGAA6F;AAC7F,+DAAwD;AAExD,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"PlayerUI.js","sourceRoot":"","sources":["../src/PlayerUI.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const calculateNextFrame: ({ time, currentFrame: startFrame, playbackSpeed, fps, actualLastFrame, actualFirstFrame, framesAdvanced, shouldLoop, }: {
|
|
2
|
+
time: number;
|
|
3
|
+
currentFrame: number;
|
|
4
|
+
playbackSpeed: number;
|
|
5
|
+
fps: number;
|
|
6
|
+
actualFirstFrame: number;
|
|
7
|
+
actualLastFrame: number;
|
|
8
|
+
framesAdvanced: number;
|
|
9
|
+
shouldLoop: boolean;
|
|
10
|
+
}) => {
|
|
11
|
+
nextFrame: number;
|
|
12
|
+
framesToAdvance: number;
|
|
13
|
+
hasEnded: boolean;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=calculate-next-frame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculate-next-frame.d.ts","sourceRoot":"","sources":["../src/calculate-next-frame.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB;UAUxB,MAAM;kBACE,MAAM;mBACL,MAAM;SAChB,MAAM;sBACO,MAAM;qBACP,MAAM;oBACP,MAAM;gBACV,OAAO;;eACJ,MAAM;qBAAmB,MAAM;cAAY,OAAO;CA+BjE,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.calculateNextFrame = void 0;
|
|
4
|
+
const calculateNextFrame = ({ time, currentFrame: startFrame, playbackSpeed, fps, actualLastFrame, actualFirstFrame, framesAdvanced, shouldLoop, }) => {
|
|
5
|
+
const op = playbackSpeed < 0 ? Math.ceil : Math.floor;
|
|
6
|
+
const framesToAdvance = op((time * playbackSpeed) / (1000 / fps)) - framesAdvanced;
|
|
7
|
+
const nextFrame = framesToAdvance + startFrame;
|
|
8
|
+
const isCurrentFrameOutside = startFrame > actualLastFrame || startFrame < actualFirstFrame;
|
|
9
|
+
const isNextFrameOutside = nextFrame > actualLastFrame || nextFrame < actualFirstFrame;
|
|
10
|
+
const hasEnded = !shouldLoop && isNextFrameOutside && !isCurrentFrameOutside;
|
|
11
|
+
if (playbackSpeed > 0) {
|
|
12
|
+
// Play forwards
|
|
13
|
+
if (isNextFrameOutside) {
|
|
14
|
+
return {
|
|
15
|
+
nextFrame: actualFirstFrame,
|
|
16
|
+
framesToAdvance,
|
|
17
|
+
hasEnded,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
return { nextFrame, framesToAdvance, hasEnded };
|
|
21
|
+
}
|
|
22
|
+
// Reverse playback
|
|
23
|
+
if (isNextFrameOutside) {
|
|
24
|
+
return { nextFrame: actualLastFrame, framesToAdvance, hasEnded };
|
|
25
|
+
}
|
|
26
|
+
return { nextFrame, framesToAdvance, hasEnded };
|
|
27
|
+
};
|
|
28
|
+
exports.calculateNextFrame = calculateNextFrame;
|
|
29
|
+
//# sourceMappingURL=calculate-next-frame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculate-next-frame.js","sourceRoot":"","sources":["../src/calculate-next-frame.ts"],"names":[],"mappings":";;;AAAO,MAAM,kBAAkB,GAAG,CAAC,EAClC,IAAI,EACJ,YAAY,EAAE,UAAU,EACxB,aAAa,EACb,GAAG,EACH,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,UAAU,GAUV,EAAmE,EAAE;IACrE,MAAM,EAAE,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACtD,MAAM,eAAe,GACpB,EAAE,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC;IAE5D,MAAM,SAAS,GAAG,eAAe,GAAG,UAAU,CAAC;IAC/C,MAAM,qBAAqB,GAC1B,UAAU,GAAG,eAAe,IAAI,UAAU,GAAG,gBAAgB,CAAC;IAC/D,MAAM,kBAAkB,GACvB,SAAS,GAAG,eAAe,IAAI,SAAS,GAAG,gBAAgB,CAAC;IAE7D,MAAM,QAAQ,GAAG,CAAC,UAAU,IAAI,kBAAkB,IAAI,CAAC,qBAAqB,CAAC;IAC7E,IAAI,aAAa,GAAG,CAAC,EAAE;QACtB,gBAAgB;QAChB,IAAI,kBAAkB,EAAE;YACvB,OAAO;gBACN,SAAS,EAAE,gBAAgB;gBAC3B,eAAe;gBACf,QAAQ;aACR,CAAC;SACF;QAED,OAAO,EAAC,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAC,CAAC;KAC9C;IAED,mBAAmB;IACnB,IAAI,kBAAkB,EAAE;QACvB,OAAO,EAAC,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,QAAQ,EAAC,CAAC;KAC/D;IAED,OAAO,EAAC,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAC,CAAC;AAC/C,CAAC,CAAC;AAjDW,QAAA,kBAAkB,sBAiD7B"}
|
package/dist/error-boundary.d.ts
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
export declare class ErrorBoundary extends React.Component<{
|
|
3
3
|
onError: (error: Error) => void;
|
|
4
|
+
errorFallback: (info: {
|
|
5
|
+
error: Error;
|
|
6
|
+
}) => React.ReactNode;
|
|
4
7
|
}, {
|
|
5
|
-
hasError:
|
|
8
|
+
hasError: Error | null;
|
|
6
9
|
}> {
|
|
7
10
|
state: {
|
|
8
|
-
hasError:
|
|
11
|
+
hasError: null;
|
|
9
12
|
};
|
|
10
|
-
static getDerivedStateFromError(): {
|
|
11
|
-
hasError:
|
|
13
|
+
static getDerivedStateFromError(error: Error): {
|
|
14
|
+
hasError: Error;
|
|
12
15
|
};
|
|
13
16
|
componentDidCatch(error: Error): void;
|
|
14
17
|
render(): React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-boundary.d.ts","sourceRoot":"","sources":["../src/error-boundary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,qBAAa,aAAc,SAAQ,KAAK,CAAC,SAAS,CACjD;IACC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"error-boundary.d.ts","sourceRoot":"","sources":["../src/error-boundary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,qBAAa,aAAc,SAAQ,KAAK,CAAC,SAAS,CACjD;IACC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAChC,aAAa,EAAE,CAAC,IAAI,EAAE;QAAC,KAAK,EAAE,KAAK,CAAA;KAAC,KAAK,KAAK,CAAC,SAAS,CAAC;CACzD,EACD;IAAC,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAA;CAAC,CACxB;IACA,KAAK;;MAAoB;IACzB,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK;;;IAK5C,iBAAiB,CAAC,KAAK,EAAE,KAAK;IAI9B,MAAM;CAcN"}
|
package/dist/error-boundary.js
CHANGED
|
@@ -17,11 +17,11 @@ const errorStyle = {
|
|
|
17
17
|
class ErrorBoundary extends react_1.default.Component {
|
|
18
18
|
constructor() {
|
|
19
19
|
super(...arguments);
|
|
20
|
-
this.state = { hasError:
|
|
20
|
+
this.state = { hasError: null };
|
|
21
21
|
}
|
|
22
|
-
static getDerivedStateFromError() {
|
|
22
|
+
static getDerivedStateFromError(error) {
|
|
23
23
|
// Update state so the next render will show the fallback UI.
|
|
24
|
-
return { hasError:
|
|
24
|
+
return { hasError: error };
|
|
25
25
|
}
|
|
26
26
|
componentDidCatch(error) {
|
|
27
27
|
this.props.onError(error);
|
|
@@ -29,7 +29,9 @@ class ErrorBoundary extends react_1.default.Component {
|
|
|
29
29
|
render() {
|
|
30
30
|
if (this.state.hasError) {
|
|
31
31
|
// You can render any custom fallback UI
|
|
32
|
-
return (0, jsx_runtime_1.jsx)("div", Object.assign({ style: errorStyle }, { children:
|
|
32
|
+
return ((0, jsx_runtime_1.jsx)("div", Object.assign({ style: errorStyle }, { children: this.props.errorFallback({
|
|
33
|
+
error: this.state.hasError,
|
|
34
|
+
}) }), void 0));
|
|
33
35
|
}
|
|
34
36
|
return this.props.children;
|
|
35
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-boundary.js","sourceRoot":"","sources":["../src/error-boundary.tsx"],"names":[],"mappings":";;;;;;;AAAA,kDAA0B;AAE1B,MAAM,UAAU,GAAwB;IACvC,OAAO,EAAE,MAAM;IACf,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,MAAM;CACb,CAAC;AAEF,MAAa,aAAc,SAAQ,eAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"error-boundary.js","sourceRoot":"","sources":["../src/error-boundary.tsx"],"names":[],"mappings":";;;;;;;AAAA,kDAA0B;AAE1B,MAAM,UAAU,GAAwB;IACvC,OAAO,EAAE,MAAM;IACf,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,MAAM;CACb,CAAC;AAEF,MAAa,aAAc,SAAQ,eAAK,CAAC,SAMxC;IAND;;QAOC,UAAK,GAAG,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;IAwB1B,CAAC;IAvBA,MAAM,CAAC,wBAAwB,CAAC,KAAY;QAC3C,6DAA6D;QAC7D,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC;IAC1B,CAAC;IAED,iBAAiB,CAAC,KAAY;QAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM;QACL,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACxB,wCAAwC;YACxC,OAAO,CACN,8CAAK,KAAK,EAAE,UAAU,gBACpB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;oBACzB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;iBAC1B,CAAC,YACG,CACN,CAAC;SACF;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC5B,CAAC;CACD;AA/BD,sCA+BC"}
|
package/dist/event-emitter.d.ts
CHANGED
|
@@ -7,16 +7,20 @@ declare type ErrorPayload = {
|
|
|
7
7
|
declare type TimeUpdateEventPayload = {
|
|
8
8
|
frame: number;
|
|
9
9
|
};
|
|
10
|
+
declare type RateChangeEventPayload = {
|
|
11
|
+
playbackRate: number;
|
|
12
|
+
};
|
|
10
13
|
declare type StateEventMap = {
|
|
11
14
|
seeked: SeekPayload;
|
|
12
15
|
pause: undefined;
|
|
13
16
|
play: undefined;
|
|
17
|
+
ratechange: RateChangeEventPayload;
|
|
14
18
|
ended: undefined;
|
|
15
19
|
error: ErrorPayload;
|
|
16
20
|
timeupdate: TimeUpdateEventPayload;
|
|
17
21
|
};
|
|
18
|
-
declare type EventTypes = keyof StateEventMap;
|
|
19
|
-
declare type CallbackListener<T extends EventTypes> = (data: {
|
|
22
|
+
export declare type EventTypes = keyof StateEventMap;
|
|
23
|
+
export declare type CallbackListener<T extends EventTypes> = (data: {
|
|
20
24
|
detail: StateEventMap[T];
|
|
21
25
|
}) => void;
|
|
22
26
|
declare type Listeners = {
|
|
@@ -31,6 +35,7 @@ export declare class PlayerEmitter {
|
|
|
31
35
|
dispatchPause(): void;
|
|
32
36
|
dispatchPlay(): void;
|
|
33
37
|
dispatchEnded(): void;
|
|
38
|
+
dispatchRatechange(playbackRate: number): void;
|
|
34
39
|
dispatchError(error: Error): void;
|
|
35
40
|
dispatchTimeUpdate(event: TimeUpdateEventPayload): void;
|
|
36
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../src/event-emitter.ts"],"names":[],"mappings":"AAAA,aAAK,WAAW,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,aAAK,YAAY,GAAG;IACnB,KAAK,EAAE,KAAK,CAAC;CACb,CAAC;AAEF,aAAK,sBAAsB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,aAAK,aAAa,GAAG;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,sBAAsB,CAAC;CACnC,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../src/event-emitter.ts"],"names":[],"mappings":"AAAA,aAAK,WAAW,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,aAAK,YAAY,GAAG;IACnB,KAAK,EAAE,KAAK,CAAC;CACb,CAAC;AAEF,aAAK,sBAAsB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,aAAK,sBAAsB,GAAG;IAC7B,YAAY,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,aAAK,aAAa,GAAG;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,sBAAsB,CAAC;IACnC,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,sBAAsB,CAAC;CACnC,CAAC;AAEF,oBAAY,UAAU,GAAG,MAAM,aAAa,CAAC;AAE7C,oBAAY,gBAAgB,CAAC,CAAC,SAAS,UAAU,IAAI,CAAC,IAAI,EAAE;IAC3D,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CACzB,KAAK,IAAI,CAAC;AAEX,aAAK,SAAS,GAAG;KAAE,SAAS,IAAI,UAAU,GAAG,gBAAgB,CAAC,SAAS,CAAC,EAAE;CAAC,CAAC;AAE5E,qBAAa,aAAa;IACzB,SAAS,EAAE,SAAS,CAQlB;IAEF,gBAAgB,CAAC,CAAC,SAAS,UAAU,EACpC,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAK9B,mBAAmB,CAAC,CAAC,SAAS,UAAU,EACvC,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAO9B,OAAO,CAAC,aAAa;IAWrB,YAAY,CAAC,KAAK,EAAE,MAAM;IAM1B,aAAa;IAIb,YAAY;IAIZ,aAAa;IAIb,kBAAkB,CAAC,YAAY,EAAE,MAAM;IAMvC,aAAa,CAAC,KAAK,EAAE,KAAK;IAM1B,kBAAkB,CAAC,KAAK,EAAE,sBAAsB;CAGhD"}
|
package/dist/event-emitter.js
CHANGED
|
@@ -8,6 +8,7 @@ class PlayerEmitter {
|
|
|
8
8
|
error: [],
|
|
9
9
|
pause: [],
|
|
10
10
|
play: [],
|
|
11
|
+
ratechange: [],
|
|
11
12
|
seeked: [],
|
|
12
13
|
timeupdate: [],
|
|
13
14
|
};
|
|
@@ -37,6 +38,11 @@ class PlayerEmitter {
|
|
|
37
38
|
dispatchEnded() {
|
|
38
39
|
this.dispatchEvent('ended', undefined);
|
|
39
40
|
}
|
|
41
|
+
dispatchRatechange(playbackRate) {
|
|
42
|
+
this.dispatchEvent('ratechange', {
|
|
43
|
+
playbackRate,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
40
46
|
dispatchError(error) {
|
|
41
47
|
this.dispatchEvent('error', {
|
|
42
48
|
error,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-emitter.js","sourceRoot":"","sources":["../src/event-emitter.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"event-emitter.js","sourceRoot":"","sources":["../src/event-emitter.ts"],"names":[],"mappings":";;;AAkCA,MAAa,aAAa;IAA1B;QACC,cAAS,GAAc;YACtB,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,EAAE;YACR,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,EAAE;SACd,CAAC;IA8DH,CAAC;IA5DA,gBAAgB,CACf,IAAO,EACP,QAA6B;QAE5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC;IAED,mBAAmB,CAClB,IAAO,EACP,QAA6B;QAE7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CACnB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IACjC,CAAC;IAEO,aAAa,CACpB,YAAe,EACf,OAAyB;QAExB,IAAI,CAAC,SAAS,CAAC,YAAY,CAA2B,CAAC,OAAO,CAC9D,CAAC,QAAQ,EAAE,EAAE;YACZ,QAAQ,CAAC,EAAC,MAAM,EAAE,OAAO,EAAC,CAAC,CAAC;QAC7B,CAAC,CACD,CAAC;IACH,CAAC;IAED,YAAY,CAAC,KAAa;QACzB,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;YAC5B,KAAK;SACL,CAAC,CAAC;IACJ,CAAC;IAED,aAAa;QACZ,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,YAAY;QACX,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,aAAa;QACZ,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,kBAAkB,CAAC,YAAoB;QACtC,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;YAChC,YAAY;SACZ,CAAC,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,KAAY;QACzB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;YAC3B,KAAK;SACL,CAAC,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAC,KAA6B;QAC/C,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;CACD;AAvED,sCAuEC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { PlayerEmitter } from './event-emitter';
|
|
2
|
+
import { CallbackListener, EventTypes, PlayerEmitter } from './event-emitter';
|
|
3
|
+
import { ErrorFallback } from './Player';
|
|
3
4
|
export { Player } from './Player';
|
|
4
5
|
export { PlayerMethods, PlayerRef } from './player-methods';
|
|
5
6
|
export { PreviewSize } from './utils/preview-size';
|
|
@@ -19,8 +20,9 @@ export declare const PlayerInternals: {
|
|
|
19
20
|
getCurrentFrame: () => number;
|
|
20
21
|
isPlaying: () => boolean;
|
|
21
22
|
};
|
|
22
|
-
usePlayback: ({ loop }: {
|
|
23
|
+
usePlayback: ({ loop, playbackRate, }: {
|
|
23
24
|
loop: boolean;
|
|
25
|
+
playbackRate: number;
|
|
24
26
|
}) => void;
|
|
25
27
|
useElementSize: (ref: import("react").RefObject<HTMLElement>, options: {
|
|
26
28
|
triggerOnWindowResize: boolean;
|
|
@@ -39,4 +41,5 @@ export declare const PlayerInternals: {
|
|
|
39
41
|
};
|
|
40
42
|
useHoverState: (ref: import("react").RefObject<HTMLDivElement>) => boolean;
|
|
41
43
|
};
|
|
44
|
+
export type { ErrorFallback, CallbackListener, EventTypes };
|
|
42
45
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAMvC,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,aAAa,EAAE,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAC,WAAW,EAAC,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAC,IAAI,EAAC,MAAM,0BAA0B,CAAC;AAE9C,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQ3B,CAAC;AAEF,YAAY,EAAC,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAC,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;AAAA,uDAAiD;AACjD,uDAA4D;AAC5D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;AAAA,uDAAiD;AACjD,uDAA4D;AAC5D,mDAA4E;AAE5E,uDAAgD;AAChD,iDAA2C;AAC3C,6CAAuC;AACvC,+DAAwD;AAExD,mCAAgC;AAAxB,gGAAA,MAAM,OAAA;AAKD,QAAA,eAAe,GAAG;IAC9B,yBAAyB,EAAzB,2CAAyB;IACzB,aAAa,EAAb,6BAAa;IACb,SAAS,EAAT,sBAAS;IACT,WAAW,EAAX,0BAAW;IACX,cAAc,EAAd,iCAAc;IACd,cAAc,EAAd,gCAAc;IACd,aAAa,EAAb,+BAAa;CACb,CAAC"}
|
|
@@ -9,7 +9,7 @@ test('no compositionWidth should give errors', () => {
|
|
|
9
9
|
// @ts-expect-error
|
|
10
10
|
, {
|
|
11
11
|
// @ts-expect-error
|
|
12
|
-
compositionWidth: null, compositionHeight: 400, fps: 30, durationInFrames: 500, component: test_utils_1.HelloWorld, controls: true, showVolumeControls: true }, void 0));
|
|
12
|
+
compositionWidth: null, errorFallback: () => 'something went wrong', compositionHeight: 400, fps: 30, durationInFrames: 500, component: test_utils_1.HelloWorld, controls: true, showVolumeControls: true }, void 0));
|
|
13
13
|
}
|
|
14
14
|
catch (e) {
|
|
15
15
|
expect(e.message).toMatch(/'compositionWidth' must be a number but got 'object' instead/);
|
|
@@ -17,7 +17,7 @@ test('no compositionWidth should give errors', () => {
|
|
|
17
17
|
});
|
|
18
18
|
test('no compositionHeight should give errors', () => {
|
|
19
19
|
try {
|
|
20
|
-
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 400,
|
|
20
|
+
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 400, errorFallback: () => 'something went wrong',
|
|
21
21
|
// @ts-expect-error
|
|
22
22
|
compositionHeight: undefined, fps: 30, durationInFrames: 500, component: test_utils_1.HelloWorld, controls: true, showVolumeControls: true }, void 0));
|
|
23
23
|
}
|
|
@@ -27,7 +27,7 @@ test('no compositionHeight should give errors', () => {
|
|
|
27
27
|
});
|
|
28
28
|
test('No fps should give errors', () => {
|
|
29
29
|
try {
|
|
30
|
-
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 500, compositionHeight: 400,
|
|
30
|
+
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 500, compositionHeight: 400, errorFallback: () => 'something went wrong',
|
|
31
31
|
// @ts-expect-error
|
|
32
32
|
fps: null, durationInFrames: 500, component: test_utils_1.HelloWorld, controls: true, showVolumeControls: true }, void 0));
|
|
33
33
|
}
|
|
@@ -35,7 +35,7 @@ test('No fps should give errors', () => {
|
|
|
35
35
|
expect(e.message).toMatch(/"fps" must be a number, but you passed a value of type object/);
|
|
36
36
|
}
|
|
37
37
|
try {
|
|
38
|
-
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 500, compositionHeight: 400,
|
|
38
|
+
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 500, compositionHeight: 400, errorFallback: () => 'something went wrong',
|
|
39
39
|
// @ts-expect-error
|
|
40
40
|
fps: undefined, durationInFrames: 500, component: test_utils_1.HelloWorld, controls: true, showVolumeControls: true }, void 0));
|
|
41
41
|
}
|
|
@@ -45,7 +45,7 @@ test('No fps should give errors', () => {
|
|
|
45
45
|
});
|
|
46
46
|
test('No durationInFrames should give errors', () => {
|
|
47
47
|
try {
|
|
48
|
-
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 500, compositionHeight: 400, fps: 30,
|
|
48
|
+
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 500, compositionHeight: 400, errorFallback: () => 'something went wrong', fps: 30,
|
|
49
49
|
// @ts-expect-error
|
|
50
50
|
durationInFrames: undefined, component: test_utils_1.HelloWorld, controls: true, showVolumeControls: true }, void 0));
|
|
51
51
|
}
|
|
@@ -53,6 +53,36 @@ test('No durationInFrames should give errors', () => {
|
|
|
53
53
|
expect(e.message).toMatch(/The "durationInFrames" prop of the <Player\/> component must be a number, but you passed a value of type undefined/);
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
|
+
test('Invalid playbackRate should give error', () => {
|
|
57
|
+
try {
|
|
58
|
+
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 500, compositionHeight: 400, fps: 30, durationInFrames: 500, component: test_utils_1.HelloWorld, controls: true, showVolumeControls: true, playbackRate: -5 }, void 0));
|
|
59
|
+
}
|
|
60
|
+
catch (e) {
|
|
61
|
+
expect(e.message).toMatch(/The lowest possible playback rate is -4. You passed: -5/);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
test('playbackRate of 0 should not be possible', () => {
|
|
65
|
+
try {
|
|
66
|
+
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 500, compositionHeight: 400, fps: 30, durationInFrames: 500, component: test_utils_1.HelloWorld, controls: true, showVolumeControls: true, playbackRate: 0 }, void 0));
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
expect(e.message).toMatch(/A playback rate of 0 is not supported./);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
test('playbackRate of wrong type should not be possible', () => {
|
|
73
|
+
try {
|
|
74
|
+
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 500, compositionHeight: 400, fps: 30, durationInFrames: 500, component: test_utils_1.HelloWorld, controls: true, showVolumeControls: true,
|
|
75
|
+
// @ts-expect-error
|
|
76
|
+
playbackRate: 'hi' }, void 0));
|
|
77
|
+
}
|
|
78
|
+
catch (e) {
|
|
79
|
+
expect(e.message).toMatch(/A playback rate of 0 is not supported./);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
test('playbackRate of undefined should be okay', () => {
|
|
83
|
+
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, { compositionWidth: 500, compositionHeight: 400, fps: 30, durationInFrames: 500, component: test_utils_1.HelloWorld, controls: true, showVolumeControls: true }, void 0));
|
|
84
|
+
expect(true).toBe(true);
|
|
85
|
+
});
|
|
56
86
|
test.each([
|
|
57
87
|
['controls'],
|
|
58
88
|
['loop'],
|
|
@@ -65,7 +95,7 @@ test.each([
|
|
|
65
95
|
const props = {};
|
|
66
96
|
props[a] = 'hey';
|
|
67
97
|
try {
|
|
68
|
-
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, Object.assign({ compositionWidth: 500, compositionHeight: 400, fps: 30, durationInFrames: 100, component: test_utils_1.HelloWorld }, props), void 0));
|
|
98
|
+
(0, test_utils_1.render)((0, jsx_runtime_1.jsx)(index_1.Player, Object.assign({ compositionWidth: 500, compositionHeight: 400, errorFallback: () => 'something went wrong', fps: 30, durationInFrames: 100, component: test_utils_1.HelloWorld }, props), void 0));
|
|
69
99
|
}
|
|
70
100
|
catch (e) {
|
|
71
101
|
expect(e.message).toMatch(`'${a}' must be a boolean or undefined but got 'string' instead`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-prop.test.js","sourceRoot":"","sources":["../../src/test/validate-prop.test.tsx"],"names":[],"mappings":";;;AAAA,oCAAgC;AAChC,6CAAgD;AAEhD,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;IACnD,IAAI;QACH,IAAA,mBAAM,EACL,uBAAC,cAAM;QACN,mBAAmB;;YAAnB,mBAAmB;YACnB,gBAAgB,EAAE,IAAI,EACtB,iBAAiB,EAAE,GAAG,EACtB,GAAG,EAAE,EAAE,EACP,gBAAgB,EAAE,GAAG,EACrB,SAAS,EAAE,uBAAU,EACrB,QAAQ,QACR,kBAAkB,iBACjB,CACF,CAAC;KACF;IAAC,OAAO,CAAC,EAAE;QACX,MAAM,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC,OAAO,CACnC,8DAA8D,CAC9D,CAAC;KACF;AACF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACpD,IAAI;QACH,IAAA,mBAAM,EACL,uBAAC,cAAM,IACN,gBAAgB,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"validate-prop.test.js","sourceRoot":"","sources":["../../src/test/validate-prop.test.tsx"],"names":[],"mappings":"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"}
|
package/dist/use-playback.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-playback.d.ts","sourceRoot":"","sources":["../src/use-playback.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-playback.d.ts","sourceRoot":"","sources":["../src/use-playback.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW;UAIjB,OAAO;kBACC,MAAM;UAiGpB,CAAC"}
|
package/dist/use-playback.js
CHANGED
|
@@ -3,13 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.usePlayback = void 0;
|
|
4
4
|
const react_1 = require("react");
|
|
5
5
|
const remotion_1 = require("remotion");
|
|
6
|
+
const calculate_next_frame_1 = require("./calculate-next-frame");
|
|
6
7
|
const use_player_1 = require("./use-player");
|
|
7
|
-
const usePlayback = ({ loop }) => {
|
|
8
|
+
const usePlayback = ({ loop, playbackRate, }) => {
|
|
8
9
|
const frame = remotion_1.Internals.Timeline.useTimelinePosition();
|
|
9
10
|
const config = remotion_1.Internals.useUnsafeVideoConfig();
|
|
10
11
|
const { playing, pause, emitter } = (0, use_player_1.usePlayer)();
|
|
11
12
|
const setFrame = remotion_1.Internals.Timeline.useTimelineSetFrame();
|
|
12
|
-
const { inFrame, outFrame
|
|
13
|
+
const { inFrame, outFrame } = remotion_1.Internals.Timeline.useTimelineInOutFramePosition();
|
|
13
14
|
const frameRef = (0, react_1.useRef)(frame);
|
|
14
15
|
frameRef.current = frame;
|
|
15
16
|
const lastTimeUpdateEvent = (0, react_1.useRef)(null);
|
|
@@ -20,32 +21,10 @@ const usePlayback = ({ loop }) => {
|
|
|
20
21
|
if (!playing) {
|
|
21
22
|
return;
|
|
22
23
|
}
|
|
23
|
-
const getFrameInRange = (nextFrame) => {
|
|
24
|
-
if ((inFrame && nextFrame < inFrame) ||
|
|
25
|
-
(inFrame && outFrame && nextFrame > outFrame)) {
|
|
26
|
-
return inFrame;
|
|
27
|
-
}
|
|
28
|
-
if (outFrame && nextFrame > outFrame) {
|
|
29
|
-
return 0;
|
|
30
|
-
}
|
|
31
|
-
return nextFrame;
|
|
32
|
-
};
|
|
33
24
|
let hasBeenStopped = false;
|
|
34
25
|
let reqAnimFrameCall = null;
|
|
35
26
|
const startedTime = performance.now();
|
|
36
|
-
|
|
37
|
-
const durationInFrames = (() => {
|
|
38
|
-
if (inFrame !== null && outFrame !== null) {
|
|
39
|
-
return outFrame - inFrame + 1;
|
|
40
|
-
}
|
|
41
|
-
if (inFrame !== null) {
|
|
42
|
-
return config.durationInFrames - inFrame;
|
|
43
|
-
}
|
|
44
|
-
if (outFrame !== null) {
|
|
45
|
-
return outFrame + 1;
|
|
46
|
-
}
|
|
47
|
-
return config.durationInFrames;
|
|
48
|
-
})();
|
|
27
|
+
let framesAdvanced = 0;
|
|
49
28
|
const stop = () => {
|
|
50
29
|
hasBeenStopped = true;
|
|
51
30
|
if (reqAnimFrameCall !== null) {
|
|
@@ -54,17 +33,28 @@ const usePlayback = ({ loop }) => {
|
|
|
54
33
|
};
|
|
55
34
|
const callback = () => {
|
|
56
35
|
const time = performance.now() - startedTime;
|
|
57
|
-
const
|
|
58
|
-
|
|
36
|
+
const actualLastFrame = outFrame !== null && outFrame !== void 0 ? outFrame : config.durationInFrames - 1;
|
|
37
|
+
const actualFirstFrame = inFrame !== null && inFrame !== void 0 ? inFrame : 0;
|
|
38
|
+
const { nextFrame, framesToAdvance, hasEnded } = (0, calculate_next_frame_1.calculateNextFrame)({
|
|
39
|
+
time,
|
|
40
|
+
currentFrame: frameRef.current,
|
|
41
|
+
playbackSpeed: playbackRate,
|
|
42
|
+
fps: config.fps,
|
|
43
|
+
actualFirstFrame,
|
|
44
|
+
actualLastFrame,
|
|
45
|
+
framesAdvanced,
|
|
46
|
+
shouldLoop: loop,
|
|
47
|
+
});
|
|
48
|
+
framesAdvanced += framesToAdvance;
|
|
49
|
+
if (nextFrame !== frameRef.current) {
|
|
50
|
+
setFrame(nextFrame);
|
|
51
|
+
}
|
|
52
|
+
if (hasEnded) {
|
|
59
53
|
stop();
|
|
60
54
|
pause();
|
|
61
55
|
emitter.dispatchEnded();
|
|
62
56
|
return;
|
|
63
57
|
}
|
|
64
|
-
const actualNextFrame = (nextFrame % durationInFrames) + (inFrame !== null && inFrame !== void 0 ? inFrame : 0);
|
|
65
|
-
if (actualNextFrame !== frameRef.current) {
|
|
66
|
-
setFrame(actualNextFrame);
|
|
67
|
-
}
|
|
68
58
|
if (!hasBeenStopped) {
|
|
69
59
|
reqAnimFrameCall = requestAnimationFrame(callback);
|
|
70
60
|
}
|
|
@@ -73,7 +63,17 @@ const usePlayback = ({ loop }) => {
|
|
|
73
63
|
return () => {
|
|
74
64
|
stop();
|
|
75
65
|
};
|
|
76
|
-
}, [
|
|
66
|
+
}, [
|
|
67
|
+
config,
|
|
68
|
+
loop,
|
|
69
|
+
pause,
|
|
70
|
+
playing,
|
|
71
|
+
setFrame,
|
|
72
|
+
emitter,
|
|
73
|
+
playbackRate,
|
|
74
|
+
inFrame,
|
|
75
|
+
outFrame,
|
|
76
|
+
]);
|
|
77
77
|
(0, react_1.useEffect)(() => {
|
|
78
78
|
const interval = setInterval(() => {
|
|
79
79
|
if (lastTimeUpdateEvent.current === frameRef.current) {
|
package/dist/use-playback.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-playback.js","sourceRoot":"","sources":["../src/use-playback.ts"],"names":[],"mappings":";;;AAAA,iCAAwC;AACxC,uCAAmC;AACnC,6CAAuC;AAEhC,MAAM,WAAW,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"use-playback.js","sourceRoot":"","sources":["../src/use-playback.ts"],"names":[],"mappings":"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"}
|
package/dist/use-player.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-player.d.ts","sourceRoot":"","sources":["../src/use-player.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAA2C,MAAM,OAAO,CAAC;AAG/E,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,eAAO,MAAM,SAAS;wBACD,MAAM,KAAK,IAAI;2BACZ,MAAM,KAAK,IAAI;iBACzB,OAAO;aACX,aAAa;aACb,OAAO;8DACc,IAAI;WAC3B,MAAM,IAAI;qBACA,MAAM,KAAK,IAAI;qBACf,MAAM,MAAM;eAClB,MAAM,OAAO;
|
|
1
|
+
{"version":3,"file":"use-player.d.ts","sourceRoot":"","sources":["../src/use-player.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAA2C,MAAM,OAAO,CAAC;AAG/E,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,eAAO,MAAM,SAAS;wBACD,MAAM,KAAK,IAAI;2BACZ,MAAM,KAAK,IAAI;iBACzB,OAAO;aACX,aAAa;aACb,OAAO;8DACc,IAAI;WAC3B,MAAM,IAAI;qBACA,MAAM,KAAK,IAAI;qBACf,MAAM,MAAM;eAClB,MAAM,OAAO;CAwHxB,CAAC"}
|
package/dist/use-player.js
CHANGED
|
@@ -6,8 +6,7 @@ const remotion_1 = require("remotion");
|
|
|
6
6
|
const emitter_context_1 = require("./emitter-context");
|
|
7
7
|
const usePlayer = () => {
|
|
8
8
|
var _a;
|
|
9
|
-
const [playing, setPlaying] = remotion_1.Internals.Timeline.usePlayingState();
|
|
10
|
-
const imperativePlaying = (0, react_1.useRef)(false);
|
|
9
|
+
const [playing, setPlaying, imperativePlaying] = remotion_1.Internals.Timeline.usePlayingState();
|
|
11
10
|
const frame = remotion_1.Internals.Timeline.useTimelinePosition();
|
|
12
11
|
const setFrame = remotion_1.Internals.Timeline.useTimelineSetFrame();
|
|
13
12
|
const setTimelinePosition = remotion_1.Internals.Timeline.useTimelineSetFrame();
|
|
@@ -39,14 +38,14 @@ const usePlayer = () => {
|
|
|
39
38
|
imperativePlaying.current = true;
|
|
40
39
|
setPlaying(true);
|
|
41
40
|
emitter.dispatchPlay();
|
|
42
|
-
}, [isLastFrame, audioContext, setPlaying, emitter, seek]);
|
|
41
|
+
}, [imperativePlaying, isLastFrame, audioContext, setPlaying, emitter, seek]);
|
|
43
42
|
const pause = (0, react_1.useCallback)(() => {
|
|
44
43
|
if (imperativePlaying.current) {
|
|
45
44
|
imperativePlaying.current = false;
|
|
46
45
|
setPlaying(false);
|
|
47
46
|
emitter.dispatchPause();
|
|
48
47
|
}
|
|
49
|
-
}, [emitter, setPlaying]);
|
|
48
|
+
}, [emitter, imperativePlaying, setPlaying]);
|
|
50
49
|
const hasVideo = Boolean(video);
|
|
51
50
|
const frameBack = (0, react_1.useCallback)((frames) => {
|
|
52
51
|
if (!hasVideo) {
|
|
@@ -58,7 +57,7 @@ const usePlayer = () => {
|
|
|
58
57
|
setFrame((f) => {
|
|
59
58
|
return Math.max(0, f - frames);
|
|
60
59
|
});
|
|
61
|
-
}, [hasVideo, setFrame]);
|
|
60
|
+
}, [hasVideo, imperativePlaying, setFrame]);
|
|
62
61
|
const frameForward = (0, react_1.useCallback)((frames) => {
|
|
63
62
|
if (!hasVideo) {
|
|
64
63
|
return null;
|
|
@@ -67,7 +66,7 @@ const usePlayer = () => {
|
|
|
67
66
|
return;
|
|
68
67
|
}
|
|
69
68
|
setFrame((f) => Math.min(lastFrame, f + frames));
|
|
70
|
-
}, [hasVideo, lastFrame, setFrame]);
|
|
69
|
+
}, [hasVideo, imperativePlaying, lastFrame, setFrame]);
|
|
71
70
|
const returnValue = (0, react_1.useMemo)(() => {
|
|
72
71
|
return {
|
|
73
72
|
frameBack,
|
|
@@ -85,6 +84,7 @@ const usePlayer = () => {
|
|
|
85
84
|
emitter,
|
|
86
85
|
frameBack,
|
|
87
86
|
frameForward,
|
|
87
|
+
imperativePlaying,
|
|
88
88
|
isLastFrame,
|
|
89
89
|
pause,
|
|
90
90
|
play,
|
package/dist/use-player.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-player.js","sourceRoot":"","sources":["../src/use-player.ts"],"names":[],"mappings":";;;AAAA,iCAA+E;AAC/E,uCAAmC;AACnC,uDAA4D;AAGrD,MAAM,SAAS,GAAG,GAWvB,EAAE;;IACH,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"use-player.js","sourceRoot":"","sources":["../src/use-player.ts"],"names":[],"mappings":";;;AAAA,iCAA+E;AAC/E,uCAAmC;AACnC,uDAA4D;AAGrD,MAAM,SAAS,GAAG,GAWvB,EAAE;;IACH,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,GAC7C,oBAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,oBAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;IACvD,MAAM,QAAQ,GAAG,oBAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;IAC1D,MAAM,mBAAmB,GAAG,oBAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;IACrE,MAAM,YAAY,GAAG,IAAA,kBAAU,EAAC,oBAAS,CAAC,kBAAkB,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG,IAAA,cAAM,GAAU,CAAC;IAClC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,MAAM,KAAK,GAAG,oBAAS,CAAC,QAAQ,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,oBAAS,CAAC,oBAAoB,EAAE,CAAC;IAChD,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,2CAAyB,CAAC,CAAC;IAEtD,MAAM,SAAS,GAAG,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,KAAK,KAAK,SAAS,CAAC;IAExC,IAAI,CAAC,OAAO,EAAE;QACb,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;KAC7D;IAED,MAAM,IAAI,GAAG,IAAA,mBAAW,EACvB,CAAC,QAAgB,EAAE,EAAE;QACpB,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC,EACD,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAC9B,CAAC;IAEF,MAAM,IAAI,GAAG,IAAA,mBAAW,EACvB,CAAC,CAAkB,EAAE,EAAE;QACtB,IAAI,iBAAiB,CAAC,OAAO,EAAE;YAC9B,OAAO;SACP;QAED,IAAI,WAAW,EAAE;YAChB,IAAI,CAAC,CAAC,CAAC,CAAC;SACR;QAED,IAAI,YAAY,IAAI,YAAY,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,EAAE;YAC5D,YAAY,CAAC,aAAa,EAAE,CAAC;SAC7B;QAED,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC;QACjC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC,EACD,CAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CACzE,CAAC;IAEF,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QAC9B,IAAI,iBAAiB,CAAC,OAAO,EAAE;YAC9B,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;YAElC,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,OAAO,CAAC,aAAa,EAAE,CAAC;SACxB;IACF,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAEhC,MAAM,SAAS,GAAG,IAAA,mBAAW,EAC5B,CAAC,MAAc,EAAE,EAAE;QAClB,IAAI,CAAC,QAAQ,EAAE;YACd,OAAO,IAAI,CAAC;SACZ;QAED,IAAI,iBAAiB,CAAC,OAAO,EAAE;YAC9B,OAAO;SACP;QAED,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACJ,CAAC,EACD,CAAC,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CACvC,CAAC;IAEF,MAAM,YAAY,GAAG,IAAA,mBAAW,EAC/B,CAAC,MAAc,EAAE,EAAE;QAClB,IAAI,CAAC,QAAQ,EAAE;YACd,OAAO,IAAI,CAAC;SACZ;QAED,IAAI,iBAAiB,CAAC,OAAO,EAAE;YAC9B,OAAO;SACP;QAED,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC,EACD,CAAC,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAClD,CAAC;IAEF,MAAM,WAAW,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAChC,OAAO;YACN,SAAS;YACT,YAAY;YACZ,WAAW;YACX,OAAO;YACP,OAAO;YACP,IAAI;YACJ,KAAK;YACL,IAAI;YACJ,eAAe,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAiB;YACjD,SAAS,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAkB;SACrD,CAAC;IACH,CAAC,EAAE;QACF,OAAO;QACP,SAAS;QACT,YAAY;QACZ,iBAAiB;QACjB,WAAW;QACX,KAAK;QACL,IAAI;QACJ,OAAO;QACP,IAAI;KACJ,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACpB,CAAC,CAAC;AAlIW,QAAA,SAAS,aAkIpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-playbackrate.d.ts","sourceRoot":"","sources":["../../src/utils/validate-playbackrate.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,iBAAkB,MAAM,GAAG,SAAS,SAoBpE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validatePlaybackRate = void 0;
|
|
4
|
+
const validatePlaybackRate = (playbackRate) => {
|
|
5
|
+
if (playbackRate === undefined) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
if (playbackRate > 4) {
|
|
9
|
+
throw new Error(`The highest possible playback rate is 4. You passed: ${playbackRate}`);
|
|
10
|
+
}
|
|
11
|
+
if (playbackRate < -4) {
|
|
12
|
+
throw new Error(`The lowest possible playback rate is -4. You passed: ${playbackRate}`);
|
|
13
|
+
}
|
|
14
|
+
if (playbackRate === 0) {
|
|
15
|
+
throw new Error(`A playback rate of 0 is not supported.`);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
exports.validatePlaybackRate = validatePlaybackRate;
|
|
19
|
+
//# sourceMappingURL=validate-playbackrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-playbackrate.js","sourceRoot":"","sources":["../../src/utils/validate-playbackrate.ts"],"names":[],"mappings":";;;AAAO,MAAM,oBAAoB,GAAG,CAAC,YAAgC,EAAE,EAAE;IACxE,IAAI,YAAY,KAAK,SAAS,EAAE;QAC/B,OAAO;KACP;IAED,IAAI,YAAY,GAAG,CAAC,EAAE;QACrB,MAAM,IAAI,KAAK,CACd,wDAAwD,YAAY,EAAE,CACtE,CAAC;KACF;IAED,IAAI,YAAY,GAAG,CAAC,CAAC,EAAE;QACtB,MAAM,IAAI,KAAK,CACd,wDAAwD,YAAY,EAAE,CACtE,CAAC;KACF;IAED,IAAI,YAAY,KAAK,CAAC,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC1D;AACF,CAAC,CAAC;AApBW,QAAA,oBAAoB,wBAoB/B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/player",
|
|
3
|
-
"version": "3.0.0-lambda.
|
|
3
|
+
"version": "3.0.0-lambda.200+0d7281dd3",
|
|
4
4
|
"description": "Remotion Player",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
],
|
|
25
25
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"remotion": "
|
|
27
|
+
"remotion": "3.0.0-lambda.200+0d7281dd3"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|
|
30
30
|
"react": ">=16.8.0",
|
|
@@ -44,10 +44,10 @@
|
|
|
44
44
|
"prettier-plugin-organize-imports": "^1.1.1",
|
|
45
45
|
"ts-jest": "^27.0.5",
|
|
46
46
|
"typescript": "^4.4.2",
|
|
47
|
-
"webpack": "
|
|
47
|
+
"webpack": "5.60.0"
|
|
48
48
|
},
|
|
49
49
|
"publishConfig": {
|
|
50
50
|
"access": "public"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "0d7281dd3c575dcc22137f805206b9dc2aebabc2"
|
|
53
53
|
}
|