在这个简单的页面中,Android Chrome 上的 HTML5 视频控件不会跨越整个视频宽度

Posted

技术标签:

【中文标题】在这个简单的页面中,Android Chrome 上的 HTML5 视频控件不会跨越整个视频宽度【英文标题】:HTML5 video controls on Android Chrome don't span full width of video in this simple page 【发布时间】:2018-04-29 00:37:18 【问题描述】:

将此保存为 html 文件并在 android Chrome 中加载:

<html>
<body style="overflow:hidden;transform: scale(0.5, 0.5);">
        <video controls>
            <source src="http://techslides.com/demos/sample-videos/small.mp4">
        </video>
</body>
</html>

应该是这样的:

如果您使用它,您会发现删除overflow:hiddentransform:scale 将使控件按预期跨越视频的整个宽度。但是,这两种样式的组合会使任何视频控件的大小不正确,如图所示。

This question 似乎有些相关,并建议将transform: translateZ(0) 添加到包含元素,但是将该转换添加到主体上的现有转换或添加到新的包含 div 并不能解决问题。

这是 Android Chrome 中的错误吗?我不明白为什么这两种样式的结合会影响视频控件的宽度。

【问题讨论】:

添加视口有帮助吗?浏览器可能在每种情况下都发明了不同的视口大小。 其他浏览器/设备中的行为是否符合预期? @JoshLee - 不幸的是,添加视口并没有帮助。在&lt;head&gt; 中添加&lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt; 无效。 @mad.meesh - 是的。在任何桌面浏览器上,视频控件跨越视频的整个宽度。在我的 iPhone 6 plus 上也是如此。在 Android Firefox 上也是如此。这似乎仅限于 Android Chrome。 问题是视频控件没有被变换缩放?我已经在全高清手机上进行了测试,它工作正常...... 我遇到了类似的问题,但这是由于 Bootstrap 轮播中的 &lt;video&gt; 元素设置为 width: 100%。如果我调整浏览器窗口的大小或单击“播放”控件,它会自行纠正(必须让渲染引擎或其他东西发痒) 【参考方案1】:

要更改视频播放器的原生控件栏的宽度,您可以在 css 中添加以下内容:

  video::-webkit-media-controls-panel 
    width: 100%;
  

这里是样式原生控件的好example 。希望对您有所帮助。

【讨论】:

【参考方案2】:

你可以把标签改成这样的

<video   controls>
        <source src="http://techslides.com/demos/sample-videos/small.mp4">
</video>

【讨论】:

【参考方案3】:

您正在以非标准方式设置宽度和高度,尽管可能存在合理的错误,但您似乎将视频的宽度设置为原始宽度的一半。我建议您将样式设置为:

body 
  margin: 0;
  overflow: hidden;
  background-color: #000;
  text-align: center;


video 
  display: inline;
  height: 100vh;
<!doctype html>
<html>
  <head>
    <title>Some Video</title>
  </head>
  <body>
    <video src="https://www.w3schools.com/html/mov_bbb.mp4" controls></video>
  </body>
</html>

【讨论】:

以上是关于在这个简单的页面中,Android Chrome 上的 HTML5 视频控件不会跨越整个视频宽度的主要内容,如果未能解决你的问题,请参考以下文章

如何在移动 Android 智能手机上的 Chrome 浏览器中进行“硬页面重新加载”

在Android Chrome浏览器上看不到一些utf8字符

网站背景在 Android 上显示不正确。 Chrome DevTools 没有反映这一点

强制开启android webview debug模式使用Chrome inspect

基于Chrome调试Android内置H5页面

如何在 Chrome 上安装 Android 应用