From 7acb6403d8f80b40b176cdfbc4456f09eb93fcc6 Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Thu, 15 May 2025 08:13:25 +0800 Subject: [PATCH] 'commit' --- .../Util/Suno/SunoMusicGenerator.java | 37 +++++++++++++------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Suno/SunoMusicGenerator.java b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Suno/SunoMusicGenerator.java index 516698a3..b2e3ae63 100644 --- a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Suno/SunoMusicGenerator.java +++ b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Suno/SunoMusicGenerator.java @@ -187,21 +187,27 @@ public class SunoMusicGenerator { System.out.println("状态: " + status); // 检查是否是我们要查询的任务 - if (taskIds.contains(clipId)) { - // 检查是否完成 - if ("complete".equals(status)) { + // 注意:这里我们不再检查taskIds.contains(clipId),因为我们查询的是clips ID + // 检查是否完成 + if ("complete".equals(status)) { + // 确保audio_url字段存在 + if (clip.containsKey("audio_url") && clip.getString("audio_url") != null && !clip.getString("audio_url").isEmpty()) { audioUrl = clip.getString("audio_url"); System.out.println("音乐生成已完成!"); System.out.println("音频URL: " + audioUrl); isComplete = true; - break; // 找到了我们要查询的任务,并且已完成 - } else if ("streaming".equals(status)) { - System.out.println("音乐生成中,继续等待..."); - } else if ("failed".equals(status)) { - System.out.println("音乐生成失败!"); - isComplete = true; // 任务失败,不再继续查询 - break; + break; // 找到了已完成的任务 + } else { + System.out.println("音乐生成已完成,但未找到音频URL!"); + // 打印完整的clip信息以便调试 + System.out.println("完整的片段信息: " + clip.toJSONString()); } + } else if ("streaming".equals(status)) { + System.out.println("音乐生成中,继续等待..."); + } else if ("failed".equals(status)) { + System.out.println("音乐生成失败!"); + isComplete = true; // 任务失败,不再继续查询 + break; } } } else { @@ -212,13 +218,20 @@ public class SunoMusicGenerator { } // 3. 下载音频文件(如果生成成功) - if (isComplete && audioUrl != null) { + if (isComplete && audioUrl != null && !audioUrl.isEmpty()) { + // 移除URL中可能存在的反引号 + audioUrl = audioUrl.replace("`", "").trim(); + String fileName = "suno_music_" + System.currentTimeMillis() + ".mp3"; - String savePath = "./downloads/" + fileName; + // 使用basePath作为保存目录 + String savePath = basePath + fileName; + System.out.println("准备下载音频到: " + savePath); downloadAudio(client, audioUrl, savePath); } else if (retryCount >= MAX_RETRIES) { System.out.println("达到最大重试次数,任务可能仍在处理中"); System.out.println("请稍后手动查询任务ID: " + taskId); + } else if (audioUrl == null || audioUrl.isEmpty()) { + System.out.println("未能获取有效的音频URL,无法下载"); } }