javascript - 在没有 webRTC 的情况下访问摄像头或网络摄像头
问题描述
在我的网站中,它需要访问相机或网络摄像头。但是基于https://forums.developer.apple.com/thread/88052的 ios webview 尚不支持webRTC(请参阅 cmiiw)。因此,我正在尝试找到一种无需 webRTC 即可访问它的方法。有没有?
以下代码是使用 webRTC 的一部分吗?因为 console.log 出现在 ios webview
function hasGetUserMedia() { return !!(navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia); } //then, somewhere in the code if (!hasGetUserMedia()) { console.log( "webRTC is not supported in your browser" );//it shows up on ios webview } //other code navigator.mediaDevices.getUserMedia({ audio: false, //no audio video: {deviceId: {exact: videoSource.camera_id} } })
如果是,那么不使用 webRTC 并且可以在 android webview、ios webview 和 web 浏览器上运行的解决方法是什么?
解决方案
2021年编辑:
我们现在可以访问getUserMedia
iOS WebViews 了!
好消息:
从 iOS 14.3 开始,iOS 现在允许getUserMedia
在WKWebView
每当我对此类浏览器功能有疑问时,我发现查看caniuse.com非常有帮助。在这种情况下,iOS 版 Safari 和 Chrome 的条目上有一个注释
iOS 14.3 之前在or
getUserMedia
中不返回视频输入设备,而只在 Safari 中直接返回UIWebView
WKWebView
旧闻:
在 2021 年之前,我们无法getUserMedia
在 Safari 之外的 iOS 上访问。所以当时,一种解决方法是建立一个网站并引导 iOS 用户在 Safari 中访问该网站,而不是为 iOS 制作原生应用程序。
其他新闻:
getUserMedia
控制对用户摄像头和麦克风的访问,而 WebRTC 可帮助您将该音频/视频发送到另一个客户端,例如在视频聊天中。在这里,您首先要获取视频,因此您不必担心 WebRTC,但是当您这样做时,我建议您查看对我有帮助的这篇文章。
如果您想自己测试getUserMedia
或 WebRTC 功能,请尝试使用这些提供的示例,这样您就可以确定这不是您自己的代码的错 :)
推荐阅读
- json - JQ:更改一些值并显示所有数据?
- excel - 在 Python 中保存实时数据
- julia - 如何检查对象定义在哪个模块中?
- arduino - ESP-01S:从深度睡眠中醒来的问题
- r - 将数据从 R 插入 SQL Server
- javascript - 无法更改或使用 React Native 中导入的 TextInput 的属性
- python - 使用python计算两条非平行线之间的最大距离
- python - 如何使用 python 用热像仪测量温度?
- jquery - 带有内联 Onchange 函数和多个 ajax 请求的 Jquery 克隆选择
- bazel - 将 Bazel 测试操作映射到远程策略