当我按下 capture onImageAvailable 时,图像被保存了 10 次
Images are getting saved 10 times when I press capture once camera 2 onImageAvailable
private final ImageReader.OnImageAvailableListener mOnImageAvailableListener
= new ImageReader.OnImageAvailableListener() {
@Override
public void onImageAvailable(ImageReader reader) {
Image img = reader.acquireNextImage();
ByteBuffer buffer = img.getPlanes()[0].getBuffer();
byte[] bytes = new byte[buffer.remaining()];
buffer.get(bytes);
img.close();
mBackgroundHandler.post(new ImageSaver(bytes, mFile));
}
};
当我按一次捕获时,图像被保存了 10 次,我卡在这里了
case STATE_WAITING_LOCK: {
Integer afState = result.get(CaptureResult.CONTROL_AF_STATE);
if (afState == null) {
mState = STATE_PICTURE_TAKEN;
captureStillPicture();
}
注意 mState = STATE_PICTURE_TAKEN ,这解决了我的问题
private final ImageReader.OnImageAvailableListener mOnImageAvailableListener
= new ImageReader.OnImageAvailableListener() {
@Override
public void onImageAvailable(ImageReader reader) {
Image img = reader.acquireNextImage();
ByteBuffer buffer = img.getPlanes()[0].getBuffer();
byte[] bytes = new byte[buffer.remaining()];
buffer.get(bytes);
img.close();
mBackgroundHandler.post(new ImageSaver(bytes, mFile));
}
};
当我按一次捕获时,图像被保存了 10 次,我卡在这里了
case STATE_WAITING_LOCK: {
Integer afState = result.get(CaptureResult.CONTROL_AF_STATE);
if (afState == null) {
mState = STATE_PICTURE_TAKEN;
captureStillPicture();
}
注意 mState = STATE_PICTURE_TAKEN ,这解决了我的问题