MusicStudio: Suno/MusicGen 듀얼 프로바이더 UI 추가
- Provider 선택 바 (Suno 🎙️ / MusicGen 🤖) - Suno 전용: 보컬/인스트루멘탈 토글, 가사 입력, AI 가사 생성 - 라이브러리·결과 카드에 provider 뱃지 표시 - TrackResult에 가사 접기/펼치기 추가 - api.js: getMusicProviders, generateMusicLyrics 함수 추가 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
21
src/api.js
21
src/api.js
@@ -247,20 +247,33 @@ export function deleteSellHistory(id) {
|
||||
}
|
||||
|
||||
// ── AI 음악 생성 API ──────────────────────────────────────────────────────────
|
||||
// POST /api/music/generate body: { genre, moods, instruments, duration_sec, bpm, key, scale, prompt }
|
||||
// → { task_id: string }
|
||||
|
||||
// GET /api/music/providers → { providers: [{ id, name, description, features }] }
|
||||
export function getMusicProviders() {
|
||||
return apiGet('/api/music/providers');
|
||||
}
|
||||
|
||||
// POST /api/music/generate
|
||||
// body: { provider, genre, moods, instruments, duration_sec, bpm, key, scale, prompt, lyrics, instrumental }
|
||||
// → { task_id: string, provider: string }
|
||||
export function generateMusic(payload) {
|
||||
return apiPost('/api/music/generate', payload);
|
||||
}
|
||||
|
||||
// GET /api/music/status/:task_id
|
||||
// → { status: "queued"|"processing"|"succeeded"|"failed", progress: 0~100, message, audio_url?, error? }
|
||||
// → { status, progress, message, audio_url?, error?, provider?, track? }
|
||||
export function getMusicStatus(taskId) {
|
||||
return apiGet(`/api/music/status/${encodeURIComponent(taskId)}`);
|
||||
}
|
||||
|
||||
// POST /api/music/lyrics body: { prompt }
|
||||
// → { id, status, text } (Suno 가사 생성)
|
||||
export function generateMusicLyrics(prompt) {
|
||||
return apiPost('/api/music/lyrics', { prompt });
|
||||
}
|
||||
|
||||
// GET /api/music/library
|
||||
// → { tracks: [{ id, title, genre, moods, instruments, duration_id, bpm, key, scale, audio_url, created_at }] }
|
||||
// → { tracks: [{ id, title, genre, ..., provider, lyrics, image_url, suno_id }] }
|
||||
export function getMusicLibrary() {
|
||||
return apiGet('/api/music/library');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user