Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么navigator.mediaDevices.enumerateDevices()返回不同的值?_Javascript_Macos_Google Chrome - Fatal编程技术网

Javascript 为什么navigator.mediaDevices.enumerateDevices()返回不同的值?

Javascript 为什么navigator.mediaDevices.enumerateDevices()返回不同的值?,javascript,macos,google-chrome,Javascript,Macos,Google Chrome,我试图在我的应用程序中使用navigator.mediaDevices.enumerateDevices(),但在macOS上的Chrome浏览器(版本90.0.4430.212(正式版本)(x86_64))的其他选项卡中,我得到的值不同 我有一个值正确的应用程序: (6) [InputDeviceInfo, InputDeviceInfo, MediaDeviceInfo, MediaDeviceInfo, MediaDeviceInfo, MediaDeviceInfo] 0: InputD

我试图在我的应用程序中使用
navigator.mediaDevices.enumerateDevices()
,但在macOS上的Chrome浏览器(版本90.0.4430.212(正式版本)(x86_64))的其他选项卡中,我得到的值不同

我有一个值正确的应用程序:

(6) [InputDeviceInfo, InputDeviceInfo, MediaDeviceInfo, MediaDeviceInfo, MediaDeviceInfo, MediaDeviceInfo]
0: InputDeviceInfo {deviceId: "default", kind: "audioinput", label: "Default - Internal Microphone (Built-in)", groupId: "c94bbcbb837464efa2be6befae9af57071548deadbaa65858734e6ec195b13e5"}
1: InputDeviceInfo {deviceId: "1cc1945e5003a2e0719d7dd5d8a608751d736931f5b4717779477b81de639cc7", kind: "audioinput", label: "Internal Microphone (Built-in)", groupId: "c94bbcbb837464efa2be6befae9af57071548deadbaa65858734e6ec195b13e5"}
2: MediaDeviceInfo {deviceId: "default", kind: "audiooutput", label: "Default - Headphones (Built-in)", groupId: "c94bbcbb837464efa2be6befae9af57071548deadbaa65858734e6ec195b13e5"}
3: MediaDeviceInfo {deviceId: "e7a1915585026f90deec4ec0c8f6b80e9501d024383f6b57e39b66459e84e16f", kind: "audiooutput", label: "Headphones (Built-in)", groupId: "c94bbcbb837464efa2be6befae9af57071548deadbaa65858734e6ec195b13e5"}
4: MediaDeviceInfo {deviceId: "4b226402572bc2af31811f5420c82ab7d28e957a2972e1505060cbdcd4f349c0", kind: "audiooutput", label: "DELL U2719D (DisplayPort)", groupId: "a4fbcbab8bae9811e123536d0ab9ea28a9179aed6439209ec74a08ba3b978da0"}
5: MediaDeviceInfo {deviceId: "c1e379faea073a3dc9e6ad3a69c2b7ef9e186b3faa1194f454cdc9ae1cb8aa80", kind: "audiooutput", label: "DELL U2719D (DisplayPort)", groupId: "7a20b5af20e078ebff0a2ee7d0412c9cce78be62378c22e492380ff201ac0a63"}
但如果您切换到另一个域的另一个选项卡(但使用我的应用程序的生产版本),甚至chrome://newtab 我得到:

0: InputDeviceInfo
deviceId: ""
groupId: "44b72fddafb7c5df78739a1b773a7842214a620402bca6537a545dd3e1df7424"
kind: "audioinput"
label: ""
__proto__: InputDeviceInfo
1: MediaDeviceInfo
deviceId: ""
groupId: "44b72fddafb7c5df78739a1b773a7842214a620402bca6537a545dd3e1df7424"
kind: "audiooutput"
label: ""

这种行为的原因是什么?我甚至没有使用这些设备,当我得到第二个结果时,我的应用程序的选项卡关闭。

如果你看到一个空的设备ID,这意味着你没有授予它权限。使用
MediaDevices.getUserMedia()