现在的位置: 首页 > 综合 > 正文

JMF在Win 7环境搭建及摄像头采集视频程序测试

2019年03月01日 ⁄ 综合 ⁄ 共 2317字 ⁄ 字号 评论关闭

1.环境及软件准备:

      windows 7旗舰版 32-bit

      jdk-7u40-windows-i586.exe  (注意:本人下载当时最新javaSE版本,其他32-bit版本均可)

      jmf-2_1_1e-windows-i586.exe (目前最新的版本)

2.JMF环境搭建

   2.1.jdk安装(务必以管理员身份登录安装)

         可以参考:http://wenku.baidu.com/link?url=P394xEtmM7LcwJa0DveAaFB0TwZ3NzF3ODmaxw2winS9_mibaA7O4gEi0kbG6cjcswuTDiDmo1d-XmpI5aWBjPSdhzKeKYp6uXcux4OVFIa

   2.2 jmf安装(务必以管理员身份登录安装,走过弯路!

         安装时,双击jmf-2_1_1e-windows-i586.exe,选择安装目录,会自动安装完成的。强烈建议:以管理员身份运行。当安装将要完成的时候,JMF会检测系统的可用媒体硬件,例如摄像头,麦克风等,所以会需要等待一会,耐心等待。(耐心等待可以免去后面自己手动注册音频和视频设备)

一切都安装好,配置好了以后,在系统环境变量之中配置上
JMF_HOME=E:\jmf2.1.1e 和 CLASSPATH=%JMF_HOME%\lib;(注意:以上两个变量不进行配置也可以正常运行,因为以上java和jmf版本会自动配置管理员的ClASSPATH环境变量,本人就没有配置,运行良好

2.3
是否安装成功,本人采用摄像头采集视频测试

说明:本人下载的是最新的windows
版本的 Eclipse,可以在官网下载到,Eclipse的初始配置可以在网上搜到很多资料,此处不赘述。

采用Eclipse新建java project时,一定要在工程中导入Jmf安装目录下的lib中的所有jar包,我的安装目录是C:\JMF2.1.1e\lib,因为该目录下的jmf.properties是已经注册的摄像头及音频的设备列表,在捕获摄像头前要读取该表,如果不导入以上jar包,设备的列表将为空,不能捕获摄像头,本人在此处走过弯路,特将工程截图说明给大家:



源码如下:

import java.awt.BorderLayout; 
import java.awt.Component; 
import java.util.Vector;

import javax.media.CaptureDeviceInfo; 
import javax.media.CaptureDeviceManager; 
import javax.media.Manager; 
import javax.media.MediaLocator; 
import javax.media.Player; 
import javax.swing.JFrame;

public class CameraTest extends JFrame { 

public CameraTest() throws Exception { 
//先启动摄像头,再做后续的初始化窗体,可保证正确显示摄像头 
initCapture(); 

//设置窗体的一些属性 
this.setTitle("CaptureTest"); 
this.setBounds(500, 100, 800, 500); 
this.setVisible(true); 
this.setDefaultCloseOperation(EXIT_ON_CLOSE); 
}

/** 
* 初始化摄像头 
*/ 
private void initCapture() throws Exception { 
//获取所有音频、视频设备 
Vector<javax.media.CaptureDeviceInfo> deviceList = CaptureDeviceManager.getDeviceList(null); 

//获取视频设备,视频设备以vfw打头 
CaptureDeviceInfo cameraDevice = null; 
for(CaptureDeviceInfo cameraDeviceTmp :deviceList){ 
if (cameraDeviceTmp.getName().startsWith("vfw")) { 
cameraDevice = cameraDeviceTmp; 
break; 

if(cameraDevice == null){ 
throw new Exception("找不到摄像头设备"); 
}

//创建视频播放器 
MediaLocator ml = cameraDevice.getLocator(); 
Player player = Manager.createRealizedPlayer(ml);

if (player == null){ 
throw new Exception("创建摄像头播放器失败"); 

//播放视频 
player.start(); 

//将播放器加入窗体 
Component comp = null; 
if ((comp = player.getVisualComponent()) != null) 
add(comp, BorderLayout.CENTER); 

}

public static void main(String[] args) { 
try {

CameraTest mc = new CameraTest(); 
} catch (Exception e) { 
e.printStackTrace(); 


}


测试结果图(是本人USB摄像头视频效果,其他视频设备皆可,一下是摄像头对着电脑显示器后显示的图片,显示出魔幻空间的效果):


抱歉!评论已关闭.