Java Applet中的网络摄像头

时间:2012-07-10 07:46:02

标签: java applet

我正在尝试创建一个运行客户端网络摄像头的Java Applet并使用按钮拍照但我找不到在applet中运行网络摄像头的方法。有没有人知道一个简单的方法来实现这个目标?

感谢。

2 个答案:

答案 0 :(得分:2)

第一个问题是Applet需要硬件权限。 Applet有一个SecurityManager,它从Java安装中读取策略文件。作为标准,无权从WebCams或文件系统等外部设备读取。

对于你的问题,我认为你应该使用Applet作为JFrame的加载器或其他运行应用程序的东西。

对于网络摄像头,您可以使用OpenCV,这也适用于C ++,Android和.NET。

希望它对你有帮助;)

答案 1 :(得分:0)

我建议你看看 this example 。我想这正是您正在寻找的 - 如何使用网络摄像头功能创建Applet并将其嵌入HTML页面。由于JAR是使用jarsigner工具签名的,因此访问硬件没有问题。当JAR使用自签名证书进行签名时,Java会询问用户是否要运行它。如果使用证书颁发机构的证书进行签名,则不会询问,只需运行即可。

此处提供演示小程序(请耐心等待,网络摄像头需要几秒钟才能初始化):http://webcam-capture.sarxos.pl/examples/applet

您可以使用几个框架,例如:

  1. Webcam Capture这是一个简单的Java库,允许您从嵌入式或USB网络摄像头读取图像,与IP /网络摄像头相同。它不成熟,但很小,可以在Applet中使用。以上提供的实施例I取自它。你不必编写太多代码 - 几乎所有东西都准备好了。它适用于各种系统,如Windows,Linux和Mac OS。
  2. JavaCV这是OpenCV的Java包装器,但我不推荐它,缺少文档和~100MB OpenCV安装包对于Java Applet来说太多了。您可能只需要真正需要的原生二进制文件,但仍然很难区分哪些是真正需要的。它定义了巨大的API,在我看来很难学习。
  3. LTI-CIVIL这是一个小框架,允许您从嵌入式或USB连接的网络摄像头中读取图像。它非常易于使用,但不再维护(2007年的最新更新)。
  4. JMF是适用于Java的Oracle媒体库。它使您可以访问网络摄像头和录制设备,但它很古老(2004年最后一次更新)并且不再维护。它可能与Applet一起使用,但是每个想要使用这个applet的人都必须在他/她的PC上安装JMF。安装包很少 - 每个支持的系统一个(Windows,Linux,Solaris,Mac OS)。
  5. VLCj,它是VLC播放器本机二进制文件的Java包装器。它可以访问网络摄像头,但无法检测到它(至少在Windows上),因此您必须始终知道网络摄像头定位器地址(通常为0),以便从Java Applet中使用它。
  6. OpenIMAJ是非常强大的用于媒体分析的Java库。它非常快速且便携,但遗憾的是需要许多第三方依赖项,因此您的Applet必须全部下载(如果不再更新,则至少20MB)。
  7. 因此,如果您决定使用选项1.您应该很容易重新设计我提供的示例以满足您的需求。在此示例中使用了Maven,但是通过使用Ant或甚至手动创建JAR可以实现相同的效果。