当前位置: 代码迷 >> J2SE >> JMF在调用摄像头后怎样实现连拍
  详细解决方案

JMF在调用摄像头后怎样实现连拍

热度:46   发布时间:2016-04-23 19:53:39.0
求助JMF在调用摄像头后怎样实现连拍
求助在JMF调用完成摄像头后如何设置一个按钮来进行三连拍...之后比对三张大小是否一致

import java.awt.BorderLayout;
import java.awt.Component;
import javax.media.CaptureDeviceInfo;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.Player;
import javax.media.cdm.CaptureDeviceManager;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Test extends JFrame {
public static Player player = null;
private CaptureDeviceInfo deviceInfo = null;
private MediaLocator mediaLocator = null;
private Component component = null;
private JPanel vedioPanel = null;

String str1 = "vfw:Logitech USB Video Camera:0"; // 获取USB摄像头的字符串
String str2 = "vfw:Microsoft WDM Image Capture (Win32):0"; // 获取本地摄像头的字符串

// Creates a new instance of CameraTest

public Test() {
init();
}

public void init() {
deviceInfo = CaptureDeviceManager.getDevice(str2); // 根据字符串获取采集设备(摄像头)的引用
//  System.out.println(deviceInfo); //显示采集设备(摄像头)的信息
//  System.out.println(deviceInfo.getName()); //显示采集设备(摄像头)的设备名称
mediaLocator = deviceInfo.getLocator(); // 获取采集设备的定位器的引用,需要根据此引用来创建视频播放器

try {
player = Manager.createRealizedPlayer(mediaLocator);// 利用mediaLocator
// 获取一个player
component = player.getVisualComponent();
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 Test();
}
}

------解决思路----------------------
Java中利用JMF编写摄像头拍照程序
至于三连拍,在此基础上稍微修改就可以了。
  相关解决方案