JMF捕获技术(视频)

原创 2006年06月07日 22:06:00

JMF捕获技术(视频)

 

        想要得到视频信号,首先应该先安装Java Media Framework2.1.1.e,并进行初始化,获得音频视频驱动.

        JMF通过MediaLocator(类似URL的一种媒体信息定位)来确定视频,音频或者某个音频文件在计算机中的具体位置.例如视频为vfw:Microsoft WDM Image Capture(Win32):0,多媒体文件为 file:c://music/123.mp3.

        知道了它的媒体信息的位置后,就可以构造一个播放器(MediaPlayer或有同样功能的Player),播放就可以了.

        使用MediaPlayer的start方法就可以启动播放器了,隐藏了具体的播放细节.JMF播放器有它的生存周期,分别是Unrealized,Realizing,Realized,Prefetching,Prefetched Started.通过监听器来由JVM来控制各种状态的转换,通过realize方法使播放器达到Realized状态,一旦达到这个状态,监听器检测到,我们再使用prefetch方法达到Prefetched状态,然后再调用start方法播放,就可以完成播放任何媒体的功能了,简单吧!

          

捕获视频代码

 

class CaptureVideo extends Frame implements ControllerListener {

      

       private CaptureDeviceInfo infor ;

private MediaLocator mediaLocator ;

       private String url = “vfw:Microsoft WDM Image Capture (Win32):0”;

       private Component com;

       private Panel panel ;

       MediaPlayer player;

 

 

public CaptureVideo() {

              infor = CaptureDeviceManager.getDevice(url);

              mediaLocator = infor.getLocator();

       }

 

       public void paly() {

              try {

                     player = Manager.createPlayer(mediaLocator);//利用mediaLocator创建Player

                     player.addControllerListener(this);

                     player.realize();

              } catch (NoPlayerException e) {

                     // TODO 自动生成 catch

                     e.printStackTrace();

              } catch (IOException e) {

                     // TODO 自动生成 catch

                     e.printStackTrace();

              }

 

       public void createComponent() {

              setTitle("视频信号");

              addWindowListener(new WinClose());

              setBounds(100,100,200,200);

              panel = new Panel();

             

              if((com = player.getVisualComponent()) != null) {

                     panel.add(com);

              }

              add(panel);

              setVisible(true);

       }

 

       public synchronized void controllerUpdate(ControllerEvent arg0) {

              // TODO 自动生成方法存根

              if(arg0 instanceof RealizeCompleteEvent) {

                     System.out.println("realized");

                     createComponent();                 //将播放器添加到Panel上

                     player.prefetch();

 

              }

              if(arg0 instanceof PrefetchCompleteEvent) {

                     player.start();

                     System.out.println("prefetched");

              }

       }

 

}

public class test {
        public static void main() {

                 CaptureVideo video = new CaptureVideo();

                 video.player();

        }

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

利用JMF播放视频 简单示例

本文主要使用JMF来实现在一个Applet中播放本地MPEG格式视频文件。并给出一个实例。 author: ZJ   06-11-15 Blog: [url]http://zhangjunhd.b...

JMF实现从摄像头和麦克截取视频和音频流进行播放

利用JMF捕获媒体数据的过程: 1.定位所需要用的捕获设备,可以通过查询CaptureDeviceManager来定位。 2.获取这个捕获设备的信息CaptureDeviceInfo对象。 3....

使用JMF编写同时提取视频流和音频流并且播放的案例

使用JMF可以同时提取视频流和音频流,然后通过数据源的混合,可以达到视频音频同时收集和播放的功能。其中主 要是通过数据源的混合,也就是视频流和音频流的数据源的混合。下面我们来写一个例子。通过开启摄像...

JMF 视频传输

Java媒体架构(JMF) Java媒体架构(JMF)是一个令人激动的通用的API,它允许Java开发者用许多不同的方法处理媒体。本指南主要通过使用工作的例子提供一个JMF的一些主要的特征的概述。阅读...

使用JMF实现java写自己的视频播放器

JMF这个多媒体开发框架太牛了,简单的几句代码就能实现一个视频播放器的开发,厉害,就是支持的格式少了一些,没关系,这个视频播放器可以播放mpg,avi,fvl等等,想播放其他的请开发自己的插件,下面将...

JMF 利用RTPManager进行视频音频流传输聊天

JMF(Java Media Framework)想必大家都不陌生  它为音频和视频等媒体内容的捕获、回放、传输和编码转换等提供了一个统一的架构 视频传输大概思路如下 其中有几个常用到的类  - >...

基于JMF的视频传输源码(亲试可行)

接收端 import java.applet.Applet; import java.awt.Button; import java.awt.Component; import java.awt.T...

使用JMF实现java写自己的视频播放器

JMF这个多媒体开发框架太牛了,简单的几句代码就能实现一个视频播放器的开发,厉害,就是支持的格式少了一些,没关系,这个视频播放器可以播放mpg,avi,fvl等等,想播放其他的请开发自己的插件,下面将...

jmf实现视频通话

MediaTransmit package test.video; import java.awt.Dimension; import java.io.IOException; impor...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)