fmjcapturetest.java
来自「FMJ(freedom media for java)是java视频开发的新选择」· Java 代码 · 共 104 行
JAVA
104 行
package net.sf.fmj.capture.test;import java.util.List;import javax.media.CaptureDeviceInfo;import javax.media.CaptureDeviceManager;import javax.media.Format;import javax.media.Manager;import javax.media.MediaLocator;import javax.media.Player;import javax.media.format.RGBFormat;import net.sf.fmj.ejmf.toolkit.install.PackageUtility;import net.sf.fmj.utility.PlugInUtility;import com.lti.civil.CaptureException;import com.lti.civil.CaptureSystem;import com.lti.civil.CaptureSystemFactory;import com.lti.civil.DefaultCaptureSystemFactorySingleton;/** * * @author Ken Larson * */public class FMJCaptureTest{ public static void main(String[] args) throws Exception { // for (Format f : new SimpleAWTRenderer().getSupportedInputFormats())// {// final Format civilOutputFormat = new RGBFormat(null, -1, byte[].class, -1, 24, 1, 2, 3);// System.out.println(civilOutputFormat.matches(f) + " " + f);// // } PackageUtility.addContentPrefix("net.sf.fmj", false); PackageUtility.addProtocolPrefix("net.sf.fmj", false); PlugInUtility.registerPlugIn("net.sf.fmj.media.renderer.video.SimpleAWTRenderer"); CaptureSystemFactory factory = DefaultCaptureSystemFactorySingleton.instance(); CaptureSystem system = factory.createCaptureSystem(); system.init(); List list = system.getCaptureDeviceInfoList(); for (int i = 0; i < list.size(); ++i) { com.lti.civil.CaptureDeviceInfo civilInfo = (com.lti.civil.CaptureDeviceInfo) list.get(i); { //String name, MediaLocator locator, Format[] formats CaptureDeviceInfo jmfInfo = new CaptureDeviceInfo(civilInfo.getDescription(), new MediaLocator("civil:" + civilInfo.getDeviceID()), new Format[] {new RGBFormat()}); CaptureDeviceManager.addDevice(jmfInfo); } } final java.util.Vector vectorDevices = CaptureDeviceManager.getDeviceList(null); if (vectorDevices == null) { System.out.println("CaptureDeviceManager.getDeviceList returned null"); return; } if (vectorDevices.size() == 0) { System.out.println("CaptureDeviceManager.getDeviceList returned empty list"); return; } for ( int i = 0; i < vectorDevices.size(); i++ ) { CaptureDeviceInfo infoCaptureDevice = (CaptureDeviceInfo) vectorDevices.elementAt ( i ); System.out.println("CaptureDeviceInfo: "); System.out.println(infoCaptureDevice.getName()); System.out.println(infoCaptureDevice.getLocator()); System.out.println(infoCaptureDevice.getFormats()[0]); Player player; try { player = Manager.createRealizedPlayer(infoCaptureDevice.getLocator()); } catch (Exception e) { throw new CaptureException(e); } player.start(); } system.dispose(); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?