【发布时间】:2015-11-05 02:46:33
【问题描述】:
我正在开发一个 Android 应用程序,它获取逐帧相机数据并计算每帧的像素颜色平均值。问题是,虽然相机回调onPreviewFrame(byte[] data, Camera camera) 每秒被调用大约 24 次,但如果我将计算放在相机回调中,回调频率会显着减慢到每秒 8-10 次回调,这太低了。
例如:
mCamera.setPreviewCallbackWithBuffer(new Camera.PreviewCallback() {
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
Log.e(tag, "Frame");
}
}
每秒打印大约 24 次“帧”,这很好。不过
mCamera.setPreviewCallbackWithBuffer(new Camera.PreviewCallback() {
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
//do heavy calculations with data array
Log.e(tag, "Frame");
}
}
每秒打印大约 8 次“帧”。
有什么办法可以加快Camera的回调频率,同时还要对帧数据进行操作?
【问题讨论】:
标签: android multithreading performance callback camera