91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

用JMF打開攝像頭獲取圖像

發布時間:2020-04-29 20:23:15 來源:網絡 閱讀:745 作者:itjobs07 欄目:關系型數據庫


   今天學習用JAVA中的JMF來打開攝像頭,這個小程序對我來說還是有點難度的。然后我在網上找的一些資料,網上的資料很多而且比較雜,對于我們新人來說,沒有分辨能力,走了很多彎路。下面我把我的學習過程展示出來。

1.搭建環境

   我的電腦是win7 64位的;然后在orcale 官網下載JDK  (在百度搜索JDK下載)jdk-8u92-windows-i586.exeJDK必須是32位的,至少在我電腦上是這樣的,我安裝64位的始終沒有成功,最后找出問題來就是JMF 32位的,配套的JDK也必須是32位的。我是這樣理解的.呵呵);然后下載JMF(直接在百度搜索JMF下載,能直接跳轉到oracle官網的JMF下載,比直接在oracle官網上去找方便很多)jmf-2_1_1e-windows-i586.exeJMF建議安裝在jdk下,這樣免去了配置環境變量。


2.環境配置與測試

   JDK和JMF安裝完畢,然后就是JDK環境變量配置,依次打開:計算機右鍵屬性>高級系統設置>環境變量>系統變量  1)新建JAVA_HOME變量  就是剛才jdk的安裝路徑D:\Application\java\jdk1.6.0_25 

2)PATH變量   %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin  

3)CLASSPATH變量  .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar (要加.表示當前路徑)    檢驗:WIN+R  >  CMD   >  javac   java  java -version  代表配置成功  

用JMF打開攝像頭獲取圖像

   然后就是JMF  : 打開JMF安裝目錄下的jmfregistry.exe程序

用JMF打開攝像頭獲取圖像

        

 

    安裝后都需要重新啟動電腦才可以用;會在桌面生成一個JMStudio的快捷方式,打開它

File > Capture   安裝成功會有音頻視頻等,然后就可以通過攝像頭看見自己了;到這里我們的運行環境就安裝好了,接下來我們就是寫代碼來調用攝像頭了;

 

3. 代碼  

  用記事本或者notepad++  就可以的,notepad++ 有一個插件NppAStyle插件可以格式化java代碼。

 

 

JMF攝像頭基本原理及過程

 

獲取攝像頭信息 》 創建攝像頭和捕捉數據流 》 創建窗體及面板 》 把捕捉的數據流加載到窗體中播放

import java.awt.BorderLayout;

import java.awt.Component;

import javax.media.*;//包含所有media代碼

import javax.swing.JFrame; //通過JFrame來創建窗體

import javax.swing.JPanel; //一個容器類

public class Camera extends JFrame { //繼承窗體的框架


public  static Player player = null; //定義一個player變量。 playermedia包中的一個類

private CaptureDeviceInfo deviceInfo = null;   //定義管理器的截取設備注冊信息

private MediaLocator mediaLocator = null;

private Component component = null;

private JPanel vedioPanel = null;

String   str = "vfw:Microsoft WDM Image Capture (Win32):0";    //獲取本地攝像頭的字符串

public Camera() {

init();

}

public void init() {

deviceInfo = CaptureDeviceManager.getDevice(str);  //根據字符串獲取采集設備(攝像頭)的引用

mediaLocator = deviceInfo.getLocator(); //CaptureDevicesInfo對象中獲取MediaLocator對象,然后用它來創建一個DataSource數據源對象;

//獲取采集設備的定位器的引用,需要根據此引用來創建視頻播放器

 

try {

player = Manager.createRealizedPlayer(mediaLocator);// 利用mediaLocator 獲取一個player ,創建一個player對象

component = player.getVisualComponent(); //player 對象的圖像部件,在此部件上可以播放多媒體圖像

if (component != null) {

/*

  設置窗體的一些屬性

  */

vedioPanel = new JPanel();//面板容器

vedioPanel.add(component, BorderLayout.NORTH);

 

this.add(vedioPanel);

this.pack();    // 自動分配窗體大小

this.setResizable(false);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);  //設置窗體的關閉

this.setVisible(true);

player.start();  //播放捕獲來的數據流

}

} catch(Exception e) {

e.printStackTrace();

}

}

 

public static void main(String[] args) {//主函數

new Camera();

}

}



為了把這個東西搞懂,大哥建議我把這個程序拆分開了,用小程序測試,由于基礎有限,我最終只弄出來一個設備信息獲取的小程序,窗口的還有點難度。


import javax.media.*;

public class INFO {

   public static void main(String[] args) {

CaptureDeviceInfo deviceInfo = null;

String   str2   =   "vfw:Microsoft WDM Image Capture (Win32):0";    //獲取本地攝像頭的字符串

deviceInfo = CaptureDeviceManager.getDevice(str2);

System.out.println("本地攝像頭的信息:"+deviceInfo);

}

}



 

 

 

雖然這是一個比較簡單的小程序,但是我花了很多時間來弄,在這過程中也學會了一些東西,剛開始的時候什么都不會,陪伴我的還好有電腦,一些不懂的問題都是在google&百度上找的,以至于源碼也是。這是的第一篇博文,上述中肯定會有很多錯誤,歡迎大家指出;



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

霞浦县| 徐州市| 资中县| 金川县| 奉新县| 西华县| 莒南县| 祥云县| 宝丰县| 花莲市| 吴江市| 澳门| 衡水市| 彭水| 库伦旗| 丹棱县| 柘城县| 贵港市| 平泉县| 长丰县| 大悟县| 云阳县| 安西县| 伊金霍洛旗| 英超| 临城县| 龙游县| 玉溪市| 格尔木市| 洛宁县| 塘沽区| 巴马| 南江县| 乌恰县| 贵阳市| 宁蒗| 永仁县| 铜川市| 南华县| 东乡族自治县| 息烽县|