在主程序中,我随机选择一个我想要动画的对象,所以我用对象作为参数调用该函数.第一个循环没问题,X设置得很好,但是在下一个循环中它变得不确定.
像这样的东西:
var anim = {
mainFunc: function(x) {
anim.update(x);
anim.redraw(x);
window.requestAnimationFrame(anim.mainFunc);
},
update: function(x) {
},
redraw: function(x) {
}
};
var n=Math.floor(Math.random() * (ArrayOfAnimObject.length));
anim.mainFunc(ArrayOfAnimObject[n]);
Run Code Online (Sandbox Code Playgroud) 出于可理解的原因,移动浏览器会阻止视频自动播放。我的网站上有视频背景,因此控制按钮毫无疑问,但是我认为我可以弹出带有一些信息和按钮的窗口,用户可以在其中接受背景视频(触发手动播放),也可以不接受。将其更改为一些静态图片。
所以问题是:有没有办法判断自动播放是否被浏览器打断了?
我试过了,onerror
但它没有触发,所以我也尝试了onsuspend
:
HTML:
<video id='bgvid' src='bgvid.mp4' type='video/mp4' autoplay loop onsuspend='video_suspended()'>
Run Code Online (Sandbox Code Playgroud)
Javascript:
function video_suspended() {
$bgvideoElement=$("#bgvid").get(0);
//Check if reason for suspend was completion or browser interruption
if($bgvideoElement.readyState<1) {
//Here comes some pop-up window and a button to
$bgvideoElement.play();
}
}
Run Code Online (Sandbox Code Playgroud)
它在平板电脑(Chrome)上可以正常工作,但在台式机(Chrome)上onsuspend
可以无限触发(尽管Firefox还可以)。
关于Chrome问题或其他替代方案有什么想法吗?