feat: Geração de música cantada com melodia e instrumentos pelo MiniMax music-2.0 e barra de progresso animada em roxo vibrante no player
This commit is contained in:
+38
-1
@@ -7591,7 +7591,20 @@ window.toggleCustomAudio = (btn) => {
|
||||
});
|
||||
}
|
||||
|
||||
// Equalizer / Waveform Animation quando toca
|
||||
// Formatação de Tempo (mm:ss)
|
||||
const formatAudioTime = (sec) => {
|
||||
if (!sec || isNaN(sec)) return '0:00';
|
||||
const m = Math.floor(sec / 60);
|
||||
const s = Math.floor(sec % 60);
|
||||
return `${m}:${s < 10 ? '0' : ''}${s}`;
|
||||
};
|
||||
|
||||
// Equalizer / Waveform & Barra de Progresso Roxo Vibrante
|
||||
const musicaCustomProgressContainer = document.getElementById('musicaCustomProgressContainer');
|
||||
const musicaCustomProgressBar = document.getElementById('musicaCustomProgressBar');
|
||||
const musicaCurrentTime = document.getElementById('musicaCurrentTime');
|
||||
const musicaDurationTime = document.getElementById('musicaDurationTime');
|
||||
|
||||
if (musicaAudioPlayer) {
|
||||
musicaAudioPlayer.addEventListener('play', () => {
|
||||
const bars = document.querySelectorAll('#musicaWaveformVisualizer .wave-bar');
|
||||
@@ -7601,6 +7614,30 @@ window.toggleCustomAudio = (btn) => {
|
||||
const bars = document.querySelectorAll('#musicaWaveformVisualizer .wave-bar');
|
||||
bars.forEach(b => b.classList.remove('wave-active'));
|
||||
});
|
||||
musicaAudioPlayer.addEventListener('timeupdate', () => {
|
||||
const cur = musicaAudioPlayer.currentTime || 0;
|
||||
const dur = musicaAudioPlayer.duration || 0;
|
||||
if (musicaCurrentTime) musicaCurrentTime.textContent = formatAudioTime(cur);
|
||||
if (musicaDurationTime && dur) musicaDurationTime.textContent = formatAudioTime(dur);
|
||||
if (musicaCustomProgressBar && dur > 0) {
|
||||
const pct = Math.min(100, Math.max(0, (cur / dur) * 100));
|
||||
musicaCustomProgressBar.style.width = `${pct}%`;
|
||||
}
|
||||
});
|
||||
musicaAudioPlayer.addEventListener('loadedmetadata', () => {
|
||||
const dur = musicaAudioPlayer.duration || 0;
|
||||
if (musicaDurationTime) musicaDurationTime.textContent = formatAudioTime(dur);
|
||||
});
|
||||
|
||||
if (musicaCustomProgressContainer) {
|
||||
musicaCustomProgressContainer.addEventListener('click', (e) => {
|
||||
const rect = musicaCustomProgressContainer.getBoundingClientRect();
|
||||
const clickPos = (e.clientX - rect.left) / rect.width;
|
||||
if (musicaAudioPlayer.duration) {
|
||||
musicaAudioPlayer.currentTime = clickPos * musicaAudioPlayer.duration;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// --- GERAR MÚSICA (COMPOR 3 VERSÕES + ÁUDIO) ---
|
||||
|
||||
Reference in New Issue
Block a user