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 + -
显示快捷键?