更新時(shí)間:2019-10-12 09:16:41 來源:動(dòng)力節(jié)點(diǎn) 瀏覽4562次
JMF簡(jiǎn)述
JMF(JavaMediaFramework)是Java媒體框架,包含了許多用于處理多媒體
的API可以讓基于JAVA的應(yīng)用實(shí)現(xiàn)音頻、視頻的捕捉、處理、播放、傳輸?shù)裙δ堋?/p>
利用它,可以實(shí)現(xiàn)音、視頻播放,網(wǎng)絡(luò)視頻聊天、視頻會(huì)議等功能。
二、環(huán)境準(zhǔn)備
1、下載地址:可到官網(wǎng)直接下載

下載的版本是:jmf-2_1_1e-windows-i586
2、安裝JMF:
2.1、安裝環(huán)境要求:JDK版本(1.6或以上的32位版本),JMF只支持32位JDK,
我本機(jī)64位win7+jdk1.7
2.2、安裝完畢后要重啟,在你的JDK安裝目錄\jre\lib\ext下,會(huì)多出兩個(gè)文件:
jmf.jar和sound.jar
3、測(cè)試攝像頭:安裝完畢后,在桌面會(huì)多一個(gè)"JMStudio"的快捷方式,運(yùn)行它,
點(diǎn)擊"File->Capture"菜單,如果啟動(dòng)攝像頭成功,說明你安裝jmf成功。
4、打開安裝好了的JMF,在E:\develop\jmf\bin\jmfregistry.exe”,選擇“CaptureDevices”
然后按左下角“DetectCaptureDevices”按鈕,多按幾次,直到左邊欄中出現(xiàn)“vfw:Microsoft
WDMImageCapture(Win32):0”,則說明JMF已經(jīng)注冊(cè)了攝像頭,到此就可以關(guān)閉了。

三、編寫測(cè)試代碼
編寫JAVA代碼打開電腦攝像頭,在eclipse中選擇32位jdk1.7,將jmf安裝目錄
\lib目錄下的jmf.properties加入到工程;
或?qū)rc目錄下將jmf安裝目錄\lib目錄下的jmf.jar,sound.jar,mediaplayer.jar三個(gè)
文件導(dǎo)入工程,目的是要引入該目錄下的jmf.properties。
測(cè)試代碼:
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;
/** 初始化啟動(dòng)攝像頭 */
public void initCapture() {
try {
// 獲取所有音頻、視頻設(shè)備
@SuppressWarnings("unchecked")
Vector<CaptureDeviceInfo> deviceList = CaptureDeviceManager
.getDeviceList(null);
// 獲取視頻設(shè)備,視頻設(shè)備以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("找不到攝像頭設(shè)備");
}
// 創(chuàng)建視頻播放器
MediaLocator ml = cameraDevice.getLocator();
Player player = Manager.createRealizedPlayer(ml);
if (player == null) {
System.out.println("創(chuàng)建攝像頭播放器失敗");
}
// 播放視頻
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();
// 設(shè)置窗體屬性
cameraUtil.setTitle("CaptureTest");
cameraUtil.setBounds(500, 100, 800, 500);
cameraUtil.setVisible(true);
cameraUtil.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
} 以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編介紹的“Java 使用JMF調(diào)用攝像頭”的內(nèi)容,希望對(duì)大家有幫助,更多java最新資訊請(qǐng)繼續(xù)關(guān)注動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)官網(wǎng),每天會(huì)有精彩內(nèi)容分享與你。
相關(guān)視頻:使用JMF實(shí)現(xiàn)Java視頻播放器
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)