这是代码:
import java.awt.*;
import java.util.*;
import javax.media.*;
import javax.media.protocol.*;
import javax.media.control.*;
import javax.media.format.*;
public class jmfcam05v
{
DataSource dataSource;
PushBufferStream pbs;
Vector camImgSize = new Vector();
Vector camCapDevice = new Vector();
Vector camCapFormat = new Vector();
int camFPS;
int camImgSel;
Processor processor = null;
DataSink datasink = null;
public static void main(String[] args)
{
jmfcam05v jmfcam = new jmfcam05v();
}
public jmfcam05v()
{
fetchDeviceFormats();
camFPS = 30; // framerate
fetchDeviceDataSource();
createPBDSource();
createProcessor(dataSource);
startCapture();
try{Thread.sleep(20000);}catch(Exception e){} // 20 seconds
stopCapture();
}
boolean fetchDeviceFormats()
{
Vector deviceList = CaptureDeviceManager.getDeviceList(new VideoFormat(null));
CaptureDeviceInfo CapDevice = null;
Format CapFormat = null;
String type = "N/A";
CaptureDeviceInfo deviceInfo=null;boolean VideoFormatMatch=false;
for(int i=0;i<deviceList.size();i++)
{
// search for video device
deviceInfo = (CaptureDeviceInfo)deviceList.elementAt(i);
if(deviceInfo.getName().indexOf("vfw:")<0)continue;
Format deviceFormat[] = deviceInfo.getFormats();
for (int f=0;f<deviceFormat.length;f++)
{
if(deviceFormat[f] instanceof RGBFormat)type="RGB";
if(deviceFormat[f] instanceof YUVFormat)type="YUV";
if(deviceFormat[f] instanceof JPEGFormat)type="JPG";
Dimension size = ((VideoFormat)deviceFormat[f]).getSize();
camImgSize.addElement(type+" "+size.width+"x"+size.height);
CapDevice = deviceInfo;
camCapDevice.addElement(CapDevice);
//System.out.println("Video device = " + deviceInfo.getName());
CapFormat = (VideoFormat)deviceFormat[f];
camCapFormat.addElement(CapFormat);
//System.out.println("Video format = " + deviceFormat[f].toString());
VideoFormatMatch=true; // at least one
}
}
if(VideoFormatMatch==false)
{
if(deviceInfo!=null)System.out.println(deviceInfo);
System.out.println("Video Format not found");
return false;
}
return true;
}
void fetchDeviceDataSource()
{
CaptureDeviceInfo CapDevice =
(CaptureDeviceInfo)camCapDevice.elementAt(camImgSel);
System.out.println("Video device = " + CapDevice.getName());
Format CapFormat = (Format)camCapFormat.elementAt(camImgSel);
System.out.println("Video format = " + CapFormat.toString());
MediaLocator loc = CapDevice.getLocator();
try
{
dataSource = Manager.createDataSource(loc);
}
catch(Exception e){}
try
{
FormatControl formCont=((CaptureDevice)dataSource).getFormatControls()[0];
VideoFormat formatVideoNew = new
VideoFormat(null,null,-1,null,(float)camFPS);
formCont.setFormat(CapFormat.intersects(formatVideoNew));
}
catch(Exception e){}
}
void createPBDSource()
{
try
{
pbs=((PushBufferDataSource)dataSource).getStreams()[0];
}
catch(Exception e){}
}
public void createProcessor(DataSource datasource)
{
FileTypeDescriptor ftd = new FileTypeDescriptor(FileTypeDescriptor.MSVIDEO);
Format[] formats = new Format[] {new VideoFormat(VideoFormat.INDEO50)};
ProcessorModel pm = new ProcessorModel(datasource, formats, ftd);
try
{
processor = Manager.createRealizedProcessor(pm);
}
catch(Exception me)
{
System.out.println(me);
// Make sure the capture devices are released
datasource.disconnect();
return;
}
}
private void startCapture()
{
// Get the processor's output, create a DataSink and connect the two.
DataSource outputDS = processor.getDataOutput();
try
{
MediaLocator ml = new MediaLocator("file:capture.mpg");
datasink = Manager.createDataSink(outputDS, ml);
datasink.open();
datasink.start();
}catch (Exception e)
{
System.out.println(e);
}
processor.start();
System.out.println("Started saving...");
}
private void pauseCapture()
{
processor.stop();
}
private void resumeCapture()
{
processor.start();
}
private void stopCapture()
{
// Stop the capture and the file writer (DataSink)
processor.stop();
processor.close();
datasink.close();
processor = null;
System.out.println("Done saving.");
}
}
错误:
跑:
视频设备= vfw:Microsoft WDM图像捕获(Win32):0
视频格式= YUV视频格式:大小= java.awt.Dimension [width = 640,height = 480] MaxDataLength = 614400 DataType = class [B yuvType = 32 StrideY = 1280 StrideUV = 1280 OffsetY = 0 OffsetU = 1 OffsetV = 3
javax.media.CannotRealizeException:无法提供所有请求的轨道
线程“主”中的异常java.lang.NullPointerException
在jmfcam05v.startCapture(jmfcam05v.java:202)
在jmfcam05v。(jmfcam05v.java:82)
在jmfcam05v.main(jmfcam05v.java:64)
请帮助我解决此错误。我正在使用Windows Vista OS。
谁能建议我如何以.3gp格式存储文件?请帮助
Exception in thread "main" java.lang.NullPointerException at jmfcam05v.startCapture(jmfcam05v.java:202)
方法jmfcam05v.java
内部的第202行的某些对象引用startCapture()
是null
在代码尝试使用点.
运算符访问/调用它时进行的。
例如
SomeObject someObject = null;
someObject.doSomething(); // NullPointerException.
解决方案实际上很简单。只需实例化它即可确保它不为空:
if (someObject == null) {
someObject = new SomeObject();
}
someObject.doSomething(); // No NPE more!
…或在访问/调用之前简单地执行nullcheck:
if (someObject != null) {
someObject.doSomething(); // No NPE more!
}
我的代码中出现了这个错误。 这是我的代码: 这就是结果。错误:在线程“main”java中输入model:Exception。lang.NullPointerException在汽车上。主(车.java:10)
我对Java非常陌生,似乎遇到了一些奇怪的错误。我到处寻找解决方案,我遇到的所有解决方案都与我已有的完全相同。 我已经编写了一个类,将目的地添加到ArrayList,但它不起作用。 我得到了这个错误:“线程中的异常”main“java.lang.NullPointerException” 这是我的代码: 我试图添加到ArrayList的数据的代码是这样的: 它退出方法中的程序,并且不将目标添加到数
我试图在java应用程序中调用java存储过程。我正在使用ORACLE数据库和JDeveloper。 我得到错误"异常线程"主"java.lang.NullPointerException.我不知道我做错了什么。 我有一个表“Beer”,我想用一个存储过程来选择所有数据,我从Java应用程序中调用这个存储过程。 我有一个java.class文件Store_A. java,我已经加载到ORACLE数
我是mUrthy,我写的是selenium脚本,当我试图执行脚本时,我遇到了错误,请查看下面的脚本和错误。任何一个都能提供更好的解决方案。我使用的是最新版本。 脚本: 包测试项目; 导入组织。openqa。硒。网络驱动程序;导入组织。openqa。硒。火狐。火狐司机; 公共类FirstTestCase{ }错误:线程"main"中的异常java.lang.错误:未解决的编译问题:重复的局部变量驱动
问题内容: 我正在尝试执行以下代码: 但这给了我这个错误: 我已将SLF4J添加到引用的库中,但不知道为什么这不起作用。 在WIN 7上运行,在Eclipse和NetBeans中尝试过 任何想法? 问题答案: 下载SLF4J并将slf4j-api-1.7.2.jar文件放到您的类路径中。
我很难理解这个代码有什么问题。Dr.Java一切都很好,但是在另一个名为edhesive的代码运行平台上(我就是在这个平台上被分配这个项目的),它给我一个错误。我已经检查了所有我认为出错的地方,但仍然不知道哪里出了问题。 在edhesive上运行后,我得到了这个错误 有人能帮帮我吗?