【发布时间】:2013-04-30 22:31:12
【问题描述】:
我想制作一个每 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。
【问题讨论】:
-
我不确定您是否真的可以对此做任何事情。它很可能与硬件有关。您是否考虑过捕捉视频并巧妙利用各个帧?您需要强制视频去隔行扫描。只是一个想法。
标签: android android-asynctask android-camera