JMF简述
JMF(JavaMediaFramework)是Java媒体框架,包含了许多用于处理多媒体
的API可以让基于JAVA的应用实现音频、视频的捕捉、处理、播放、传输等功能。
利用它,可以实现音、视频播放,网络视频聊天、视频会议等功能。
二、环境准备
1、下载地址:可到官网直接下载

下载的版本是:jmf-2_1_1e-windows-i586
2、安装JMF:
2.1、安装环境要求:JDK版本(1.6或以上的32位版本),JMF只支持32位JDK,
我本机64位win7+jdk1.7
2.2、安装完毕后要重启,在你的JDK安装目录jrelibext下,会多出两个文件:
jmf.jar和sound.jar
3、测试摄像头:安装完毕后,在桌面会多一个"JMStudio"的快捷方式,运行它,
点击"File->Capture"菜单,如果启动摄像头成功,说明你安装jmf成功。
4、打开安装好了的JMF,在E:developjmfinjmfregistry.exe”,选择“CaptureDevices”
然后按左下角“DetectCaptureDevices”按钮,多按几次,直到左边栏中出现“vfw:Microsoft
WDMImageCapture(Win32):0”,则说明JMF已经注册了摄像头,到此就可以关闭了。

三、编写测试代码
编写JAVA代码打开电脑摄像头,在eclipse中选择32位jdk1.7,将jmf安装目录
lib目录下的jmf.properties加入到工程;
或将src目录下将jmf安装目录lib目录下的jmf.jar,sound.jar,mediaplayer.jar三个
文件导入工程,目的是要引入该目录下的jmf.properties。
测试代码:
package com.tzz.jmf;
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 CameraUtil extends JFrame {
private static final long serialVersionUID = 8160948676188570043L;
/** 初始化启动摄像头 */
public void initCapture() {
try {
// 获取所有音频、视频设备
@SuppressWarnings("unchecked")
Vector<CaptureDeviceInfo> deviceList = CaptureDeviceManager
.getDeviceList(null);
// 获取视频设备,视频设备以vfw打头(vfw:Microsoft WDM Image Capture (Win32):0)
CaptureDeviceInfo cameraDevice = null;
for (CaptureDeviceInfo cameraDeviceTmp : deviceList) {
if (cameraDeviceTmp.getName().startsWith("vfw")) {
cameraDevice = cameraDeviceTmp;
break;
}
}
if (cameraDevice == null) {
System.out.println("找不到摄像头设备");
}
// 创建视频播放器
MediaLocator ml = cameraDevice.getLocator();
Player player = Manager.createRealizedPlayer(ml);
if (player == null) {
System.out.println("创建摄像头播放器失败");
}
// 播放视频
player.start();
// 将播放器加入窗体
Component comp = null;
if ((comp = player.getVisualComponent()) != null)
add(comp, BorderLayout.CENTER);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
CameraUtil cameraUtil = new CameraUtil();
cameraUtil.initCapture();
// 设置窗体属性
cameraUtil.setTitle("CaptureTest");
cameraUtil.setBounds(500, 100, 800, 500);
cameraUtil.setVisible(true);
cameraUtil.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
} 以上就是动力节点java培训机构小编介绍的“Java 使用JMF调用摄像头”的内容,希望对大家有帮助,更多java最新资讯请继续关注动力节点java培训机构官网,每天会有精彩内容分享与你。
相关视频:使用JMF实现Java视频播放器
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习