javascript - AJAX 页面加载后播放的 HTML5 视频

标签 javascript jquery ajax html video

当我通过 AJAX 请求到达页面时,我很难让 HTML5 视频播放。

如果您刷新页面,或直接登陆页面,则一切正常。但是当通过 AJAX 导航到该页面时它不播放。

代码是:

<video id="video" autoplay="autoplay" loop="loop" muted="muted" poster="http://localhost/wp-content/themes/studioindigo/videos/contactbackground.jpg">
                   <source src="http://localhost/wp-content/themes/studioindigo/videos/contactbackground.mp4" type="video/mp4">
                   <source src="http://localhost/wp-content/themes/studioindigo/videos/contactbackground.webmhd.webm" type="video/webm">
                   <img src="http://localhost/wp-content/themes/studioindigo/videos/contactbackground.jpg" alt="your browser does not support html5 video">
               </video>

我已经尝试在 AJAX 页面加载成功时触发以下代码:

video = document.getElementById('video');
    video.load();

    video.addEventListener('loadeddata', function() {
        video.play();
    }, false);

也很简单:

video = document.getElementById('video');
video.play();

我也尝试过使用 video.js 等插件,但无济于事。

我忍不住想我错过了一些非常简单的东西。当然,如果视频在页面上并设置了自动播放,那么无论您是通过 AJAX 还是直接到达页面,它都应该播放?

页面的 AJAX 请求仅更新 #main 元素(视频在其中)和 history.pushState - 这可能与它有什么关系吗?好像不太可能...

最佳答案

对于遇到同样问题的任何人,我发现在 ajax 调用之后,视频具有属性“暂停:真”,甚至认为自动播放已设置并且我在“loadeddata”上调用 video.play()。

解决方案是在检测到暂停时触发 video.play()。我还发现它在视频上没有“自动播放”属性时更流畅,并且在多次初始化后变得不稳定。

DOM:

<video id="video" loop muted>
  <source src="video.mp4" type="video/mp4">
  <source src="video.webm" type="video/webm">
</video>

JS:

video = jQuery('#video').get()[0];

video.addEventListener('loadeddata', function() {
    video.play();
});

video.addEventListener('pause', function() {
    video.play();
});

此外,对于任何想知道我为什么需要此功能的人来说,它适用于在网页背景上播放的视频,因此用户无需播放/暂停它。

关于javascript - AJAX 页面加载后播放的 HTML5 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22179645/

相关文章:

javascript - ajax成功功能无法更改按钮文本

javascript - 我无法在 Meteor 应用程序中使用聊天功能

javascript - node.js 由服务器响应中的异步函数调用产生

javascript - 带有 Express : Importing client-side javascript using script tags in Jade views? 的 Node.js

javascript - 使用 JavaScript/jQuery 调用 do_action

javascript - 使用ajax或jsonp检索php源代码

javascript - 如何在JavaScript(angularjs)中根据不同的过滤条件显示新的网格数据

jquery - 如何使用标题复选框选中和取消选中所有复选框?

javascript - Jquery 中按顺序排列的日期名称

javascript - jQuery datepicker altFormat 不显示