如何在预览到 Android Camera2 API 期间获取指向每个帧数据的指针?

恩达阿兹

我正在尝试使用 camera2 API 在预览期间获取视频帧数据帧。我如何获得指向每个帧数据的指针。在本站显示帧预览之前,将帧数据指针连同包含视频数据格式的结构一起发送到 C++ 函数(JNI 原生)。这是可能的?请帮助我,给我一些建议?我提前致谢。

web80

关于从 Java 预览中获取帧,您可以ImageReader在捕获中添加一个特别是,您需要实现 ImageReader.OnImageAvailableListener (doc here)从那个 ImageReader 你可以使用类似的代码获取原始字节:

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

            @Override
            public void onImageAvailable(ImageReader reader) {
                Image img = null;
                img = reader.acquireLatestImage();
                Result rawResult = null;
                try {
                    if (img == null) throw new NullPointerException("cannot be null");
                    ByteBuffer buffer = img.getPlanes()[0].getBuffer();
                    byte[] data = new byte[buffer.remaining()];
                    buffer.get(data);

                    Bitmap b = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);

                } catch (ReaderException ignored) {                        
                } catch (NullPointerException ex) {
                } finally {
                    mQrReader.reset();
                    if (img != null)
                        img.close();
                }
            }
};

您必须创建一个ImageReader,并设置其侦听器

mImageReader = ImageReader.newInstance(...);
mImageReader.setOnImageAvailableListener(mOnImageAvailableListener, (...));

您可以通过这种方式添加到您的捕获会话中:

Surface surface = new Surface(texture);
Surface mImageSurface = mImageReader.getSurface();
mPreviewRequestBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
mPreviewRequestBuilder.addTarget(mImageSurface);
mPreviewRequestBuilder.addTarget(surface);

请注意,这是指导您的伪代码,可能还没有准备好直接粘贴和工作,但会为您提供有关如何进行的良好指南。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Android L和Camera2 API的相机预览图像数据处理

来自分类Dev

如何使用Android Camera2 API捕获单个图像?

来自分类Dev

Android Camera2 API和EXIF

来自分类Dev

Android Camera2预览被拉伸

来自分类Dev

Android Camera2 空预览图像

来自分类Dev

Android Camera2:如何使用SENSOR_BLACK_LEVEL_PATTERN API?

来自分类Dev

来自Android camera2 API的图像数据在Galaxy S5上翻转并压缩

来自分类Dev

Android API 21+ Camera2 API

来自分类Dev

使用camera2 API捕获图片而不进行预览

来自分类Dev

预览创建布局programmaticaly时streched在Camera2 API

来自分类Dev

Android Camera2 API手动曝光更改

来自分类Dev

Android Camera2 API聚焦距离校准

来自分类Dev

Android Camera2 API-检测何时关注

来自分类Dev

在Android Vision API中切换到Camera2

来自分类Dev

Android Camera2 API手动曝光更改

来自分类Dev

使用Android Camera2 API在后台捕获视频

来自分类Dev

Android Camera2 API 中的等效 canDisableShutterSound 方法

来自分类Dev

Android Camera2 API - 覆盖旧图像

来自分类Dev

使用Android camera2获得全屏预览

来自分类Dev

如何在 Android Camera2 中不断拍照?

来自分类Dev

Android Camera2 同步图像和元数据

来自分类Dev

我应该为Android使用Camera2还是Camera API?

来自分类Dev

Camera2 API 问题

来自分类Dev

Android JavaCV + Camera2

来自分类Dev

Android Camera2 getPreviewFrame

来自分类Dev

Android Camera2示例

来自分类Dev

使用Android camera2 API打开/关闭闪光灯不起作用

来自分类Dev

Android Camera2 API切换回-前置摄像头

来自分类Dev

Android L-使用Camera2 API自动对焦拍摄闪光灯图像