0

我想制作一个应用程序,每 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,但它只会导致应用程序崩溃。

4

1 回答 1

1

我想做一个app,每0.1秒拍照一次

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

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

AFAIK,这是不可避免的。

如果速度如此关键,您将需要限制自己使用setPreviewCallbackWithBuffer()和处理预览帧Camera.PreviewCallback

于 2013-04-30T14:31:12.077 回答