From 900d07db087c3ea8f779403eabbc8f303c2ea566 Mon Sep 17 00:00:00 2001 From: JotaChina Date: Thu, 25 Dec 2025 18:04:20 -0300 Subject: [PATCH] playlist importando sample track --- assets/js/creations/file.js | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/assets/js/creations/file.js b/assets/js/creations/file.js index 47f4045c..8386c4e7 100755 --- a/assets/js/creations/file.js +++ b/assets/js/creations/file.js @@ -416,16 +416,25 @@ export async function parseMmpContent(xmlString) { // cada é um clip const clips = Array.from(node.querySelectorAll(":scope > sampletco")); clips.forEach((c, cidx) => { - const src = c.getAttribute("src") || ""; - const fileName = src.split(/[\\/]/).pop(); // "#2.wav" - // resolve caminho via manifest; fallback para /samples - const resolvedUrl = - (fileName && pathMap[fileName]) || - (fileName ? `${SAMPLE_SRC}/${fileName}` : null); + const src = c.getAttribute("src") || ""; + const fileName = src.split(/[\\/]/).pop(); // "#2.wav" + const projectFolder = encodeURIComponent(lastFolder(src) || ""); // "210424" + const encodedFile = encodeURIComponent(fileName); + + // tenta pelo manifest primeiro + let resolvedUrl = fileName ? pathMap[fileName] : null; + + // se o manifest não tiver ou não vier com /{project}/, monta no padrão do servidor + if (!resolvedUrl || (projectFolder && !resolvedUrl.includes(`/${projectFolder}/`))) { + resolvedUrl = projectFolder + ? `${SAMPLE_SRC}/${projectFolder}/${encodedFile}` // ✅ SAMPLE_SRC/{project}/{file} + : null; + } if (!resolvedUrl) return; + const posTicks = Number(c.getAttribute("pos") || 0); const lenTicks = Number(c.getAttribute("len") || 0);