如何让Android相机预览更少延迟?

时间:2013-04-30 13:37:49

标签: android android-asynctask android-camera

我想创建一个应用程序,每0.1秒拍摄一次,所以我做了AsyncTask我定期执行。问题是,预览变得非常不稳定,因为它在拍摄每张照片后停留了一段时间。这是我所拥有的一部分:

public class Photo extends AsyncTask<Void, String, Boolean> {

    @Override
    protected Boolean doInBackground(Void... params) {
        try {
            takePhoto();
        } catch (Exception e) {
            onError();
        }
        return true;

    }

    @Override
    protected void onPreExecute() {
        super.onPreExecute();


    }

    @Override
    protected void onPostExecute(Boolean result) {
        super.onPostExecute(result);

    }

}


public void takePhoto() {

    PictureCallback mPicture = new PictureCallback() {
        public void onPictureTaken(byte[] data, Camera camera) {
            mCamera.startPreview();
            mPreview.bringToFront();


        }
    };

    mCamera.takePicture(null,null,  mPicture);

}

这个AsyncTask按预期拍摄精确照片,但是预览是没有用的,因为它非常不连贯。我也尝试在ShutterCallback开始预览,但它只会导致appcrash。

1 个答案:

答案 0 :(得分:1)

  

我想制作一款每0.1秒拍照的应用

很少有手机会支持频繁拍照。

  

预览变得非常不稳定,因为它在拍摄每张照片后停留了一段时间

AFAIK,这是不可避免的。

如果速度非常重要,您需要使用setPreviewCallbackWithBuffer()Camera.PreviewCallback限制自己处理预览帧。