在移动设备上自动播放 HTML 视频

标签 html css video 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;。 这按预期工作,但我发现有时视频上的自动播放属性会启动,并且当我加载页面时视频会自动开始播放,即使视频标签设置为不显示。我怎样才能避免这种情况?

有没有更好的方法一起完成这一切?我真的不希望在手机上加载视频,因为它显然会减慢网站速度。

最佳答案

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 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28218268/

相关文章:

html - 如何创建 2 个等高的列,其中右列位于左列内?

javascript - 滚动后保持固定的菜单栏不起作用

pointers - FFMPEG:将 YUV 数据映射到解码函数的输出缓冲区

javascript - 将大型图像文件和视频上传到 Google Cloud Storage

html - iPad/iPhone Safari div 未使用全宽

android - 在phonegap中提交表单后获取JSON对象

html - JBoss 4.2.3 JSP 包含一个 UTF-8 html 文件,没有正确显示

javascript - 输入两个数字后自动切换到下一个输入字段

javascript - 如何为 Highcharts 饼图设置单独的颜色

css - 如何获得网络视频透明度?