头像视频合成后,上传,查看

This commit is contained in:
spllzh
2025-10-08 11:50:49 +08:00
parent 45d061bad7
commit e5cba62007
26 changed files with 266 additions and 5 deletions

View File

@@ -107,6 +107,8 @@ public class AudioStatisticsScheduler {

View File

@@ -56,15 +56,15 @@ public class VideoSynthesisStatusScheduler {
try {
log.info("开始执行视频合成任务状态检查...");
// 查询所有PENDING状态的任务
// 查询所有PENDING或RUNNING状态的任务
List<VideoSynthesisLog> pendingTasks = getPendingTasks();
if (pendingTasks.isEmpty()) {
log.info("没有找到PENDING状态的任务");
log.info("没有找到PENDING或RUNNING状态的任务");
return;
}
log.info("找到{}个PENDING状态的任务开始检查状态", pendingTasks.size());
log.info("找到{}个PENDING或RUNNING状态的任务,开始检查状态", pendingTasks.size());
// 遍历每个任务,检查状态
for (VideoSynthesisLog task : pendingTasks) {
@@ -83,11 +83,11 @@ public class VideoSynthesisStatusScheduler {
}
/**
* 查询所有PENDING状态的任务
* 查询所有PENDING或RUNNING状态的任务
*/
private List<VideoSynthesisLog> getPendingTasks() {
QueryWrapper<VideoSynthesisLog> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("task_status", "PENDING");
queryWrapper.in("task_status", "PENDING", "RUNNING");
return videoSynthesisLogMapper.selectList(queryWrapper);
}
@@ -166,6 +166,15 @@ public class VideoSynthesisStatusScheduler {
task.setSuccess(true);
task.setResponseTime(LocalDateTime.now());
// 更新临时访问URL使用MinIO的预签名URL
try {
String tempUrl = generateTempVideoUrl(task.getVideoName(), task.getRequestId());
task.setVideoTempUrl(tempUrl);
log.info("更新临时访问URL: {}", tempUrl);
} catch (Exception e) {
log.warn("更新临时访问URL失败: {}", e.getMessage());
}
}
} else if ("FAILED".equals(taskStatus)) {
task.setSuccess(false);
@@ -355,4 +364,28 @@ public class VideoSynthesisStatusScheduler {
return null;
}
}
/**
* 生成临时视频访问URL
*
* @param videoName 视频名称
* @param requestId 请求ID
* @return 临时访问URL
*/
private String generateTempVideoUrl(String videoName, String requestId) {
try {
// 构建临时访问URL
// 格式: https://your-domain.com/video/temp/{requestId}?name={videoName}
String baseUrl = "https://your-domain.com"; // 这里应该从配置文件读取
String encodedVideoName = java.net.URLEncoder.encode(videoName, "UTF-8");
String tempUrl = String.format("%s/video/temp/%s?name=%s", baseUrl, requestId, encodedVideoName);
log.info("生成临时视频URL: 视频名称={}, 请求ID={}, URL={}", videoName, requestId, tempUrl);
return tempUrl;
} catch (Exception e) {
log.error("生成临时视频URL失败: {}", e.getMessage(), e);
return null;
}
}
}