【发布时间】:2014-06-24 10:50:32
【问题描述】:
我正在开发一个 Android 应用程序,我需要从相机获取最大 fps。
我一直在尝试实现 setPreviewCallbackWithBuffer,但无法正常工作。
谁能给我一个例子或解释?
我设置了一个计时器,每 10 毫秒运行一次,然后我运行 takePicture()。这是正确的,或者获得最大 fps 的方法是什么?
我已经到处搜索了,但找不到适合我的解释。
谢谢。
编辑 2:
startRecording.setOnClickListener( new View.OnClickListener() {
public void onClick(View v) {
if(!recording)
{
recording = true;
thread.start();
cam.startPreview();
Size previewSize=cam.getParameters().getPreviewSize();
int dataBufferSize=(int)(previewSize.height*previewSize.width*(ImageFormat.getBitsPerPixel(cam.getParameters().getPreviewFormat())/8.0));
cam.addCallbackBuffer(new byte[dataBufferSize]);
cam.addCallbackBuffer(new byte[dataBufferSize]);
cam.addCallbackBuffer(new byte[dataBufferSize]);
cam.setPreviewCallbackWithBuffer(new PreviewCallback() {
public void onPreviewFrame(byte[] imageData, Camera arg1) {
try {
photos.add(imageData);
} catch(Exception e) { System.out.println("ERROR!");
}
}
});
}
(...)
谢谢!
【问题讨论】:
-
请完整而准确地解释“我无法让它工作”的含义。 “对吗?”——不。
-
@CommonsWare 我刚刚在主题中添加了代码和一些注释。你现在能明白吗?谢谢!
标签: android camera buffer frame-rate