Safari 13.1 navigator.mediaDevices.enumerateDevices()仅返回音频设备

时间:2020-05-06 07:21:41

标签: safari webcam navigator mediadevices enumerate-devices

我在桌面Safari 13.1版本上遇到问题。如果我在Web检查器(带有带有摄像头和麦克风的常规Macbook)中打开控制台,然后在任何类型的网站上执行以下命令:

navigator.mediaDevices.enumerateDevices()

第一次它将以视频输入和音频输入返回Promise结果。 第二次它将仅返回2个音频输入。视频输入消失了。

不幸的是,我在检查解决方案中的可用设备时多次调用此方法。

您知道为什么会发生这种情况吗?即使我多次调用该设备,也如何获得有关设备的准确信息? See the results here

1 个答案:

答案 0 :(得分:1)

我在运行iOS 13的iPad上也发现了相同的问题。

似乎您需要先请求访问摄像头才能查看正确的设备列表。

navigator.mediaDevices.getUserMedia({ video: true })

这将提示您访问摄像机(您必须使用HTTPS或本地主机)。

授予许可,然后再次运行它,您应该看到返回的诺言中列出了videoinput设备:

navigator.mediaDevices.enumerateDevices()

我认为这是一项隐私保护功能,因为如果不先征得您的许可,网站就无法检查相机是否存在。