我有一个视频作为网页的背景,我试图让它循环.这是代码:
<video autoplay='true' loop='true' muted='true'>
<source src='/admin/wallpapers/linked/4ebc66e899727777b400003c' type='video/mp4'></source>
</video>
Run Code Online (Sandbox Code Playgroud)
即使我已经告诉视频循环,但事实并非如此.我也试图让它循环使用该onended属性(根据这个Mozilla支持线程,我也尝试了一点jQuery).到目前为止,没有任何工作.这是Chrome或我的代码的问题吗?
编辑:
我检查了网络事件和HEAD的工作副本(http://fhsclock-labs.heroku.com/no-violence)与我正在努力工作的应用程序.不同之处在于工作副本是从Heroku上的静态资产(通过Varnish,显然)提供视频,而我的服务来自GridFS(MongoDB).
Chrome的Inspector的"网络"标签显示,在我的应用程序中,视频会被请求三次.一次状态为"待定",第二次"取消",最后一次为200 OK.工作副本仅显示两个请求,一个是状态待定,另一个是206部分内容.但是,在视频播放一次后,该请求将更改为"已取消",并再次请求该视频.在我的应用程序中,这不会发生.
至于Type,在我的应用程序中,两个是"未定义"而另一个是"video/mp4"(应该是它).在工作应用程序中,所有请求都是"video/mp4".
另外,我Resource interpreted as Other but transferred with MIME type undefined.在控制台收到警告.
我不太确定从哪里开始.我相信这个问题是服务器端的,因为服务文件就像静态资产一样正常.可能是服务器没有发送正确的内容类型.这可能是GridFS的一个问题.我不知道.
无论如何,来源就在这里.您可以提供的任何见解表示赞赏.
嗨我有一些非常基本的视频html:
<div class="video_holder">
<video id="video_player" controls="controls" poster="">
<source id="video_mp4" src="" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' />
</video>
</div>
Run Code Online (Sandbox Code Playgroud)
在我的js中:
function playFile(e) {
...
e.preventDefault()
var selected = $(this);
var path = selected.attr('href');
$("#video_mp4").attr('src', path);
// how do I get this thing to auto-play?????
};
Run Code Online (Sandbox Code Playgroud)
这非常适合将正确的路径注入src属性,并且我已验证路径是否正确且可访问.但是,我无法让视频在加载时自动播放.
我试过了:
document.getElementById("video_player").play();
$('#video_player').trigger('play');
$('#video_player').play();
Run Code Online (Sandbox Code Playgroud)
如何触发视频自动播放?
任何帮助非常感谢.