google / cameraview

[DEPRECATED] Easily integrate Camera features into your Android app
Apache License 2.0
4.74k stars 1.03k forks source link

If i want to recorder video how to achieve? #142

Open xiandanin opened 7 years ago

xiandanin commented 7 years ago

How to get the current frame?

xiandanin commented 7 years ago
mImageReader = ImageReader.newInstance(largest.getWidth(), largest.getHeight(),
                ImageFormat.YUV_420_888, 5);
mImageReader.setOnImageAvailableListener(mOnImageAvailableListener, null);
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.onPreviewFrame(data);

                }
            }
        }

    };
mPreviewRequestBuilder.addTarget(mImageReader.getSurface());

Because onImageAvailable call very frequently, buffer.get (data); more time-consuming, leading to preview lag, how can I deal with this problem

sibelius commented 6 years ago

check this one https://github.com/google/cameraview/pull/218