HTML 视频在移动设备上自动播放
HTML video autoplaying on mobile
我的 HTML 中嵌入了一个视频,如下所示:
<video autoplay loop data-hidden="xs">
<source src="video.webm" type="video/webm">
<source src="video.mp4" type="video/mp4">
</video>
工作愉快。但现在考虑应用以下 CSS(注意视频标签上的 [data-hidden]
属性模块):
@media (max-width: 767px) {
[data-hidden~="xs"] { display: none !important }
}
现在,在移动设备上,视频应该有 display: none!important;
。
这按预期工作,但我发现有时视频上的自动播放属性会启动,并且当我加载页面时视频会自动开始播放,即使视频标签设置为显示 none。我怎样才能避免这种情况?
有没有更好的方法一起完成这一切?我真的不希望在手机上加载视频,因为它显然会减慢网站速度。
Display:none 很好,但在我的 个人 看来,最好的方法是在任何服务器端术语中使用 If 语句重新使用。如果在移动设备上查看,这将阻止 HTML 完全呈现(而不是像 CSS 那样只是隐藏它)。
例如,这里有一个半伪代码(可能有效但未经测试)PHP 片段可以执行此操作:
function CheckMobile() {
return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
}
if(CheckMobile()){
continue;
}
else{
<video autoplay loop data-hidden="xs">
<source src="video.webm" type="video/webm">
<source src="video.mp4" type="video/mp4">
</video>
}
这基本上就是说,除非用户不在移动浏览器上,否则不要费心向他们展示视频标签。
就像我说的,我没有测试上面的代码片段,所以它可能有效也可能无效,但你明白了要点。
我的 HTML 中嵌入了一个视频,如下所示:
<video autoplay loop data-hidden="xs">
<source src="video.webm" type="video/webm">
<source src="video.mp4" type="video/mp4">
</video>
工作愉快。但现在考虑应用以下 CSS(注意视频标签上的 [data-hidden]
属性模块):
@media (max-width: 767px) {
[data-hidden~="xs"] { display: none !important }
}
现在,在移动设备上,视频应该有 display: none!important;
。
这按预期工作,但我发现有时视频上的自动播放属性会启动,并且当我加载页面时视频会自动开始播放,即使视频标签设置为显示 none。我怎样才能避免这种情况?
有没有更好的方法一起完成这一切?我真的不希望在手机上加载视频,因为它显然会减慢网站速度。
Display:none 很好,但在我的 个人 看来,最好的方法是在任何服务器端术语中使用 If 语句重新使用。如果在移动设备上查看,这将阻止 HTML 完全呈现(而不是像 CSS 那样只是隐藏它)。
例如,这里有一个半伪代码(可能有效但未经测试)PHP 片段可以执行此操作:
function CheckMobile() {
return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
}
if(CheckMobile()){
continue;
}
else{
<video autoplay loop data-hidden="xs">
<source src="video.webm" type="video/webm">
<source src="video.mp4" type="video/mp4">
</video>
}
这基本上就是说,除非用户不在移动浏览器上,否则不要费心向他们展示视频标签。
就像我说的,我没有测试上面的代码片段,所以它可能有效也可能无效,但你明白了要点。