diff --git a/src/renderer/src/pages/video/VideoViewer.tsx b/src/renderer/src/pages/video/VideoViewer.tsx index e00e32b2fd..63661c70ce 100644 --- a/src/renderer/src/pages/video/VideoViewer.tsx +++ b/src/renderer/src/pages/video/VideoViewer.tsx @@ -14,7 +14,7 @@ import FileManager from '@renderer/services/FileManager' import { Video, VideoDownloaded, VideoFailed } from '@renderer/types/video' import dayjs from 'dayjs' import { CheckCircleIcon, CircleXIcon, Clock9Icon } from 'lucide-react' -import { useEffect, useMemo, useState } from 'react' +import { useEffect, useMemo, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' import useSWRImmutable from 'swr/immutable' @@ -184,6 +184,7 @@ const VideoPlayer = ({ video: VideoDownloaded setLoadSuccess: (value: boolean) => void }) => { + const videoRef = useRef(null) const fetcher = async () => { const file = await FileManager.getFile(video.fileId) if (!file) { @@ -193,6 +194,13 @@ const VideoPlayer = ({ } const { data: src, isLoading, error } = useSWRImmutable(`video/file/${video.id}`, fetcher) + useEffect(() => { + const videoElement = videoRef.current + if (videoElement) { + videoElement.load() + } + }, [video?.id]) + if (error) { setLoadSuccess(false) } @@ -203,6 +211,7 @@ const VideoPlayer = ({ return (