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,得到以下結(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 張辰 閱讀(1633) 評論(0)  編輯  收藏 所屬分類: Dr. Oops
          主站蜘蛛池模板: 临夏市| 裕民县| 苏尼特右旗| 淳安县| 禄丰县| 乌审旗| 竹北市| 民权县| 成武县| 潞城市| 禄丰县| 龙游县| 平凉市| 阿拉善盟| 淳化县| 峡江县| 吉首市| 农安县| 西城区| 金山区| 无锡市| 洞头县| 黑河市| 囊谦县| 桦南县| 南投市| 玉门市| 沐川县| 定边县| 绿春县| 大洼县| 普兰县| 噶尔县| 巨野县| 黄骅市| 大方县| 微山县| 三都| 浦县| 淳安县| 开化县|