前端JS特效第15波:HTML5音乐播放器带歌词
warning:
这篇文章距离上次修改已过190天,其中的内容可能已经有所变动。
以下是一个简单的HTML5音乐播放器示例,它包括歌曲信息和歌词显示功能。
<!DOCTYPE html>
<html>
<head>
<title>HTML5 音乐播放器</title>
<style>
#audioPlayer {
width: 400px;
margin: auto;
text-align: center;
}
#lyrics {
width: 400px;
margin: auto;
text-align: center;
color: #fff;
font-size: 20px;
font-weight: bold;
}
</style>
</head>
<body>
<div id="audioPlayer">
<audio id="song" controls preload="auto">
<source src="your-song.mp3" type="audio/mp3">
对不起,您的浏览器不支持 audio 元素。
</audio>
<div id="lyrics">
歌词加载中...
</div>
</div>
<script>
window.onload = function() {
var audio = document.getElementById('song');
var lyrics = document.getElementById('lyrics');
var currentLyrics = '';
var nextLyrics = '';
var lyricsArray = ['这里是歌词1', '这里是歌词2', '这里是歌词3']; // 歌词数组
var currentTime = 0;
// 更新歌词函数
function updateLyrics() {
currentLyrics = lyricsArray[currentTime].replace(/^\s+|\s+$/g, ''); // 去除空白字符
nextLyrics = lyricsArray[currentTime + 1] ? lyricsArray[currentTime + 1].replace(/^\s+|\s+$/g, '') : '';
if (audio.currentTime >= currentTime && audio.currentTime < nextLyrics.length ? nextLyrics : currentLyrics) {
lyrics.textContent = currentLyrics;
}
}
// 监听时间更新事件
audio.addEventListener('timeupdate', function() {
// 每500毫秒检查一次歌词
if (audio.currentTime % 5 === 0) {
currentTime = Math.floor(audio.currentTime);
updateLyrics();
}
});
// 初始化歌词显示
updateLyrics();
};
</script>
</body>
</html>
在这个示例中,我们首先定义了一个简单的HTML结构,其中包括一个audio
元素和一个用于显示歌词的div
。然后,我们使用JavaScript在页面加载完成时初始化音乐播放器。我们创建了一个更新歌词的函数updateLyrics
,并且在timeupdate
事件中调用它,以便在音乐播放时更新歌词。
注意:这个示例假设歌词数组lyricsArray
已经按照对应的音乐时间点顺序填充了歌词。在实际应用中,歌词可能需要从外部文件加载,或者通过API获取。此外,歌词的同步可能需要更复杂的逻辑,例如考虑歌词的高亮显示、换行处理等。
评论已关闭