HTML5+JavaScript实现本地视频/音频播放器
HTML5 提供了本地视频和音频播放器的支持,通过 <video> 和 <audio> 标签,这些标签支持多种媒体格式,并且可以通过 JavaScript 进行控制,实现功能比较完整的本地视频音频播放器。
HTML5的<video>和<audio>标签是HTML5中新增的两个标签,分别用于在网页播放视频和音频内容。<video>标签主要用于播放视频,同时也支持播放音频。<audio>标签主要用于播放音频,不支持播放视频。
本地视频/音频播放器
使用HTML5的<video>标签实现本地视频/音频播放器
运行效果
源码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>本地视频/音频播放器</title>
<style>
/* 样式可以根据需要自定义 */
#video-player {
width: 640px;
height: 360px;
}
#controls {
margin-top: 10px;
}
</style>
</head>
<body>
<video id="video-player" controls>
您的浏览器不支持 Video 标签。
</video>
<div id="controls">
<input type="file" id="file-input" accept="video/*, audio/*">
<button id="play-video">播放</button>
</div>
<script>
const videoPlayer = document.getElementById('video-player');
const fileInput = document.getElementById('file-input');
const playVideoButton = document.getElementById('play-video');
fileInput.addEventListener('change', function() {
const file = this.files[0];
if (file) {
const reader = new FileReader();
reader.onload = function(e) {
// 创建URL对象
const url = URL.createObjectURL(file);
// 设置视频源
videoPlayer.src = url;
};
// 读取文件内容
reader.readAsDataURL(file);
}
});
playVideoButton.addEventListener('click', function() {
if (videoPlayer.readyState >= 3) { // 确保视频已经加载完毕
videoPlayer.play();
} else {
alert('视频还未加载完毕,请稍后再试。');
}
});
</script>
</body>
</html>
使用HTML5的<video>标签实现功能本地视频/音频播放器比较精炼。
其中<input type="file" id="file-input" accept="video/*, audio/*"> 是一个HTML的输入元素,用于让用户从其计算机中选择一个或多个文件。
<input type="file">: 这告诉浏览器这是一个文件输入字段,用户可以通过点击它来选择文件。
id="file-input": 这是一个唯一的标识符,用于在JavaScript中引用这个元素。通过这个ID,你可以添加事件监听器、获取用户选择的文件等。
accept="video/*, audio/*": 这是一个属性,用于限制用户可以选择的文件类型。accept 属性的语法accept="MIME_type/subtype":指定一种文件类型。MIME(Multipurpose Internet Mail Extensions)类型是一种标识文档、文件或字节流的性质和格式的标准。它由两部分组成:类型(如 text、image、audio、video 等)和子类型(具体的文件格式,如 html、jpeg、mp3 等)。可以指定多个值,用逗号分隔,如本句;可以使用星号(*)作为通配符,如表示接受所有视频格式。如果你只想接受特定格式的视频,比如MP4,你可以使用 accept="video/mp4"。
更多示例:
如果你想让用户选择所有类型的图像文件,你可以使用通配符:
<input type="file" name="pic" accept="image/*">
如果你想让用户只能选择GIF和JPEG图像文件,你可以这样写:
<input type="file" name="pic" accept="image/gif, image/jpeg">
本地音频播放器
使用HTML5的<audio>标签实现本地音频播放器
先给出运行效果:
源码如下:
<html lang="en">
<head>
<meta charset="UTF-8">
<title>本地音频播放器</title>
<style>
/* 样式可以根据需要自定义 */
#audio-player {
width: 620px;
height: 160px;
}
#controls {
margin-top: 10px;
}
</style>
</head>
<body>
<audio id="audio-player" controls>
您的浏览器不支持 audio 标签。
</audio>
<div id="controls">
<input type="file" id="file-input" accept="audio/*">
<button id="play-audio">播放</button>
</div>
<script>
const audioPlayer = document.getElementById('audio-player');
const fileInput = document.getElementById('file-input');
const playAudioButton = document.getElementById('play-audio');
fileInput.addEventListener('change', function() {
const file = this.files[0];
if (file) {
const reader = new FileReader();
reader.onload = function(e) {
// 创建URL对象
const url = URL.createObjectURL(file);
// 设置视频源
audioPlayer.src = url;
};
// 读取文件内容
reader.readAsDataURL(file);
}
});
playAudioButton.addEventListener('click', function() {
if (audioPlayer.readyState >= 3) { // 确保视频已经加载完毕
audioPlayer.play();
} else {
alert('视频还未加载完毕,请稍后再试。');
}
});
</script>
</body>
</html>
附录
HTML5超级链接、图片与多媒体https://blog.csdn.net/cnds123/article/details/113782944
使用HTML和JavaScript实现用打开窗口播放本地的媒体(视频音频)文件https://blog.csdn.net/cnds123/article/details/113835795