From 91f8c6d50c5253b3ef98abdc4c32a8cfd3a215ff Mon Sep 17 00:00:00 2001 From: lanyeeee Date: Wed, 27 Aug 2025 07:32:52 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E6=A0=87=E8=AE=B0?= =?UTF-8?q?=E7=AB=A0=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SettingsDialog/components/DownloadSettings.vue | 7 +++++++ src/panes/DownloadPane/DownloadPane.vue | 12 ++++++++++++ .../DownloadPane/components/DownloadProgress.vue | 3 ++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/dialogs/SettingsDialog/components/DownloadSettings.vue b/src/dialogs/SettingsDialog/components/DownloadSettings.vue index cdc94fc..b7173be 100644 --- a/src/dialogs/SettingsDialog/components/DownloadSettings.vue +++ b/src/dialogs/SettingsDialog/components/DownloadSettings.vue @@ -67,6 +67,13 @@ const audioQualitySelectOptions: SelectBaseOption[] = [ json文件 + +
将章节信息嵌入mp4文件的元数据中
+
使视频在各类播放器中支持章节导航(例如进度条分段)
+ +
diff --git a/src/panes/DownloadPane/DownloadPane.vue b/src/panes/DownloadPane/DownloadPane.vue index 972eef6..8e10cf4 100644 --- a/src/panes/DownloadPane/DownloadPane.vue +++ b/src/panes/DownloadPane/DownloadPane.vue @@ -97,6 +97,7 @@ onMounted(async () => { const videoTask = progressData.video_task const audioTask = progressData.audio_task const mergeTask = progressData.merge_task + const embedChapterTask = progressData.embed_chapter_task const danmakuTask = progressData.danmaku_task const subtitleTask = progressData.subtitle_task const coverTask = progressData.cover_task @@ -115,9 +116,20 @@ onMounted(async () => { const completedChunks = progressData.audio_task.chunks.filter((chunk) => chunk.completed).length progressData.percentage = (completedChunks / chunkCount) * 100 progressData.taskIndicator = `音频分片 ${completedChunks}/${chunkCount}` + } else if ( + mergeTask.selected && + !mergeTask.completed && + embedChapterTask.selected && + !embedChapterTask.completed + ) { + progressData.percentage = 100 + progressData.taskIndicator = '合并视频音频+嵌入章节元数据' } else if (mergeTask.selected && !mergeTask.completed) { progressData.percentage = 100 progressData.taskIndicator = '合并视频和音频' + } else if (embedChapterTask.selected && !embedChapterTask.completed) { + progressData.percentage = 100 + progressData.taskIndicator = '嵌入章节元数据' } else if (danmakuSelected && !danmakuTask.completed) { progressData.percentage = 100 progressData.taskIndicator = '弹幕' diff --git a/src/panes/DownloadPane/components/DownloadProgress.vue b/src/panes/DownloadPane/components/DownloadProgress.vue index a0c90ce..f814b40 100644 --- a/src/panes/DownloadPane/components/DownloadProgress.vue +++ b/src/panes/DownloadPane/components/DownloadProgress.vue @@ -153,7 +153,7 @@ function handleSearchClick() { P{{ p.part_order }} {{ p.part_title }} -
+
视频(编码:{{ p.video_task.codec_type }} 画质:{{ p.video_task.video_quality }}) @@ -171,6 +171,7 @@ function handleSearchClick() { nfo元数据 json元数据 + 章节信息