remotion
Version:
Make videos programmatically
29 lines (28 loc) • 1.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useFrameForVolumeProp = exports.useMediaStartsAt = void 0;
const react_1 = require("react");
const index_js_1 = require("../loop/index.js");
const SequenceContext_js_1 = require("../SequenceContext.js");
const use_current_frame_js_1 = require("../use-current-frame.js");
const useMediaStartsAt = () => {
var _a;
const parentSequence = (0, react_1.useContext)(SequenceContext_js_1.SequenceContext);
const startsAt = Math.min(0, (_a = parentSequence === null || parentSequence === void 0 ? void 0 : parentSequence.relativeFrom) !== null && _a !== void 0 ? _a : 0);
return startsAt;
};
exports.useMediaStartsAt = useMediaStartsAt;
/**
* When passing a function as the prop for `volume`,
* we calculate the way more intuitive value for currentFrame
*/
const useFrameForVolumeProp = (behavior) => {
const loop = index_js_1.Loop.useLoop();
const frame = (0, use_current_frame_js_1.useCurrentFrame)();
const startsAt = (0, exports.useMediaStartsAt)();
if (behavior === 'repeat' || loop === null) {
return frame + startsAt;
}
return frame + startsAt + loop.durationInFrames * loop.iteration;
};
exports.useFrameForVolumeProp = useFrameForVolumeProp;