[HTML5] Video 标签播放及控制视频

Video 是 HTML5 中新增的标签,使用 Video 标签可以播放 ogg、mp4
、webm 等格式的视频,Video 标签的引入,减少前端页面对 Flash 动画的依赖。

0x0 预备知识

不同的浏览器支持的视频格式可能不同,以下是摘自 W3School 各个浏览器对三种视频格式的支持情况:

浏览器对视频格式的支持

0x1 在 Video 中嵌入视频

    <video src="/movie.mp4" controls="controls">
        你就用这个浏览器有出息吗?
    </video>

当页面载入时,会引用 movie.mp4 文件,如果浏览器无法支持 HTML5,则会提示 Video 中的内容。

显然,为适应不同的浏览器,我们也需要准备多种不同的格式的视频,并使用 video 引用它们:

    <video controls="controls">
        <source src="/movie.mp4" type="video/mp4">
        <source src="/movie.ogg" type="video/ogg">
        你就用这个浏览器有出息吗?
    <video>

0x2 使用 Video 的控制属性

Video 提供多个属性,通过各个属性可以控制相关的功能。例如 controls 为视频提供进度、音量、全屏的控制。尽管属性与值对应,但是我们仍然可以使用 controls 来代替 controls = “controls”。

下面的代码提供自动缓存、静音、及控制条:

    <video autobuffer muted controls>
        <source src="/movie.mp4" type="video/mp4">
        <source src="/movie.ogg" type="video/ogg">
        你就用这个浏览器有出息吗?
    <video> 

自动播放并循环:

    <video autoplay loop controls>
        <source src="/movie.mp4" type="video/mp4">
        <source src="/movie.ogg" type="video/ogg">
        你就用这个浏览器有出息吗?
    <video> 

0x3 使用 HTML DOM 控制 Video 播放

基本的播放、暂停、静音功能控制:

    <button onclick="play()">播放/暂停</button>
    <button onclick="mute()">静音</button>

    <video id="player" controls>
        <source src="/movie.mp4" type="video/mp4">
        <source src="/movie.ogg" type="video/ogg">
        你就用这个浏览器有出息吗?
    <video> 

    <script>
        function play() {
            var player = document.getElementById("player");
            if(player.play) {
                player.pause();
            }else {
                player.play();
            }
        }

        function mute() {
            var player = document.getElementById("player");
            player.muted = player.muted ? false : true;         
        }
    </script>

通常在一些视频网站上,会记录用户上次播放视频的进度,当用户再次进入网站的时候,就可以在停下来的地方继续观看。我们可以通过HTML DOM来控制视频播放进度:

    <video id="player" controls>
        <source src="/movie.mp4" type="video/mp4">
        <source src="/movie.ogg" type="video/ogg">
        你就用这个浏览器有出息吗?
    <video> 

    <script>
        document.getElementById("player").addEventListener(
            "loadedmetadata", 
            function() {
                this.currentTime = 5;
            });
    </script>

通过 JavaScript 调整 Video 的 currentTime 属性来实现进度控制,注意单位为秒而非毫秒。由于 JavaScript 需要获取视频的总时间以便进行调整,所以在控制进度之前,需要等待视频信息加载完成。所以,我们为 Video 对象绑定 loadedmetadata 事件,该事件在视频信息加载完毕时触发。

更多 HTML5 Video 参考:

HTML5 Videos: 10 Things Designer Need To Know
by Jake Rocheleau
http://www.hongkiat.com/blog/html5-videos-things-you-need-to-know

  • 13
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如果您在使用HTML5 video标签时点击视频时没有看到控制栏,可能是由于浏览器的默认行为导致的。浏览器默认会在点击视频时暂停或播放视频,但是在移动设备上,点击视频时不会显示控制栏。 您可以使用以下方法来解决这个问题: 1. 使用JavaScript来控制视频播放和暂停,并在点击时显示控制栏。以下是一个简单的示例代码: ```html <video id="video" src="video.mp4"></video> <script> var video = document.getElementById('video'); var controlsVisible = false; video.onclick = function() { if (video.paused) { video.play(); controlsVisible = true; setTimeout(function() { video.controls = false; controlsVisible = false; }, 3000); // 3秒后隐藏控制栏 } else { video.pause(); } } video.onmousemove = function() { if (!controlsVisible) { video.controls = true; controlsVisible = true; setTimeout(function() { video.controls = false; controlsVisible = false; }, 3000); // 3秒后隐藏控制栏 } } </script> ``` 这段代码使用了video元素的onclick事件和onmousemove事件来控制视频播放和暂停,并在点击或鼠标移动时显示控制栏。通过设置setTimeout函数来延迟隐藏控制栏,可以让用户有足够的时间来使用控制栏进行操作。 2. 使用第三方的视频播放器库,例如Video.js、jPlayer等。这些库提供了更丰富的控制功能,并且可以自定义控制栏的样式和行为。您可以根据自己的需求选择适合自己的播放器库来使用。 希望这些方法可以帮助您解决问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值