@remotion/player
Version:
React component for embedding a Remotion preview into your app
23 lines (22 loc) • 786 B
JavaScript
import { useContext, useEffect } from 'react';
import { Internals } from 'remotion';
export const useBufferStateEmitter = (emitter) => {
const bufferManager = useContext(Internals.BufferingContextReact);
if (!bufferManager) {
throw new Error('BufferingContextReact not found');
}
useEffect(() => {
const clear1 = bufferManager.listenForBuffering(() => {
bufferManager.buffering.current = true;
emitter.dispatchWaiting({});
});
const clear2 = bufferManager.listenForResume(() => {
bufferManager.buffering.current = false;
emitter.dispatchResume({});
});
return () => {
clear1.remove();
clear2.remove();
};
}, [bufferManager, emitter]);
};