使用java检测WebCam设备

时间:2009-12-07 07:45:57

标签: java webcam jmf

我正在使用JMF操作我的网络摄像头。我的网络摄像头与JMF完美配合, 我在JMStudio中使用它,但是当我从我的java代码

进行调用时
deviceListVector = CaptureDeviceManager.getDeviceList( null );
然而,检测到我的“音频捕获设备”,我的usb网络摄像头在 vfw://未检测到0。为了澄清,音频捕获设备和 USB cam是完全独立的设备。 如何从JMF正确检测usb网络摄像头及其格式?

提前致谢

2 个答案:

答案 0 :(得分:1)

您也可以尝试LTI-CivilXuggler

答案 1 :(得分:0)

要检测网络摄像头,您应该将参数传递给getDeviceList(Format)方法(而不是null):

Vector<Object> devices = CaptureDeviceManager.getDeviceList(new Format("RGB"));
Iterator<Object> di = devices.iterator();
while (di.hasNext()) {
    CaptureDeviceInfo info = (CaptureDeviceInfo) di.next();
    System.out.println(info);
}

这应该打印所有的网络摄像头 - 内置和连接USB。我已经测试了这段代码,它对我有用。

如果这样做没有帮助(因为JMF已经过时了,代码的某些部分可能已过时),您可以尝试使用 Webcam Capture 项目的一部分。它适用于大多数平台--Windows x86和x64,Linux x86和x64,Mac OS等。如果你决定尝试它,你必须写这样的东西来列出你的所有网络摄像头设备:

List<Webcam> webcams = Webcam.getDevices();

请注意,它也可以在JMF之上工作 - 要将默认的内置驱动程序替换为JMF,您必须将 JMF driver JAR添加到类路径中并调用此方法在列出网络摄像头之前:

Webcam.setDriver(new JmfDriver());

希望得到这个帮助。

相关问题