css - 使用进度条将视频加载到网页之前的最佳方式

标签 css web html5-video

我想在使用 html5 css 和 javascript 的网站上播放大约 30 秒的视频。我想要的是确保视频在播放之前已加载,以便播放时不会中断。

任何快速简单的解决方案。

最佳答案

您需要实现 javascript 才能实现您的目标。

您可以绑定(bind)“缓冲”事件,但是(至少在 Chrome 中)这工作正常,除了它不会调用最后一个“缓冲”事件(即它将检测到 90%...94%... 98%...但不会调用 100%)。

注意:最新版本的 jQuery 应该使用 .prop()而不是 .attr()

为了解决这个问题,我使用 setInterval() 每 500 毫秒检查一次缓冲区(其中 $html5Video 是您的 <video> 元素:

var videoDuration = $html5Video.attr('duration');

var updateProgressBar = function(){
    if ($html5Video.attr('readyState')) {
        var buffered = $html5Video.attr("buffered").end(0);
        var percent = 100 * buffered / videoDuration;

        //Your code here

        //If finished buffering buffering quit calling it
        if (buffered >= videoDuration) {
                clearInterval(this.watchBuffer);
        }
    }
};
var watchBuffer = setInterval(updateProgressBar, 500);

关于css - 使用进度条将视频加载到网页之前的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46147173/

相关文章:

javascript - 不知道为什么这个 JQuery 动画不起作用

html - CSS 用行高切割字符底部?

html - 隐藏父目录/www

javascript - 如何从 HTML 页面中的 3 个输入范围正确获取 RGB 值

javascript - CSS 不在框中居中文本,而是移到右侧?

html - IE 中两个 div 之间的小 1px 间隙

javascript - 如何在 HTML 元素的 JS 事件监听器中嵌套引号?

javascript - Html5 视频无法在 bxslider 上播放

javascript - HTML5 视频 - 加载百分比?

css - Bootstrap 4 Carousel 视频控件在右侧消失