我想创建一个应用程序,每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。
答案 0 :(得分:1)
我想制作一款每0.1秒拍照的应用
很少有手机会支持频繁拍照。
预览变得非常不稳定,因为它在拍摄每张照片后停留了一段时间
AFAIK,这是不可避免的。
如果速度非常重要,您需要使用setPreviewCallbackWithBuffer()
和Camera.PreviewCallback
限制自己处理预览帧。