禁用自动播放并使用HTML5视频显示控件

时间:2016-05-31 10:53:02

标签: javascript jquery html5

我有一个有效的HTML5视频,但我遇到的问题是每当我在浏览器中看到视频时 - 它立即开始播放。如何禁用自动播放功能?我已尝试使用属性autoplay="false",但没有结果。

控件总是隐藏的,我必须右击并点击"显示控件"用于弹出控件。我也尝试使用showcontrols="true"启用此功能,但也没有反应。

感谢所有帮助。以下是我的代码

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>hls.js</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <style>
            .hlsjs {
                position: relative;
                width: 70%;
            }
            .ratio {
                position: absolute;
                padding-top: 75%;
            }
            video {
                background-color: #ccc;
                width: 100%;
            }
        </style>
        <script src="https://cdn.jsdelivr.net/hls.js/latest/hls.min.js"></script>
        <script>
            window.onload = function() {
                if (Hls.isSupported()) {
                    var video1 = document.getElementById("video1");
                    hls1 = new Hls({
                        debug : true
                    }), hls1.on(Hls.Events.MEDIA_ATTACHED, function() {
                        hls1.loadSource("http://fdfasd.com/fdsa.m3u8");
                    });
                    hls1.attachMedia(video1);
                }
            };
        </script>
    </head>
    <body>
        <h1>hls.js</h1>
        <h2>First instance</h2>
        <div class="hlsjs">
            <video id="video1" autoplay="false" showcontrols="true"></video>
            <div class="ratio"></div>
        </div>
    </body>
</html>

3 个答案:

答案 0 :(得分:5)

如果指定autoplay属性,视频将自动播放,即使它是错误的。这可以在这里看到:

<video src="http://vjs.zencdn.net/v/oceans.mp4" autoplay="false"></video>

此外,showcontrols属性实际上应为controls

所需的HTML将是:

<video id="video1" controls></video>

来源:

答案 1 :(得分:1)

你必须完全删除它。 tag属性不是布尔值,而是一个开关本身。这将删除自动播放但仍显示控件

<video
  id="video1" 
  controls 
  src="http://download.blender.org/peach/bigbuckbunny_movies/BigBuckBunny_320x180.mp4">
</video>

答案 2 :(得分:0)

确实将autoplay设置为false并不能帮助某些视频播放。见this case in fiddle.

如果你想暂停所有视频,你可能希望通过代码来做一些事情:

videos = document.querySelectorAll("video"); 
for(video of videos) {
  video.pause(); 
  video.controls = true
}

当然,如果video标签位于阴影根元素中,则上述情况将不起作用,但几乎任何通用解决方案都不适用于阴影根元素。在那里,您将需要一种自定义方法,并首先扩展阴影根。