# 自用在线音视频播放器
平时下载了不少好听的音乐,但是电脑自带的那个音视频播放器启动起来实在是费劲,又懒得再下载其他播放器,于是就想到了用html5自己做一个极简且好用在线播放器挂在博客上,随用随开,也不受设备限制。下面教程介绍如何使用 HTML 和 JavaScript 创建一个简单的本地音视频播放器,允许用户选择本地的音频或视频文件进行播放。
# 功能
- 支持播放本地音频和视频文件:用户可以选择多个音频或视频文件,播放器将动态生成播放列表。
- 自动播放下一个文件:当前文件播放结束后,播放器将自动播放下一个文件。
# 实现步骤
# 1. 创建 HTML 文件
创建一个新的文件,命名为 local_media_player.html
。将以下代码复制并粘贴到文件中。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>本地音视频播放器</title>
<style>
.player-container {
width: 300px;
margin: 50px auto;
text-align: center;
font-family: Arial, sans-serif;
background-color: #f2f2f2;
padding: 20px;
border-radius: 10px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}
.controls {
margin-top: 15px;
}
button {
background-color: #007BFF;
border: none;
color: white;
padding: 10px;
margin-top: 10px;
border-radius: 5px;
cursor: pointer;
}
button:hover {
background-color: #0056b3;
}
.playlist {
list-style: none;
padding: 0;
}
.playlist li {
cursor: pointer;
padding: 5px;
margin: 5px;
border-bottom: 1px solid #ccc;
}
.playlist li:hover {
background-color: #e0e0e0;
}
</style>
</head>
<body>
<div class="player-container">
<h2>本地音视频播放器</h2>
<input type="file" id="fileInput" accept="audio/*,video/*" webkitdirectory multiple onchange="loadFiles(event)">
<audio id="audioPlayer" controls style="margin-top: 20px; display: none;">
您的浏览器不支持音频元素。
</audio>
<video id="videoPlayer" controls style="margin-top: 20px; display: none; max-width: 100%;">
您的浏览器不支持视频元素。
</video>
<ul id="playlist" class="playlist">
<!-- 播放列表将由JavaScript动态生成 -->
</ul>
</div>
<script>
const audioPlayer = document.getElementById('audioPlayer');
const videoPlayer = document.getElementById('videoPlayer');
const playlistElement = document.getElementById('playlist');
let files = [];
let currentFileIndex = 0;
function loadFiles(event) {
files = Array.from(event.target.files).filter(file => file.type.startsWith('audio/') || file.type.startsWith('video/'));
playlistElement.innerHTML = ''; // 清空播放列表
files.forEach((file, index) => {
const listItem = document.createElement('li');
listItem.textContent = file.name;
listItem.onclick = () => changeFile(index);
playlistElement.appendChild(listItem);
});
if (files.length > 0) {
changeFile(0); // 播放第一个文件
}
}
function changeFile(index) {
currentFileIndex = index;
const file = files[currentFileIndex];
const objectURL = URL.createObjectURL(file);
if (file.type.startsWith('audio/')) {
videoPlayer.style.display = 'none';
audioPlayer.style.display = 'block';
audioPlayer.src = objectURL;
audioPlayer.play();
} else if (file.type.startsWith('video/')) {
audioPlayer.style.display = 'none';
videoPlayer.style.display = 'block';
videoPlayer.src = objectURL;
videoPlayer.play();
}
}
audioPlayer.onended = videoPlayer.onended = function() {
currentFileIndex = (currentFileIndex + 1) % files.length;
changeFile(currentFileIndex);
};
</script>
</body>
</html>
# 2. 保存文件
将文件命名为 player.html,并保存到博客服务器上。
# 3. 打开文件
使用浏览器(如 Chrome、Firefox、Edge)访问博客player.html 文件。
# 4. 选择本地文件夹
在网页中,点击 “选择文件” 按钮,然后选择要播放的音频或视频文件所在的文件夹。您也可以选择多个文件。
# 5. 播放音频或视频
播放器将加载并自动播放第一个文件。您可以从播放列表中选择其他文件进行播放。播放结束后,将自动播放下一个文件。