测试一个通过摄像头显示视频的程序,测试时正常运行,没有问题。但是相同的程序在另一个工程中运行就发生错误。错的代码如下:
...private CaptureDeviceInfo infor ;
private MediaLocator mediaLocator ;
private String url = "vfw:Microsoft WDM Image Capture (Win32):0";...构造函数中
infor = CaptureDeviceManager.getDevice(url);
System.out.println("infor:"+infor);             
mediaLocator = infor.getLocator();
System.out.println("mediaLocator:"+mediaLocator);...可是实际运行时infor一直显示的是null而在测试的工程中,一直是可以的。url是设备名称,绝对没有问题。我看了半天,两个工程的设置ms都一样啊,不知道怎么回事,急!高手帮看看阿!!!

解决方案 »

  1.   

    两个工程唯一的差别就是现在用的那个导入了SWT,这个会有影响吗?
      

  2.   

    jmf和AWT、SWT之间好像有些微妙的关系,好像对其中一个支持比较好,和另外一个就有点 具体的不太记得了,你自己上网找找吧
      

  3.   

    infor = CaptureDeviceManager.getDevice(url);
    可是实际运行时infor一直显示的是null 
    设备根本没有获取到.当然不行
    原因是private String url = "vfw:Microsoft WDM Image Capture (Win32):0";
    错了
    不要把SUN上面的例子COPY下来就直接运行~~你列出来现在这个设备表示的形式
      

  4.   

    摄像头设备的名字确实是:"vfw:Microsoft WDM Image Capture (Win32):0"我用jmfregistry注册时的名字就是这个,绝对没有问题的