从网页上的其他设备访问相机

Posted

技术标签:

【中文标题】从网页上的其他设备访问相机【英文标题】:Accesing camera from other devices on webpage 【发布时间】:2020-04-23 11:29:20 【问题描述】:

我将简要描述我的问题。我创建了一个访问网络摄像头的页面以拍摄照片,然后将其上传到我的服务器。当我访问本地主机上的页面时,它运行良好,当我尝试从其他设备访问或使用 IP 访问时会出现问题。例如:http://localost/Project/Page 运行良好,但 http://192.168.0.5/Project/Page 不起作用。

这是我用来访问媒体的代码。 else语句中出现错误并抛出alert

    navigator.getUserMedia ||
        (navigator.getUserMedia = navigator.mozGetUserMedia ||
            navigator.webkitGetUserMedia || navigator.msGetUserMedia);

    if (navigator.getUserMedia) 
        navigator.getUserMedia( video: true, audio: false , onSuccess, onError);
     else 
        alert('your browser doesn't spport this function');
    

我不知道代码是否不起作用,或者是否有安全策略导致我的页面崩溃。

问候

【问题讨论】:

“不工作”是什么意思?这在很大程度上取决于浏览器的安全设置。但是,正如您在此处看到的:developer.mozilla.org/en-US/docs/Web/API/MediaDevices/… 该方法返回一个承诺。您应该正确捕获异常并检查其内容,因为它可以抛出几种... 感谢您的回答。我已经添加了 try catch 部分,现在它抛出“navigator.getUserMedia is not a function” 在这一行之前放置一个断点:navigator.getUserMedia || (navigator.getUserMedia = navigator.mozGetUserMedia || navigator.webkitGetUserMedia || navigator.msGetUserMedia); 并检查。 但是:navigator.getUserMedia 已弃用!切换到兼容的navigator.mediaDevices.getUserMedia 【参考方案1】:

找到解决方案。我不得不在浏览器中添加一个“安全例外”,并且它起作用了。当您没有 SSL 证书时,可能不是最佳做法,但更便宜。

【讨论】:

以上是关于从网页上的其他设备访问相机的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Webview 中访问相机?

如何从 Webview 中访问相机?

如何从网页访问 iPhone 的相机?

无法从我网络上的其他设备访问 localhost

如何从其他设备访问 XAMPP 服务器?

swift 使用Swift 4从用户设备访问相机,照片库,视频和文件