diff --git a/web/src/stores/use-asset-store.ts b/web/src/stores/use-asset-store.ts index a90c1a73b..f4b2572bd 100644 --- a/web/src/stores/use-asset-store.ts +++ b/web/src/stores/use-asset-store.ts @@ -59,7 +59,9 @@ const assetStorage: PersistStorage = { const parsed = JSON.parse(value) as StorageValue; parsed.state.assets = await Promise.all( parsed.state.assets.map(async (asset) => { - if ((asset.kind === "video" || asset.kind === "audio") && asset.data.storageKey) return { ...asset, data: { ...asset.data, url: await resolveMediaUrl(asset.data.storageKey, asset.data.url) } }; + // 视频和音频的数据结构不同,分别缩窄以保持 Asset 判别联合关系。 + if (asset.kind === "video" && asset.data.storageKey) return { ...asset, data: { ...asset.data, url: await resolveMediaUrl(asset.data.storageKey, asset.data.url) } }; + if (asset.kind === "audio" && asset.data.storageKey) return { ...asset, data: { ...asset.data, url: await resolveMediaUrl(asset.data.storageKey, asset.data.url) } }; if (asset.kind === "model" && asset.data.storageKey) return { ...asset, data: { ...asset.data, url: await resolveMediaUrl(asset.data.storageKey, asset.data.url) } }; if (asset.kind !== "image") return asset; if (asset.data.storageKey)