Я надеялся, что кто-то сможет мне помочь с проблемой, с которой я сталкиваюсь, с приложением, которое я разрабатываю, которое использует веб-камеру в java с медиа-библиотекой JMF.Приложение Java Webcam GUI
Проблема, которую я имею, я могу запустить веб-камеру ОК в приложении само по себе с этим классом здесь
import java.awt.BorderLayout;
import java.util.Vector;
import javax.media.CaptureDeviceInfo;
import javax.media.CaptureDeviceManager;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.Player;
import javax.media.control.FormatControl;
import javax.swing.JFrame;
import javax.swing.JButton;
public class WebcamClass{
CaptureDeviceInfo cam;
MediaLocator locator;
Player player;
FormatControl formatControl;
public WebcamClass(){
try{
// List out available Devices to Capture Video.
Vector<CaptureDeviceInfo> list = CaptureDeviceManager.getDeviceList (null);
System.out.println(list);
// Iterating list
for(CaptureDeviceInfo temp : list){
// Checking whether the current device supports VfW
// VfW = Video for Windows
if(temp.getName().startsWith("vfw:"))
{
System.out.println("Found : "+temp.getName().substring(4));
// Selecting the very first device that supports VfW
cam = temp;
System.out.println("Selected : "+cam.getName().substring(4));
break;
}
}
System.out.println("Put it on work!...");
// Getting the MediaLocator for Selected device.
// MediaLocator describes the location of media content
locator = cam.getLocator();
if(locator != null){
// Create a Player for Media Located by MediaLocator
player = Manager.createRealizedPlayer(locator);
if(player != null){
// Starting the player
player.start();
// Creating a Frame to display Video
JFrame f = new JFrame();
f.setTitle("Test Webcam");
f.setLayout(new BorderLayout());
// Adding the Visual Component to display Video captured by Player
// from URL provided by MediaLocator
f.add(player.getVisualComponent(), BorderLayout.CENTER);
f.pack();
f.setVisible(true);
}
}
}catch(Exception e){
System.out.println(e);
}
}
}
Однако, когда я положил его в мой GUI приложение, в котором я хотел бы чтобы запустить его, я продолжаю получать «Исключение в потоке» AWT-EventQueue-0 «java.lang.NullPointerException», когда я нажимаю кнопку, чтобы включить камеру.
Я знаю, что он не подбирает устройство для веб-камеры, но я не могу понять, почему это происходит, когда я не пытаюсь встроить его в свой графический интерфейс.
У меня есть JMF.jar в папке моих библиотек.
Любая помощь была бы принята с благодарностью.