求教一个关于jmf的DataSource类的问题
public class TestCapture {
	public void capture() {
		Vector v = CaptureDeviceManager.getDeviceList();
		Iterator it = v.listIterator();
		CaptureDeviceInfo cdi = null;
		MediaLocator ml = null;
		Player p = null;
		while(it.hasNext()) {
			cdi = (CaptureDeviceInfo)it.next();
			if(cdi.getName().startsWith("vfw:")) {
				ml = cdi.getLocator();
				try {
					DataSource ds = Manager.createDataSource(ml);//这里出错
					try {
						p = Manager.createPlayer(ds);
						JFrame jf = new JFrame();
						jf.add(p.getVisualComponent());
						jf.setVisible(true);
					} catch (NoPlayerException e) {
						e.printStackTrace();
					}
					p.start();
				} catch (NoDataSourceException e) {
					e.printStackTrace();
				} catch (
IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
	public static void main(String args[]) {
		new TestCapture().capture();
	}
}
代码如上,报了下面的错:
java.io.IOException: Could not connect to capture device
javax.media.NoDataSourceException: Error instantiating class: com.sun.media.protocol.vfw.DataSource : java.io.IOException: Could not connect to capture device
	at javax.media.Manager.createDataSource(Manager.java:1012)
	at TestCapture.capture(TestCapture.java:29)
	at TestCapture.main(TestCapture.java:63)
相关的包都已经引进,局部变量Player p 用Manager.createPalyer(ml);创建就完全没问题,能看到图像,但为什么就是创建不了DataSource呢?网上关于jmf的资料少,找了半天都没找到原因,求教高手!!!
------解决方案--------------------
我也遇到同样的问题,能捕获摄像头并显示,但想要得到DataSource就出错,暂时也未找到解决办法
java.io.IOException: Could not connect to capture device
java.io.IOException: Capture device in use
javax.media.NoDataSourceException: Error instantiating class: com.sun.media.protocol.vfw.DataSource : java.io.IOException: Capture device in use
	at javax.media.Manager.createDataSource(Manager.java:1012)
	at com.media.Client.<init>(Client.java:69)
	at com.media.Client.main(Client.java:124)
------解决方案--------------------
我在windowsXP系统下面不会出现上述异常,这个异常是在win7下才会出现,由此猜测可能是不支持最新的USBVideo驱动