0

コンピューターに接続された Web カメラを表示するアプリケーションを作成しています。コードは非常に単純なので、ここではコードのみを記述します。

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();
    }
}
4

1 に答える 1

1

さて、私は何をするのかよくわかりませんでした。そこで、手動でリソースを解放しました。

protected void processWindowEvent(WindowEvent e){
    if(e.getID() == WindowEvent.WINDOW_CLOSING) {
        try{_wg._grab.release();}
        catch(Exception ee){}
    }
    super.processWindowEvent(e);
}

それを行うための最も美しい方法ではありませんが、それは機能します。

于 2013-02-27T08:02:50.047 に答える