posts - 32,comments - 8,trackbacks - 0

           

          Oops! JMF Video Cam Quick Start(Java攝像頭抓取)

          Reference:

          Oops! JMF Quick Start

          http://www.aygfsteel.com/pixysoft/archive/2007/09/07/143408.html

          JMF應(yīng)用篇 從攝像頭捕獲視頻

          http://blog.csdn.net/sunny3106/archive/2007/05/06/1598143.aspx



          Quick Start

          安裝jmf-2_1_1e-windows-i586.exe,可以在我的第一個JMF教程里面下載。然后運(yùn)行JMF Registry,選擇Capture Devices里面的Detect capture Devices,得到以下結(jié)果:




          eclipse里面新建一個Java Project,名字叫做Oops_JMFCam。項目添加引用jmf.jar,在安裝目錄下面的lib找到。



          在項目的
          src目錄下面添加文件CaptureVideo.java

           

          import javax.media.*;

          import java.io.*;

          import java.awt.*;

          classCaptureVideoextendsFrameimplementsControllerListener

          {

              privateCaptureDeviceInfo infor;

              privateMediaLocator mediaLocator;

              privateString url 
          = "vfw:Microsoft WDM Image Capture (Win32):0";

              privateComponent com;

              privatePanel panel;

              Player player;

              
          public CaptureVideo()

              {

                  infor 
          = CaptureDeviceManager.getDevice(url);

                  mediaLocator 
          = infor.getLocator();

              }

              publicvoid play()

              {

                  
          try

                  {

                      player 
          = Manager.createPlayer(mediaLocator);// 利用mediaLocator創(chuàng)建Player

                      player.addControllerListener(
          this);

                      player.realize();

                      
          // System.out.println("infor:"+infor);

                      
          // System.out.println("mediaLocator:"+mediaLocator);

                  }

                  
          catch (NoPlayerException e)

                  {

                      
          // TODO 自動生成 catch 塊

                      e.printStackTrace();

                  }

                  
          catch (IOException e)

                  {

                      
          // TODO 自動生成 catch 塊

                      e.printStackTrace();

                  }

              }

              publicvoid createComponent()

              {

                  setTitle(
          "視頻信號");

                  
          // addWindowListener(new WinClose());

                  setBounds(
          100100200200);

                  panel 
          = newPanel();

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

                  {

                      panel.add(com);

                  }

                  add(panel);

                  setVisible(
          true);

              }

              publicsynchronizedvoid controllerUpdate(ControllerEvent arg0)

              {

                  
          // TODO 自動生成方法存根

                  
          if (arg0 instanceofRealizeCompleteEvent)

                  {

                      System.out.println(
          "realized");

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

                      player.prefetch();

                  }

                  
          if (arg0 instanceofPrefetchCompleteEvent)

                  {

                      player.start();

                      System.out.println(
          "prefetched");

                  }

              }

              publicstaticvoid main(String[] arg0)

              {

                  CaptureVideo video 
          = newCaptureVideo();

                  video.play();

              }

          }

           

          Run as Java Application,得到結(jié)果

          posted on 2007-09-09 23:52 張辰 閱讀(1630) 評論(0)  編輯  收藏 所屬分類: Dr. Oops
          主站蜘蛛池模板: 当涂县| 合川市| 来宾市| 夏河县| 三明市| 南乐县| 子长县| 望谟县| 本溪| 苍溪县| 安龙县| 习水县| 上思县| 嘉定区| 油尖旺区| 龙泉市| 泊头市| 永定县| 六枝特区| 东台市| 平远县| 阿鲁科尔沁旗| 谢通门县| 文登市| 吐鲁番市| 静乐县| 政和县| 赤壁市| 谢通门县| 行唐县| 南和县| 达拉特旗| 望奎县| 五寨县| 秀山| 沿河| 陆良县| 宁化县| 大同市| 隆子县| 瑞昌市|