html音乐播放器带歌词
时间: 2023-07-01 19:25:49 浏览: 359
好的,您需要一个带歌词的HTML音乐播放器。那么,您可以使用JavaScript编写一个自定义的音乐播放器,然后使用LRC歌词格式来显示歌词。以下是一个简单的示例:
```html
<!DOCTYPE html>
<html>
<head>
<title>HTML音乐播放器带歌词</title>
</head>
<body>
<audio id="music" src="your_music.mp3"></audio>
<div id="lyrics"></div>
<script>
var music = document.getElementById("music");
var lyrics = document.getElementById("lyrics");
var lyricText = "your_lyric.lrc"; // 歌词文件路径
// 解析歌词文件
function parseLyrics(lyrics) {
var lines = lyrics.split('\n');
var result = [];
for (var i = 0; i < lines.length; i++) {
var line = lines[i];
var timeReg = /\[\d*:\d*((\.|\:)\d*)*\]/g;
var timeRegExpArr = line.match(timeReg);
if (!timeRegExpArr) continue;
var text = line.replace(timeReg, '');
for (var j = 0; j < timeRegExpArr.length; j++) {
var t = timeRegExpArr[j];
var min = Number(String(t.match(/\[\d*/i)).slice(1));
var sec = Number(String(t.match(/\:\d*/i)).slice(1));
var time = min * 60 + sec;
result.push([time, text]);
}
}
result.sort(function(a, b) {
return a[0] - b[0];
});
return result;
}
// 显示歌词
function showLyrics(lyrics) {
var lyricIndex = 0;
setInterval(function() {
if (lyricIndex >= lyrics.length) return;
if (music.currentTime > lyrics[lyricIndex][0]) {
lyrics.innerHTML = lyrics[lyricIndex][1];
lyricIndex++;
}
}, 100);
}
// 加载歌词
function loadLyrics() {
var xhr = new XMLHttpRequest();
xhr.open('GET', lyricText, true);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
var lyrics = parseLyrics(xhr.responseText);
showLyrics(lyrics);
}
};
xhr.send();
}
// 播放音乐
music.onplay = function() {
loadLyrics();
};
</script>
</body>
</html>
```
您需要将`your_music.mp3`和`your_lyric.lrc`替换为您自己的音乐文件和歌词文件。此示例使用`XMLHttpRequest`从服务器加载歌词文件并使用`LRC`格式解析歌词。最后,使用`setInterval`函数来检查当前播放时间并显示相应的歌词。
阅读全文