zoukankan      html  css  js  c++  java
  • JMF 下载安装与测试 测试成功

      本来就是想在自己写的java里面加入实习的摄像头监控,然后个各种百度了一下,就用JMF来弄了,不过这个东西貌似比较旧,网上的资料虽然说有,但是也不是太多,并且遇到的一下问题也不能解决,总之经过了一天的百度,终于搞定了,其实最大的问题就是安装和设置这方面。

      首先就是下载,csdn也有得下载,不过觉得要积分的不太好,毕竟oracle官网有得下:http://www.oracle.com/technetwork/java/javase/download-142937.html  然后就是安装了,这里我之前百度过说安装在java sdk1.6文件夹下,然后我就这样处理了,但是似乎没有成功,虽然用jmstudio能够进行摄像头监控,但是Eclipse的测试代码就没有成功,都是NullPointerException ,百度了很久都没有成功,差点想放弃了!

      然后我就将JMF卸载了,然后重装,这次根据百度上说,我直接装在c/jmf.2.1e这里,这是第n次装也遇到了些问题这个点了安装包都有的应该,我就点yes to all ,然后没有任何反应,后台进程还是有的,所以没办法直接重启后就可以了,安装成功!

      安装之后可以打开JMStudio试试能不能成功,一般都可以,然后打开JMF Registry弄一下这个是用来检查本地的硬件信息的摄像头和音频。

      安装了之后,还有配置环境变量:JMFHOME=C:jmf2.1.1e     和  CLASSPATH=%JMFHOME%lib;  这样就行了

      Eclipse中将%JMFHOME%lib下的jar全部加入到项目的classpath之中就可以了,然后我测试了一下也·成功了,下面是截图

    附上测试代码:

    import java.awt.BorderLayout;
    import java.awt.Component;
    import java.io.IOException;
    
    import javax.media.CannotRealizeException;
    import javax.media.CaptureDeviceInfo;
    import javax.media.CaptureDeviceManager;
    import javax.media.Manager;
    import javax.media.MediaLocator;
    import javax.media.NoPlayerException;
    import javax.media.Player;
    import javax.swing.JFrame;
    
    public class camera_test extends JFrame{
     public camera_test(){
      this.setTitle("MyCapture");
      this.setBounds(500,100,800,500);
      this.setVisible(true);
      this.setDefaultCloseOperation(EXIT_ON_CLOSE);
     }
     public void start(){
      String str2 = "vfw:Microsoft WDM Image Capture (Win32):0";
      CaptureDeviceInfo di = null;
      MediaLocator ml = null;
      Player player=null;
      
      di=CaptureDeviceManager.getDevice(str2);
      ml = di.getLocator();
      System.out.println(di);
      System.out.println(ml); 
      try {
       player=Manager.createRealizedPlayer(ml);
      } catch (NoPlayerException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } catch (CannotRealizeException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } catch (IOException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
      if(player!=null)
       player.start();
      Component comp = null;
            if((comp=player.getVisualComponent())!=null) 
                add(comp,BorderLayout.CENTER);
     }
     public static void main(String[] args){
      camera_test mc = new camera_test();
      mc.start();
      System.out.println("sss");
     }
    }
  • 相关阅读:
    .NetCore~框架版本号不同引起dotnet不能run它
    Linux~centos上安装.netcore,HelloWorld归来!
    Lind.DDD.Utils.HttpHelper里静态对象引出的Http超时问题
    [置顶] C++ Pirate: Lambda vs Bind
    如何成为CSDN博客专家
    MFC下的日历表
    世界上最便宜的10张防癌处方
    android权限大全
    应用程序管理集
    谢希仁《计算机网络》第五版---第四章
  • 原文地址:https://www.cnblogs.com/caoRM/p/4084892.html
Copyright © 2011-2022 走看看