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");
 }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM