diff --git a/apps/desktop/src/components/VideoPreviewModal.tsx b/apps/desktop/src/components/VideoPreviewModal.tsx index cb22826..83fc8de 100644 --- a/apps/desktop/src/components/VideoPreviewModal.tsx +++ b/apps/desktop/src/components/VideoPreviewModal.tsx @@ -59,23 +59,13 @@ export const VideoPreviewModal: React.FC = ({ useEffect(() => { if (!videoUrl || !isOpen) return; - const loadProxiedVideo = async () => { - setIsLoadingProxy(true); - setError(null); + // 重置状态 + setError(null); + setIsLoading(true); + setIsLoadingProxy(false); - try { - // 首先尝试直接加载 - setProxiedVideoUrl(videoUrl); - setIsLoading(true); - } catch (error) { - console.error('加载视频失败:', error); - setError('视频加载失败'); - } finally { - setIsLoadingProxy(false); - } - }; - - loadProxiedVideo(); + // 首先尝试直接加载 + setProxiedVideoUrl(videoUrl); }, [videoUrl, isOpen]); // 重置状态当视频URL改变时 @@ -197,18 +187,19 @@ export const VideoPreviewModal: React.FC = ({ // 如果还没有尝试过代理,则尝试使用代理服务 if (proxiedVideoUrl === videoUrl) { try { - setIsLoadingProxy(true); + setIsLoading(false); // 停止普通加载状态 + setIsLoadingProxy(true); // 开始代理加载状态 setError(null); + console.log('开始获取代理视频数据...'); const proxiedData = await invoke('get_video_stream_base64', { videoUrl: videoUrl }); setProxiedVideoUrl(proxiedData); - console.log('成功获取代理视频数据'); + console.log('成功获取代理视频数据,大小:', proxiedData.length); } catch (error) { console.error('代理视频加载失败:', error); - setIsLoading(false); setError('视频加载失败,请检查网络连接或视频链接'); } finally { setIsLoadingProxy(false); @@ -267,9 +258,14 @@ export const VideoPreviewModal: React.FC = ({
{/* 视频播放区域 */}
- {isLoading && ( + {(isLoading || isLoadingProxy) && (
-
+
+
+

+ {isLoadingProxy ? '正在获取视频流...' : '加载中...'} +

+
)} @@ -300,7 +296,7 @@ export const VideoPreviewModal: React.FC = ({ {/* 右上角悬浮按钮组 */} - {!isLoading && !error && ( + {!isLoading && !isLoadingProxy && !error && (