如何在 Electron 应用程序中访问摄像头/网络摄像头?

4

我有一个web electron应用程序,想在其中一个页面实现相机功能。

问题在于出于安全原因,最近只能通过“https”访问网络摄像头。但是,在Electron应用程序中,应用程序是本地提供的,因此流媒体失败。所以我的问题是:

是否有任何好的解决方案来在electron内部实现网络摄像头?

如果没有,除了网络摄像头之外,还有什么解决方案可以使用?

注:Original Answer翻译成"最初的回答"


当我搜索"electron相机"时,我得到了很多相关的结果。例如,这个这个是前五个结果之一。它们在你的搜索中没有显示吗?还是在应用它们所示内容时遇到了一些问题? - undefined
@T.J.Crowder 实际上我看过很多这样的链接(你提供的两个),但正如我所提到的,最近引入了所需的安全连接。它在开发环境(本地主机)中运行良好,但在生产环境中不行,这是由于协议的原因。 - undefined
如果你说它以前能够工作,现在因为HTTPS的新要求而无法工作,我在这个问题上没有看到任何错误,除非是这个问题。如果是这样的话,那就是一个未解决的问题,不确定在修复之前你能做什么。 - undefined
@T.J.Crowder实际上我测试过了,它可以在'file'方案下工作,但是我们配置了一个自定义方案,使用该方案时无法正常工作,不确定缺少了什么。 - undefined
1个回答

5
我在回答自己的问题,希望能对其他人有所帮助。在我的情况下,我使用的是自定义协议,而不是标准的file协议,但是我漏掉了一些东西。我发现只需在registerStandardSchemes(版本4)中添加{secure:true}即可。这会让Electron知道此方案是安全的,这足以使网络摄像头正常工作。
请查阅Electron文档以获取更多帮助。

请问你能分享一些代码用于让相机工作吗?我也遇到了同样的问题,弄不清该怎么办。 - undefined
@JuliverGalleto 我猜最近改成了'registerSchemesAsPrivileged'。你需要设置protocol.registerSchemesAsPrivileged([{scheme: 'YOUR_SCHEME', privileges: {standard: true, secure: true}} ])。希望能帮到你。 - undefined
非常感谢您的回复。就我的情况而言,我正在使用树莓派设备进行工作,但它无法找到相机模块,所以我决定改用Python的其他功能来解决问题。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接