构建HTML5视频内容,然后在iOS点击事件上播放视频
Build HTML5 video content, then play video on click event iOS
我有一个内容区域,当您按下上一个或继续按钮时,它会动态加载新内容。html的一个简单示例是:
<div id="contentArea"></div>
<nav>
<ul>
<li class="butPrev">Previous</li>
<li class="butNext">Next</li>
</ul>
</nav>
我过去在iOS6中所做的是在第一次加载时在内容区域上设置一个掩码,我可以点击它来触发音频和视频,然后播放所有其他动态HTML5视频。我不确定iOS7,但iOS8不允许这样做。我必须对每一页都这样做,这违背了口罩的目的,对用户来说是一种痛苦。
作为一种选择,我试图通过点击下一个按钮来触发视频的播放。问题是,下一个按钮捕获动态内容,将其加载到内容区域,然后需要触发播放,而iOS不喜欢这样。有没有什么方法可以等到内容区域加载后,再停留在点击事件中,这样它就不会被阻止?以下是我正在尝试的(我已经去掉了Ajax的东西):
var contentLoaded = false;
$('nav li').click(function(){
contentLoaded = false;
//load HTML with HTML5 video via Ajax
//when done, sets contentLoaded = true
triggerAutoplay();
});
function triggerAutoplay() {
if (contentLoaded) {
$('video[autoplay]').each(function(){
if ($('this').attr('autoplay') != "false") {
this.play();
}
});
} else {
setTimeout(triggerAutoplay,100);
}
}
我不确定我是否理解你的意思,但也许你应该这样评价ajax调用的成功:
$('nav li').click(function(){
$.ajax({
url: "whatever"
}).done(function() {
//do some stuff
triggerAutoplay();
});
});
function triggerAutoplay() {
$('video[autoplay]').each(function(){
if ($('this').attr('autoplay') != "false") {
this.play();
}
});
}
播放触发器必须在点击函数内,所以我必须将async设置为false,以便在函数调用之前完成ajax,如:
$('nav li').click(function(){
$.ajax({
url: "whatever",
async: false
});
triggerAutoplay();
});
function triggerAutoplay() {
$('video[autoplay]').each(function(){
if ($('this').attr('autoplay') != "false") {
this.play();
}
});
}
相关文章:
- Mozilla没有;t在附加视频src后触发视频后台事件
- Facebook嵌入视频事件
- ReactJS:如何使用react正确播放带有onClick事件的html5视频
- 如何在HTML5视频中获得寻找事件的起点
- iOS/HTML5上的视频相关事件跟踪
- HTML5视频readyState与事件侦听器
- 使用Chrome扩展内容脚本检测youtube视频事件
- iOS上未触发HTML5视频事件
- JQuery 收听视频事件
- 在角度控制器中捕获html5视频事件
- YouTube iFrame API:设置原点中断视频事件+VEVO不't工作-2015年12月
- Youtube视频事件未启动[在本地测试或以其他方式测试时]
- 捕获和处理HTML5视频事件
- 有没有一种方法可以跟踪嵌入facebook墙上的视频事件
- 视频事件的Silverlight播放器-谷歌Chrome扩展(JavaScript)
- 视频事件登录chrome扩展
- bootstrap模态中的视频事件
- Iframe youtube api视频事件设置
- Chrome 33.0.1750.154 中的 HTML5/Javascript 视频事件行为
- 如何将随机、连续的视频自动播放添加到现有的 onClick 视频事件中