在java中使用swing笔记本电脑的摄像头

Gop*_*005 -6 java swing camera

如何在 ubuntu 操作系统中使用 java 中的 swing 使用摄像头 请给我一些通过 java 使用摄像头的示例和指南。

public static void main(String[] args) {
    CamDemo t = new CamDemo();
    t.getCam();
}

public void getCam() {
    try {

        /* Grab the default web cam */
        MediaLocator ml = new MediaLocator("vfw://0");
        DataSource ds = Manager.createDataSource(ml);
        requestFormatResolution(ds);
        Player p = Manager.createRealizedPlayer(ds);
        p.start();
        Thread.currentThread().sleep(1000);
        JFrame jfrm = new JFrame("Testing Webcam");
        jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        if (p.getVisualComponent() != null)
            jfrm.getContentPane().add(p.getVisualComponent());
        if (p.getControlPanelComponent() != null)
            jfrm.getContentPane().add(p.getControlPanelComponent(),
                    BorderLayout.SOUTH);
        jfrm.pack();
        jfrm.setLocationRelativeTo(null);
        jfrm.setVisible(true);
        jfrm.setSize(320, 240);

    } catch (Exception e) {
        e.printStackTrace();
    }
}

public boolean requestFormatResolution(DataSource ds) {

    if (ds instanceof CaptureDevice) {
        FormatControl[] fcs = ((CaptureDevice) ds).getFormatControls();
        for (FormatControl fc : fcs) {
            Format[] formats = ((FormatControl) fc).getSupportedFormats();
            for (Format format : formats) {
                if ((format instanceof VideoFormat)
                        && (((VideoFormat) format).getSize().getHeight() <= 240)
                        && (((VideoFormat) format).getSize().getWidth() <= 320)) {
                    ((FormatControl) fc).setFormat(format);
                    return true;
                }
            }
        }
    }
    return false;
}
}
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

javax.media.NoDataSourceException: Cannot find a DataSource for: vfw://0
at javax.media.Manager.createDataSource(Manager.java:1037)
at com.convoy.gpack.pack.CamDemo.getCam(CamDemo.java:32)
at com.convoy.gpack.pack.CamDemo.main(CamDemo.java:16)
Run Code Online (Sandbox Code Playgroud)

Int*_*ion 6

使用 网络摄像头捕获项目。

作者提供的 API 使用示例:

Webcam buildin = Webcam.getWebcams().get(0); // build-in laptop camera
Webcam usb = Webcam.getWebcams().get(1); // usb camera
BufferedImage image1 = buildin.getImage();
BufferedImage image2 = usb.getImage(); // do with image1 and image2 whatever you want
Run Code Online (Sandbox Code Playgroud)

  • @Gopal00005_实际上这个例子太大了,无法与我的项目集成_真的吗?**四行**太大? (5认同)

Phi*_*der 5

Java 媒体框架( jmf) 正是您所寻找的。