日期:2014-05-20  浏览次数:20665 次

JMF中使用CaptureDevice 获得可用设备 为什么那个获得的列表是空的?
public void initCaptureDevice() {
// 获取所有的多媒体采集对象
Vector<CaptureDeviceInfo> audioCapDevList = CaptureDeviceManager.getDeviceList(null);
// 如果存在多媒体采集对象
if (audioCapDevList.size() != 0) {
for (int i = 0; i < audioCapDevList.size(); i++) {
// 获取一个可用设备名字,转换成采集对象
audioCapDevInfo = audioCapDevList.elementAt(i);
Format[] videoFormats = audioCapDevInfo.getFormats();
// 如果设备名称以vfw开头
if (audioCapDevInfo.getName().startsWith("vfw:")) {
// 获得所有支持RGB格式
for (int j = 0; j < videoFormats.length; j++) {
// 我们只需要第一种YUV格式
if (videoFormats[j] instanceof VideoFormat) {
currentFormat = (VideoFormat) videoFormats[i];
break;
}
}
if (currentFormat == null) {
System.err.println("Search For VideoFormat Failed");
System.exit(-1);
}
// 得到该设备的定位器
audioCapDevLoc = audioCapDevInfo.getLocator();
}
}
}
}

我使用这个代码
但是打断点调试发现audioCapDevList为空为什么呢 ?
怎样写个小程序来调用摄像头并拍照或录像存储文件?谢谢各位
------解决方案--------------------
我自己搞定了~ 
------解决方案--------------------
咋解决的呀