export type CreativeAudioAsset = { assetId: string; audioSrc: string; audioObjectKey: string; assetObjectId: string; source: string; prompt?: string | null; durationMs?: number | null; }; export function readCreativeAudioFileAsAsset( file: File, source: 'uploaded' | 'recorded', ) { return new Promise((resolve, reject) => { const reader = new FileReader(); reader.onerror = () => reject(new Error('音频读取失败,请重试。')); reader.onload = () => { if (typeof reader.result !== 'string') { reject(new Error('音频读取失败,请重试。')); return; } resolve({ assetId: `local-${source}-${Date.now()}`, audioSrc: reader.result, audioObjectKey: '', assetObjectId: '', source, prompt: file.name, durationMs: null, } as TAsset); }; reader.readAsDataURL(file); }); }