0

プログラムを実行して、Web カメラでキャプチャされたビデオからフレームを取得しているときに、NullPointerException の問題に直面しています。キャプチャ デバイスの設定を変更しようとしましたが、次のようなオプションはありません

"vfw:Microsoft WDM Image Capture (Win32):0" は、jmf でデバイスを見つけることができません。.so は、マテリアルを参照するコードに直接記載されていますが、機能していません! これにはネットビーンを使用しており、ネットビーンズにも含まれるjmfのライブラリを使用しています。this.my コードの修正を手伝ってください:

package VideoSource;

/**
 *
 * @author sri 
 */
import java.awt.Frame; 
import javax.imageio.ImageIO;
import java.awt.Image; 
import java.awt.image.BufferedImage; 
import java.awt.image.RenderedImage;
import java.io.File;
import java.io.IOException;
import javax.media.Buffer; 
import javax.media.Manager; 
import javax.media.NoPlayerException;
import javax.media.Player; 
import javax.media.CaptureDeviceInfo;
import javax.media.control.FrameGrabbingControl; 
import javax.media.format.VideoFormat; 
import javax.media.util.BufferToImage; 
import javax.media.*;

public class frames {
     public static final String DEVICE ="vfw:Microsoft WDM Image Capture (Win32):0";

   //protected Player player;
    public static void main(String args[]) throws IOException, CannotRealizeException{
   try{ 

       CaptureDeviceInfo cdi = CaptureDeviceManager.getDevice(DEVICE);

    Player player = Manager.createRealizedPlayer(cdi.getLocator());
    player.start();
    FrameGrabbingControl frameGrabber = (FrameGrabbingControl) player.getControl("javax.media.control.FrameGrabbingControl");

   Buffer buf = frameGrabber.grabFrame();
   //BufferedImage buf1 = frameGrabber.grabFrame();
   // Convert frame to an buffered image so it can be processed and saved
Image img = (new BufferToImage((VideoFormat) buf.getFormat()).createImage(buf));
if(img!=null){
RenderedImage img1=(RenderedImage) img;
int i=0;
      File outputfile = new File("d:/Project/frame"+(i++)+".jpg");
      ImageIO.write(img1, "jpg", outputfile);
}
else
    System.out.println("null from frame grabbing");
//return img;
   }
   catch(NoPlayerException n)
   {

   }




}
}

私は例外があります:

Exception in thread "main" java.lang.NullPointerException
    at VideoSource.frames.main(frames.java:37)
Java Result: 1
4

0 に答える 0