2012-09-24 15 views
0

捕捉IMAGEM我在線路508,我有這樣的代碼有錯誤NullPointerException異常時,試圖從網絡攝像頭

buf = fgc.grabFrame();

CODE:

startC.addActionListener(new ActionListener() 
     {   
      @Override 
      public void actionPerformed(ActionEvent e) 
      {     
        // Grab a frame 
        FrameGrabbingControl fgc = (FrameGrabbingControl) 
        player.getControl("javax.media.control.FrameGrabbingControl");  
        buf = fgc.grabFrame();  

       // Convert it to an image 
       BufferToImage btoi = new BufferToImage((VideoFormat)buf.getFormat()); 
       img = btoi.createImage(buf);    

        // show the image 
        //imgpanel.setImage(img);  

        // save image 
        try { 
        saveJPG(img,"c:\\test.jpg"); 
       } catch (IOException e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 
       } 
}): 

STACK:

Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException 
at com.colorfulwolf.webcamapplet.WebcamApplet$6.actionPerformed(WebcamApplet.java:508) 
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 
at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) 
at java.awt.Component.processMouseEvent(Unknown Source) 
at javax.swing.JComponent.processMouseEvent(Unknown Source) 
at java.awt.Component.processEvent(Unknown Source) 
at java.awt.Container.processEvent(Unknown Source) 
at java.awt.Component.dispatchEventImpl(Unknown Source) 
at java.awt.Container.dispatchEventImpl(Unknown Source) 
at java.awt.Component.dispatchEvent(Unknown Source) 
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 
at java.awt.Container.dispatchEventImpl(Unknown Source) 
at java.awt.Component.dispatchEvent(Unknown Source) 
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
at java.awt.EventQueue.access$000(Unknown Source) 
at java.awt.EventQueue$3.run(Unknown Source) 
at java.awt.EventQueue$3.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
at java.awt.EventQueue$4.run(Unknown Source) 
at java.awt.EventQueue$4.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
at java.awt.EventQueue.dispatchEvent(Unknown Source) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
at java.awt.EventDispatchThread.run(Unknown Source) 

這條線發生了什麼問題?

+0

有你'實例player'? – Reimeus

+0

是的。 'public static Player player = null; ' –

+1

那會是你的問題呢! –

回答

3

您需要分配給player一個實例:

public static Player player = new Player(); 
+0

@Lucas_Santos您還需要**實例化fgc變量。無論什麼類型。它不應該有一個空值。給它設置一個空值,然後嘗試使用它就像是在尋找麻煩。 –

+0

@Reimeus我試了這一個,但看看我更新的問題。 –

+0

,現在我有'公共緩衝區buf = new Buffer(); ' –