diff --git a/assets/js/creations/audio/audio_state.js b/assets/js/creations/audio/audio_state.js index 6d54ab61..174d5e73 100755 --- a/assets/js/creations/audio/audio_state.js +++ b/assets/js/creations/audio/audio_state.js @@ -145,25 +145,22 @@ export async function loadAudioForClip(clip) { } try { - const safeUrl = encodeURI(url).replace(/#/g, "%23"); + const safeUrl = encodeURI(clip.sourcePath).replace(/#/g, "%23"); const response = await fetch(safeUrl); - + if (!response.ok) throw new Error(`Falha ao buscar áudio: ${clip.sourcePath}`); + const arrayBuffer = await response.arrayBuffer(); const audioBuffer = await audioCtx.decodeAudioData(arrayBuffer); clip.buffer = audioBuffer; - - // --- Salva a duração original --- - if (clip.durationInSeconds === 0) { - clip.durationInSeconds = audioBuffer.duration; - } - // Salva a duração real do buffer para cálculos de stretch + if (clip.durationInSeconds === 0) clip.durationInSeconds = audioBuffer.duration; clip.originalDuration = audioBuffer.duration; } catch (error) { console.error(`Falha ao carregar áudio para o clipe ${clip.name}:`, error); } + return clip; }