使用 java 媒体框架在 java 中录制视频会引发异常



为了使用 java 和 jmf 从 web 捕获实时视频,我编写了以下代码,我插入了 USB 网络摄像头,并安装了 java mediaframewrok 最新和更新的版本.当我遵守程序时没有错误,但是当我运行程序时,我遇到了这样的错误......

    Exception in thread "VFW Request Thread" java.lang.UnsatisfiedLinkError: JMFSecurityManager: java.lang.UnsatisfiedLinkError: no jmvfw in java.library.path at com.sun.media.JMFSecurityManager.loadLibrary(JMFSecurityManager.java:
206)
        at com.sun.media.protocol.vfw.VFWCapture.<clinit>(VFWCapture.java:19)
        at com.sun.media.protocol.vfw.VFWSourceStream.doConnect(VFWSourceStream.
java:241)
        at com.sun.media.protocol.vfw.VFWSourceStream.run(VFWSourceStream.java:7
63)
        at java.lang.Thread.run(Thread.java:724)

你应该像这样加载库(并且可以检查库路径是否已加载)。

   public class Test {
      static {
        try {
            System.load("C:/PATH_TO/jmvfw.dll");
            System.out.println(String.format("%s has been successfully loaded","jmvfw"));
        } catch (UnsatisfiedLinkError e) {
          System.err.println("Native code library jmvfw  failed to load." , e);
          System.exit(1);
        }
      }
      //check if the lib is in java.library.path
      public static void main(String argv[]) {
        String libs = System.getProperty("java.library.path");
        for (String lib : libs.split(";")) 
            System.out.println(lib);
      }
    }

更新

错误:

C:jmvfw.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform

表示您的 DLL 是 32 位的。您必须重新编译(或下载)64 位的 DLL。另一种选择是切换到 32 位 JVM - 或者让一些 32 位进程代表您加载 DLL 并与该进程通信(有点复杂)。

相关内容

  • 没有找到相关文章

最新更新