gpt4 book ai didi

android - 如何从相机连续拍摄两张照片?

转载 作者:行者123 更新时间:2023-11-29 00:21:43 27 4
gpt4 key购买 nike

当我尝试从相机拍摄单张照片时,效果很好。现在我对我的代码做了一点修改,想用相机连续拍摄两张照片。

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() 函数没有被调用。

我在这里做错了什么?或者有什么更好的方法可以连续拍摄两张照片?

如有任何意见,我们将不胜感激!

最佳答案

您不需要在第二次调用后调用 mCamera.stopPreview()。但是您需要在第一个之后调用 mCamera.startPreview()。我会在两次调用 takePicture() 之间引入一些延迟,例如使用View.post()拍摄第二张照片。但也许这个post 不是必需的,它造成的延迟对您的目的来说太长了 - 这由您决定。

关于android - 如何从相机连续拍摄两张照片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22546433/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com