diff --git a/lib/hooks/useMultiTrackPlayer.ts b/lib/hooks/useMultiTrackPlayer.ts index 9bb0d4d..d7a1586 100644 --- a/lib/hooks/useMultiTrackPlayer.ts +++ b/lib/hooks/useMultiTrackPlayer.ts @@ -365,7 +365,10 @@ export function useMultiTrackPlayer( sourceNodesRef.current.push(source); } - animationFrameRef.current = requestAnimationFrame(updatePlaybackPosition); + // Only schedule next frame if animation frame ref is still valid (not cancelled) + if (animationFrameRef.current !== null) { + animationFrameRef.current = requestAnimationFrame(updatePlaybackPosition); + } return; } @@ -391,7 +394,10 @@ export function useMultiTrackPlayer( } setCurrentTime(newTime); - animationFrameRef.current = requestAnimationFrame(updatePlaybackPosition); + // Only schedule next frame if animation frame ref is still valid (not cancelled) + if (animationFrameRef.current !== null) { + animationFrameRef.current = requestAnimationFrame(updatePlaybackPosition); + } }, [duration]); const play = useCallback(() => {