我想从手机相机中获取帧。因此,我尝试捕捉视频,并使用Matlab查找此视频的每秒帧数,结果得到了每10秒250帧。但是当我使用
public void onPreviewFrame(byte[] data, Camera camera) {}
在Android上,我每10秒只能获得70帧。你知道为什么吗?以下是我的代码:
private Camera.PreviewCallback previewCallBack = new Camera.PreviewCallback() {
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
System.out.println("Get frame " + frameNumber);
if (data == null)
throw new NullPointerException();
Camera.Parameters p = camera.getParameters();
Camera.Size size = p.getPreviewSize();
if (frameNumber == 0) {
startTime = System.currentTimeMillis();
}
// Log.e("GetData", "Get frame " + frameNumber);
frameNumber++;
camera.addCallbackBuffer(data);
}
}