|
|
@@ -2802,20 +2802,17 @@ class AIVideoGenerationService
|
|
|
$apiStatus = strtolower((string)($inner['status'] ?? $outer['status'] ?? 'unknown'));
|
|
|
|
|
|
if (in_array($apiStatus, ['success', 'succeeded'], true)) {
|
|
|
- // 规范化为火山官方响应结构后,复用Seedance成功处理逻辑(下载/超分/压缩/时长/尾帧)
|
|
|
- $normalized = [
|
|
|
- 'status' => 'succeeded',
|
|
|
- 'content' => [
|
|
|
- 'video_url' => $inner['content']['video_url'] ?? ($outer['content']['video_url'] ?? ''),
|
|
|
- 'last_frame_url' => $inner['content']['last_frame_url'] ?? ($outer['content']['last_frame_url'] ?? ''),
|
|
|
- ],
|
|
|
- 'duration' => $inner['duration'] ?? ($outer['duration'] ?? 0),
|
|
|
- 'framespersecond' => $inner['framespersecond'] ?? 0,
|
|
|
- 'error_message' => '',
|
|
|
- // 保留token用量(快快AI返回结构:data.data.usage),供积分/token统计使用
|
|
|
- 'usage' => $inner['usage'] ?? ($outer['usage'] ?? []),
|
|
|
- ];
|
|
|
- return $this->processSeedanceSuccessResponse($task, $normalized);
|
|
|
+ // 完整保留网关返回的所有字段(code/message/data 等),仅将项目依赖的字段提升到顶层做兼容
|
|
|
+ $resultJson = $responseData;
|
|
|
+ $resultJson['status'] = 'succeeded';
|
|
|
+ $resultJson['content']['video_url'] = $inner['content']['video_url'] ?? ($outer['content']['video_url'] ?? '');
|
|
|
+ $resultJson['content']['last_frame_url'] = $inner['content']['last_frame_url'] ?? ($outer['content']['last_frame_url'] ?? '');
|
|
|
+ $resultJson['duration'] = $inner['duration'] ?? ($outer['duration'] ?? 0);
|
|
|
+ $resultJson['framespersecond'] = $inner['framespersecond'] ?? 0;
|
|
|
+ // 保留token用量(快快AI返回结构:data.data.usage),供积分/token统计使用
|
|
|
+ $resultJson['usage'] = $inner['usage'] ?? ($outer['usage'] ?? []);
|
|
|
+ $resultJson['error_message'] = '';
|
|
|
+ return $this->processSeedanceSuccessResponse($task, $resultJson);
|
|
|
}
|
|
|
|
|
|
if (in_array($apiStatus, ['failure', 'failed', 'expired'], true)) {
|