@remotion/player
Version:
React component for embedding a Remotion preview into your app
21 lines (20 loc) • 935 B
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { useContext, useEffect, useState } from 'react';
import { Internals } from 'remotion';
import { PlayerEventEmitterContext } from './emitter-context.js';
import { PlayerEmitter } from './event-emitter.js';
import { useBufferStateEmitter } from './use-buffer-state-emitter.js';
export const PlayerEmitterProvider = ({ children, currentPlaybackRate }) => {
const [emitter] = useState(() => new PlayerEmitter());
const bufferManager = useContext(Internals.BufferingContextReact);
if (!bufferManager) {
throw new Error('BufferingContextReact not found');
}
useEffect(() => {
if (currentPlaybackRate) {
emitter.dispatchRateChange(currentPlaybackRate);
}
}, [emitter, currentPlaybackRate]);
useBufferStateEmitter(emitter);
return (_jsx(PlayerEventEmitterContext.Provider, { value: emitter, children: children }));
};