mirror of
https://github.com/algerkong/AlgerMusicPlayer.git
synced 2026-05-15 00:27:32 +08:00
refactor(download): 重构下载系统,支持暂停/恢复/取消,修复歌词加载
- 新建 DownloadManager 类(主进程),每个任务独立 AbortController 控制 - 新建 Pinia useDownloadStore 作为渲染进程单一数据源 - 支持暂停/恢复/取消下载,支持断点续传(Range header) - 批量下载全部完成后发送汇总系统通知,单首不重复通知 - 并发数可配置(1-5),队列持久化(重启后恢复) - 修复下载列表不全、封面加载失败、通知重复等 bug - 修复本地/下载歌曲歌词加载:优先从 ID3/FLAC 元数据提取,API 作为 fallback - 删除 useDownloadStatus.ts,统一状态管理 - DownloadDrawer/DownloadPage 全面重写,移除 @apply 违规 - 新增 5 语言 i18n 键值(暂停/恢复/取消/排队中等)
This commit is contained in:
Vendored
+19
@@ -44,6 +44,25 @@ interface API {
|
||||
parseLocalMusicMetadata: (
|
||||
filePaths: string[]
|
||||
) => Promise<import('../renderer/types/localMusic').LocalMusicMeta[]>;
|
||||
// Download manager
|
||||
downloadAdd: (task: any) => Promise<string>;
|
||||
downloadAddBatch: (tasks: any) => Promise<{ batchId: string; taskIds: string[] }>;
|
||||
downloadPause: (taskId: string) => Promise<void>;
|
||||
downloadResume: (taskId: string) => Promise<void>;
|
||||
downloadCancel: (taskId: string) => Promise<void>;
|
||||
downloadCancelAll: () => Promise<void>;
|
||||
downloadGetQueue: () => Promise<any[]>;
|
||||
downloadSetConcurrency: (n: number) => void;
|
||||
downloadGetCompleted: () => Promise<any[]>;
|
||||
downloadDeleteCompleted: (filePath: string) => Promise<boolean>;
|
||||
downloadClearCompleted: () => Promise<boolean>;
|
||||
getEmbeddedLyrics: (filePath: string) => Promise<string | null>;
|
||||
downloadProvideUrl: (taskId: string, url: string) => Promise<void>;
|
||||
onDownloadProgress: (cb: (data: any) => void) => void;
|
||||
onDownloadStateChange: (cb: (data: any) => void) => void;
|
||||
onDownloadBatchComplete: (cb: (data: any) => void) => void;
|
||||
onDownloadRequestUrl: (cb: (data: any) => void) => void;
|
||||
removeDownloadListeners: () => void;
|
||||
}
|
||||
|
||||
// 自定义IPC渲染进程通信接口
|
||||
|
||||
Reference in New Issue
Block a user