From 416f5bc113352ac726a73b4f58e2218bb742b4d5 Mon Sep 17 00:00:00 2001
From: "fengchuanhn@gmail.com"
Date: Mon, 25 May 2026 02:13:03 +0800
Subject: [PATCH] 1
---
src/components/workflow/Step02AudioVideo.vue | 59 +++++++++++++++++++-
src/components/workflow/Step03VideoEdit.vue | 29 +++++++++-
2 files changed, 85 insertions(+), 3 deletions(-)
diff --git a/src/components/workflow/Step02AudioVideo.vue b/src/components/workflow/Step02AudioVideo.vue
index 26264c1..aae8b6f 100644
--- a/src/components/workflow/Step02AudioVideo.vue
+++ b/src/components/workflow/Step02AudioVideo.vue
@@ -4,6 +4,7 @@ import { storeToRefs } from "pinia";
import { useWorkflowStore } from "../../stores/workflow.js";
import { useAvatarStore } from "../../stores/avatar.js";
import VoiceManageDialog from "./VoiceManageDialog.vue";
+import { revealLocalFileInFolder } from "../../services/fileExport.js";
const workflow = useWorkflowStore();
const avatarStore = useAvatarStore();
@@ -14,10 +15,12 @@ const {
avatarSelect,
speechGenerating,
generatedAudioSrc,
+ generatedAudioPath,
currentAudioId,
audioHistory,
videoGenerating,
generatedVideoSrc,
+ generatedVideoPath,
currentVideoId,
videoHistory,
} = storeToRefs(workflow);
@@ -68,6 +71,21 @@ async function onPickAudioHistory() {
await workflow.pickAudioHistory(currentAudioId.value);
}
+async function onOpenAudioInExplorer() {
+ if (!generatedAudioPath.value) {
+ feedback.value = { severity: "error", message: "暂无音频文件" };
+ return;
+ }
+ try {
+ await revealLocalFileInFolder(generatedAudioPath.value);
+ } catch (err) {
+ feedback.value = {
+ severity: "error",
+ message: err instanceof Error ? err.message : String(err),
+ };
+ }
+}
+
async function onGenerateTalkingVideo() {
feedback.value = { severity: "", message: "" };
const result = await workflow.generateTalkingVideo();
@@ -84,6 +102,21 @@ async function onPickVideoHistory() {
await workflow.pickVideoHistory(currentVideoId.value);
}
+async function onOpenVideoInExplorer() {
+ if (!generatedVideoPath.value) {
+ feedback.value = { severity: "error", message: "暂无视频文件" };
+ return;
+ }
+ try {
+ await revealLocalFileInFolder(generatedVideoPath.value);
+ } catch (err) {
+ feedback.value = {
+ severity: "error",
+ message: err instanceof Error ? err.message : String(err),
+ };
+ }
+}
+
onMounted(() => {
avatarStore.refresh();
workflow.refreshAudioHistory();
@@ -155,7 +188,18 @@ onMounted(() => {
-
音频预览
+
+ 音频预览
+
+