Обнаружение устройства WebCam с использованием Java - PullRequest
6 голосов
/ 07 декабря 2009

Я использую JMF для управления своей веб-камерой. Моя веб-камера usb прекрасно работает с JMF, Я использовал это в JMStudio, однако, когда я делаю этот вызов из моего кода Java

deviceListVector = CaptureDeviceManager.getDeviceList( null );

мое "устройство захвата звука" обнаружено, однако, моя веб-камера USB на vfw: // 0 не обнаружен. Чтобы уточнить, устройство захвата звука и USB-камеры являются совершенно отдельными устройствами. Как правильно определить веб-камеру USB и ее форматы из JMF?

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 12 декабря 2009

Также вы можете попробовать LTI-Civil или Xuggler .

0 голосов
/ 15 ноября 2012

Чтобы обнаружить только веб-камеры, вы должны передать аргумент методу getDeviceList(Format) (вместо нуля):

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 драйвер JAR в classpath и позвоните, прежде чем перечислять веб-камеры:

Webcam.setDriver(new JmfDriver());

Надеюсь, эта помощь.

...