JavaCV 小程序不在网络浏览器中显示视频,仅在桌面中显示

JavaCV applet does not shows video in web browser, only in desktop

我有一个通过 javaCV 与安全性连接的 Web 应用程序。当我在桌面上执行时,我的小程序运行完美。但是,当我将它集成到我的 JSF 页面中时,没有任何错误,但是 OpenCVFrameGrabber 的实例没有启动。为什么? 下面是我在网页中调用Applet的方式(所有依赖已经在jar中):

<applet code="com.br.spacnet.camera.CameraApplet" archive="CameraApplet.jar" width="1000" height="1000"/>

下面是小程序的源码(这里我使用本地摄像头连接进行测试):

try {

    OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);
    jLabel1.setText(jLabel1.getText() + "; instanciou o grabber");
    //grabber.setFormat("mjpeg");
    grabber.start();
    jLabel1.setText(jLabel1.getText() + "; iniciou o Grab");
    opencv_core.IplImage frame = grabber.grab();

    while (jPanel1.isVisible()) {
        jLabel1.setText(jLabel1.getText() + "; entrou no laço");

        jPanel1.getGraphics().drawImage(frame.getBufferedImage(), 0, 0, 320, 240, null);
        jLabel1.setText(jLabel1.getText() + "; redesenhou painel");

    }
    grabber.stop();
    jLabel1.setText(jLabel1.getText() + "; parou o grabber");
    System.exit(0);
} catch (Exception ex) {

    jLabel1.setText("Erro " + ex.getMessage());
}

谢谢安德鲁·汤普森!我启用了我的 Java 控制台,我可以看到 JRE 的几个安全块。因此,我将以下行添加到 java.policy,并且效果很好:

许可 java.util.PropertyPermission "org.bytedeco.javacpp.loadlibraries", "read";

许可 java.util.PropertyPermission "org.bytedeco.javacpp.platform", "read";

权限java.security.AllPermission;

权限java.lang.RuntimePermission"shutdownHooks";