This commit is contained in:
2026-02-24 21:41:05 +08:00
parent c1d1b0ed70
commit 9388f7d75b
7 changed files with 108 additions and 178 deletions

View File

@@ -12,7 +12,7 @@ import type {
IdentifyResult,
Video,
} from '../types/identify-face'
import { identifyUploadedVideo } from '@/api/kling'
import { identifyUploadedVideo, uploadAndIdentifyVideo } from '@/api/kling'
import { useUpload } from '@/composables/useUpload'
export function useDigitalHumanGeneration() {
@@ -90,6 +90,7 @@ export function useDigitalHumanGeneration() {
}
if (hasSelectedVideo) {
// 从素材库选择:调用识别接口
const res = await identifyUploadedVideo(hasSelectedVideo) as {
success: boolean;
data: { sessionId: string; faceId: string | null; startTime: number; endTime: number }
@@ -100,35 +101,18 @@ export function useDigitalHumanGeneration() {
identifyResult.value.faceStartTime = res.data.startTime || 0
identifyResult.value.faceEndTime = res.data.endTime || 0
} else {
// 上传新视频:使用 uploadAndIdentifyVideo 完成上传+识别
const file = hasUploadFile!
let coverBase64 = null
try {
const { extractVideoCover } = await import('@/utils/video-cover')
const cover = await extractVideoCover(file, { maxWidth: 800, quality: 0.8 })
coverBase64 = cover.base64
} catch {
// 封面提取失败不影响主流程
const res = await uploadAndIdentifyVideo(file) as {
success: boolean;
data: { fileId: string; sessionId: string; faceId: string | null; startTime: number; endTime: number }
}
const fileId = await upload(file, {
fileCategory: 'video',
groupId: null,
coverBase64,
onStart: function() {},
onProgress: function() {},
onSuccess: function() {},
onError: function(err: Error) {
message.error(err.message || '上传失败')
}
})
identifyResult.value.videoFileId = fileId
// 上传后需要再调用识别接口获取人脸信息
// 暂时清空,等待后续识别
identifyResult.value.sessionId = ''
identifyResult.value.faceId = ''
identifyResult.value.faceStartTime = 0
identifyResult.value.faceEndTime = 0
identifyResult.value.videoFileId = res.data.fileId
identifyResult.value.sessionId = res.data.sessionId
identifyResult.value.faceId = res.data.faceId || ''
identifyResult.value.faceStartTime = res.data.startTime || 0
identifyResult.value.faceEndTime = res.data.endTime || 0
}
return { ...identifyResult.value }