如何在没有 WebRTC 的情况下在 HTML5 中启动前置摄像头?

Posted

技术标签:

【中文标题】如何在没有 WebRTC 的情况下在 HTML5 中启动前置摄像头?【英文标题】:How to launch Front camera in HTML5 without WebRTC? 【发布时间】:2017-06-25 21:55:23 【问题描述】:

我知道<input type="file" accept="image/*" capture="camera">,我们可以在基于 html5 的应用程序中启动图库/相机选择选项。我想在我的 HTML5 应用程序中启动前置摄像头来拍摄用户的自拍照。由于 ios 不支持 WebRTC,我正在搜索任何启动前置摄像头的 <input> 属性。有什么方法可以实现吗?

注意:想直接启动前置摄像头。启动默认后置摄像头并从设备摄像头更改摄像头面不是这里的选项。

【问题讨论】:

手下没有iOS来测试一下,但是根据这个webkit test page,非标准的capture属性应该接受fileSystem,microphone,camcordercamera。但似乎没有关于使用哪种相机的任何信息。 【参考方案1】:

根据 w3c 参考 (https://www.w3.org/TR/html-media-capture/):

同样,建议用户代理提供用户控制,例如 允许用户:

    如果存在多个相同类型的设备(例如前置摄像头和主摄像头),请选择要使用的确切媒体捕获设备。 在视频中禁用声音捕获 捕捉模式。

根据本文档,截至目前,还没有可用的属性来指示使用哪个相机。事实上,正如您在上面所读到的,该选项被提供给用户代理,即浏览器以显示允许用户选择不同选项的 UI。在 ios 的情况下,它默认选择后置摄像头,并为您提供将其更改为前置摄像头的选项。

【讨论】:

以上是关于如何在没有 WebRTC 的情况下在 HTML5 中启动前置摄像头?的主要内容,如果未能解决你的问题,请参考以下文章

仅使用视频标签实时流式传输到 HTML5(没有 webrtc)

如何使用 HTML5 WebRTC 录制和保存视频

WebRTC简介(一)

如何修复在flutter webview中无法访问视频流(NotAllowedError)以使用html5 + webRTC相机api?

如何在没有添加的情况下在 Heroku 中启用堆栈跟踪

如何在没有中间目录的情况下在图库中编写视频?