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應用篇 從攝像頭捕獲視頻

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



          Quick Start

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




          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創建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,得到結果

          posted on 2007-09-09 23:52 張辰 閱讀(1630) 評論(0)  編輯  收藏 所屬分類: Dr. Oops
          主站蜘蛛池模板: 沛县| 怀柔区| 安化县| 青岛市| 舒兰市| 安阳县| 娄底市| 隆安县| 宣恩县| 峡江县| 漳浦县| 桓台县| 永定县| 卢湾区| 大安市| 墨竹工卡县| 新宾| 云阳县| 句容市| 大关县| 潮安县| 青龙| 扶沟县| 永宁县| 保定市| 湖口县| 岳池县| 昌吉市| 固安县| 含山县| 宁都县| 宝兴县| 波密县| 搜索| 崇信县| 青川县| 娄底市| 抚州市| 乐平市| 石河子市| 石嘴山市|