0

Java を介して Web カメラからスナップショットを取得したいと考えています。私はこの質問に従い、このにたどり着きました。しかし、以下の行からヌルポインタ例外が発生しています -

Buffer buf = frameGrabber.grabFrame();
Image img = (new BufferToImage((VideoFormat) buf.getFormat())
                .createImage(buf));
        buffImg = new BufferedImage(img.getWidth(this), img.getHeight(this),
                BufferedImage.TYPE_INT_RGB);

デバッガーを使用して、バッファーに実際にはデータが含まれていないことを確認しました。そこで、frameGrabber の作成に取り掛かりました。

frameGrabber = (FrameGrabbingControl) player
                .getControl("javax.media.control.FrameGrabbingControl");

このコードに問題はありますか。JMFStudio は私のマシンで正常に動作しますが、コードはそれにアクセスできません。ありがとうございました。

4

1 に答える 1

0

解決策を見つけました。JMF は初期化に時間が必要です。この例では、行を切り替える必要があります。置く

new Timer(3000, this).start();

トライキャッチの下。

ブロック全体は以下のようになります。

        try {
            player = Manager.createRealizedPlayer(cdi.getLocator());
            player.start();
        } catch (NoPlayerException e) {
            e.printStackTrace();
        } catch (CannotRealizeException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
            new Timer(3000, this).start();
        // Grab a frame from the capture device
        frameGrabber = (FrameGrabbingControl) player
                .getControl("javax.media.control.FrameGrabbingControl");
于 2012-05-16T05:51:32.980 に答える