可见度恢复到':视频自动播放,如果之前没有暂停
visibility back to 'visible' : video auto-play only if was not on pause before
我可以在可见度变为隐藏时暂停视频,在可见度恢复为可见时播放视频。像这样:
var userManuallyPause = false;
var video = document.getElementById('video');
var documentTitle = document.title;
var updateTitleForVideo = function(state){
if (state === '') {
document.title = documentTitle;
return;
};
document.title = documentTitle + ' [' + state + ']';
};
video.onpause = function(){
userManuallyPause = true;
updateTitleForVideo('Paused');
};
video.onplay = function(){
updateTitleForVideo('');
};
document.addEventListener('visibilitychange', function(){
var state = document.visibilityState;
if (!video.paused) {
if (state === 'hidden') {
video.pause();
userManuallyPause = false;
updateTitleForVideo('Paused');
}
}
else if (state === 'visible' && !userManuallyPause) { video.play(); }
});
但是,如果视频在可见度变为隐藏之前已经暂停,我不希望视频在我返回可见时播放。
这可能吗?我不确定。
您可以将其存储在一个变量中,例如var userManuallyPause = false
,如果用户自己暂停,您可以将该变量设置为true。当用户解除暂停时,您可以将其设置回false。
然后在上面的代码中,添加
检查if (!userManuallyPause) { ... }
相关文章:
- 如果 a 为 false,则 if(a) === if(false)
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如果文本字段为空,则使用JavaScript应用CSS样式
- tiltSlider播放/暂停视频元素(如果li有当前类)
- 如果需要登录,Angularjs$http拦截器会暂停异步请求
- 当用户将鼠标移到屏幕/图表上时,自动滚动将暂停.如果鼠标移动停止,自动滚动将再次恢复
- 暂停HTML5视频,如果它是使用空格键像youtube互动
- 如果约束失败,请暂停执行
- JQuery 从第二个零开始播放 html5 视频,但如果用户暂停视频,则保留当前帧
- jQuery .val(#) 在 AJAX 调用后不会更改选择 - 如果调试/暂停,则有效
- 转义 如果视频暂停,则全屏播放视频
- 视频.js :如果视频暂停,如何淡出控制栏
- 如果鼠标移动到图像上,我如何添加鼠标事件,它将显示播放/停止/暂停按钮
- 如果当前时间 >= 2,则暂停视频
- 如果使用Knockout注册了暂停事件,为什么无法暂停音频
- 可见度恢复到':视频自动播放,如果之前没有暂停
- 如果音频文件处于暂停状态如何重新播放音频文件
- 仅在用户更改值时将值更新到数据库,如果值被代码更改,则暂停某些订阅