我正在编写一个Android应用程序,该应用程序可以从摄像头获取连续更新,并在每次onPreviewFrame(byte []数据,摄像头摄像头)被调用时处理它们。如何在Android中使用相机回调?
问题是,onPreviewFrame只会被调用大约每秒8-10次,而不是30次(我预计会有30 FPS相机)。我认为这是因为我的UI正在接收所有相机回调,而不是单独的线程。
这里是我的SurfaceView持有的摄像头和接收相机回调:
public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback, Callback {
private Camera mCamera;
...
mCamera.setPreviewCallback(new Camera.PreviewCallback() {
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
//Frame received (about 8 per second)
这里是我打开相机(在我的主要活动)的代码:
final Camera camera = getCameraInstance(); //calls camera.open()
mPreview = new CameraPreview(this, camera);
应该如何我开始使用线程,Asynctask或Handler来使相机回调发生在侧面?我将如何在UI线程中接收这些更新?
2015-10-31
Piglet
+0
可能重复[Android相机onPreviewFrame帧速率不一致]的(http://stackoverflow.com/questions/19919793/android-camera-on-pre-frame-frame-rate-not-consistent) –