如何在Android Camera2中不断拍照?

时间:2017-05-02 03:14:12

标签: android

我正在开发Android项目,我必须反复拍照并使用面部识别API处理它们。我意识到我必须使用camera2的方法(setRepeatingRequest或setRepeatingBurst),但这些方法每5秒左右才拍一次照片。我想知道如何改变这一点,每秒至少拍两张没有滞后的照片。这甚至可能吗?如果没有,你会建议我用它做什么?

1 个答案:

答案 0 :(得分:1)

private final ImageReader.OnImageAvailableListener mOnImageAvailableListener
            = new ImageReader.OnImageAvailableListener() {

        @Override
        public void onImageAvailable(ImageReader reader) {
            try (Image image = reader.acquireNextImage()) {
                Image.Plane[] planes = image.getPlanes();
                if (planes.length > 0) {
                    ByteBuffer buffer = planes[0].getBuffer();
                    byte[] data = new byte[buffer.remaining()];
                    buffer.get(data);
                    mCallback.onPictureTaken(data);
                }
            }
        }

    };

这可能会对您有所帮助,这里是使用Camera2

https://github.com/google/cameraview https://github.com/google/cameraview/blob/master/library/src/main/api21/com/google/android/cameraview/Camera2.java