gpt4 book ai didi

javascript - WebUSB 按 deviceClass 和 deviceSubClass 过滤

转载 作者:行者123 更新时间:2023-11-30 13:58:10 25 4
gpt4 key购买 nike

我正在开发一个使用 WebUSB 的 UVC 实用程序,但我无法让它仅列出网络摄像头。我应该能够添加基于 deviceClass 和 deviceSubClass 的过滤器,但它返回一个空列表。

这是一个网络摄像头设备...

0: USBDevice
configuration: USBConfiguration {configurationName: null, configurationValue: 1, interfaces: Array(5)}
configurations: [USBConfiguration]
deviceClass: 239
deviceProtocol: 1
deviceSubclass: 2
deviceVersionMajor: 1
deviceVersionMinor: 1
deviceVersionSubminor: 3
manufacturerName: "Microsoft"
opened: false
productId: 1906
productName: "Microsoft® LifeCam Studio(TM)"
serialNumber: ""
usbVersionMajor: 2
usbVersionMinor: 0
usbVersionSubminor: 0
vendorId: 1118

您可以看到 deviceClass 是 239 (0xEF),deviceSubClass 是 2,所以我应该能够根据这些条件进行过滤,但我没有得到任何结果。

https://www.xmos.com/download/AN00127:-USB-Video-Class-Device(2.0.2rc1).pdf

For Video class device, it is mandatory to set the ‘bDeviceClass’, ‘bDeviceSubClass’ and ‘bDeviceProtocol’ fields to 0xEF, 0x02 and 0x01 respectively.

const opts = {
filters: [{
classCode: 239, // 0xEF
subclassCode: 2, // 0x02
}]
}
const device = await navigator.usb.requestDevice(opts)

enter image description here

没有过滤器,我可以看到所有的 USB 设备

enter image description here

我也试过添加protocolCode,但是也没用,我觉得没必要。即使只传递 classCode 字段也会返回一个空列表。

WebUSB API spec

最佳答案

我已经提交了issue 980281针对 Chromium 解决设备过滤问题。

正如评论中所讨论的那样,很难直接控制 UVC 相机,因为操作系统通常要求这些设备具有内核驱动程序,从而阻止网络浏览器。作为支持使用网络平台媒体 API 的安全/隐私措施,Blink 还明确阻止访问此类设备。

问题的作者正在寻找控制对比度和曝光等参数的能力。这些由 extensions 支持到 Image Capture API 中包含的媒体轨道可约束属性。但是,并非所有平台上的浏览器都支持所有这些功能。例如,Chromium 不支持 macOS 上的许多限制,因为它受到可以通过 AVFoundation 控制的内容的限制。这是由 issue 817805 跟踪的在 Chromium 错误跟踪器中。

关于javascript - WebUSB 按 deviceClass 和 deviceSubClass 过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56819880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com