JMF 下载安装与测试 测试成功

  本来就是想在自己写的java里面加入实习的摄像头监控,然后个各种百度了一下,就用JMF来弄了,不过这个东西貌似比较旧,网上的资料虽然说有,但是也不是太多,并且遇到的一下问题也不能解决,总之经过了一天的百度,终于搞定了,其实最大的问题就是安装和设置这方面。

  首先就是下载,csdn也有得下载,不过觉得要积分的不太好,毕竟oracle官网有得下:http://www.oracle.com/technetwork/java/javase/download-142937.html  然后就是安装了,这里我之前百度过说安装在java sdk1.6文件夹下,然后我就这样处理了,但是似乎没有成功,虽然用jmstudio能够进行摄像头监控,但是Eclipse的测试代码就没有成功,都是NullPointerException ,百度了很久都没有成功,差点想放弃了!

  然后我就将JMF卸载了,然后重装,这次根据百度上说,我直接装在c/jmf.2.1e这里,这是第n次装也遇到了些问题这个点了安装包都有的应该,我就点yes to all ,然后没有任何反应,后台进程还是有的,所以没办法直接重启后就可以了,安装成功!

  安装之后可以打开JMStudio试试能不能成功,一般都可以,然后打开JMF Registry弄一下这个是用来检查本地的硬件信息的摄像头和音频。

  安装了之后,还有配置环境变量:JMFHOME=C:jmf2.1.1e     和  CLASSPATH=%JMFHOME%lib;  这样就行了

  Eclipse中将%JMFHOME%lib下的jar全部加入到项目的classpath之中就可以了,然后我测试了一下也·成功了,下面是截图

附上测试代码:

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 camera_test extends JFrame{
 public camera_test(){
  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){
  camera_test mc = new camera_test();
  mc.start();
  System.out.println("sss");
 }
}
原文地址:https://www.cnblogs.com/caoRM/p/4084892.html