为什么不捕获=“用户”将手机的摄像头更改为正面?

时间:2019-06-23 06:44:34

标签: android html chrome-mobile mediacapture

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

但是,在移动设备(最新版本的Pixel 1)上试用Chrome(最新)时,仍然选择了后置摄像头。

我使用了一个示例片段:

<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更改为在手机上要求video,以便该属性和其他属性有效,但capture属性却无效。

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

3 个答案:

答案 0 :(得分:1)

Chrome会专门阻止代码正常工作吗?我建议使用其他浏览器(例如Firefox)来测试该理论。如果它确实在Firefox上成功,那么简单的答案是:Chrome尚未实现它。

答案 1 :(得分:0)

我今天(2019-07-21)克隆了chromium repository。然后,我使用ripgrep来获取包含capture的文件列表。在将该列表传递给rm之后,我删除了所有空白的目录或明显不相关的目录(例如遥测)。遍历剩余的约50个文件是一个相对琐碎的任务。

希望Chrome小组能够在将来实现此功能,但是在官方文档,官方博客文章或代码本身中目前没有迹象表明支持此行为

>

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

答案 2 :(得分:0)

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

未使用过:

  • Android Chrome:Mozilla / 5.0(Linux; Android 6.0; Ilium X510)AppleWebKit / 537.36(KHTML,例如Gecko)Chrome / 75.0.3770.143 Mobile 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,如Gecko)版本/12.1.1 Mobile / 15E148 Safari / 604.1

摘要:

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

因此,无论接受的答案中的信息是什么,似乎都不是浏览器问题。如果它可以在Android设备和特定的浏览器上正常运行,将会很有帮助。

我希望其他人可以在其Android设备上(尤其是在工作设备上)共享测试,并在测试capture =“ user”属性值的同时显示前置摄像头视图。