我在桌面Safari 13.1版本上遇到问题。如果我在Web检查器(带有带有摄像头和麦克风的常规Macbook)中打开控制台,然后在任何类型的网站上执行以下命令:
navigator.mediaDevices.enumerateDevices()
第一次它将以视频输入和音频输入返回Promise结果。 第二次它将仅返回2个音频输入。视频输入消失了。
不幸的是,我在检查解决方案中的可用设备时多次调用此方法。
您知道为什么会发生这种情况吗?即使我多次调用该设备,也如何获得有关设备的准确信息? See the results here
答案 0 :(得分:1)
我在运行iOS 13的iPad上也发现了相同的问题。
似乎您需要先请求访问摄像头才能查看正确的设备列表。
navigator.mediaDevices.getUserMedia({ video: true })
这将提示您访问摄像机(您必须使用HTTPS或本地主机)。
授予许可,然后再次运行它,您应该看到返回的诺言中列出了videoinput
设备:
navigator.mediaDevices.enumerateDevices()
我认为这是一项隐私保护功能,因为如果不先征得您的许可,网站就无法检查相机是否存在。