android camera预览帧,android camera2处理每一帧并显示其预览

本文档介绍了如何在Android中使用Camera2 API处理相机预览的每一帧。通过修改google samples的android-Camera2Basic项目,添加额外的ImageReader表面来捕获帧,并在SurfaceView上进行绘制。主要问题在于回调仅在用户拍照时触发,而非在每一帧预览时。为解决此问题,文章展示了如何创建CameraCaptureSession,设置连续自动对焦和自动曝光模式,以及添加用于捕获每一帧的代码片段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我使用

https://github.com/googlesamples/android-Camera2Basic,但尝试修改它,我可以访问每个帧,然后在surfaceview上绘制.

我明白了,我应该添加额外的表面(ImageReader.getSurface()),并在此回调中从中读取帧:

private final ImageReader.OnImageAvailableListener mOnImageAvailableListener

= new ImageReader.OnImageAvailableListener() {

@Override

public void onImageAvailable(ImageReader reader) {

Log.d("Img", "onImageAvailable");

mBackgroundHandler.post(new ImageSaver(reader.acquireNextImage(), mFile));

}

};

问题是只有当用户捕获图像而不是从摄像机发送到预览屏幕的eacg帧时,才会调用此回调.

这是我试图添加的内容:

private void createCameraPreviewSession() {

try {

SurfaceTexture texture = mTextureView.getSurfaceTexture();

assert texture != null;

// We configure the size of default buffer to be the size of camera preview we want.

textu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值