Я разрабатываю утилиту UVC, которая использует WebUSB, но у меня возникают проблемы с тем, чтобы вывести ее в список ТОЛЬКО веб-камер. Я должен иметь возможность добавлять фильтры на основе 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
Для устройства класса Video обязательно установить «bDeviceClass», «bDeviceSubClass» и «bDeviceProtocol»
поля до 0xEF, 0x02 и 0x01 соответственно.
const opts = {
filters: [{
classCode: 239, // 0xEF
subclassCode: 2, // 0x02
}]
}
const device = await navigator.usb.requestDevice(opts)
Без фильтров я вижу все устройства USB
Я также пытался добавить protocolCode, но это тоже не работает, и я не думаю, что это необходимо. Даже передача только поля classCode возвращает пустой список.
Спецификация API WebUSB