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 張辰 閱讀(1633) 評論(0)  編輯  收藏 所屬分類: Dr. Oops
          主站蜘蛛池模板: 黎平县| 涪陵区| 鄂尔多斯市| 陆丰市| 龙山县| 五台县| 绥芬河市| 崇文区| 罗源县| 邹城市| 普格县| 吉木乃县| 宁德市| 白玉县| 开远市| 格尔木市| 长兴县| 青阳县| 临汾市| 广汉市| 嘉祥县| 四平市| 环江| 汤阴县| 金平| 聊城市| 洛扎县| 平度市| 塔城市| 政和县| 三穗县| 延庆县| 邳州市| 海口市| 当雄县| 阿图什市| 山东| 永新县| 桦南县| 固镇县| 四平市|