在后续访问时将 HTML5 视频静音
Mute HTML5 video on subsequent visit
我正在使用Reveal Modal (http://zurb.com/playground/reveal-modal-plugin)仅在访问者第一次访问时触发一个modal弹出框,并使用jQuery Cookie(https://github.com/carhartl/jquery-cookie)设置cookie。
这是模态的代码(在移动设备上显示 GIF):
<div id="myModal" class="reveal-modal">
</div>
<script type="text/javascript">
var isMobile = navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/);
var myModal = document.getElementById('myModal');
if(!isMobile) {
// User-Agent is not IPhone, IPod, IPad, Android or BlackBerry
myModal.innerHTML += '<video autoplay>' +
'<source src="video/LogoOpening.mp4" type="video/mp4"/>' +
'<source src="video/LogoOpening.ogg" type="video/ogg"/>' +
'<source src="video/LogoOpening.webm" type="video/webm"/>' +
'</video>' +
'<a class="close-reveal-modal"><div class="button4">Close</div></a>';
} else {
myModal.innerHTML += '<img src="images/ThroughTheYears.gif" alt="Logo History" />' +
'<a class="close-reveal-modal"><div class="button4">Close</div></a>' +
'</div>';
}
</script>
。这是在检查cookie后触发模态的Javascript:
<script>
$(document).ready(function() {
if ($.cookie('modal_shown') == null) {
$.cookie('modal_shown', 'yes', { expires: 30, path: '/' });
$('#myModal').reveal({
animation: 'fade', //fade, fadeAndPop, none
animationspeed: 500, //how fast animtions are
closeonbackgroundclick: true, //if you click background will modal close?
dismissmodalclass: 'close-reveal-modal' //the class of a button or element that will close an open modal
});
}
});
</script>
所以,问题来了:当我的访问者第一次出现时,视频会完美地触发并自动播放,就像它应该的那样(类似的动画 GIF 仅在移动设备上播放);但是,视频有声音,在随后的访问中,视频会自动播放,您会听到音频,但模态不会在视觉上触发(模态和视频保持隐藏)。
我认为解决方案是以某种方式将视频的静音属性与 cookie 检查 Javascript(它确定模态是否触发)联系起来,但我不确定如何编码。帮助?
这样的东西应该可以工作
if (!isMobile) {
// User-Agent is not IPhone, IPod, IPad, Android or BlackBerry
if ($.cookie('modal_shown') == null) {
myModal.innerHTML += '<video autoplay controls>'
} else {
myModal.innerHTML += '<video autoplay muted controls>'
}
myModal.innerHTML += '<source src="video/LogoOpening.mp4" type="video/mp4"/>' +
....
....
'</video>' +
。添加对 cookie model_shown
的额外检查允许您更改视频是否会自动播放,或者会自动播放但被静音(如果您不希望它自动播放,您可以将其删除,在这种情况下,可能也不需要静音。我还添加了controls
,以便用户可以根据需要手动控制音量或播放/暂停
希望这有帮助(如果不是你需要的只是评论,我会尝试靠近)
相关文章:
- 如何检查用户在html5视频播放器中观看了完整的视频
- html5视频中的Youtube类型注释
- 强制浏览器更新缓存的HTML5视频对象
- 可以使用带有json回调的html5视频标签
- html5视频播放器和视频js之间的关系
- 隐藏HTML5视频控件
- 用链接替换嵌入的HTML5视频
- HTML5视频链接在Chrome中不起作用
- 用angular js在屏幕上点击播放和暂停html5视频
- 使用Javascript播放HTML5视频
- 自定义HTML5视频控件-退出按钮不会启动全屏切换功能
- ReactJS:如何使用react正确播放带有onClick事件的html5视频
- html5视频将黑框(空)绘制到画布上
- 资源管理器9上的html5视频缓存
- 如何检查html5视频是否有足够的缓冲,以便在不停止缓冲的情况下播放
- html5视频交互式视频播放器
- HTML5视频无法在chrome上工作,在服务器上托管后的IE,mov文件中的视频(quicktime格式)
- 如何从某个时间开始预加载HTML5视频
- 寻找HTML5视频是否需要加载整个文件
- 如何在HTML5视频中获得寻找事件的起点