从多个USB摄像头捕获视频,并使用JAVA Java小程序并排显示在UI中
作者:互联网
我必须制作2个小程序,它们将在TOMCAT服务器中运行,当我在客户端访问网页[HTML页面]时,我有2个摄像头连接到该客户端PC,我想要显示来自两个摄像头的视频客户端同时有2个网页.
我尝试过使用JMF.出来就是
>对于大多数机器中的两台摄像机,它不能同时工作.它适用于一次捕获一个摄像头
>它适用于某些机器,但每次打开网页时都必须选择相机.为第一个小程序选择摄像头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:Micrsoft WDM图像捕获(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,webcam,video-capture,japplet 来源: https://codeday.me/bug/20190709/1418381.html