我正在编写一个显示连接到我的计算机的网络摄像头的应用程序。 我将在这里编写代码,因为代码非常简单。
public static void main(String[] args) {
JFrameImageDisplayer _window = new JFrameImageDisplayer();
//webcamGrabber _wg = new webcamGrabber();
//commented out because I am having trouble with this class.
}
JFrameImageDisplayer打开一个框架,几乎就是这样。 当我运行此代码时,我在框架中打开一个带有JLabel的简单应用程序。如果我关闭应用程序,则整个过程终止(并且Windows任务管理器进程选项卡处理过程也是如此)。
然而,一旦我创建了_wg,即使在我关闭应用程序结束时只是刻录处理能力,任务管理器中的进程也不会终止,直到我手动转到处理栏结束它。
以下是webcamGrabber的构造代码。
{
OpenCVFrameGrabber _grab = new OpenCVFrameGrabber(0);
try{
_grab.start();
} catch (Exception e){
e.printStackTrace();
}
}
答案 0 :(得分:1)
嗯,我不太清楚做什么。所以我手动发布了资源。
protected void processWindowEvent(WindowEvent e){
if(e.getID() == WindowEvent.WINDOW_CLOSING) {
try{_wg._grab.release();}
catch(Exception ee){}
}
super.processWindowEvent(e);
}
不是最漂亮的方式,但它有效。