【问题标题】:safari 13.1 navigator.mediaDevices.enumerateDevices() return only audio devicessafari 13.1 navigator.mediaDevices.enumerateDevices() 仅返回音频设备
【发布时间】:2020-08-21 01:55:19
【问题描述】:

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

navigator.mediaDevices.enumerateDevices()

第一次它会在 Promise 结果中返回一个视频输入和一个音频输入。 第二次它只会返回 2 个音频输入。视频输入消失了。

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

知道为什么会发生这种情况吗?即使我不止一次调用它,我如何才能获得有关设备的准确信息? See the results here

【问题讨论】:

    标签: safari webcam navigator mediadevices enumerate-devices


    【解决方案1】:

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

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

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

    这将提示您访问相机(您需要在 HTTPS 或 localhost 上)。

    授予权限,然后再次运行,您应该会在返回的承诺中看到 videoinput 设备:

    navigator.mediaDevices.enumerateDevices()
    

    我想这是一种隐私功能,网站在没有事先征得您许可的情况下无法检查相机是否存在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-04
      • 2015-05-07
      • 1970-01-01
      • 2018-03-20
      • 2013-02-09
      • 2014-09-19
      相关资源
      最近更新 更多