为什么 capture="user" 不将我的 phone 的相机改为前置?

Why doesn't capture="user" change my phone's camera to front facing?

我尝试了以下属性 capture 来设置 input 元素以尝试 select 前置摄像头。 user 是正面的,environment 是背面的。

但是,在移动设备(Pixel 1,最新 OS)上试验 Chrome(最新)时,后置摄像头仍然是 selected。

我使用了一个示例片段:

<form action="server.cgi" method="post" enctype="multipart/form-data">
  <input type="file" name="image" accept="image/*" capture="user">
  <input type="submit" value="Upload">
</form>

(来自 https://w3c.github.io/html-media-capture/#the-capture-attribute

我可以更改 accept 以在我的 phone 上要求 video,以便该属性和其他属性起作用,但 capture 属性不起作用。

编辑:我正在使用最新的 Android Chrome 浏览器。以下页面暗示 iOS 和旧版本的 Android Chrome 不能一起使用 capture,但可以使用 capturehttps://caniuse.com/#search=html-media-capture

会不会是Chrome特别阻碍代码正常工作?我建议使用不同的浏览器(例如 Firefox)来测试这个理论。如果它在 Firefox 上成功,那么简单的答案是:Chrome 尚未实现。

我克隆了 chromium repository today (2019-07-21). I then used ripgrep 以获得 包含 capture 的文件列表。将该列表传递给 rm 后,我删除了所有空目录或明显不相关的目录(例如遥测)。浏览剩余的 ~50 个文件是一项相对微不足道的任务。

希望 Chrome 团队能够在未来实现这一点,但目前官方文档、官方博客中没有迹象表明支持这种行为帖子,或代码本身。

我知道这不是你想听到的答案,但这些都是我找到的事实。

这里有一些测试,我包括了用户代理:

没有合作过:

  • Android Chrome: Mozilla/5.0 (Linux; Android 6.0; Ilium X510) AppleWebKit/537.36 (KHTML,像 Gecko) Chrome/75.0.3770.143 手机 Safari/537.36
  • Android Firefox:Mozilla/5.0(Android 6.0;移动;rv:68.0)Gecko/68.0 Firefox/68。 0

曾合作过:

  • IPhone Chrome: Mozilla/5.0 (iPhone; CPU iPhone OS 12_3喜欢 Mac OS X) AppleWebKit/605.1.15 (KHTML, 喜欢 Gecko) CriOS/75.0.3770.103 Mobile/15E148 Safari/605.1
  • IPhone Safari: Mozilla/5.0 (iPhone; CPU iPhone OS 12_3_1 喜欢 Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/15E148 Safari/604.1

总结:

  • 所有测试的 iPhone 导航器在捕获用户时显示前置摄像头视图,如果是环境则显示后置摄像头视图。
  • 两个测试的 Android 导航器始终显示后置摄像头视图。

所以无论接受的答案中的信息如何,它似乎都不是浏览器问题。如果它能在 Android 设备和特定浏览器上正常工作,那将会很有帮助。

我希望其他人可以在他们的 Android 设备上分享测试,特别是在工作设备上,在测试 capture="user" 属性值时显示前置摄像头视图。