因课堂学习要求使用JMF这个老东西,因为“老”现在在网上找资料也很困难,这几天为了搭建这个环境真的会谢,辛辛苦苦那么久现在就把一些我在配置过程中遇到的一些问题以及解决方法写下来,为uum提供一些帮助。
这里是我所使用的资源,有需要的友友可自行下载。
链接:https://pan.baidu.com/s/1tH1ya1bgHFrdx5SVKQ4OmQ
提取码:mntu
环境版本下载
整个过程中呢,我使用的是Win10(64位)操作系统,网上找到一些资料说运行不了必须使用32位系统或者Windows xp操作系统,经过本人亲身示例,我认为并不需要。
为了使JMF能够运行,需要安装32位JDK。
JMF可以从Sun公司的Hardware | Oracle上下载。应用于Windows操作系统中的JMF是一个自解的EXE文件,直接在Windows操作系统中执行该文件,即进入JMF安装向导,根据向导提示可以完成JMF的安装。
JMF安装时应注意选择安装路径在JDK目录下,因为,JMF的开发和运行环境是在JDK的支持下实现的。在JMF的安装过程中,最好选择将JMF的开发和运行环境安装在JDK的路径中,使JMF的运行和开发环境与JDK融为一体,这样可以免去在计算机操作系统中设置开发和运行Java多媒体应用程序环境变量的步骤。
环境设置
1.JMF安装完成后,在jdk的bin目录下你会看到以下几个文件
jmf安装完成后会自动查找安装在主机上的音频摄像设备,以管理员身份运行jmfregistr.exe,查看注册的数据源
点击Capture Devices,然后按下Detect Capture Devices,程序将自动检测出系统中的视频和音频截取设备。检测出vfw:Microsoft WDM Image Capture (Win32):0设备后,表明JMF安装成功了。
这个时候运行jmfstudio.exe即可查看捕获的摄像头视频。
2.Eclipse环境设置及使用jmf
首先jdk需设置为安装了jmf版本的。
这边如果你的Eclipse本来使用的是64位jdk只需要更改以下eclipse的jdk就可以啦,并不用更改系统环境的jdk。Windows->Preferences->Java->Install JREs选择你所需要的jdk版本Apply就可以了
在Package目录下右键选择Build Path ->Configure Build Path... ->Libraries ->Add External JARs将JDKbin目录下的几个jar包导入。之前我在运行代码的时候就是因为缺少了这一步,导致运行时找不到摄像头设备。
这边我从网上找到了一段代码可直接运行。
package test;
import java.awt.BorderLayout;
import java.awt.Component;
import java.io.IOException;
import javax.media.CannotRealizeException;
import javax.media.CaptureDeviceInfo;
import javax.media.CaptureDeviceManager;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.NoPlayerException;
import javax.media.Player;
import javax.swing.JFrame;
public class myCapture extends JFrame{
public myCapture(){
this.setTitle("MyCapture");
this.setBounds(500,100,800,500);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public void start(){
String str2 = "vfw:Microsoft WDM Image Capture (Win32):0";
CaptureDeviceInfo di = null;
MediaLocator ml = null;
Player player=null;
di=CaptureDeviceManager.getDevice(str2);
ml = di.getLocator();
// System.out.println(di);
// System.out.println(ml);
try {
player=Manager.createRealizedPlayer(ml);
} catch (NoPlayerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (CannotRealizeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
}
if(player!=null)
player.start();
Component comp = null;
if((comp=player.getVisualComponent())!=null)
add(comp,BorderLayout.CENTER);
}
public static void main(String[] args){
myCapture mc = new myCapture();
mc.start();
//System.out.println("sss");
}
}
运行效果就是启动了jmf摄像,到这里恭喜你安装成功啦!