[00:00.000] 作词 : 조윤경 [00:01.000] 作曲 : 임광욱(PM Music)/Andrew 崔/Tesung Kim/Kalle Engstrom [00:05.870]Baby Don’t Cry [00:14.260]<백현>더는 망설이지 마 제발 내 심장을 거두어 가 [00:20.250]그래 날카로울수록 좋아 달빛조차도 눈을 감은 밤 [00:27.700]<디오>나 아닌 다른 남자였다면 희극 안의 한 구절이었더라면 [00:34.670]너의 그사람과 바꾼 상처 모두 태워 버려 [00:40.940]<all>Baby Don't Cry Tonight 어둠이 걷히고 나면 [00:47.870]Baby Don't Cry Tonight 없었던 일이 될 거야 [00:55.170]물거품이 되는 것은 네가 아니야 끝내 몰라야했던 [01:01.710]So Baby Don't Cry Cry 내 사랑이 널 지킬 테니 [01:16.300]<수호>오직 서로를 향해 있는 운명을 주고 받아 [01:23.140]엇갈릴 수밖에 없는 그 만큼도 사랑했음을 난 알아 [01:30.200]<디오>When you smile, sunshine [01:33.990]<백현>Oh 너란 틀에 미쳐 못 담을 찰나 [01:37.300]<디오>온 맘에 파도 쳐 [01:41.260]<수호>부서져 내리잖아 [01:43.500]<all>Baby Don't Cry Tonight [01:47.740]폭풍이 몰아치는 밤 (<백현> Oh woo 하늘이 무너질 듯) [01:51.250]Baby Don't Cry Tonight [01:54.700]조금은 어울리잖아 (<백현> 리잖아) [01:58.450]눈물보다 찬란히 빛나는 이 순간 (<백현> 이 순간) [02:01.780]너를 보내야했던 (<백현> Yeah-) [02:04.760]So Baby Don't Cry (<백현> Don't Cry) Cry (<백현> Cry) [02:08.740]내 사랑이 기억 될 테니 [02:12.290]<찬열>Yo 어두컴컴한 고통의 그늘 위 이별의 문턱엔 내가 무참히 [02:15.290]넘어져도 그 마저도 널 위해서라면 감당할 테니 [02:18.740]대신 나를 줄게 비록 날 모르는 너에게 Don't cry [02:22.820]뜨거운 눈물보단 차디찬 네 손을 보여 줘 Baby [02:26.680](Say no more) Baby (No more) Don't cry [02:29.280]제발 망설이지는 말아 줘 물거품이 될 그 찰나 [02:32.620](Say no more) Baby (No more) Don't cry [02:36.540]눈부신 사람으로 남을 수 있게 차라리 그 칼날을 태워 줘 [02:41.120]<디오>네 눈 속에 가득 차오르는 달빛 우후워- [02:47.790]<백현>소리 없이 고통 속에 흘러넘치는 이 밤 [02:53.160]<all>Baby Don't Cry (<디오> Cry) Tonight [02:56.150]어둠이 걷히고 나면 (What can hold you in my heart) [03:00.460]Baby Don't Cry Tonight 없었던 일이 될 거야 (<수호> Oh-) [03:07.820]물거품이 되는 것은 네가 아니야 [03:11.170]끝내 몰라야했던 (<백현> 워우워우우우) [03:14.430]So Baby Don't Cry (<백현> Don't cry cry) [03:17.810]Cry 내 사랑이 널 지킬 테니 (<백현> Cry Cry) [03:22.750]<백현>이른 햇살이 녹아 내린다 (<디오> 녹아) [03:26.760]너를 닮은 눈부심이 내린다 (<디오> Falling down) [03:29.910]<수호>길을 잃은 내 눈은 (<디오> 어허우) 이제야 Cry cry cry </all></all></all></pre> </section> <!-- 翻译歌词版本 --> <section id="translated-lyric" class="lyric-section" style="display: none;"> <button class="copy-btn" onclick="copyLyric('translated-lyric')"> <span>📋</span> 复制 </button> <pre class="lyric-content">拜托别再犹豫了好吗 就请拿出我的心脏 对 越是锋利就越好 美丽的月光 把眼睛关上 如果不是我是别的男人 如果只是喜剧中的一句话 那就把你的伤口付之一炬 我会拿我的爱交换伤痕 Baby don’t cry tonight 这黑夜终将会过去 Baby don’t cry tonight 以后再也不会有伤痛 看似过去的一切徒然 可是你必须知道它不会结束 so Baby don’t cry cry 我的爱会守护着你 交换着只向着对方的命运 只能相互交错 我却知道我会因此更爱你 无法用语言形容的灿烂 整颗心起波浪 拍碎了就停下来 这样风雨交加的夜晚(哦 天空似乎也在坍塌) 不觉的有些应景么 比泪水还要灿烂的一瞬间 我却目送你离开 我会记住我的爱 站在残暴离别的门槛的阴影里 黄昏的疼痛填满我的心 即是跌跌撞撞步履蹒跚 为你我会尽数承担 作为交换我会献出我自己 献给已经忘了我的你don`t cry 比起滚烫的泪水 我想要你对我冰冷的微笑 Baby 请你别再犹豫 在一切都将成为幻影的刹那 让我们的爱化为永恒的爱恋 就让那耀眼灼烧的剑送我一程 璀璨的星上升的满月全都在你的眼中 无声无息 随着痛苦中满溢而出在这个夜晚 这黑夜终将会过去 Baby Don't Cry Tonight以后再也不会有伤痛 看似过去的一切徒然 可是你必须知道它不会结束 Cry 我的爱会守护着你 清晨的阳光融化了一切 看起来就像你的炫目璀璨 迷失路途的我的双眼总算能够Cry cry cry</pre> </section> <!-- 翻译歌词版本 --> <section id="translatedlrc-lyric" class="lyric-section" style="display: none;"> <button class="copy-btn" onclick="copyLyric('translatedlrc-lyric')"> <span>📋</span> 复制 </button> <pre class="lyric-content">[00:05.870] [00:14.260]拜托别再犹豫了好吗 就请拿出我的心脏 [00:20.250]对 越是锋利就越好 美丽的月光 把眼睛关上 [00:27.700]如果不是我是别的男人 如果只是喜剧中的一句话 [00:34.670]那就把你的伤口付之一炬 我会拿我的爱交换伤痕 [00:40.940]Baby don’t cry tonight 这黑夜终将会过去 [00:47.870]Baby don’t cry tonight 以后再也不会有伤痛 [00:55.170]看似过去的一切徒然 可是你必须知道它不会结束 [01:01.710]so Baby don’t cry cry 我的爱会守护着你 [01:16.300]交换着只向着对方的命运 [01:23.140]只能相互交错 我却知道我会因此更爱你 [01:30.200] [01:33.990]无法用语言形容的灿烂 [01:37.300]整颗心起波浪 [01:41.260]拍碎了就停下来 [01:43.500] [01:47.740]这样风雨交加的夜晚(哦 天空似乎也在坍塌) [01:51.250] [01:54.700]不觉的有些应景么 [01:58.450]比泪水还要灿烂的一瞬间 [02:01.780]我却目送你离开 [02:04.760] [02:08.740]我会记住我的爱 [02:12.290]站在残暴离别的门槛的阴影里 黄昏的疼痛填满我的心 [02:15.290]即是跌跌撞撞步履蹒跚 为你我会尽数承担 [02:18.740]作为交换我会献出我自己 献给已经忘了我的你don`t cry [02:22.820]比起滚烫的泪水 我想要你对我冰冷的微笑 Baby [02:26.680] [02:29.280]请你别再犹豫 在一切都将成为幻影的刹那 [02:32.620] [02:36.540]让我们的爱化为永恒的爱恋 就让那耀眼灼烧的剑送我一程 [02:41.120]璀璨的星上升的满月全都在你的眼中 [02:47.790]无声无息 随着痛苦中满溢而出在这个夜晚 [02:53.160] [02:56.150]这黑夜终将会过去 [03:00.460]Baby Don't Cry Tonight以后再也不会有伤痛 [03:07.820]看似过去的一切徒然 [03:11.170]可是你必须知道它不会结束 [03:14.430] [03:17.810]Cry 我的爱会守护着你 [03:22.750]清晨的阳光融化了一切 [03:26.760]看起来就像你的炫目璀璨 [03:29.910]迷失路途的我的双眼总算能够Cry cry cry</pre> </section> <!-- 下载区域 --> <div class="download-section"> <div class="download-buttons"> <button class="download-btn" onclick="downloadLyric('lrc')"> 📥 下载LRC歌词 </button> <button class="download-btn" style="background: linear-gradient(135deg, #81C784 0%, #66BB6A 100%);" onclick="downloadLyric('txt')"> 📄 下载TXT歌词 </button> <button class="download-btn" style="background: linear-gradient(135deg, #4DB6AC 0%, #26A69A 100%);" onclick="downloadLyric('translated')"> 🌍 下载翻译歌词 </button> </div> <p class="download-tip">支持卡拉OK同步显示,可用记事本编辑</p> </div> </div> <!-- 音频播放器 --> <div class="audio-player" id="audioPlayer"> <div class="player-header"> <div class="player-info" id="playerInfo"> 正在播放: Baby, Don&#039;t Cry (인어의 눈물) </div> <div class="player-actions"> <button class="player-action-btn" onclick="minimizePlayer()" title="最小化">➖</button> <button class="player-action-btn" onclick="togglePlayer()" title="关闭播放器">×</button> </div> </div> <div class="player-controls"> <button class="control-btn" onclick="togglePlay()" id="playPauseBtn">▶️</button> <div class="progress-bar" onclick="seekAudio(event)" id="progressBar"> <div class="progress" id="progress"></div> </div> <div class="time-display" id="timeDisplay">0:00 / 0:00</div> </div> <!-- 额外控制按钮 --> <div class="player-extra-controls"> <button class="extra-control-btn" onclick="toggleLoop()" id="loopBtn" title="循环播放"> 🔄 单曲循环 </button> <button class="extra-control-btn" onclick="toggleMute()" id="muteBtn" title="静音"> 🔊 音量 </button> </div> <!-- 歌词显示区域 --> <div class="lyrics-display" id="lyricsDisplay"> <div class="lyric-line">加载歌词中...</div> </div> <audio id="audioElement" preload="metadata"> <!-- 音频源将通过JavaScript设置 --> </audio> </div> <!-- 迷你播放条 --> <div class="mini-player" id="miniPlayer"> <div class="mini-player-info"> <div class="mini-player-title">Baby, Don&#039;t Cry (인어의 눈물)</div> <div class="mini-player-artist">EXO</div> </div> <div class="mini-player-controls"> <button class="mini-player-btn" onclick="togglePlay()" id="miniPlayPauseBtn">▶️</button> <button class="mini-player-btn expand" onclick="expandPlayer()" title="展开播放器">⛶</button> </div> </div> <!-- 固定按钮组 --> <div class="fixed-buttons"> <button class="play-music-btn" onclick="togglePlayer()" id="playMusicBtn" title="播放音乐">🎵</button> <button class="back-to-top" onclick="scrollToTop()" title="返回顶部">↑</button> </div> <script> // 音频播放相关变量 let audio = null; let isPlaying = false; let playerVisible = false; let lyricsData = []; let currentLyricIndex = -1; let isLooping = false; let isMuted = false; let isMinimized = false; // 歌词切换功能 function showLyric(type) { document.querySelectorAll('.lyric-section').forEach(section => { section.style.display = 'none'; }); document.querySelectorAll('.switch-btn').forEach(btn => { btn.classList.remove('active'); }); const targetSection = document.getElementById(`${type}-lyric`); if (targetSection) { targetSection.style.display = 'block'; event.target.classList.add('active'); } } // 复制歌词功能 async function copyLyric(sectionId) { const lyricSection = document.getElementById(sectionId); const lyricContent = lyricSection.querySelector('.lyric-content'); const copyBtn = lyricSection.querySelector('.copy-btn'); const originalText = copyBtn.innerHTML; const text = lyricContent.innerText; try { await navigator.clipboard.writeText(text); // 显示复制成功反馈 copyBtn.innerHTML = '<span>✅</span> 已复制'; copyBtn.classList.add('copied'); // 2秒后恢复原状 setTimeout(() => { copyBtn.innerHTML = originalText; copyBtn.classList.remove('copied'); }, 2000); } catch (err) { console.error('复制失败:', err); // 备用复制方法 const textArea = document.createElement('textarea'); textArea.value = text; document.body.appendChild(textArea); textArea.select(); try { document.execCommand('copy'); // 显示复制成功反馈 copyBtn.innerHTML = '<span>✅</span> 已复制'; copyBtn.classList.add('copied'); setTimeout(() => { copyBtn.innerHTML = originalText; copyBtn.classList.remove('copied'); }, 2000); } catch (err2) { console.error('备用复制方法也失败:', err2); alert('复制失败,请手动选择文本复制'); } document.body.removeChild(textArea); } } // 下载歌词功能 function downloadLyric(type) { let content = ''; let filename = ''; const songName = 'Baby, Don&#039;t Cry (인어의 눈물)'; const artistName = 'EXO'; switch(type) { case 'lrc': content = document.querySelector('#lrc-lyric .lyric-content').innerText; filename = `${songName}-${artistName}.lrc`; break; case 'txt': content = document.querySelector('#plain-lyric .lyric-content').innerText; filename = `${songName}-${artistName}.txt`; break; case 'translated': content = document.querySelector('#translated-lyric .lyric-content').innerText; filename = `${songName}-${artistName}-翻译.txt`; break; default: return; } // 创建Blob对象 const blob = new Blob([content], { type: 'text/plain;charset=utf-8' }); // 创建下载链接 const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = filename; document.body.appendChild(a); a.click(); // 清理 setTimeout(() => { document.body.removeChild(a); URL.revokeObjectURL(url); }, 100); } // 返回顶部功能 function scrollToTop() { window.scrollTo({ top: 0, behavior: 'smooth' }); } // 显示/隐藏返回顶部按钮 window.addEventListener('scroll', function() { const backToTopBtn = document.querySelector('.back-to-top'); if (window.pageYOffset > 300) { backToTopBtn.classList.add('show'); } else { backToTopBtn.classList.remove('show'); } }); // 切换播放器显示/隐藏 function togglePlayer() { const player = document.getElementById('audioPlayer'); const miniPlayer = document.getElementById('miniPlayer'); if (playerVisible) { // 关闭播放器 player.classList.remove('show'); miniPlayer.classList.remove('show'); playerVisible = false; isMinimized = false; // 暂停音频 if (audio && !audio.paused) { togglePlay(); } } else { // 打开播放器 player.classList.add('show'); playerVisible = true; isMinimized = false; // 初始化音频 initAudio(); } } // 最小化播放器 function minimizePlayer() { const player = document.getElementById('audioPlayer'); const miniPlayer = document.getElementById('miniPlayer'); player.classList.add('minimized'); miniPlayer.classList.add('show'); isMinimized = true; // 隐藏完整播放器,但保持音乐播放 setTimeout(() => { player.classList.remove('show'); }, 300); } // 展开播放器 function expandPlayer() { const player = document.getElementById('audioPlayer'); const miniPlayer = document.getElementById('miniPlayer'); miniPlayer.classList.remove('show'); player.classList.remove('minimized'); player.classList.add('show'); isMinimized = false; } // 切换循环播放 function toggleLoop() { if (!audio) return; isLooping = !isLooping; audio.loop = isLooping; const loopBtn = document.getElementById('loopBtn'); if (isLooping) { loopBtn.classList.add('active'); loopBtn.innerHTML = '🔁 单曲循环'; loopBtn.title = '关闭循环'; } else { loopBtn.classList.remove('active'); loopBtn.innerHTML = '🔄 单曲循环'; loopBtn.title = '开启循环'; } } // 切换静音 function toggleMute() { if (!audio) return; isMuted = !isMuted; audio.muted = isMuted; const muteBtn = document.getElementById('muteBtn'); if (isMuted) { muteBtn.classList.add('active'); muteBtn.innerHTML = '🔇 静音'; muteBtn.title = '取消静音'; } else { muteBtn.classList.remove('active'); muteBtn.innerHTML = '🔊 音量'; muteBtn.title = '静音'; } } // 解析LRC歌词 - 修复时间戳问题 function parseLRC(lrcText) { const lines = lrcText.split('n'); const lyrics = []; // 添加一个起始空歌词 lyrics.push({ time: 0, text: '' }); lines.forEach(line => { // 匹配时间标签 [00:00.00] 或 [00:00:00] 格式 const timeMatches = line.match(/[(d+):(d+)(?:.|:)(d+)]/g); if (timeMatches) { const text = line.replace(/[.*?]/g, '').trim(); if (text) { timeMatches.forEach(timeTag => { // 匹配 [分:秒.百分秒] 或 [分:秒:毫秒] 格式 const timeMatch = timeTag.match(/[(d+):(d+)(?:.|:)(d+)]/); if (timeMatch) { const minutes = parseInt(timeMatch[1]); const seconds = parseInt(timeMatch[2]); let milliseconds = parseInt(timeMatch[3]); // 根据位数判断是百分秒还是毫秒 // 如果是2位数,是百分秒(1/100秒),需要转换为毫秒 // 如果是3位数,是毫秒(1/1000秒) if (timeMatch[3].length === 2) { milliseconds = milliseconds * 10; // 转换为毫秒 } const time = minutes * 60 + seconds + milliseconds / 1000; lyrics.push({ time: time, text: text }); } }); } } }); // 按时间排序 lyrics.sort((a, b) => a.time - b.time); return lyrics; } // 显示歌词 function displayLyrics() { const lrcContent = document.querySelector('#lrc-lyric .lyric-content'); if (lrcContent) { const lrcText = lrcContent.innerText; lyricsData = parseLRC(lrcText); const lyricsDisplay = document.getElementById('lyricsDisplay'); lyricsDisplay.innerHTML = ''; if (lyricsData.length > 0) { lyricsData.forEach((lyric, index) => { const lyricElement = document.createElement('div'); lyricElement.className = 'lyric-line'; lyricElement.textContent = lyric.text || '♪'; lyricElement.dataset.index = index; lyricsDisplay.appendChild(lyricElement); }); } else { lyricsDisplay.innerHTML = '<div class="lyric-line">暂无歌词数据</div>'; } } } // 更新当前歌词 function updateCurrentLyric(currentTime) { if (lyricsData.length === 0) return; // 找到当前时间对应的歌词 let newIndex = -1; for (let i = lyricsData.length - 1; i >= 0; i--) { if (lyricsData[i].time <= currentTime) { newIndex = i; break; } } // 如果歌词索引发生变化,更新显示 if (newIndex !== currentLyricIndex) { currentLyricIndex = newIndex; // 移除所有激活状态 document.querySelectorAll('.lyric-line').forEach(line => { line.classList.remove('active', 'past'); }); // 设置当前歌词和之前的歌词样式 document.querySelectorAll('.lyric-line').forEach((line, index) => { if (index === currentLyricIndex) { line.classList.add('active'); // 滚动到当前歌词 line.scrollIntoView({ behavior: 'smooth', block: 'center' }); } else if (index < currentLyricIndex) { line.classList.add('past'); } }); } } // 点击进度条跳转 function seekAudio(event) { if (!audio) return; const progressBar = document.getElementById('progressBar'); const rect = progressBar.getBoundingClientRect(); const percent = (event.clientX - rect.left) / rect.width; audio.currentTime = percent * audio.duration; } // 初始化音频 function initAudio() { if (!audio) { audio = document.getElementById('audioElement'); const songId = 26428002; const audioUrl = `https://music.163.com/song/media/outer/url?id=${songId}.mp3`; // 设置音频源 audio.src = audioUrl; // 音频加载成功事件 audio.addEventListener('loadeddata', function() { console.log('音频加载成功'); // 加载歌词 displayLyrics(); }); // 音频加载失败事件 audio.addEventListener('error', function(e) { console.error('音频加载失败:', e); document.getElementById('playerInfo').textContent = '付费歌曲,请支持正版'; document.getElementById('playPauseBtn').disabled = true; document.getElementById('playPauseBtn').textContent = '🚫'; document.getElementById('miniPlayPauseBtn').disabled = true; document.getElementById('miniPlayPauseBtn').textContent = '🚫'; // 显示付费提示而不是歌词 const lyricsDisplay = document.getElementById('lyricsDisplay'); lyricsDisplay.innerHTML = ` <div class="premium-notice"> <span class="icon">🎵</span> <div>此歌曲为付费内容</div> <div>请大家支持正版音乐</div> <div style="margin-top: 10px; font-size: 0.8rem; color: var(--text-light);"> 购买正版专辑或订阅音乐平台以享受完整服务 </div> </div> `; }); // 音频加载完成事件 audio.addEventListener('loadedmetadata', function() { updateTimeDisplay(); }); // 音频时间更新事件 audio.addEventListener('timeupdate', function() { updateProgress(); updateTimeDisplay(); updateCurrentLyric(audio.currentTime); }); // 音频结束事件 - 如果是循环模式,会自动重新播放 audio.addEventListener('ended', function() { if (!audio.loop) { isPlaying = false; document.getElementById('playPauseBtn').textContent = '▶️'; document.getElementById('miniPlayPauseBtn').textContent = '▶️'; document.getElementById('playMusicBtn').classList.remove('playing'); // 重置歌词 currentLyricIndex = -1; document.querySelectorAll('.lyric-line').forEach(line => { line.classList.remove('active', 'past'); }); } }); // 尝试预加载音频 audio.load(); } } // 切换播放/暂停 function togglePlay() { if (!audio || !audio.src) return; if (isPlaying) { audio.pause(); document.getElementById('playPauseBtn').textContent = '▶️'; document.getElementById('miniPlayPauseBtn').textContent = '▶️'; document.getElementById('playMusicBtn').classList.remove('playing'); } else { audio.play().catch(e => { console.error('播放失败:', e); // 如果播放失败,也显示付费提示 document.getElementById('playerInfo').textContent = '付费歌曲,请支持正版'; document.getElementById('playPauseBtn').disabled = true; document.getElementById('playPauseBtn').textContent = '🚫'; document.getElementById('miniPlayPauseBtn').disabled = true; document.getElementById('miniPlayPauseBtn').textContent = '🚫'; const lyricsDisplay = document.getElementById('lyricsDisplay'); lyricsDisplay.innerHTML = ` <div class="premium-notice"> <span class="icon">🎵</span> <div>此歌曲为付费内容</div> <div>请大家支持正版音乐</div> <div style="margin-top: 10px; font-size: 0.8rem; color: var(--text-light);"> 购买正版专辑或订阅音乐平台以享受完整服务 </div> </div> `; }); document.getElementById('playPauseBtn').textContent = '⏸️'; document.getElementById('miniPlayPauseBtn').textContent = '⏸️'; document.getElementById('playMusicBtn').classList.add('playing'); } isPlaying = !isPlaying; } // 更新进度条 function updateProgress() { if (!audio) return; const progress = document.getElementById('progress'); const percentage = (audio.currentTime / audio.duration) * 100; progress.style.width = percentage + '%'; } // 更新时间显示 function updateTimeDisplay() { if (!audio) return; const timeDisplay = document.getElementById('timeDisplay'); const currentTime = formatTime(audio.currentTime); const duration = formatTime(audio.duration); timeDisplay.textContent = `${currentTime} / ${duration}`; } // 格式化时间(秒 -> 分:秒) function formatTime(seconds) { if (isNaN(seconds)) return '0:00'; const mins = Math.floor(seconds / 60); const secs = Math.floor(seconds % 60); return `${mins}:${secs < 10 ? '0' : ''}${secs}`; } // 页面加载完成后初始化 document.addEventListener('DOMContentLoaded', function() { // 确保纯歌词版本默认显示 showLyric('plain'); }); </script> <script src="/static/js/connJs.js"></script> </body></html>