HTML5+JavaScript实现本地视频/音频播放器

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

  • 21
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习&实践爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值