1
0
mirror of https://github.com/mifi/lossless-cut.git synced 2024-11-24 19:32:29 +01:00

fix seek jerkiness

This commit is contained in:
Mikael Finstad 2024-10-06 16:27:56 +02:00
parent 85a900e15b
commit 4b65d27728
No known key found for this signature in database
GPG Key ID: 25AB36E3E81CBC26

View File

@ -66,10 +66,6 @@ export default ({ filePath }: { filePath: string | undefined }) => {
setCompatPlayerEventId((id) => id + 1); // To make sure that we can seek even to the same commanded time that we are already add (e.g. loop current segment) setCompatPlayerEventId((id) => id + 1); // To make sure that we can seek even to the same commanded time that we are already add (e.g. loop current segment)
}, [smoothSeek]); }, [smoothSeek]);
const seekRel = useCallback((val: number) => {
seekAbs(videoRef.current!.currentTime + val);
}, [seekAbs, videoRef]);
const commandedTimeRef = useRef(commandedTime); const commandedTimeRef = useRef(commandedTime);
useEffect(() => { useEffect(() => {
commandedTimeRef.current = commandedTime; commandedTimeRef.current = commandedTime;
@ -80,6 +76,10 @@ export default ({ filePath }: { filePath: string | undefined }) => {
// The reason why we also have a getter is because it can be used when we need to get the time, but don't want to re-render for every time update (which can be heavy!) // The reason why we also have a getter is because it can be used when we need to get the time, but don't want to re-render for every time update (which can be heavy!)
const getRelevantTime = useCallback(() => (playingRef.current ? videoRef.current!.currentTime : commandedTimeRef.current) || 0, []); const getRelevantTime = useCallback(() => (playingRef.current ? videoRef.current!.currentTime : commandedTimeRef.current) || 0, []);
const seekRel = useCallback((val: number) => {
seekAbs(getRelevantTime() + val);
}, [getRelevantTime, seekAbs]);
const onPlayingChange = useCallback((val: boolean) => { const onPlayingChange = useCallback((val: boolean) => {
playingRef.current = val; playingRef.current = val;
setPlaying(val); setPlaying(val);