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

问题描述 投票:0回答:1

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

navigator.mediaDevices.enumerateDevices()

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

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

任何想法为什么会发生,即使我多次调用它,也如何获得有关设备的准确信息?See the results here

safari webcam navigator mediadevices enumerate-devices
1个回答
0
投票

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

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

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

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

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

navigator.mediaDevices.enumerateDevices()

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

© www.soinside.com 2019 - 2024. All rights reserved.