From 21d64db88033325b31b7f406f709fb6e7aad3099 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8C=97=E6=9E=B3?= <7854742+wang_rumeng@user.noreply.gitee.com> Date: Wed, 3 Sep 2025 15:00:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=95=E8=A7=86=E9=A2=91=E4=B8=8B=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/pages/work-flow/media-viewer.tsx | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/components/pages/work-flow/media-viewer.tsx b/components/pages/work-flow/media-viewer.tsx index 5c579de..d005b41 100644 --- a/components/pages/work-flow/media-viewer.tsx +++ b/components/pages/work-flow/media-viewer.tsx @@ -2,7 +2,7 @@ import React, { useRef, useEffect, useState, SetStateAction, useMemo } from 'react'; import { motion, AnimatePresence } from 'framer-motion'; -import { Edit3, Play, Pause, Volume2, VolumeX, Maximize, Minimize, Loader2, X, Scissors, RotateCcw, MessageCircleMore } from 'lucide-react'; +import { Edit3, Play, Pause, Volume2, VolumeX, Maximize, Minimize, Loader2, X, Scissors, RotateCcw, MessageCircleMore, Download } from 'lucide-react'; import { ProgressiveReveal, presets } from '@/components/ui/progressive-reveal'; import { GlassIconButton } from '@/components/ui/glass-icon-button'; import { ScriptRenderer } from '@/components/script-renderer/ScriptRenderer'; @@ -273,6 +273,14 @@ export const MediaViewer = React.memo(function MediaViewer({ }; }, []); + // 下载视频 + const downloadVideo = (url: string) => { + const a = document.createElement('a'); + a.href = url; + a.download = url.split('/').pop() || ''; + a.click(); + }; + // 渲染音量控制组件 const renderVolumeControls = () => (
@@ -484,6 +492,16 @@ export const MediaViewer = React.memo(function MediaViewer({ } }} /> + {/* 下载按钮 */} + + { + const currentVideo = taskObject.videos.data[currentSketchIndex]; + if (currentVideo && currentVideo.urls && currentVideo.urls.length > 0) { + downloadVideo(currentVideo.urls[0]); + } + }} /> + + {/* 跳转剪辑按钮 */} {showGotoCutButton && (