JMF(三) 之 视频捕获

视频的捕获与音频的捕获很类似。

      创建 Player 有两种方式:MediaLocator的实例作为参数或者使用 DataSource的实例作为参数。

先用DataSource的实例作为参数来创建Player:

    视频采集,必须要有视频采集设备,在安装JMF后,Registry中 Detect Capture Devices以后,可以发现在Capture Devices多了一个设备名称:vfw:Microsoft WDM Image Capture (Win32):0。

  什么是vfw?

   VFW Microsoft公司为开发Windows平台下的视频应用程序提供的软件工具包,提供了一系列应用程序编程接口(API),用户可以通过它们很方便地实现视频捕获、视频编辑及视频播放等通用功能,还可利用回调函数开发更复杂的视频应用程序。

 JMFVFW的关系:

    只要是vfw开头的设备信息,就能为JMF架构识别并加以使用。可以编写代码来识别此设备。

CaptureDeviceInfo capturedeviceInfo = CaptureDeviceManager.getDevice("vfw:Microsoft WDM Image Capture (Win32):0");

MediaLocator mediaLocator = capturedeviceInfo.getLocator();

DataSource source = Manager.createDataSource(mediaLocator);

DataSource cloneSource = Manager.createCloneableDataSource(source);

Player player = Manager.createRealizedPlayer(((SourceCloneable) cloneableSource).createClone());

FormatControl formatControl = (FormatControl)player.getControl("javax.media.control.FormatControl");

Format defaultFormat = formatControl.getFormat();

FileTypeDiscriptor outputType = new FileTypeDiscriptor(FileTypeDescriptor.MSVIDEO);//定义媒体输出类型

ProcessorModel processorModel = new ProcessorModel(cloneSource,new Format[]{defailtFormat},outputType);//数据媒体格式转换

Processor processor = Manager.createRealizdProcessor(processorModel);

至此处理器创建完毕,

怎样把视频显示出来那?

通过Component visualComponent = player.getVisualComponent();获得player的可是组件,

将其添加到面板中即可,显示出视频。

ok,程序写完了,测试:

  

你可能感兴趣的:(JMF(三) 之 视频捕获)