我有一个牙科摄像头,我试图在按下摄像头按钮时让窗户按空格键
我已经安装了OEM软件和驱动程序,它可以完美运行,可以在按摄像机按钮时获取供稿并创建快照。我需要使用其他软件来获取供稿和快照,该软件获取供稿但不对相机按钮做出反应,它仅对空格键(OEM驱动程序的一部分)起反应,因此我解决此问题的方法是通过产品ID识别设备,并监听按钮按下事件并重新映射其空间。 在这一点上,我几乎陷入了困境。 我该如何侦听来自我所拥有设备的事件?
public static Device findDCam(){
// Create the libusb context
Context context = new Context();
// Initialize the libusb context
int result = LibUsb.init(context);
if (result < 0)
{
throw new LibUsbException("Unable to initialize libusb", result);
}
// Read the USB device list
DeviceList list = new DeviceList();
result = LibUsb.getDeviceList(context, list);
if (result < 0)
{
throw new LibUsbException("Unable to get device list", result);
}
try
{
// Iterate over all devices and list them
for (Device device: list)
{
DeviceDescriptor descriptor = new DeviceDescriptor();
result = LibUsb.getDeviceDescriptor(device, descriptor);
if (result < 0)
{
throw new LibUsbException(
"Unable to read device descriptor", result);
}
if(descriptor.idProduct()== -3810){
System.out.println("D cam found");
return device;
}
}
}
finally
{
// Ensure the allocated device list is freed
LibUsb.freeDeviceList(list, true);
}
// Deinitialize the libusb context
LibUsb.exit(context);
return null;
}
我还认为,使用usb4java可能是不可能的,因为据我了解,如果我想监听usb端口,则需要从驱动程序获得控制权,然后再毫无意义。 也许我走错了路,我应该改用驱动程序? 也许有一个应用程序可以读取特定设备上的按键并重新映射?
答案 0 :(得分:0)
如果相机具有标准驱动程序,则应通过此video capture SDK进行操作。要对其进行快速测试,请运行程序包中包含的演示可执行文件,在列表中选择摄像机,选中“网络摄像机快照按钮”复选框,然后启动摄像机。然后按相机按钮以测试快照。