gpt4 book ai didi

java - 使用 JAVA + Java 小程序从多个 USB 摄像头捕获视频并在 UI 中并排显示

转载 作者:搜寻专家 更新时间:2023-11-01 03:43:57 24 4
gpt4 key购买 nike

我必须制作 2 个小程序,它们将在类似 TOMCAT 的服务器上运行,当我在客户端访问网页 [HTML 页面] 时,我有 2 个摄像头附加到该客户端PC,我想在客户端同时2个网页上显示来自两个摄像头的视频。

我试过使用 JMF。输出是

  1. 大多数机器的两个摄像头不会同时工作。它适用于一次拍摄一个相机

  2. 它适用于某些机器,但您每次打开网页时都必须选择相机。为第一个小程序选择摄像头 1,为第二个小程序选择摄像头 2。

有/没有 JMF 的方法,我可以在一台客户端 PC 上打开 2 个网页,并在远程服务器上运行相同的 2 个小程序,并在每个页面上显示来自每个 USBCAM 的视频?

我在使用 JMF 时使用过它。

private void StartStreaming()
{
String mediaFile = "vfw:Micrsoft WDM Image Capture (Win32):0";
try
{
MediaLocator mlr = new MediaLocator(mediaFile);
_player = Manager.createRealizedPlayer(mlr);

if (_player.getVisualComponent() != null)
{
setSize(480, 320);
jpnVideoStream.add("South", _player.getVisualComponent());
}
}
catch (Exception e)
{
System.err.println("Got exception " + e);
}
_player.start();
}

这是我的两个小程序中的内容。但正如我所说,大多数时候,它会启动一个 CAM,然后显示设备正在使用中,无法捕获消息。

请提出任何解决方案。

最佳答案

问题是您试图在两个小程序中使用相同的网络摄像头。

改为使用:

String mediaFile = "webcam 1"  in applet 1
String mediaFile = "webcam 2" in applet 2

您的第一个网络摄像头是:vfw:Microsoft WDM Image Capture (Win32):0

您可以使用 JMStudio 检查您的第二个网络摄像头。选择 File->Preferences->Capture Devices 然后点击 Detect Capture devices。

这也可以使用代码来完成,但上面的代码更简单。我仍然列出代码:

Vector list = CaptureDeviceManager.getDeviceList(null);
int i;
CaptureDeviceInfo tempDevice;

// List all the devices ...
if( list!=null) {

if( list.size() == 0)
{
System.out.println("the device list is zero : ");
System.exit(1);
}

System.out.println("The devices are : ");

for( i=0;i< list.size() ;i++ ) {
tempDevice = (CaptureDeviceInfo) list.elementAt(i);
System.out.println(tempDevice.getName());
}
}

注意:如果代码不起作用,请尝试以管理员身份运行代码。

关于java - 使用 JAVA + Java 小程序从多个 USB 摄像头捕获视频并在 UI 中并排显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7415489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com