fix: Sync currentTime when user selects a frame in timeline

This commit is contained in:
empty
2026-01-06 17:55:36 +08:00
parent 8db3693e08
commit e29615a885

View File

@@ -88,6 +88,23 @@ export function PreviewPlayer() {
const selectedFrame = storyboard?.frames.find((f) => f.id === selectedFrameId)
// Sync currentTime when user selects a frame (not during playback)
useEffect(() => {
if (isPlaying || !storyboard?.frames.length || !selectedFrameId) return
// Calculate start time of selected frame
let startTime = 0
for (const frame of storyboard.frames) {
if (frame.id === selectedFrameId) break
startTime += frame.duration
}
// Only update if different (avoid infinite loop)
if (Math.abs(currentTime - startTime) > 0.1) {
setCurrentTime(startTime)
}
}, [selectedFrameId, isPlaying])
// Audio playback sync
useEffect(() => {
if (!audioRef.current) return