import java.awt.Dimension; import javax.swing.JApplet; import com.github.sarxos.webcam.WebcamCaptureFrameworkDestroyer; import com.github.sarxos.webcam.Webcam; import com.github.sarxos.webcam.WebcamPanel; import com.github.sarxos.webcam.WebcamResolution; public class WebcamAppletExample extends JApplet { private static final long serialVersionUID = 3517366452510566924L; private Dimension size = WebcamResolution.QVGA.getSize(); private Webcam webcam = null; private WebcamPanel panel = null; public WebcamAppletExample() { super(); System.out.println("Construct"); } @Override public void start() { System.out.println("Start"); super.start(); webcam = Webcam.getDefault(); webcam.setViewSize(size); panel = new WebcamPanel(webcam, false); panel.setFPSDisplayed(true); add(panel); if (webcam.isOpen()) { webcam.close(); } int i = 0; do { if (webcam.getLock().isLocked()) { System.out.println("Waiting for lock to be released " + i); try { Thread.sleep(2000); } catch (InterruptedException e1) { return; } } else { break; } } while (i++ < 3); webcam.open(); panel.start(); } @Override public void destroy() { System.out.println("Destroy"); webcam.close(); WebcamCaptureFrameworkDestroyer.destroy(); System.out.println("Destroyed"); } @Override public void stop() { System.out.println("Stop"); webcam.close(); System.out.println("Stopped"); } @Override public void init() { System.out.println("Init"); } }