【发布时间】:2013-11-09 03:23:45
【问题描述】:
public boolean openCamera() {
Log.i(TAG, "openCamera");
releaseCamera();
mCamera = Camera.open();
if (mCamera == null) {
Log.e(TAG, "Can't open camera!");
return false;
}
mCamera.setPreviewCallbackWithBuffer(new PreviewCallback() {
public void onPreviewFrame(byte[] data, Camera camera) {
synchronized (View.this) {
System.arraycopy(data, 0, mFrame[frameIndex], 0,
data.length);
View.this.notify();
}
camera.addCallbackBuffer(mBuffer);
if (frameIndex == 1) {
bufferIsSet = true;
}
frameIndex ^= 1;
}
});
return true;
}
以上是打开相机的方法。 (更多代码见:https://github.com/sungjkang/OpticalFlow/blob/master/src/com/wais/opticalflow/View.java)
使用模拟器在我的笔记本电脑上运行正常,但在我的 Nexus 4 上根本无法运行。 经过一番挖掘,我注意到我在使用手机时从未进入 onPreviewFrame,但我的模拟器正在调用该方法。
有人知道这里发生了什么吗?
【问题讨论】:
标签: android opencv android-camera opticalflow nexus-4