11
This commit is contained in:
@@ -1,12 +1,11 @@
|
||||
import { convertFileSrc, isTauri } from "@tauri-apps/api/core";
|
||||
|
||||
/**
|
||||
* 本地视频文件转为 WebView 可播放地址
|
||||
* @param {string} filePath
|
||||
*/
|
||||
export function localVideoToPlayableUrl(filePath) {
|
||||
if (!isTauri()) {
|
||||
throw new Error("请在 Tauri 桌面端预览视频");
|
||||
throw new Error("请在 Tauri 桌面端使用视频播放功能");
|
||||
}
|
||||
return convertFileSrc(filePath);
|
||||
}
|
||||
|
||||
42
src/services/videoDb.js
Normal file
42
src/services/videoDb.js
Normal file
@@ -0,0 +1,42 @@
|
||||
import { invoke, isTauri } from "@tauri-apps/api/core";
|
||||
|
||||
function ensureTauri() {
|
||||
if (!isTauri()) {
|
||||
throw new Error("视频历史需在 Tauri 桌面端使用");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @typedef {{ id: number, name: string, filePath: string, avatarId: number | null, audioId: number | null, createdAt: string }} GeneratedVideoRecord
|
||||
*/
|
||||
|
||||
/** @returns {Promise<GeneratedVideoRecord[]>} */
|
||||
export async function listGeneratedVideos() {
|
||||
ensureTauri();
|
||||
return invoke("list_generated_videos");
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} sourcePath
|
||||
* @param {string} name
|
||||
* @param {number | null} [avatarId]
|
||||
* @param {number | null} [audioId]
|
||||
* @returns {Promise<GeneratedVideoRecord>}
|
||||
*/
|
||||
export async function importGeneratedVideo(sourcePath, name, avatarId = null, audioId = null) {
|
||||
ensureTauri();
|
||||
return invoke("import_generated_video", {
|
||||
sourcePath,
|
||||
name,
|
||||
avatarId: avatarId ?? null,
|
||||
audioId: audioId ?? null,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {number} id
|
||||
*/
|
||||
export async function deleteGeneratedVideo(id) {
|
||||
ensureTauri();
|
||||
return invoke("delete_generated_video", { id });
|
||||
}
|
||||
Reference in New Issue
Block a user