【发布时间】:2014-04-28 02:13:36
【问题描述】:
当我尝试从相机拍摄单张照片时,它工作正常。现在我对我的代码进行了一些修改,并想从相机连续拍摄两张照片。
public void takePicture(final boolean isWithFlash) {
Camera.PictureCallback mCall = new Camera.PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length);
if(isWithFlash) {
savePhotoToDirectory(data, captureImageFileName);
mCamera.stopPreview();
mCamera.release();
mCamera = null;
} else {
savePhotoToDirectory(data, captureImageFileName);
takePicture(true);
}
}
};
if(mCamera != null) {
if(!isWithFlash) {
Parameters param = mCamera.getParameters();
mCamera.takePicture(null, null, mCall);
} else {
Parameters param = mCamera.getParameters();
param.setFlashMode(Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(param);
mCamera.takePicture(null, null, mCall);
}
} else {
Log.d("MYLOG", "Camera is null");
}
}
我正在尝试做的是不使用闪光灯拍照,然后连续使用闪光灯拍摄另一张照片。但是,当我尝试我的代码时,它只拍了第一张照片,第二张 onPictureTaken() 函数没有被调用。
我在这里做错了什么?或者有什么更好的方法可以连续拍两张?
任何 cmets 将不胜感激!
【问题讨论】: