用html做一个音乐播放器,有时长显示、上一首、下一首、暂停按钮,还有进度条
时间: 2023-07-10 12:09:31 浏览: 373
flash音乐播放器_教程.doc
5星 · 资源好评率100%
好的,以下是一个简单的HTML音乐播放器示例:
```html
<!DOCTYPE html>
<html>
<head>
<title>音乐播放器</title>
<style>
audio {
width: 100%;
}
</style>
</head>
<body>
<audio src="music1.mp3" controls></audio>
<div>
<button onclick="playPrev()">上一首</button>
<button onclick="playPause()">暂停</button>
<button onclick="playNext()">下一首</button>
<span id="currentTime">00:00</span>/<span id="duration">00:00</span>
<input type="range" id="progress" min="0" max="100" value="0" onchange="seek()">
</div>
<script>
var audio = document.getElementsByTagName('audio')[0];
var playButton = document.getElementsByTagName('button')[1];
var prevButton = document.getElementsByTagName('button')[0];
var nextButton = document.getElementsByTagName('button')[2];
var currentTime = document.getElementById('currentTime');
var duration = document.getElementById('duration');
var progress = document.getElementById('progress');
function playPause() {
if (audio.paused) {
audio.play();
playButton.innerHTML = "暂停";
} else {
audio.pause();
playButton.innerHTML = "播放";
}
}
function playPrev() {
var src = audio.src;
var currentIndex = 1;
for (var i = 0; i < playlist.length; i++) {
if (playlist[i].src === src) {
currentIndex = i;
break;
}
}
if (currentIndex === 0) {
currentIndex = playlist.length - 1;
} else {
currentIndex--;
}
audio.src = playlist[currentIndex].src;
audio.play();
playButton.innerHTML = "暂停";
}
function playNext() {
var src = audio.src;
var currentIndex = 1;
for (var i = 0; i < playlist.length; i++) {
if (playlist[i].src === src) {
currentIndex = i;
break;
}
}
if (currentIndex === playlist.length - 1) {
currentIndex = 0;
} else {
currentIndex++;
}
audio.src = playlist[currentIndex].src;
audio.play();
playButton.innerHTML = "暂停";
}
audio.addEventListener('loadedmetadata', function() {
duration.innerHTML = formatTime(audio.duration);
});
audio.addEventListener('timeupdate', function() {
currentTime.innerHTML = formatTime(audio.currentTime);
progress.value = audio.currentTime / audio.duration * 100;
});
function seek() {
audio.currentTime = progress.value / 100 * audio.duration;
}
function formatTime(time) {
var minutes = Math.floor(time / 60);
var seconds = Math.floor(time % 60);
if (minutes < 10) {
minutes = "0" + minutes;
}
if (seconds < 10) {
seconds = "0" + seconds;
}
return minutes + ":" + seconds;
}
var playlist = [
{src: "music1.mp3"},
{src: "music2.mp3"},
{src: "music3.mp3"}
];
</script>
</body>
</html>
```
解析:
1. 首先,我们使用 `<audio>` 标签来创建音频播放器。属性 `src` 指定要播放的音频文件,属性 `controls` 添加控制按钮(播放/暂停、音量、快进/快退等)。
2. 接下来,我们添加三个按钮:上一首、暂停、下一首。并且在按钮点击后调用相应的 JavaScript 函数。其中,`playPause()` 函数切换播放/暂停状态,`playPrev()` 函数切换到上一首,`playNext()` 函数切换到下一首。
3. 我们使用 `<span>` 标签来显示当前时间和总时长。在 JavaScript 中,我们使用 `loadedmetadata` 和 `timeupdate` 事件来更新时间。`formatTime()` 函数用于将时间格式化为 `mm:ss` 的形式。
4. 我们使用 `<input>` 标签来创建进度条,并且在 `onchange` 事件中调用 `seek()` 函数。在 `timeupdate` 事件中,我们使用 `audio.currentTime` 和 `audio.duration` 获取当前时间和总时长,计算出当前进度百分比并设置给进度条。
5. 最后,我们定义了一个 `playlist` 数组,包含三首音乐文件的路径。`playPrev()` 和 `playNext()` 函数用于切换到上一首和下一首,它们都需要遍历 `playlist` 数组并找到当前正在播放的音频文件的位置。
阅读全文