navigator.mediaDevices.enumerateDevices() 仅返回 Safari 上的默认设备?

Posted

技术标签:

【中文标题】navigator.mediaDevices.enumerateDevices() 仅返回 Safari 上的默认设备?【英文标题】:navigator.mediaDevices.enumerateDevices() only Returns Default Devices on Safari? 【发布时间】:2018-07-17 17:52:07 【问题描述】:

在 Firefox 和 Chrome 上,

navigator.mediaDevices.enumerateDevices()

...返回所有连接的音频和视频设备的列表。

但在桌面 Safari 上,至少在我的系统上,它只返回默认设备。

这是预期的行为吗?

【问题讨论】:

这个问题你解决了吗? 一年后的行为似乎仍然相同。 【参考方案1】:

我自己也遇到了这个问题。

AFAICT Safari 仅在调用 getUserMedia 之前获取默认设备。

simpl.info/sources 的演示处理了这个问题。

【讨论】:

【参考方案2】:

另一个选项是允许您的网站从 Safari 网站设置访问您的相机和麦克风,请参阅此处了解如何操作:

https://www.macrumors.com/how-to/access-website-settings-in-safari/.

之后拨打navigator.mediaDevices.enumerateDevices() 将列出您所有的音频/视频设备,即使无需先拨打getuserMedia

【讨论】:

以上是关于navigator.mediaDevices.enumerateDevices() 仅返回 Safari 上的默认设备?的主要内容,如果未能解决你的问题,请参考以下文章