Hallo
Ich möchte von meiner Webcam mittels JMF Bilder machen.
Habe dazu folgenden code benutzt der anscheinend bei anderen funktioniert bei mir nicht.
Ich komme nicht darauf warum nicht.
Test-Klasse:
In der Schleife "while(!cam.isReady())" bleibt das Porgramm hängen.
Lg
P.s.: Die USB-Webcam funktioniert über JMStudio, ich gehe also davon aus das es theoretisch mit dieser Kamera funktionieren sollte.
Ich möchte von meiner Webcam mittels JMF Bilder machen.
Habe dazu folgenden code benutzt der anscheinend bei anderen funktioniert bei mir nicht.
Ich komme nicht darauf warum nicht.
Java:
public class Webcam {
private Player _player;
Webcam(){
}
public void initPlayer(){
try{
MediaLocator videoMediaLocator = new MediaLocator("vfw:/0");
_player = Manager.createRealizedPlayer(videoMediaLocator);
}catch(Exception e){
e.printStackTrace();
}
_player.start();
}
public Image grabbImage() {
FrameGrabbingControl fgc = (FrameGrabbingControl) _player.getControl("javax.media.control.FrameGrabbingControl");
Buffer b = fgc.grabFrame();
Image img = null;
try {
BufferToBufferedImage bbtoi = new BufferToBufferedImage((VideoFormat) b.getFormat());
img = bbtoi.createImage(b);
return img;
}
catch (Exception e) {
return null;
}
}
public boolean isReady(){
return grabbImage() != null;
}
public void closeGrabber(){
_player.close();
}
}
Java:
Webcam cam=new Webcam();
cam.initPlayer();
while(!cam.isReady()){ //IN DIESER SCHLEIFE BLEIBT DAS PROGRAMM HÄNGEN!
Thread.sleep(100);
System.out.println("a ");
}
System.out.println("GO ");
image=cam.grabbImage();
try {
ImageIO.write((RenderedImage) image, "png", new File("C:\\Image.png"));
} catch (IOException e) {
e.printStackTrace();
}
cam.closeGrabber();
Lg
P.s.: Die USB-Webcam funktioniert über JMStudio, ich gehe also davon aus das es theoretisch mit dieser Kamera funktionieren sollte.