【问题标题】:Play HTML5 video after its loaded加载后播放 HTML5 视频
【发布时间】:2017-04-18 19:46:01
【问题描述】:

我正在寻找一种在完全加载后播放 html5 视频的方法。虽然视频仍在加载 - 显示视频占位符图像。 在我使用 setTimeout 函数之前,但它不是实现此目的的方法。

setTimeout(function() {
    $('banner__video--fallback').fadeOut();
    $('.banner__video')[0].play();
}, 800);

那么在加载后播放视频的方法是什么?

编辑: 使用解决方案,“canplaythrough”视频在完全加载之前仍然无法播放。

$('.banner__video')[0].addEventListener("canplaythrough", function () {
  $('banner__video--fallback').fadeOut();
  $('.banner__video')[0].play();
}, false);

【问题讨论】:

标签: javascript jquery html video


【解决方案1】:

为什么不直接使用 HTML5 视频属性?不需要 javascript。

<video autoplay poster="/placeholder.jpg">
    <source src="video.webm" type="video/webm">
    <source src="video.mp4" type="video/mp4">
</video>

autoplay 会在视频加载后立即播放视频,poster 会在视频加载时分配一张图片站在视频中。

您应该在此处阅读更多内容:http://www.w3schools.com/html/html5_video.asp

【讨论】:

    【解决方案2】:

    我认为这是在加载视频后播放视频的更好选择:

    var vid = document.getElementById("myVideo");
    vid.oncanplaythrough = function() {
        alert("Can play through video without stopping");
    };
    

    【讨论】:

      【解决方案3】:

      您可以像这样使用 ajax 调用下载视频: Another: Force Chrome to fully buffer mp4 video 或仅使用 canplaythrough 属性。

      【讨论】:

      • 所以我尝试使用 canplaythrough,但它在完全加载之前一直在播放 $('.banner__video')[0].addEventListener("canplaythrough", function () { $('banner__video- -fallback').fadeOut(); $('.banner__video')[0].play(); }, false);
      • @MaryOleksiuk 是的,因为当加载足够的数据进行播放时会触发此事件。请尝试使用 ajax 调用(请参阅链接)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-05
      • 2018-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-08
      • 2020-07-24
      相关资源
      最近更新 更多