问题标签 [enumerate-devices]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - \\.\ 命名空间中有哪些设备?
我知道我可以通过 CreateFile 打开一个名为“\\.\ name的物理设备,
例如“\\.\CdRom0”或“\\.\PhysicalDrive0”。
其他可用的设备名称是否记录在某处?
有没有办法列举它们?
safari - 如何在 Safari 中请求替代视频输入?
要从 获取替代视频输入MediaDevices.getUserMedia
,我的理解是您需要将 传入deviceID
作为约束。但是,在 Safari 中,要访问deviceID
s via enumerateDevices
,我需要先调用getUserMedia
并获得浏览器的许可(也许还有另一种方法?)。问题是这个初始getUserMedia
调用只返回我已获得许可的设备的设备信息,所以我仍然没有备用视频输入的设备 ID。
我怎样才能得到deviceID
这个视频输入?
就我而言,我正在尝试找到deviceID
Snapchat 的“Snap Camera”。在 Chrome 中,我可以找到并流式传输此视频输入。
javascript - getUserMedia 之后的 enumerateDevices:如何找到活动设备?
MediaStream
给定一个实例,有没有办法检测哪个设备(相机、麦克风)处于活动状态?
我目前正在开发的应用程序只是简单地查询这样一个流并将其附加到一个<video/>
元素:
下一步是让用户能够更改摄像头/麦克风。基本代码是:
我可以简单地将这个列表转换为<select/>
+<option/>
列表(每个列表一个),让用户决定并使用选定的( )kind
重新请求流。deviceId
getUserMedia({ audio: { deviceId: selectedDeviceId } })
但是:轨道和设备 ID 不匹配,如何确定<option/>
应该预选哪个?查看 MDN,流的轨道 ID 是由浏览器生成的(这是有道理的),但MediaStream
API并没有提供太多替代方案......
当然,答案不能是“按标签行事”——我可以插入第二个相同的网络摄像头并拥有两个同名的视频设备?
javascript - 如何在 React JSX 的下拉菜单中向用户显示控制台日志信息?
我需要帮助console log
来向用户显示信息。
因此,为了获取连接到用户计算机的音频和视频设备的列表,我有这个代码。我只能在控制台日志中看到设备列表(或通过 Chrome 中的开发者工具)
但是如何使用我拥有的工作代码将deviceIDs
, 中显示的内容添加console log
到这些下拉菜单选项之一中?
javascript - 如果可用,我可以从微距相机创建流吗?
有没有办法使用微距相机获取微距相机流mediaDevices.getUserMedia(constraints)
?
我正在尝试创建一个将扫描打印出的条形码的网络应用程序,并注意到在三星 A51 等某些手机上,如果我只是将其facingMode: environment
用作约束,它会打开无法聚焦在非常小的距离上的默认相机我必须更换相机(我通过 获取它们enumerateDevices()
)并再次测试,直到找到合适的相机(宏)。
因此,我正在考虑在第一次尝试时应用一些更具体的约束来获取微距相机,但我不确定要应用哪些约束。
c++ - 在 C++ 中使用 Alsa soundlib 获取 device.description
我是 alsa 的新手,pulsAudio,需要帮助解决这个问题。
这是我的系统 pacmd list-sources 上 pacmd 命令的截断输出:
我想获取字段:device.description = "Built-in Audio Analog Stereo"使用一个简单的 C++ 程序
当我尝试使用获取描述时,
desc = snd_device_name_get_hint(*n, "DESC");
我得到同一设备的以下输出
有没有办法可以获取类似于 pacmd 输出的描述?
如果不可能,是否有人知道如何从 pacmd 输出中获取名称: <alsa_input.pci-0000_00_1f.3.analog-stereo>字段。
我从官方页面尝试了一堆 pf API: https ://www.alsa-project.org/alsa-doc/alsa-lib/group___control.html 但没有运气
我目前正在运行的代码:
javascript - Android上的多个摄像头
为什么有些 Android 设备在 中暴露所有物理摄像头navigator.mediaDevices.enumerateDevices()
,而另一些则只暴露一个?我测试的设备在 Android 10 或 11 上运行。
根据此文档,运行 Android 9 或更高版本的设备将支持曝光所有摄像头。
我也尝试使用 Camera 2 API,但没有任何运气。我得到的只是两个摄像头,一个正面和一个背面。但我的设备有 3 个后置摄像头。
你知道为什么我无法使用 Android 11 访问所有相机吗?或者如何启用所有这些?
谢谢,阿林
javascript - mediaDevices enumerateDevices 返回不存在的视频输入
我需要根据正在运行 Web 应用程序的相机的存在来显示一个按钮。我有以下代码来检测相机的存在
这恰好可以在我的台式计算机上的本地 IIS 上正常运行。如果我插入一个 USB 摄像头,我会得到一个videoinput
,如果我拔掉它,那么enumerateDevices()
再次操作时设备会被移除。
但是,当我将它部署到我们的测试环境并在运行时使用同一台台式计算机enumerateDevices()
访问网站时,我总是会得到一个videoinput
设备。当groupId
我拔下相机时,它发生了变化,但是当我再次插入它时,它又被设置回了原始值。
同样不同的是,在本地我得到一个标签值“FaceCam 2020”,而在测试环境中,无论相机是否连接,我都会得到一个空标签。这让我认为这可能与权限有关,但我希望视频输入永远不会在测试中显示,而不是相反。